Étape 5: Télécharger un exemple de croquis sur Arduino
À l’aide de l’IDE un échantillon esquisse pour robot inversé est transféré à l’arduino.
- Si vous ne trouvez MsTimer2 bibliothèque dans l’IDE, installez-le à partir de website(*)
(* Un autre plus simple croquis, ver2.0, est disponible depuis août 2014. Il le fait pas besoin MsTimer2.)
[note 3]
Pour faire un solde de pendule inversé lui-même, couple du moteur est contrôlé dynamiquement. Cette méthode de contrôle est exprimée par une formule avion avec 4 variables liées à l’état de la pendule.
« moteur de couple = k1 * angle de pendule
+ k2 * vitesse angulaire du balancier
+ k3 * vitesse de l’extrémité inférieure du pendule
+ k4 * déplacement de l’extrémité inférieure du pendule d’un point de référence "
K1, k2, k3 et k4 sont des coefficients statiques avec les valeurs appropriées. Dans un sketch d’échantillon dans le fichier pdf ci-dessous, une équation longue à ligne 72 exprime cette formule. Pour rendre le robot inversé équilibre lui-même, nous devons sélectionner respectivement les valeurs appropriées pour ces 4 coefficients et connaître la bonne valeur de chacune de ces 4 variables en temps réel.
Un capteur gyroscopique donne la deuxième valeur de la variable, vitesse angulaire du balancier, dynamiquement comme une tension à sa broche de sortie. Et arduino estime que la première valeur de la variable, angle du pendule, en même temps en intégrant la deuxième variable.
En revanche, la troisième ou la quatrième valeur de la variable ne peut pas mesuré par capteur gyroscopique. Un autre type de capteur ou compteur doit donc être utilisé pour les obtenir en temps réel. Mais notre robot inversé n’a aucun dispositif de plus qu’un module de gyroscope. Ainsi, il devient un casse-tête pour estimer ces valeurs de 2 variables dynamiquement. Dans un sketch d’échantillon dans le fichier pdf ci-dessous, 2 équations masquées aux lignes 76 et 77 devraient être utilisées pour les estimer. Ici, ils restent masqués de ne pas gâcher de résoudre ce casse-tête.
[note 4]
Si certains autre gyro-module que celles énumérées dans l’étape 1 est utilisé, 2 constantes aux lignes 10 et 11 dans l’esquisse de l’échantillon dans le fichier pdf sont modifiées. Ces constantes expriment k1 et k2 respectivement dans la formule ci-dessus. Pour exemple, si un ENC-03R, gyro-sensor module cotées, est utilisé sans ampli op, d’entrée tension d’arduino devient 1/10 fois. Les constantes aux lignes 10 et 11 dans l’esquisse devraient alors être le changement à l’échelle respectivement de dix fois.
[un échantillon croquis (programme) pour robot inversé]
Copiez le texte complet de "invertedRobot.pdf" ou "invertedRobot_v20_noTimer.pdf" ci-dessous, collez-le à IDE et transférez-le sur arduino.
(* 1) Avec certains paramètres de langue sur le site, une icône du pdf fichier n’est pas indiqué ci-dessous (à la fin de la ligne de cette étape). Ensuite, vous devez taper « » dans la barre d’adresse de votre navigateur ou se référer à une version japonaise de ce Instructable.
(* 2). Enregistrer le fichier pdf sur votre ordinateur et ouvrez-le en bon lecteur pdf. Ou si vous obtenez un programme corrompu en l’ouvrant dans le navigateur web.
(* 3). If "; 72« n’apparaît pas, à la fin d’une équation en ligne 72, substitut ensemble une équation ci-dessous pour elle.
powerScale = (kAngle * thetaI / 200) + (kOmega * omegaI / 78) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000) ; 72
(* 4). Coller la copie IDE ou éditeur, coquilles tels que "/ /" comme "/ /" (un espace obstacle inséré) pourrait se produire, puis les corriger.
(* 5). Un gyro-module analogique utilisé ici est influencé par la température. Si votre robot ne peut pas s’équilibrer bien en été, des valeurs constantes (45, 85, 57) à lignes 10 à 12 dans le croquis d’échantillon original "jenvertedRobot.pdf" devrait être remplacé comme « 52, 53, 95 » (ajouté le 20 août 2014).
(* 6). Une esquisse d’alternative plus simple "invertedRobot_v20_noTimer.pdf" a été ajoutée comme ver.2.0 le 20 août 2014. Bien qu’il ne contient pas de bibliothèque de minuterie, MsTimer2, pour la gestion des interruptions, il pourrait faire robot équilibre mieux.
(* 7). Copyright (C) 2014 ArduinoDeXXX tous droits réservés.