Étape 15 : système de contrôle
Voir aussi mon site Web (lien à la page 1) pour plus d’informations sur les principes de contrôle logiciel etc.
L’idée de base est la suivante :
gyroangledt = montant de l’inclinaison du gyroscope depuis la dernière mesure a été prise
newangle (de l’inclinaison de vertical)=(0.99*(oldangle+gyroangledt)) + (0,01 * accelerometerTilt)
Cela donne le nouvel angle d’inclinaison de la verticale. Notez comment le 1 % du signal de l’accéléromètre est inséré chaque fois que 99 % du calcul gyro-dérivé d’une changement d’angle à court terme. Cette lisse les variations accéléromètre lire lentement avec le temps (en moyenne le bruit donc il soi annule), corrige toute dérive du point zéro dans le gyroscope mais permet toujours le gyroscope gérer les changements instantanés à court terme en inclinaison.
LinearVelocity = linearvelocity + (0,00004 * angle)
Cela signifie « sommes nous encore de basculement? » et si si lentement augmenter la puissance du moteur. C’est la façon dont vous contrôlez la vitesse manuellement ; Si vous gardez le jury continuellement incliné, cela permettra d’accélérer lentement dans le sens vous êtes inclinant.
Level=((K1*angle) + (2 m end * anglerate) + linearvelocity) * overallgain
« anglerate » est de gyroscope par exemple est le « taux de basculement » à court terme
Niveau de commandes électrique qui seront envoyés au moteur (le facteur de marche PWM).
K1 est d’environ 4,5
K2 est environ 0,5
Overallgain est justement ce - type d’un bouton « accélérateur » sur le panneau de configuration - si réglé trop bas Conseil se sent bâclé, trop élevé et elle oscille sauvagement !
Enfin, tout cela ne fonctionne que parce que ce programme est une boucle d’environ 100 fois par seconde.