Étape 5: logiciels
Arduino est connue pour son environnement de codage convivial et bibliothèques utilisateur de grande source ouverte qui facilite vraiment le prototypage.
J’ai commencé avec accéléromètre et Gyroscope séparés. Mais fur et choses, j’ai mal à l’équilibre avec calcul frais généraux de calcul pas & rouler (en utilisant le filtre de kalman/Complementary). Quand je suis passé à la MPU-6050, il est grandement améliorée de l’équilibrage.
Pour utiliser le DMP de MPU, j’ai utilisé les bibliothèques deI2CDev de Jeff Rowberg. Pour calibrer la mpu, j’avais l’habitudecroquis de Luis Rodenas.
Maintenant, nous pouvons déterminer l’angle du bot avec verticale. Mais comment nous pouvons calculer la quantité de force nécessaire pour repousser bot à la verticale lorsqu’il est déséquilibrée par certains degrés incertains de la verticale. C’est là que PID entre en jeu. PID précisera cette force, qui changera selon le temps et d’angle par lequel bot n’est pas équilibré.
Je n’entrerai pas dans des détails techniques. Brett Beauregard a écrit une belle bibliothèque de PID avec explication si vous le souhaitez.
Pour encore accélérer la réponse moteur, j’ai utilisé digitalIOPerformance bibliothèque pour l’écriture rapide des goupilles.
Enfin pour le stockage des PID des valeurs dans l’EEPROM de l’Arduino, EEPROMex bibliothèque de code propre et de l’efficacité.
Code complet se trouvent sur le GITHUB.