Table des matières:
Vidéo: Robot auto-équilibrant - Algorithme de contrôle PID : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Ce projet a été conçu parce que je souhaitais en savoir plus sur les algorithmes de contrôle et sur la manière d'implémenter efficacement des boucles PID fonctionnelles. Le projet est encore en phase de développement car un module Bluetooth n'a pas encore été ajouté qui permettra de contrôler le robot à partir d'un smartphone compatible Bluetooth.
Les moteurs à courant continu N20 utilisés étaient relativement bon marché et ont donc un jeu considérable. Cela conduit à une petite quantité de secousses lorsque les moteurs surmontent le « mou » en appliquant un couple aux roues. Par conséquent, il est presque impossible d'obtenir un mouvement parfaitement fluide. Le code que j'ai écrit est raisonnablement simple mais démontre efficacement les capacités de l'algorithme PID.
Résumé du projet:
Le châssis du robot est imprimé en 3D à l'aide d'une imprimante Ender 3 et est conçu pour s'emboîter à la presse.
Le robot est contrôlé par un Arduino Uno qui prend les données du capteur du MPU6050 et contrôle les moteurs à courant continu via un pilote de moteur externe. Il fonctionne avec une batterie de 7,4 V, 1500 mAh. Le pilote du moteur régule cela à 5 V pour alimenter l'Arduino et fournit 7,4 V aux moteurs.
Le logiciel a été écrit à partir de zéro à l'aide des bibliothèques 'Arduino-KalmanFilter-master' et 'Arduino-MPU6050-master' de gitHub.
Fournitures:
- Pièces imprimées en 3D
- Arduino UNO
- Capteur 6 axes MPU6050
- Pilote de moteur à courant continu
- Moteurs à courant continu N20 (x2)
- Batterie 9V
Étape 1: Construire un robot
Impression et assemblage
L'ensemble de la construction doit être ajusté à la presse, mais j'ai utilisé de la superglue pour fixer les composants afin de garantir que le robot est entièrement rigide lors de l'équilibrage.
J'ai conçu les pièces dans Fusion 360 et j'ai optimisé chaque pièce pour une impression sans support afin de permettre des tolérances plus strictes et une finition de surface plus propre.
Les paramètres utilisés sur l'imprimante Ender 3 étaient: 0,16 mm de hauteur de couche à 40 % de remplissage pour toutes les pièces.
Étape 2: Robot d'impression 3D
Châssis (x1)
Roue gauche (x2)
Carter moteur gauche (x2)
Boîtier Arduino (x1)
Étape 3: Algorithme de contrôle PID
J'ai écrit un algorithme de contrôle PID à partir de zéro en utilisant les bibliothèques 'Arduino-KalmanFilter-master' et 'Arduino-MPU6050-master' de gitHub.
Le principe de l'algorithme est le suivant:
- Lire les données brutes du MPU6050
- Utilisez le filtre de Kalman pour analyser les données du gyroscope et de l'accéléromètre afin d'annuler les inexactitudes dans les lectures du gyroscope dues à l'accélération du capteur. Cela renvoie une valeur relativement lissée pour le pas du capteur en degrés à deux décimales.
- Calculer l'Erreur sur l'angle, c'est-à-dire: L'angle entre le capteur et la consigne.
- Calculer l'erreur proportionnelle comme (Constante de proportionnalité x erreur).
- Calculez l'erreur intégrale comme la somme cumulée de (Constante d'intégration x erreur).
- Calculer l'erreur dérivée en tant que constante comme [(Constante de différenciation) x (Modification de l'erreur / Modification du temps)]
- Additionner toutes les erreurs pour donner la sortie de vitesse à envoyer aux moteurs.
- Calculez dans quelle direction faire tourner les moteurs en fonction du signe de l'angle d'erreur.
- La boucle fonctionnera indéfiniment et s'appuiera sur la sortie au fur et à mesure que l'entrée varie. Il s'agit d'une boucle de rétroaction, utilisant les valeurs de sortie comme nouvelles valeurs d'entrée pour la prochaine itération.
La dernière étape consiste à régler les paramètres Kp, Ki et Kd de la boucle PID.
- Un bon point de départ est d'augmenter lentement Kp jusqu'à ce que le robot oscille autour du point d'équilibre et puisse attraper une chute.
- Ensuite, démarrez Kd à environ 1% de la valeur de Kp et augmentez lentement jusqu'à ce que les oscillations disparaissent et que le robot glisse en douceur lorsqu'il est poussé.
- Enfin, commencez par Ki autour de 20% de Kp et variez jusqu'à ce que le robot "dépasse" la consigne pour rattraper activement une chute et revenir à la verticale.
Conseillé:
Contrôle de la température à domicile avec PID et Labview : 4 étapes
Contrôle de la température à la maison avec PID et Labview : PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan menggunakan labview
Comment faire un robot mobile contrôlé - Basé sur DTMF - Sans Microcontrôleur & Programmation - Contrôle depuis n'importe où dans le monde - RoboGeeks : 15 étapes
Comment faire un robot mobile contrôlé | Basé sur DTMF | Sans Microcontrôleur & Programmation | Contrôle depuis n'importe où dans le monde | RoboGeeks : Vous voulez créer un robot qui peut être contrôlé de n'importe où dans le monde, allons-y
Plateforme Stewart à équilibrage de balle contrôlé par PID : 6 étapes
PID Controlled Ball Balancing Stewart Platform : Motivation et concept général : En tant que physicien en formation, je suis naturellement attiré par les systèmes physiques et je cherche à les comprendre. J'ai été formé pour résoudre des problèmes complexes en les décomposant en leurs ingrédients les plus basiques et essentiels, puis
Contrôle moteur et encodeur Visuino PID Brushes : 5 étapes
Visuino PID Brushes Contrôle du moteur et encodeur : Dzisiaj pokażę wam jak podłączyć servomoteur szczotkowy z enkoderem optycznym do naszego arduino uno albo mega. Aujourd'hui, je vais vous montrer comment connecter un servomoteur à brosse avec un encodeur optique à notre arduino uno ou mega
Enseigner le contrôle PID avec des robots Lego : 14 étapes
Enseigner le contrôle PID avec des robots Lego : De nombreux jeunes passionnés de robots s'intéressent à des sujets de contrôle plus avancés, mais peuvent être gênés par le calcul souvent requis pour analyser les systèmes en boucle fermée. Il existe de merveilleuses ressources disponibles en ligne qui simplifient la construction d'un "