/ Accueil / Tous les tests / arduino robot le code

Robot Voiture en Arduino : la programmation [Etape 2]

"Programmer son premier robot car en arduino"

arduino robot car programmation code Voila nous avons testé pour vous la construction de notre premier “robot car” Arduino. Pour cela 3 étapes sont nécessaires:
  • l’assemblage du chassie de la voiture,
  • le montage des éléments robotiques (moteur, capteurs …. etc),
  • la connexion de tous les éléments à l'arduino (processeur).

Les bases : l'IDE arduino

Avant de commencer à programme l'arduino et les différents composants (moteurs, capteurs...), il faut installer l'IDE Arduino.
Le programme est disponible sur le site d'arduino : (la page de téléchargement de l'IDE)
arduino ide windows
  • zone 1. : compiler le programme arduino,
  • zone 2. : compiler et upload le programme vers arduino,
  • zone 3. : zone de programmation en C.
Toute la programmation se passe par cette interface (zone 3). Le langage utilisé est le C.
Apres d'avoir compiler le programme (bouton 1), via un cable usb vous pouvez uploader (téléverser) vers la carte arduino (bouton 2).
La structure d'un programme arduino est assez simple. Elle est composée de 3 zones:
  • Zone globale : Elle permet d'appeler les bibliothèques, créer les variables globales, créer les nouvelles fonctions ou procédures pour votre programme.
  • Zone setup: Une fonction "void setup()" permet d’initialiser des éléments, variables ...etc ...
    Cette fonction n'est appelée qu'une seule fois au boot par l'arduino.
  • Zone loop: Une fonction "void loop()" est appelée constament par l'arduino et après la fonction setup. Le coeur du programme est là.



Programme 1 : Hello world !!!

Le premier programme qui validera notre upload entre l'ide et l'arduino. L'affichage sera "poussée" vers la sortie standard de l'ide
void setup() {
  Serial.begin(9600);      // ouvre le port serie 9600 bps:    
}
void loop() {  
  Serial.print("Hello world !!");  
}

Programme 2 : Gestion du capteur de distance

Le capteur de distance se programme facilement avec le code suivant:
/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3;    // Broche ECHO

void setup() {
  Serial.begin(9600);      // ouvre le port serie 9600 bps:    
  /* Initialisation du capteur de distance */
  pinMode(TRIGGER_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {  
 /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
  
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
  long measure = pulseIn(ECHO_PIN, HIGH);
   
  /* 3. Calcul la distance à partir du temps mesuré */
  float distance_mm = measure / 58;
   
  /* Affiche les résultats  */
  Serial.print("Distance: ");
  Serial.print(distance_mm);
}



Programme 3 : Gestion des 2 moteurs via module L298N

Les 2 moteurs doivent se piloter via le module L298N. Là aussi après les bons branchement des fils sur les Entrées (PINS) de l'arduino, le code est très simple:
// Déclaration des Pins
// motor one
int enA = 10;
int in1 = 9;
int in2 = 8;
// motor two
int enB = 5;
int in3 = 7;
int in4 = 6;

void setup()
{
  // initialisation des pins du controle Moteur
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void loop()
{
  // démarre les 2 moteurs
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  delay(2000);  // avance 2 sec.

  // stop le moteur 1 pour faire pivoter le robot
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  delay(500); // tourne 500ms.

  // arret du robot
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
  delay(1000); // arrêt pendant 1sec.
}

Programme 4 : Gestion du servo Moteur

Le servo moteur servira à faire pivoter le capteur de distance. Une librairie Servo.h permet de faire pivoter d'un certain angle le moteur.
 /* Inclut la lib Servo pour manipuler le servomoteur */
#include 

/* Créer un objet Servo pour contrôler le servomoteur */
Servo servoMoteur;

void setup() {
    
  // Attache le servomoteur à la broche D9
  servoMoteur.attach(9);
}

void loop() {

  // Fait bouger le bras de 0° à 180°
  for (int position = 0; position <= 180; position++) {
    servoMoteur.write(position);
    delay(15);
  }
  
  // Fait bouger le bras de 180° à 10°
  for (int position = 180; position >= 0; position--) {
    servoMoteur.write(position);
    delay(15);
  }
}



Programme 5 : Les détecteurs de ligne

Le capteur TCRT5000 IR nous permet de détecter les lignes noirs. Le capteur retour 0 ou 1 en fonction de la présence ou non d'une ligne noir.
Pour notre robot car, il faudra 2 capteurs pour "encadrer" la ligne et détecter l'écart à gauche ou à droite. Le code est très simple.
void setup() {
   Serial.begin(9600);
}

void loop() {
  int val=analogRead(A3);
  Serial.print("Présence de la lign noir:"); Serial.println(val); 
}

Posez vos questions, échangeons ensemble

3 commentaires

Bonjour, j'ai bien envie d'acheter ce kit pour jouer avec mon gamin.
D'autant + que sur ebay il est dans les 16€.
J'ai vu sur youtube qu'une liaison vidéo sans fil etait possible mais je n'arrive pas à savoir si c'est un bricolage supplémentaire, avez-vous des infos ?
Merci

— Jéjé / Fri, 7 Sep 2018

Bonjour

Où peut-on charger le code ?

Merci

— Patrick / Fri, 25 May 2018

Cela me tente bien .... avec mon fils de 8 ans.
Merci pour ce test , quel magasin me conseillez vous pour acheter les différents éléments arduino

— paul et thibault / Thu, 15 Jun 2017


Formulaire:

Veuillez entrer le résultat de l’opération arithmétique affichée sur l’image ci-contre :

Veuillez entrer le résultat de l’opération arithmétique affichée sur l’image. =