Table des matières:

Robot de suivi de ligne basé sur PID avec réseau de capteurs POLOLU QTR 8RC : 6 étapes (avec photos)
Robot de suivi de ligne basé sur PID avec réseau de capteurs POLOLU QTR 8RC : 6 étapes (avec photos)

Vidéo: Robot de suivi de ligne basé sur PID avec réseau de capteurs POLOLU QTR 8RC : 6 étapes (avec photos)

Vidéo: Robot de suivi de ligne basé sur PID avec réseau de capteurs POLOLU QTR 8RC : 6 étapes (avec photos)
Vidéo: robot suiveur de ligne avec PID 2024, Juillet
Anonim
Robot de suivi de ligne basé sur PID avec un réseau de capteurs POLOLU QTR 8RC
Robot de suivi de ligne basé sur PID avec un réseau de capteurs POLOLU QTR 8RC

Salut!

il s'agit de mon premier article sur les instructables, et aujourd'hui, je vais vous emmener sur la route et expliquer comment créer un robot suivant une ligne basée sur PID à l'aide d'un réseau de capteurs QTR-8RC.

Avant de passer à la construction du robot, il faut comprendre ce qu'on appelle PID,

Étape 1: Principe de fonctionnement

Qu'est-ce que le PID ??

Le terme PID signifie proportionnel, intégral, dérivé. Donc, simplement, ce que nous faisons en impliquant le PID avec le suivi de ligne, c'est que nous donnons l'ordre au robot de suivre la ligne et de détecter les virages en calculant l'erreur en considérant comment loin, il s'est éloigné de la piste.

termes clés tels que mentionnés dans les documents polalu

La valeur proportionnelle est approximativement proportionnelle à la position de votre robot par rapport à la ligne. Autrement dit, si votre robot est précisément centré sur la ligne, nous attendons une valeur proportionnelle d'exactement 0

La valeur intégrale enregistre l'historique du mouvement de votre robot: c'est la somme de toutes les valeurs du terme proportionnel qui ont été enregistrées depuis que le robot a commencé à fonctionner

La dérivée est le taux de variation de la valeur proportionnelle

Dans ce didacticiel, nous ne parlerons que des termes Kp et Kd, cependant, les résultats peuvent également être obtenus en utilisant le terme Ki.. So fondamentalement Le capteur fournit des valeurs de 0 à 2500 allant de la réflectance maximale à la réflectance minimale, mais, en même temps, fournit également des informations sur la distance à laquelle le robot s'est échoué par rapport à la ligne.)

Maintenant, nous devons considérer le terme d'erreur, c'est la différence entre les deux valeurs valeur de consigne et la valeur actuelle. (La valeur de consigne est la lecture qui correspond au placement "parfait" des capteurs au-dessus des lignes. et le courant valeur est les lectures instantanées du capteur. Par exemple: Si vous utilisez ce capteur matriciel et utilisez 8 capteurs, vous recevrez une lecture de position de 3500 si vous êtes sur place, autour de 0 si vous êtes trop à gauche de la ligne et environ 7000 si vous avez beaucoup trop raison.). Notre objectif est de rendre l'erreur nulle. Ce n'est qu'alors que le robot peut suivre la ligne en douceur.

Vient ensuite la partie calcul,.

1) calculer l'erreur.

Erreur = valeur de consigne - valeur actuelle = 3500 - position

Comme j'utilise 8 capteurs. le capteur donne une lecture de position de 3500 lorsque le robot est parfaitement placé. Maintenant que nous avons calculé notre erreur, la marge par laquelle notre robot dérive sur la piste, il est temps pour nous de scruter l'erreur et d'ajuster les vitesses du moteur en conséquence.

2) déterminer les vitesses réglées des moteurs.

MotorSpeed = Kp * Error + Kd * (Error - LastError);

DernièreError = Erreur;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - MotorSpeed;

Logiquement, une erreur de 0 signifie que notre robot est à gauche, ce qui signifie que notre robot doit aller un peu à droite, ce qui signifie que le moteur droit doit ralentir et le moteur gauche doit accélérer. C'EST PID !

La valeur MotorSpeed est déterminée à partir de l'équation elle-même. RightBaseSpeed et LeftBaseSpeed sont les vitesses (toute valeur de PWM 0-255) auxquelles le robot s'exécute lorsque l'erreur est de zéro.

Le code que j'ai joint comprend également comment vérifier les valeurs de position du capteur, afin que vous puissiez ouvrir le moniteur série et télécharger le code et voir par vous-même avec une ligne comment les moteurs tournent lorsque la position varie.

Si vous rencontrez des difficultés lors de la mise en place de votre robot, il suffit de vérifier si et de voir en changeant les signes des équations !!!

Et maintenant, la partie la plus délicate POUR TROUVER Kp ET Kd, j'ai dû passer plus d'une heure pour régler parfaitement mon robot. Au lieu de mettre des valeurs aléatoires, j'ai trouvé une méthode plus simple pour déterminer cela.

  1. Commencez avec kp et Kd égal à 0, et commencez avec Kp, essayez d'abord de régler Kp à 1 et observez le robot, notre objectif est de suivre la ligne même si elle est bancale, si le robot dépasse et perd la ligne, réduisez la valeur de kp.si le robot ne peut pas naviguer dans un virage et qu'il est lent, augmentez la valeur Kp.
  2. Une fois que le robot semble suivre quelque peu la ligne, ajustez la valeur Kd (valeur Kd > valeur Kp) à partir de 1 et augmentez la valeur jusqu'à ce que vous voyiez une conduite fluide avec moins d'oscillations.
  3. Une fois que le robot commence à suivre la ligne, augmentez la vitesse et voyez s'il est capable de retenir et de suivre la ligne.

Gardez à l'esprit que la vitesse a un impact direct sur le réglage du PID et que vous devrez parfois effectuer un nouveau réglage pour correspondre à la vitesse de votre robot.

Maintenant, nous pouvons passer à la construction de notre robot.

Étape 2: la construction

La construction
La construction
La construction
La construction
La construction
La construction

Arduino atmega 2560 avec câble USB - c'est le principal microcontrôleur utilisé.

Châssis - pour le châssis du robot, j'ai utilisé 2 plaques acryliques circulaires qui sont utilisées pour un autre projet qui est parfait pour cela. En utilisant des écrous et des vis, j'ai construit un châssis à 2 étages, afin que je puisse attacher d'autres modules à la plaque supérieure. ou vous pouvez utiliser des châssis prêts à l'emploi disponibles.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Moteurs à engrenages en micrométal - le robot avait besoin de moteurs à rotation rapide pour faire face à la routine PID, pour cela j'ai utilisé des moteurs évalués à 6 V 400 tr/min et des roues adhérentes appropriées.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Réseau de capteurs QTR 8Rc - cela peut être utilisé pour le suivi de ligne, comme mentionné précédemment, je pense que vous avez maintenant une compréhension claire de la façon de faire fonctionner le réseau de capteurs avec PID. Le code est très simple et en utilisant les bibliothèques arduino existantes, vous pourrez pour construire un suiveur de ligne rapide.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

Pilote de moteur TB6612FNG - Je voulais utiliser un pilote de moteur capable de gérer les virages et de changer de direction en un clin d'œil, capable de freiner efficacement les moteurs lorsque le signal PWM était faible.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Batterie Lipo - La batterie lipo de 11,1 V est utilisée pour alimenter le robot. Bien que j'aie utilisé une batterie lipo de 11,1 V, cette capacité est supérieure à ce qui est nécessaire pour l'arduino et les moteurs. Si vous pouvez trouver un poids léger de 7,4 V batterie lipo ou batterie Ni-MH 6V, ce sera parfait. Pour cette raison, je dois utiliser un convertisseur buck pour convertir la tension en 6V.

11.1V-

7.4 V-

Module convertisseur Buck-

En plus de cela, vous avez besoin de câbles de démarrage, d'écrous et de boulons, de tournevis et de rubans électriques, ainsi que d'attaches pour s'assurer que tout est en place.

Étape 3: Assemblage

Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage

fixez les moteurs et une petite roulette dans une plaque à l'aide d'écrous et de vis, puis montez le capteur QTR, le pilote de moteur, la carte arduino et enfin la batterie sur le châssis.

Voici un schéma parfait que j'ai trouvé sur internet, qui vous indique comment les branchements doivent être effectués.

Étape 4: Concevez votre voie de ligne

Concevez votre voie de ligne
Concevez votre voie de ligne

Maintenant, votre projet semble presque terminé. Comme pour la dernière étape, vous devez disposer d'une petite arène pour tester votre robot. J'ai utilisé une ligne aléatoire de 3 cm de largeur, une ligne blanche sur fond noir. Assurez-vous de bien coller le tout. Et pour le moment, évitez les angles et les sections transversales à 90 degrés, car c'est un cas compliqué au point de vue du codage.

Étape 5: programmez votre code

1. Téléchargez et installez l'Arduino

IDE de bureau

· fenêtres -

· Mac OS X -

· Linux -

2. Téléchargez et collez le fichier de matrice de capteurs QTR 8 RC dans le dossier des bibliothèques Arduino.

·

· Collez les fichiers dans le chemin - C:\Arduino\libraries

3. Téléchargez et ouvrezLINEFOLLOWING.ino

4. Téléchargez le code sur la carte arduino via un câble USB

Étape 6: FAIT

Image
Image

maintenant vous avez un robot de suivi de ligne fabriqué par vous-même.

J'espère que ce tutoriel vous a été utile. N'hésitez pas à me contacter via [email protected] si vous avez un problème.

à bientôt avec un autre nouveau projet.

Profitez de la construction !!

Conseillé: