Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1357 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Programmation robot arduino

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programmation robot arduino

n°2277565
eracett
Posté le 13-03-2016 à 23:58:17  profilanswer
 

Bonsoir je voudrai pour mon loisir programmer les déplacements d'un robot terrestre dont la direction serai contrôlée par un servomoteur (droite,gauche), et un moteur CC (avant;arrière).Je veux donc contrôler les déplacements du robot via un shield joystick (arduino) et je n'ai aucune idée du programme à effectuer (je débute ^^) si quelqu’un peut prendre le temps de le faire ou de m'expliquer (ou les deux :3) ça serai vraiment sympa merci d'avance.  
 
Matériel :  
-Carte Arduino UNO : http://www.gotronic.fr/art-carte-arduino-uno-12420.htm  
-Shield joystick : http://www.gotronic.fr/art-shield- [...] -19254.htm  
- le servomoteur est un servomoteur basique.  
-le moteur CC : http://fr.rs-online.com/web/p/moto [...] c/2483867/  
-le shield moteur : http://www.conrad.fr/ce/fr/product [...] archDetail

mood
Publicité
Posté le 13-03-2016 à 23:58:17  profilanswer
 

n°2277590
rat de com​bat
attention rongeur méchant!
Posté le 14-03-2016 à 12:55:18  profilanswer
 

Désolé de dire ça, mais si tu n'as aucune idée sur le programme en tant que débutant faudrait peut-être commencer par quelque chose de plus simple non?  :o Tu as déjà de l'expérience avec les Arduino au moins?
 
Tu peux décomposer ton problème en morceaux:
-mise en oeuvre de la carte Arduino (faire clignoter une LED c'est un bon début, plus tard établir une liaison RS232 avec le PC c'est très pratique pour le débuggage)
-lecture du joystick et affichage sur LED ou RS232 (ou LCD)
-commande des moteurs (à détailler)
-...
 
Quand tu saura faire tout ça tu vera comment assembler les morceaux. D'ailleurs je pense que sur internet on doit trouver pleins d'infos...

n°2277595
rufo
Pas me confondre avec Lycos!
Posté le 14-03-2016 à 15:24:51  profilanswer
 

+1 pour les conseils. Parce que là, ton post donne la même impression que "Bonjour, je voudrais construire une maison, mais je ne sais pas planter un clou. Pouvez-vous me donner la marche à suivre ?" :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2277600
eracett
Posté le 14-03-2016 à 19:25:12  profilanswer
 

Oui bien-sur j'ai déjà les bases de la programmation en arduino

n°2277696
TotalRecal​l
Posté le 15-03-2016 à 16:45:02  profilanswer
 

Ben dans ce cas fais déjà tout ce que tu peux, parcours les différents tutos sur l'Arduino et la robotique et pose tes questions ensuite une fois le projet un peu avancé.  
Parce que là ça ressemble plus à "j'aimerai arriver à faire ça, pour l'instant je pars de 0, pouvez vous tout m'expliquer", ce qui n'est ni pédagogique ni conforme à la mentalité du forum (cf les règles) [:spamafote]


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2277734
eracett
Posté le 15-03-2016 à 22:26:13  profilanswer
 

Bonsoir j'ai pas mal avancer j'ai réussis à faire tourner le servomoteur de droite à gauche avec le joystick mais maintenant il faut faire avancer et reculer avec le moteur cc dans le meme programme et là je bloque. :??:

n°2277735
eracett
Posté le 15-03-2016 à 22:37:04  profilanswer
 

Voici le programme n'hésitez pas si il y a des améliorations à apporter :
// --- Inclusion des librairies ---
 
#include <Servo.h> // librairie pour servomoteur  
 
// --- Déclaration des constantes utiles ---
const int APPUI=LOW; // constante pour tester état BP
 
//--- Constantes utilisées avec le servomoteur  
const int ANGLE_MIN=10; // angle position MIN en degrés
const int POS_MIN=600; // largeur impulsion pour position ANGLE_MIN degrés du servomoteur
                 
const int ANGLE_MAX=170; // angle position MAX en degrés
int POS_MAX=2300; // largeur impulsion pour position ANGLE_MAX degrés du servomoteur
                 
 
// --- Déclaration des constantes des broches E/S numériques ---
 
const int bpRouge=12; // Constante pour la broche 12
const int bpBleu=9; // Constante pour la broche 9
const int bpJoystick=5; // Constante pour la broche 5
const int broche_servo=6; // Constante pour la broche 6
 
// --- Déclaration des constantes des broches analogiques ---
 
const int axe1Joystick=2;  
const int axe2Joystick=3;  
 
// --- Déclaration des variables globales ---
 
int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique
 
int positionAxe1=2; // Variable pour acquisition résultat brut de conversion analogique numérique axe 1 Joystick
int positionAxe2=3; // Variable pour acquisition résultat brut de conversion analogique numérique axe 2 Joystick
 
int angleServo=180; // variable de position du servo  en degrés
 
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
 
//--- Création objet servomoteur  
Servo mon_servo;  // crée un objet servo pour contrôler le servomoteur
 
 
void setup()   { // debut de la fonction setup()
 
//--- Initialisation Servomoteur  
mon_servo.attach(broche_servo);  // attache l'objet servo à la broche de commande du servomoteur
//mon_servo.attach(broche_servo, POS_MIN, POS_MAX);  // attache l'objet servo à la broche de commande du servomoteur avec calibrage auto
 
 
// ------- Broches en sorties numériques -------  
 pinMode (broche_servo,OUTPUT); // Broche broche_servo configurée en sortie
 
// ------- Broches en entrées numériques -------  
 pinMode (bpRouge,INPUT); // Broche bpRouge configurée en entrée
 pinMode (bpBleu,INPUT); // Broche bpBleu configurée en entrée
 pinMode (bpJoystick,INPUT); // Broche bpJoystick configurée en entrée
 
// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------  
 
// Les BP du shield Joystick + BPx2 dispose d'un rappel au plus sur le shield
 
 
mon_servo.writeMicroseconds(angle(angleServo)); // crée impulsion à partir valeur angle - plus précis que write()
 
 
} // fin de la fonction setup()
 
void loop(){ // debut de la fonction loop()
 
 
 
//mesure_brute= analogRead(broche_analogique) ; // acquisition conversion analogique numérique (100µs env.) sur broche analogique indiquée
 
 
// ----------- code type Shield Arduino Joystick + BPx2 ------  
 
//----- lecture position Joytstick
positionAxe1=analogRead(axe1Joystick); // acquisition conversion analogique numérique sur broche analogique axe 1
positionAxe2=analogRead(axe2Joystick); // acquisition conversion analogique numérique sur broche analogique axe 2
 
if (positionAxe1>1000) {
 
   angleServo=angleServo+1;  
 
}
 
if (positionAxe1<400) {
 
   angleServo=angleServo-1;  
 
}
 
//---- lecture état des BP du shield Joystick
if (digitalRead(bpRouge)==APPUI) { // si appui BP rouge
   angleServo=90; // positin médiane  
}
 
if (digitalRead(bpBleu)==APPUI) { // si appui BP  
 
}
 
if (digitalRead(bpJoystick)==APPUI) { // si appui BP joystick
 
}
 
//------------- mise à jour de la position du servomoteur ---  
   constrain(angleServo,0,180);  
    mon_servo.writeMicroseconds(angle(angleServo)); // crée impulsion à partir valeur angle - plus précis que write()
   delay(10);
 
//while(1); // stop loop
 
} // fin de la fonction loop()
 
 
int angle(int valeur_angle) {  
 
        int impuls=0;
        impuls=map(valeur_angle,ANGLE_MIN,ANGLE_MAX,POS_MIN, POS_MAX);
        return impuls;    
 
}  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Programmation robot arduino

 

Sujets relatifs
arduino GPS - get status GPS.programmation d'une plage orientée
programmation d'une plage orientéeArduino lecteur RFID rc522
Demande programmation d'un jeu échec aux règles spécialesprogrammation en cuda
Aide programmation scripts / recherche FAI[question] quelle langage de programmation pour une UI poussé
Forum ou Site pour s'initier à la programmation de PICProgrammation C - conditionnelle
Plus de sujets relatifs à : Programmation robot arduino


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR