Étape 5: Code
Je ne vais pas expliquer chaque ligne de code pour le projet (j’ai commenté le code, si vous le télécharger, je pense que vous n’aurez aucuns problèmes pour le comprendre), mais je vais vous montrer comment organiser il.
Le code a 4 fichiers : l’un le code principal, une seconde pour les moteurs, le troisième concerne le PID et le dernier d'entre eux est le code de capteur.
Dans le code principal tout d’abord, j’Initialise le robot entier : broches, capteurs, communication,... Puis je calculer l’erreur des capteurs. Cette partie, il est très important parce que dans cette partie, nous prenons l’angle initial et nous rendent zéro, it signifie que le capteur a une déviation initiale, lorsque nous plaçons le robot verticalement le capteur ne montrent pas que l’angle est nul, envoyez plutôt un angle de déviation, cet angle initial est utilisé pour soustraire des mesures postérieures des capteurs , pour obtenir l’angle réel. Donc quand nous initions le robot nous devons maintenir verticalement jusqu'à ce qu’il commence à bouger les roues.
La partie suivante du code est la boucle où l'on prend les valeurs du capteur chaque 10 millisecondes, cela signifie la fréquence d’échantillonnage est de 100Hz (vous pouvez utiliser quelle que soit la fréquence, mais n’oubliez pas que les très basses et très hautes fréquences ne pouvait pas travailler), et nous calculons l’angle du robot à l’aide, dans ce cas, le filtre complémentaire expliquée précédemment. Nous avons l’angle, maintenant nous pouvons utiliser cette information pour commander nos moteurs, cette utilise un PID intermédiaire, la façon la plus simple de contrôler efficacement les choses, il y a une bibliothèque d’arduino pour le PID mais il est simple à mettre en œuvre , vous pouvez le coder en pas plus de 10 à 20 lignes de code.
Afin d’utiliser l’accéléromètre, en l’occurrence le ADXL345, nous devons utiliser ses bibliothèques. J’ai utilisé les bibliothèques adafruit suivante : bibliothèque Adafruit_ADXL345 et Adafruit_Sensor .
Et c’est tout, code simple pour robot simple, mais il les woks fine pour moi. Vous pouvez implémenter plus de tant de choses si vous voulez, comme l’écran LCD, plus de capteurs, de mieux contrôler,... Que la magie des robots, vous font l’un et l’améliorer autant que vous le souhaitez.
Certains d'entre vous ont des problèmes en utilisant le code, j’ai téléchargé un fichier unique avec l’ensemble du projet (Balacing_single_file).
Lien vers le dossier de lecteur de google :