Importer les modules necessaires.
import pypot.dynamixel
import time
Trouver le port sur lequel est branché le moteur
print(pypot.dynamixel.get_available_ports())
['/dev/ttyAMA0']
Ouvrir une communication série avec le moteur :
dxl_io = pypot.dynamixel.Dxl320IO('/dev/ttyAMA0')
Cherche les moteurs connectés sur le bus (il en faut un seul avec l'ID 1 pour la première utilisation) :
motors = (dxl_io.scan(range(60)))
print(motors)
print(len(motors))
[1, 2, 3, 4, 5, 6] 6
Modifier l'identifiant d'un moteur (ID) :
#Remplace l'ID 1 par 2 sur le moteur 1.
#Attention, les moteurs doivents tous avoir une ID différente sur le même bus.
dxl_io.change_id({1:2})
Retourne la position cible pour le moteur 1 :
dxl_io.get_goal_position({1})
(117.16,)
Donne un objectif de position pour le moteur 1 :
dxl_io.set_goal_position({12: 60})
Ferme la connexion avec les moteurs :
dxl_io.close()
from pypot.dynamixel import autodetect_robot
my_robot = autodetect_robot()
Afficher les moteurs de my_robot :
my_robot.motors
[<DxlMotor name=motor_1 id=1 pos=117.45>, <DxlMotor name=motor_2 id=2 pos=-72.87>, <DxlMotor name=motor_3 id=3 pos=-19.5>, <DxlMotor name=motor_4 id=4 pos=-19.21>, <DxlMotor name=motor_5 id=5 pos=-80.79>, <DxlMotor name=motor_6 id=6 pos=-19.79>]
Faire bouger le moteur 2 jusqu'à la position 0 degrés en 2 secondes :
my_robot.compliant = False
my_robot.motor_2.goto_position(0,2)
Aller plus loin dans les commandes possibles :
La documentation de Pypot : https://poppy-project.github.io/pypot/
Le projet Poppy : https://www.poppy-project.org/fr/