Etape 66 : Python Library
Après avoir terminé l’étape précédente, vous devriez être prêt à commencer à utiliser la bibliothèque polyvalente manipulateur Mobile fournie pour commencer à développer des applications à l’aide de Python 2.7. Le script principal qui commande des actionneurs et des capteurs du robot est appelé MMM.py. Voici un aperçu de comment cela fonctionne :
Commandes de Communication série :
- MMM(PortName) ouvre un nouveau canal série à portname Arduino Mega 2560 du robot. Donner l’Arduino à peu près 5 secondes d’initialisation après la connexion avant d’envoyer toutes les autres commandes.
- parseData() obtient les lectures du capteur sur le robot en lisant le port série et d’analyser l’entrée.
- Update() envoie toutes les positions de déclencheur à l’Arduino en écrivant sur le port série, mise à jour le robot réel. Notez que le robot ne bougera pas de ses actionneurs jusqu'à update() est appelée !
Position du vérin et les commandes de lecture de capteur :
- Reset() réinitialise toutes les positions de l’actionneur à leurs valeurs par défaut.
- setWheelVelocity (leftSpeed, rightSpeed) contrôle les roues. Les unités sont en mètres, et des valeurs positives déplacent que les roues vers l’avant tandis que les valeurs négatives envoie les roues vers l’arrière. La gamme d’entrée est +.18 m/s à -.18 m/s.
- rotateShoulders (leftAngle, soufflerie droit angle) fait pivoter les épaules. La plage d’entrée va de 0 à 120 degrés, où 120 degrés fait pivoter les épaules complètement vers l’intérieur.
- rotateElbows (leftAngle, soufflerie droit angle) fait pivoter les coudes. La gamme d’entrée est de -60 à 60 degrés, où 60 degrés tourne complètement vers le haut, les coudes.
- extendArms (leftAmount, rightAmount) s’étend les bras en mètres. La gamme d’entrée est de 0 mètres à.127 mètres (environ 5 pouces).
- setLeftGrippers (l1, l2, l3, l4, l5) tourne jusqu'à 5 servomoteurs sur la pince de gauche. La gamme d’entrée pour chaque servo est de 0 à 180 degrés.
- setRightGrippers (r1, r2, r3, r4, r5) tourne jusqu'à 5 servomoteurs sur la pince droite. La gamme d’entrée pour chaque servo est de 0 à 180 degrés.
- getLeftRange() et getRightRange() retournent les valeurs de gauche et droite télémètre distance, de 0 à 100 cm. lectures qui sont out of bounds retourne -1.
Voici un script très simple exemple d’utilisation de ces commandes sont à faire le robot à bouger en Python 2.7 :
from MMM import MMM<br>import time mmm = MMM('COM3') # Create an serial connection at COM3 time.sleep(5) # give some time to connect #continuous loop mmm.setWheelVelocity(.18,-.18) # rotates robot left mmm.rotateShoulders(120,0) # one shoulder in, one out mmm.rotateElbows(60,-60) # one elbow up, one down mmm.extendArms(0,.127) # one arm retracted, one extended mmm.setLeftGrippers(0,0,0,0,0) # all servos at 0 degrees mmm.setRightGrippers(0,0,0,0,0) # all servos at 180 degrees mmm.update() # send updated actuator states to robot