Outils pour utilisateurs

Outils du site


wiki:projets:robot_eviteur_d_obstacles

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:projets:robot_eviteur_d_obstacles [2018/02/19 17:30]
maxime_farin [Partie 2 : Apprendre à piloter des moteurs DC avec Arduino et une carte TB6612FNG]
wiki:projets:robot_eviteur_d_obstacles [2020/10/05 14:37] (Version actuelle)
Ligne 3: Ligne 3:
  
 Porteur(s) du projet: Maxime Farin (contact : [[maxime.farin1@gmail.com|maxime.farin1@gmail.com]])\\ Porteur(s) du projet: Maxime Farin (contact : [[maxime.farin1@gmail.com|maxime.farin1@gmail.com]])\\
 +
 +{{ :wiki:projets:img_1178.jpg.jpg?direct&400 | Le premier prototype du robot}}
  
 L'objectif de ce projet d'électronique est de créer un robot détecteur de présence qui se déplace dans une pièce et évite les obstacles lorsqu'il en rencontre.  L'objectif de ce projet d'électronique est de créer un robot détecteur de présence qui se déplace dans une pièce et évite les obstacles lorsqu'il en rencontre. 
Ligne 57: Ligne 59:
 <code =Arduino> <code =Arduino>
 /*  /* 
- * Code d'exemple pour un capteur à ultrasons HC-SR04. +  * Code d'exemple pour un capteur à ultrasons HC-SR04. 
- */+  */
  
 /* Constantes pour les broches */ /* Constantes pour les broches */
Ligne 247: Ligne 249:
 } }
 </code> </code>
 +
 +
 +
 +
 +
 +----
 +
 +
  
  
Ligne 253: Ligne 263:
  
 Maintenant que l'on sait comment lire les données de distance du capteur à ultrasons et comment piloter les moteurs, nous pouvons maintenant combiner les scripts précédents pour donner les instructions aux moteurs du robot. Maintenant que l'on sait comment lire les données de distance du capteur à ultrasons et comment piloter les moteurs, nous pouvons maintenant combiner les scripts précédents pour donner les instructions aux moteurs du robot.
 +Il faut aussi modifier le montage pour incorporer le capteur à ultrasons et les moteurs.
 +
 +<fs x-large>Schéma du montage :
 +</fs>
 +
 +{{ :wiki:projets:capture_d_e_cran_2018-02-19_a_18.44.50.png?direct&600 | Schéma du montage avec Fritzing}}
 +
  
 - Lorsqu'il ne voit pas d'obstacles devant lui, c'est-à-dire si le capteur à ultrasons retourne une distance supérieure à 20 cm (par exemple), le robot avance tout droit. Les instructions à lui donner sont donc : - Lorsqu'il ne voit pas d'obstacles devant lui, c'est-à-dire si le capteur à ultrasons retourne une distance supérieure à 20 cm (par exemple), le robot avance tout droit. Les instructions à lui donner sont donc :
  
  
-<code =Arduino>+<note>
   move(1, 100, 1); //motor 1, full speed, left   move(1, 100, 1); //motor 1, full speed, left
   move(0, 100, 1); //motor 2, full speed, left   move(0, 100, 1); //motor 2, full speed, left
-</code>+</note>
  
-- Lorsque le robot voir un obstacle, on le fait s'arrêter avec l'instruction stop(), puis reculer pendant 3s en faisant tourner les moteurs dans le sens opposé :  +- Lorsque le robot voir un obstacle, on le fait s'arrêter avec l'instruction stop, puis reculer pendant 3s en faisant tourner les moteurs dans le sens opposé :  
  
-<code =Arduino>+<note> 
 +  move(1, 50, 0); //motor 1, recule 
 +  move(0, 50, 0); //motor 2, recule 
 +  delay(3000); // recule pendant 2s 
 +</note>
  
