Informations sur la carte pixl (raspberry Pi - XL320)

Bon OK, ça m’apprendra à pas avoir la dernière version de pypot, j’ai vu que le port de la pixl était rajouté.

Par contre en cas d’install avec pip, ça marche pas.

Etape suivante :

dxl_io = pypot.dynamixel.Dxl320IO('/dev/ttyAMA0', use_sync_read=False)
motors = (dxl_io.scan(range(60)))
print(motors)

pypot ne trouve pas le moteur :

out : []

pas l’air bien bon ça… :sob:

Je suis descendu à 9600 bauds pour la transmission et là miracle, ça marche :slightly_smiling:
dxl_io = pypot.dynamixel.Dxl320IO('/dev/ttyAMA0', baudrate=9600, timeout=0.5, use_sync_read=False)

Je vais essayer de voir à d’autres vitesse mais à 1000000 de bauds ça passe pas.

A 9600 bauds, il faut 35ms pour retourner la present.position, je m’attendais à pire :
> %timeit dxl_io.get_present_position(motors)

out : 10 loops, best of 3: 35 ms per loop

@Nicolas is this : “We change a pull up resistor to boost the signal current and decrease the switch time (we change the default 500homs output pull-up to a 200homs)” could be part of the problem at 1000000 bauds ?

A 115200 bauds, ça passe mal, le ping fonctionne mais j’ai des erreurs :
DxlCommunicationError: could not parse received data bytearray(b'\xff\xff\xfd\x00"\x06\x00U\x00\xfd\x01\xfc\xfa') after sending DxlReadDataPacket(id=34, address=9472, length=512)

Alors le problème vient de l’envoi de commande très proche (le %timeit) car si je fais ça :

for i in range(100):
    dxl_io.get_present_position(motors)
    time.sleep(0.02)

Ca marche, mais quand je réduit le time.sleep je tombe sur l’erreur parse data. Une sorte de conflit entre les donneés qui partent et celles qui reviennent ?