Acheter depuis le OSOYOO | Acheter chez US | Acheter chez UK | Acheter chez DE | Acheter chez IT | Acheter chez FR | Acheter chez ES | Acheter chez JP |
Dans ce projet, nous utiliserons un capteur d’obstacles (détecteur de distance à ultrasons) pour détecter les obstacles, éviter les collisions et conduire automatiquement.
Veuillez préparer les parties suivantes pour mener à bien ce projet
REMARQUE:
1.La couleur du bloc de construction est soumise au produit réel, ce qui n’affecte pas l’utilisation.
2. TOUS LES PRODUITS OSOYOO POUR ARDUINO SONT DES CARTES TIERCES ENTIÈREMENT COMPATIBLES AVEC ARDUINO
Avant de construire cette voiture robot avec des blocs, veuillez installer OSOYOO basic board pour Arduino sous OSOYOO Magic I/O shield comme suit (Attention : les broches du I/O shield sont d’abord alignées avec le port de la basic board, puis pressez fermement le shield sur la board).
Veuillez suivre les étapes de construction pour construire cette voiture robot. Si vous souhaitez obtenir les étapes de construction en PDF, veuillez les télécharger à partir de https://osoyoo.com/picture/Building_Robot_Car/lesson4/LESSON4.pdf
Remarque :Si vous avez construit la voiture robot de la leçon 1, passez à l’étape 35 de ce PDF.
Connectez les moteurs et le boîtier de la pile 9V comme dans la leçon 1.
Connecter ensuite le servomoteur SG90 au port D4 du OSOYOO Magic I/O shield, le capteur du module ultrasonique au port D7D8 du Magic I/O shield à l’aide d’un câble PNP à 4 broches comme ci-dessous :
Note : Dans ce kit, nous utilisons mblock comme outil de programmation, si vous voulez en savoir plus sur mblock, veuillez visiter la préparation avant le cours 1: https://osoyoo.com/fr/2021/12/01/preparation-before-class-1
Étape 1) Téléchargez la version PC de mBlock à partir de https://mblock.makeblock.com/en-us/download/, sélectionnez le fichier de téléchargement en fonction du type de système d’exploitation de votre ordinateur (n’utilisez pas la version du navigateur) :
Étape 2) Télécharger le fichier OSOYOO_UNO.mext à partir de https://osoyoo.com/driver/mblock/osoyoo_uno.mext
Étape 3) Exécutez le logiciel PC mBlock en double-cliquant sur l’icône de l’adorable Panda. L’interface utilisateur de mBlock s’affiche comme sur l’image suivante. Veuillez supprimer le périphérique par défaut CyberPi en cliquant sur la croix dans le cercle rouge.
Étape 4) Glissez-déposez le fichier osoyoo_uno_mext (téléchargé à l’étape 2) dans le logiciel mBlock comme suit :
Vous verrez maintenant un nouveau firmware dans mBlock, voir l’image suivante :
Le logiciel mBlock et le firmware de l’appareil OSOYOO_UNO ont été installés avec succès sur notre PC !
Nous allons maintenant vous montrer comment utiliser les blocs pour transformer cette idée en réalité.
Étape 5 : Cliquez sur Événements, ajoutez le bloc 【when Arduino Uno starts up】en haut :
Étape 6 : Cliquez sur 【Control】, puis faites glisser le bloc 【Forever】 dans la zone de programmation comme suit :
Étape 7 : Cliquez sur 【Action】, puis glissez-déposez le bloc 【set servo pin angle as】 dans la zone de programmation comme suit
Étape 8 : Cliquez sur 【Control】, puis glissez-déposez le bloc 【wait seconds】 dans la zone de programmation, réglez la valeur à 0,5 seconde comme suit :
Etape 9 : Clic droit sur le bloc 【set servo pin angle as】 , Cliquer sur 【duplicate】 dans le menu déroulant. Vous obtiendrez un bloc dupliqué et le placerez derrière le bloc 【wait seconds】. Réglez les valeurs 45 à 135 et 90 comme indiqué sur la figure suivante:
Étape 10 : Cliquer sur 【Control】, puis glisser et déposer le bloc 【forever】 dans la zone de programmation comme suit :
Étape 11 : Cliquez sur 【Action】, puis glissez-déposez le bloc [set servo pin angle] dans la zone de programmation, modifiez la valeur de 90 à 45 comme suit ;
Étape 12 : Cliquez sur 【Control】, puis glissez-déposez le bloc 【wait seconds】 dans la zone de programmation, réglez la valeur à 0,5 seconde comme suit :
Etape 13 : Cliquer sur 【Control】, puis glisser-déposer le bloc 【if then else】 dans la zone de programmation comme suit
Étape 14 : Cliquer sur 【Operation】, puis glisser-déposer le bloc 【0<0】 dans la zone de programmation, en changeant le 0 en 15 comme suit :
Etape 15:Cliquer sur 【Sensor】, puis glisser-déposer le bloc 【read ultrasonic sensor trig pin echo pin】 dans la zone de programmation, le numéro de broche étant fixé à la broche 7 et à la broche 8 comme suit ;
Etape 16:Cliquez sur 【Variable】 puis cliquez sur le bloc 【make a Variable】, le nom de la variable est 【right】 dans la boîte de dialogue vide comme suit. Créez les variables 【left】 et 【center】 de la même manière ;
Etape 17 : Cliquez sur 【Variable】, puis glissez-déposez le bloc 【set center to】 dans la zone de programmation, changez le 【center】 en 【right】. changer la valeur de 0 à 1, comme suit :
Étape 18 : Répétez l’étape précédente, en remplaçant le 1 par le 0 comme suit :
Etape 19 : Cliquer a droite sur le bloc 【set servo pin angle as】 ,Cliquer sur 【duplicate】 a partir du bloc 【digital write pin to】 par dessus. Vous obtiendrez un bloc dupliqué et vous le placerez derrière le bloc 【wait seconds】. Réglez les valeurs 45 à 135 et 90, changez le 【right】 en 【left】 et 【center】 comme indiqué sur la figure suivante.
Étape 20 : Cliquer sur 【Control】, puis glisser-déposer le bloc 【if then else】 dans la zone de programmation comme suit :
Etape 21 : Cliquer sur 【Operation】, puis glisser-déposer le bloc 【0=0】 dans la zone de programmation, en remplaçant 50 par 0 comme suit :
Etape 22 : Cliquer sur 【Variable】, puis glisser et déposer le bloc 【center】 dans la zone de programmation comme suit :
Étape 23 : Cliquez sur 【Action】, puis faites glisser le bloc 【Move forward at speed for】 vers la zone de programmation, remplacez 1 sec par 0,5 sec comme suit ;
Étape 24 : Cliquez à nouveau sur 【Action】, puis glissez-déposez le bloc 【Stop Moving】 dans la zone de programmation comme suit ;
Etape 25: Cliquer sur 【Control】, puis glisser-déposer le bloc 【if then else】 dans la zone de programmation comme suit.
Etape 26 : Cliquer sur 【Operation】, puis glisser-déposer le bloc 【0=0】 dans la zone de programmation, changer le 50 en 0 comme suit:
Etape 27 : Cliquer sur 【Variable】, puis glisser et déposer le bloc 【left】 dans la zone de programmation comme suit :
Étape 28 : Cliquez sur 【Action】, puis faites glisser le bloc 【Tourner à gauche à la vitesse de】 vers la zone de programmation, modifiez la valeur de 1 seconde en 0,5 seconde comme suit ;
Étape 29 : Cliquez à nouveau sur 【Action】, puis faites glisser le bloc 【Stop Moving】 vers la zone de programmation comme suit ;
Etape 30 : Cliquer sur 【Control】, puis glisser-déposer le bloc 【if then else】 dans la zone de programmation comme suit.
tape 31: Cliquer sur 【Operation】, puis glisser-déposer le bloc 【0=0】 dans la zone de programmation, en remplaçant 50 par 0 comme suit
Etape 32 : Cliquez sur 【Variable】, puis glissez-déposez le bloc 【right】 dans la zone de programmation comme suit :
Étape 33 : Cliquez sur 【Action】, puis glissez-déposez le bloc 【Turn Right at speed for】 dans la zone de programmation, modifiez la valeur de 1 seconde en 0,5 seconde comme suit ;
Étape 34 : Cliquez à nouveau sur 【Action】, puis faites glisser le bloc 【Stop Moving】 vers la zone de programmation comme suit ;
Étape 35 : Dans 【Action】, puis glisser-déposer 【Tourner à droite à la vitesse de】 dans la zone de programmation, remplacer 1 sec par 1,5 sec comme suit ;
Étape 36 : Dans 【Action】, glisser-déposer le bloc 【Stop Moving】 dans la zone de programmation comme suit ;
Nous avons maintenant terminé la programmation des blocs. Les blocs finaux ressemblent à ce qui suit :
Tous les blocs de programmation sont maintenant terminés ! D’après l’image ci-dessus, la logique est assez simple :
Lorsque l’Arduino est démarré, l’ordinateur entre dans une boucle morte qui vérifie l’état du bouton, lorsque le bouton n’est pas pressé, le servo s’arrête à sa position d’origine (dans mon servo 0 degré) et l’ascenseur est au sol, lorsque le bouton est pressé, le bras du servo tourne de la position 0 degré à la position 180 degrés et l’ascenseur s’élève dans les airs.
1) Connectez d’abord votre 【OSOYOO basic board】 à votre PC avec un câble USB. Ensuite, cliquez sur le bouton 【Connect】 en bas du logiciel 【mBlock】, vous verrez une fenêtre USB apparaître,
2) cochez la case 【Show all connectable device】, puis un menu déroulant s’affiche,
3) Sélectionnez votre port dans le menu déroulant des périphériques.
4) cliquez sur le bouton 【Connect】 pour connecter votre PC à la 【OSOYOO basic board】.
5) Une fois que votre PC est connecté à 【OSOYOO basic board】, cliquez sur le bouton 【Upload】 en bas de votre logiciel, puis le code sera téléchargé vers 【OSOYOO basic board】 :
Dans cette leçon, nous allons apprendre quelques nouveaux blocs de programmes comme suit :
i)【Set Servo angle】 bloc dans la catégorie 【Action】:
Ce bloc contrôlera un servo dans un port numérique spécifique à un angle spécifique.
Prenons l’exemple du bloc ci-dessus : il fait pivoter le servo de la broche D4 à un angle de 90 degrés, ce qui place le capteur ultrasonique face à l’avant. Dans ce cas, le capteur détectera la présence d’un obstacle à l’avant.
Si vous modifiez la valeur de l’angle de 90 à 45, le capteur tournera de 45 degrés vers la gauche et le capteur ultrasonique testera les obstacles du côté gauche.
Si vous modifiez la valeur de l’angle de 90 à 135, le capteur tournera de 45 degrés vers la droite et le capteur à ultrasons testera les obstacles du côté droit.
ii) Bloc d’attente jaune de la catégorie de contrôle
Ce bloc conserve l’état actuel pendant un certain temps avant d’exécuter le bloc de programme suivant.
Dans l’exemple ci-dessus, le servo de D4 tourne à 90 degrés, puis s’arrête pendant 2 secondes.
iii)【Read Ultrasonic Sensor】 Blocage de 【Sensor】 Section
Ce bloc lit la valeur de la distance à partir du capteur à ultrasons.
Dans l’exemple ci-dessus, le bloc lira la valeur de la distance de l’obstacle à un capteur à ultrasons dont la broche de déclenchement est en D7 et la broche d’écho en D8.
Si le capteur ultrasonique détecte un obstacle, il renvoie la valeur de la distance (nombre entier).
iv)【Compare】 dans la catégorie 【Operator】
Le bloc 【Compare】 renvoie True ou False en fonction de la valeur de comparaison.
Dans l’exemple ci-dessus, lorsque la valeur de la distance du capteur ultrasonique est inférieure à la valeur seuil de 15 (, le système renvoie la valeur True, ce qui signifie qu’un obstacle a été détecté.
Dans le cas contraire, il renvoie un message faux, ce qui signifie qu’il n’y a pas d’obstacle dans cette direction. Vous pouvez modifier la valeur du seuil. Plus la valeur est grande, plus votre voiture sera sensible.
La logique de programmation complète :
Tout d’abord, le programme fera tourner le capteur ultrasonique de 45 degrés à 135 degrés, puis s’arrêtera à 90 degrés pendant 2 secondes. Cela vous permettra d’aligner la direction du servo. Si le capteur n’est pas orienté vers l’avant pendant les 2 secondes à 90 degrés, vous devez ajuster l’emplacement du capteur dans le servo et l’orienter vers 90 degrés.
Le capteur entre alors dans une boucle perpétuelle qui fait rouler la voiture en mode d’évitement d’obstacles.
Le programme fait pivoter le servo à 45 degrés, si le capteur détecte un obstacle dans un rayon de 15 cm, il mettra la variable droite à 1, ce qui signifie que le côté droit a un obstacle. Dans le cas contraire, la variable droite est mise à 0.
Ensuite, le programme fait tourner le servo à 135 degrés et à 90 degrés pour tester l’obstacle du côté gauche et l’obstacle de la direction centrale. Si le côté gauche a un obstacle dans les 15 cm, la variable gauche sera mise à 1, si la direction centrale a un obstacle dans les 15 cm, la variable centre sera mise à 1. S’il n’y a pas d’obstacle, ces variables seront mises à 0.
Nous connaissons maintenant l’état de l’obstacle dans les trois variables gauche, droite et centre. Le programme décidera du mouvement de la voiture en fonction de ces valeurs.
Si la direction centrale n’a pas d’obstacle (centre=0), la voiture avance.
Si la direction centrale a un obstacle mais que le côté gauche n’en a pas (centre=1 mais gauche=0), la voiture tourne à gauche.
Si la direction centrale, le côté gauche ont tous des obstacles mais le côté droit n’en a pas (centre=1 et gauche=1 mais droite=0), la voiture tourne à droite.
Si la direction centrale, les côtés gauche et droit ont tous un obstacle (centre=1 et gauche=1 mais droite=1 ), la voiture tourne à droite pendant une longue période, ce qui la fait faire demi-tour.
L’image suivante montre la logique de programmation ci-dessus dans les blocs du programme.
Ajustez la direction du capteur ultrasonique:
Une fois le code chargé dans la voiture robot, débranchez le câble USB de la carte UNO et mettez la carte Magic I/O sous tension. Le capteur ultrasonique pivote alors vers l’avant pendant 5 secondes. Si le capteur ultrasonique n’est pas orienté vers l’avant, éteignez-le. Utilisez un tournevis pour ajuster la direction du capteur ultrasonique et faites-le tourner vers l’avant, puis remettez l’appareil sous tension et, pendant les 5 premières secondes, le capteur doit être orienté vers l’avant.
Après 5 secondes, la voiture robot commence à rouler et change automatiquement de direction pour éviter les obstacles.
DownLoad Url osoyoo.com