- Matériaux nécessaires:
- Concepts de suiveur de ligne
- Schéma et explication du circuit du robot suiveur de ligne Raspberry Pi:
- Programmation de votre Raspberry PI:
- Le suiveur de ligne Raspberry Pi en action:
Comme nous le savons tous, Raspberry Pi est une merveilleuse plate-forme de développement basée sur un microprocesseur ARM. Avec sa puissance de calcul élevée et ses options de développement, il peut faire des merveilles entre les mains des amateurs d'électronique ou des étudiants. Pour en savoir plus sur un Raspberry Pi et son fonctionnement, essayons de construire un robot suiveur de ligne à l'aide de Raspberry Pi.
Si vous êtes intéressé par la robotique, vous devriez être très familier avec le nom « Robot suiveur de ligne ». Ce robot est capable de suivre une ligne, simplement en utilisant une paire de capteurs et de moteurs. Il peut ne pas sembler efficace d'utiliser un microprocesseur puissant comme Raspberry Pi pour construire un robot simple. Mais, ce robot vous donne de la place pour un développement infini et des robots comme Kiva (robot d'entrepôt Amazon) en sont un exemple. Vous pouvez également consulter nos autres robots suiveurs de ligne:
- Robot suiveur de ligne utilisant le microcontrôleur 8051
- Robot suiveur de ligne utilisant Arduino
Matériaux nécessaires:
- Raspberry Pi 3 (n'importe quel modèle devrait fonctionner)
- Capteur IR (2Nos)
- Moteur à engrenages CC (2Nos)
- Pilote de moteur L293D
- Chaises (vous pouvez également créer les vôtres en utilisant des cartons)
- Banque d'alimentation (toute source d'alimentation disponible)
Concepts de suiveur de ligne
Le robot suiveur de ligne est capable de suivre une ligne à l'aide d'un capteur infrarouge. Ce capteur a un émetteur IR et un récepteur IR. L'émetteur IR (LED IR) transmet la lumière et le récepteur (photodiode) attend que la lumière transmise revienne. Une lumière infrarouge ne reviendra que si elle est réfléchie par une surface. Alors que toutes les surfaces ne reflètent pas une lumière infrarouge, seul le blanc la surface de couleur peut les refléter complètement et la surface de couleur noire les observera complètement, comme indiqué dans la figure ci-dessous. En savoir plus sur le module de capteur IR ici.
Nous allons maintenant utiliser deux capteurs infrarouges pour vérifier si le robot est en piste avec la ligne et deux moteurs pour corriger le robot s'il sort de la piste. Ces moteurs nécessitent un courant élevé et doivent être bidirectionnels; par conséquent, nous utilisons un module de pilote de moteur comme L293D. Nous aurons également besoin d'un appareil de calcul comme Raspberry Pi pour instruire les moteurs en fonction des valeurs du capteur infrarouge. Un schéma de principe simplifié de celui-ci est présenté ci-dessous.
Ces deux capteurs IR seront placés un de chaque côté de la ligne. Si aucun des capteurs ne détecte de ligne noire, le PI ordonne aux moteurs d'avancer comme indiqué ci-dessous
Si le capteur gauche arrive sur une ligne noire, le PI demande au robot de tourner à gauche en faisant tourner la roue droite seule.
Si le capteur droit arrive sur une ligne noire, le PI demande au robot de tourner à droite en faisant tourner la roue gauche seule.
Si les deux capteurs apparaissent sur la ligne noire, le robot s'arrête.
De cette façon, le robot pourra suivre la ligne sans sortir de la piste. Voyons maintenant à quoi ressemble le circuit et le code.
Schéma et explication du circuit du robot suiveur de ligne Raspberry Pi:
Le schéma de circuit complet de ce robot suiveur de ligne Raspberry Pi est illustré ci-dessous
Comme vous pouvez le voir, le circuit implique deux capteurs IR et une paire de moteurs connectés au Raspberry pi. Le circuit complet est alimenté par une banque d'alimentation mobile (représentée par une pile AAA dans le circuit ci-dessus).
Étant donné que les détails des broches ne sont pas mentionnés sur le Raspberry Pi, nous devons vérifier les broches à l'aide de l'image ci-dessous
Comme le montre l'image, la broche du coin supérieur gauche du PI est la broche + 5V, nous utilisons cette broche + 5V pour alimenter les capteurs IR comme indiqué dans le schéma de circuit (fil rouge). Ensuite, nous connectons les broches de terre à la terre du capteur IR et du module de pilote de moteur à l'aide d'un fil noir. Le fil jaune est utilisé pour connecter la broche de sortie du capteur 1 et 2 aux broches GPIO et 3 respectivement.
Pour piloter les moteurs, nous avons besoin de quatre broches (A, B, A, B). Ces quatre broches sont connectées respectivement à partir de GPIO14,4,17 et 18. Les fils orange et blanc forment ensemble la connexion pour un moteur. Nous avons donc deux paires de ce type pour deux moteurs.
Les moteurs sont connectés au module de commande de moteur L293D comme indiqué sur l'image et le module de commande est alimenté par une banque d'alimentation. Assurez-vous que la terre de la banque d'alimentation est connectée à la terre du Raspberry Pi, alors seulement votre connexion fonctionnera.
Programmation de votre Raspberry PI:
Une fois que vous avez terminé votre assemblage et vos connexions, votre robot devrait ressembler à ceci.
Maintenant, il est temps de programmer notre bot et de le faire fonctionner. Le code complet de ce bot se trouve au bas de ce tutoriel. En savoir plus sur le programme et exécuter le code dans Raspberry Pi ici. Les lignes importantes sont expliquées ci-dessous
Nous allons importer le fichier GPIO de la bibliothèque, la fonction ci-dessous nous permet de programmer les broches GPIO de PI. Nous renommons également «GPIO» en «IO», donc dans le programme chaque fois que nous voulons faire référence aux broches GPIO, nous utiliserons le mot «IO».
importer RPi.GPIO comme IO
Parfois, lorsque les broches GPIO, que nous essayons d'utiliser, peuvent remplir d'autres fonctions. Dans ce cas, nous recevrons des avertissements lors de l'exécution du programme. La commande ci-dessous indique au PI d'ignorer les avertissements et de poursuivre le programme.
IO.setwarnings (Faux)
On peut référencer les broches GPIO de PI, soit par numéro de broche à bord, soit par leur numéro de fonction. Comme «PIN 29» sur la carte est «GPIO5». Nous disons donc ici que nous allons représenter la broche ici par «29» ou «5».
IO.setmode (IO.BCM)
Nous définissons 6 broches comme broches d'entrée / sortie. Les deux premières broches sont les broches d'entrée pour lire le capteur IR. Les quatre suivants sont les broches de sortie dont les deux premiers sont utilisés pour contrôler le moteur droit et les deux suivants pour le moteur gauche.
IO.setup (2, IO.IN) #GPIO 2 -> Sortie IR gauche IO.setup (3, IO.IN) #GPIO 3 -> Sortie IR droite IO.setup (4, IO.OUT) #GPIO 4 - > Moteur 1 borne A IO.setup (14, IO.OUT) #GPIO 14 -> Moteur 1 borne B IO.setup (17, IO.OUT) #GPIO 17 -> Moteur gauche borne A IO.setup (18, IO..OUT) #GPIO 18 -> Borne B du moteur gauche
Le capteur IR émet «Vrai» s'il se trouve sur une surface blanche. Donc, tant que les deux capteurs disent Vrai, nous pouvons avancer.
if (IO.input (2) == True et IO.input (3) == True): # les deux blancs avancent IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Nous devons faire un virage à droite si le premier capteur infrarouge franchit une ligne noire. Cela se fait en lisant le capteur IR et si la condition est satisfaite, nous arrêtons le moteur droit et faisons tourner le moteur gauche seul comme indiqué dans le code ci-dessous
elif (IO.input (2) == False et IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, vrai) # 2A + sortie IO (18, faux) # 2B-
Nous devons faire un virage à gauche si le deuxième capteur IR passe sur une ligne noire. Cela se fait en lisant le capteur IR et si la condition est satisfaite, nous arrêtons le moteur gauche et faisons tourner le moteur droit seul comme indiqué dans le code ci-dessous
elif (IO.input (2) == True et IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, vrai) # 2A + sortie IO (18, vrai) # 2B-
Si les deux capteurs franchissent une ligne noire, cela signifie que le robot doit s'arrêter. Cela peut être fait en rendant les deux bornes du moteur vraies comme indiqué sur le code ci-dessous
sinon: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Le suiveur de ligne Raspberry Pi en action:
Téléchargez le code python pour le suiveur de ligne sur votre Raspberry Pi et exécutez-le. Nous avons besoin d'une alimentation portable, une banque d'alimentation dans ce cas devient pratique, c'est pourquoi j'ai utilisé la même chose. Celui que j'utilise est livré avec deux ports USB, je l'ai donc utilisé pour alimenter le PI et l'autre pour alimenter le pilote du moteur comme indiqué dans l'image ci-dessous.
Maintenant, tout ce que vous avez à faire est de configurer votre propre piste de couleur noire et de libérer votre bot dessus. J'ai utilisé un ruban isolant de couleur noire pour créer la piste, vous pouvez utiliser n'importe quel matériau de couleur noire, mais assurez-vous que votre couleur de fond n'est pas sombre.
Le fonctionnement complet du bot peut être trouvé dans la vidéo ci-dessous. J'espère que vous avez compris le projet et que vous avez aimé en construire un. Si vous avez des questions, postez-les dans la section des commentaires ci-dessous.