- Composants requis:
- Module de capteur à ultrasons:
- Explication du circuit:
- Comment ça fonctionne:
- Explication de la programmation:
Les robots sont des machines qui réduisent les efforts humains dans les travaux lourds en automatisant les tâches dans les industries, les usines, les hôpitaux, etc. exécuter une commande en utilisant un contrôleur ou un processeur. Mais aujourd'hui, nous sommes ici avec un robot automatique qui se déplace de manière autonome sans aucun événement externe évitant tous les obstacles sur son chemin, oui, nous parlons de robot évitant d'obstacles. Dans ce projet, nous avons utilisé le Raspberry Pi et le pilote de moteur pour piloter le robot et le capteur à ultrasons pour détecter les objets sur le chemin du robot.
Auparavant, nous avons couvert de nombreux robots utiles, vous pouvez les trouver dans notre section Projets robotiques.
Composants requis:
- Tarte aux framboises
- Module de capteur à ultrasons HC-SR04
- Châssis ROBOT complet avec vis
- Moteurs à courant continu
- IC L293D
- roues
- Planche à pain
- Résistance (1k)
- Condensateur (100nF)
- Fils de connexion
- Alimentation ou batterie externe
Module de capteur à ultrasons:
Un robot évitant les obstacles est un robot automatisé et il n'a pas besoin d'être contrôlé à l'aide d'une télécommande. Ces types de robots automatisés ont des capteurs «sixième sens» comme des détecteurs d'obstacles, des détecteurs de son, des détecteurs de chaleur ou des détecteurs de métaux. Ici, nous avons fait la détection d'obstacles à l'aide de signaux ultrasonores. À cette fin, nous avons utilisé un module de capteur à ultrasons.
Les capteurs à ultrasons sont couramment utilisés pour détecter des objets et déterminer la distance entre l'obstacle et le capteur. C'est un excellent outil pour mesurer la distance sans aucun contact physique, comme la mesure du niveau d'eau dans le réservoir, la mesure de la distance, le robot évitant d'obstacles, etc.
Le capteur à ultrasons HC-SR04 est utilisé pour mesurer une distance comprise entre 2 cm et 400 cm avec une précision de 3 mm. Le module de capteur se compose d'un émetteur à ultrasons, d'un récepteur et du circuit de commande. Le capteur à ultrasons se compose de deux yeux circulaires dont l'un est utilisé pour transmettre l'onde ultrasonique et l'autre pour la recevoir.
Nous pouvons calculer la distance de l'objet en fonction du temps mis par l'onde ultrasonore pour revenir au capteur. Puisque le temps et la vitesse du son sont connus, nous pouvons calculer la distance par les formules suivantes.
- Distance = (Temps x Vitesse du son dans l'air (343 m / s)) / 2.
La valeur est divisée par deux puisque l'onde se déplace vers l'avant et vers l'arrière sur la même distance, le temps pour atteindre l'obstacle n'est donc que la moitié du temps total.
Nous avons donc calculé la distance (en centimètre) de l'obstacle comme ci-dessous:
pulse_start = time.time () while GPIO.input (ECHO) == 1: #Vérifiez si l'ECHO est HIGH GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 distance = rond (distance, 2) avgDistance = avgDistance + distance
Où pulse_duration est le temps entre l'envoi et la réception du signal ultrasonique.
Explication du circuit:
Le circuit est très simple pour ce robot évitant les obstacles utilisant Raspberry Pi. Un module de capteur à ultrasons, utilisé pour détecter des objets, est connecté aux broches GPIO 17 et 27 du Raspberry Pi. Un pilote de moteur IC L293D est connecté au Raspberry Pi 3 pour piloter les moteurs du robot. Les broches d'entrée 2, 7, 10 et 15 du pilote de moteur sont connectées aux broches GPIO du Raspberry Pi 12, 16, 20 et 21 respectivement. Ici, nous avons utilisé deux moteurs à courant continu pour entraîner le robot dans lequel un moteur est connecté aux broches de sortie 3 et 6 du circuit intégré de commande de moteur et un autre moteur est connecté aux broches 11 et 14 du circuit intégré de commande de moteur.
Comment ça fonctionne:
Le fonctionnement de ce robot autonome est très facile. Lorsque le robot est mis sous tension et commence à fonctionner, Raspberry Pi mesure les distances des objets, devant lui, en utilisant le module de capteur à ultrasons et les stocke dans une variable. RPi compare ensuite cette valeur avec des valeurs prédéfinies et prend des décisions en conséquence pour déplacer le robot vers la gauche, la droite, l'avant ou l'arrière.
Ici, dans ce projet, nous avons sélectionné une distance de 15 cm pour prendre toute décision de Raspberry Pi. Désormais, chaque fois que Raspberry Pi est à moins de 15 cm de distance d'un objet, Raspberry Pi arrête le robot et le déplace en arrière, puis le tourne à gauche ou à droite. Maintenant, avant de le faire avancer à nouveau, Raspberry Pi vérifie à nouveau si un obstacle est présent dans la plage de 15 cm de distance, si oui, répète à nouveau le processus précédent, sinon déplacez le robot vers l'avant jusqu'à ce qu'il détecte à nouveau un obstacle ou un objet.
Explication de la programmation:
Nous utilisons le langage Python ici pour le programme. Avant de coder, l'utilisateur doit configurer Raspberry Pi. Vous pouvez consulter nos tutoriels précédents pour démarrer avec Raspberry Pi et installer et configurer le système d'exploitation Raspbian Jessie dans Pi.
La partie programmation de ce projet joue un rôle très important pour effectuer toutes les opérations. Tout d'abord, nous incluons les bibliothèques requises, initialisons les variables et définissons les broches pour le capteur à ultrasons, le moteur et les composants.
import RPi.GPIO comme heure d'importation GPIO #Importer la bibliothèque de temps GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Après cela, nous avons créé des fonctions def forward (), def back (), def left (), def right () pour déplacer le robot respectivement vers l'avant, l'arrière, la gauche ou la droite et def stop () pour arrêter le robot, vérifiez les fonctions dans le code ci-dessous.
Ensuite, dans le programme principal, nous avons lancé le capteur à ultrasons et lu le temps entre l'émission et la réception du signal et calculé la distance. Ici, nous avons répété ce processus 5 fois pour une meilleure précision. Nous avons déjà expliqué le processus de calcul de la distance à l'aide du capteur à ultrasons.
i = 0 avgDistance = 0 pour i dans la plage (5): GPIO.output (TRIG, False) time.sleep (0,1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) while GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () while GPIO.input (ECHO) == 1: #Vérifiez si l'ECHO est HIGH GPIO.output (led, Faux) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 distance = round (distance, 2) avgDistance = avgDistance + distance
Enfin, si le Robot trouve un obstacle devant lui, après avoir pris la distance de l'obstacle, nous avons programmé le Robot pour prendre un itinéraire différent.
if avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 autre: gauche () drapeau = 0 time.sleep (1.5) stop () time.sleep (1) else: forward () flag = 0
Le code complet pour ce robot évitant les obstacles Raspberry Pi est fourni ci-dessous avec une vidéo de démonstration.