-move(1, 50, 0); //motor 1, recule 
-move(0, 50, 0); //motor 2, recule 
-delay(3000); // recule pendant 2s 
-stop(); // Stopper les moteurs 
-</code> 
  
 +Enfin, on fait tourner le robot en faisant tourner ses deux roues dans un sens opposé pendant 1.5s, avant de s'arrêter et de repartir tout droit. Pour chaque manoeuvre, on calcule un nombre aléatoire entre 0 et 100. Si le nombre est inférieur à 50, on tourne à gauche sinon on tourne à droite.
  
-Enfin, on fait tourner le robot en faisant tourner ses deux roues dans un sens opposé pendant 1.5s, avant de s'arrêter et de repartir tout droit.+<note>
  
-<code =Arduino> 
  
-// On fait tourner le robot dans une direction aléatoire +    randNumber = random(100.0); // On fait tourner le robot dans une direction aléatoire
-    randNumber = random(100.0);+
     if (randNumber < 50.0) {     if (randNumber < 50.0) {
       move(1, 100, 1); //motor 1, tourne à gauche       move(1, 100, 1); //motor 1, tourne à gauche
Ligne 289: Ligne 304:
     stop(); // Stopper les moteurs     stop(); // Stopper les moteurs
          
-</code>+</note>
  
  
 Voilà le code complet ci-dessous : Voilà le code complet ci-dessous :
 +
 +
 +<fs x-large>Code Arduino :
 +</fs>
 +
 <code =Arduino> <code =Arduino>
  
Ligne 460: Ligne 480:
  
 Il faut maintenant construire le chassis du robot. Il faut maintenant construire le chassis du robot.
 +
 +
 +
 +
 +
 +----
 +
 +
 +
 +==== Partie 4 : Construction du chassis : Premier prototype de robot ! ====
 +
 +{{ :wiki:projets:img_1178.jpg.jpg?direct | Notre robot éviteur d'obstacles: premier prototype}}
 +
 +Il faut ensuite construire un chassis pour porter notre électronique. 
 +
 +Il y a pas de chassis type mais voici quelques astuces pour le construire:
 +
 +<note tip>
 +
 +- Placer le capteur à ultrasons en hauteur par rapport au sol (au moins 10 cm) sinon le capteur verra le sol comme un obstacle.
 +
 +- Les deux roues motrices du robot sont situées à l'avant du robot. Pour la stabilité, il faut mettre au moins une roue à l'arrière. Il est en fait plus judicieux de ne mettre qu'une seule roue et avec une petite surface de contact avec le sol pour qu'il y ait peu de frottement lorsque le robot fait une manoeuvre. S'il y a trop de frottement, le robot risque de mal tourner, voire de ne pas tourner du tout...
 +
 +- J'ai utilisé des LEGO Technic pour construire le chassis. On peut imprimer des pièces en 3D pour adapter les moteurs aux LEGO; les pièces sont en noir sur la photo (cf le fichier donné dans la section "Matériel Nécessaire"). Ça fonctionne plutôt bien !
 +
 +- J'ai utilisé [[https://www.banggood.com/10Pcs-MB102-Breadboard-Module-Adapter-Shield-3_3V5V-For-Arduino-Board-p-1009200.html?rmmds=search&cur_warehouse=CN|un module d'alimentation 5V pour Arduino]] que l'on peut alimenter avec une pile 9V, ce qui permet au robot d'être indépendant (sans connection avec l'ordinateur).
 +
 +
 +
 +</note>
 +
 +
 +----
 +
 +
  
 ===== Journal de bord ===== ===== Journal de bord =====
Ligne 473: Ligne 528:
  
 - Test du driver Dual TB6612FNG pour piloter des moteurs DC avec la carte Arduino - Test du driver Dual TB6612FNG pour piloter des moteurs DC avec la carte Arduino
 +
 +<fs large>3-4 février 2018: 
 +</fs> \\
 +
 +- Construction du premier prototype du robot
 +
 +<fs large>19 février 2018: 
 +</fs> \\
 +
 +- Mise à jour du wiki
  
wiki/projets/robot_eviteur_d_obstacles.1519061421.txt.gz · Dernière modification: 2018/02/19 17:30 de maxime_farin