Erreur lors de connexion PIXL avec AX12 et XL320

Bonjour,

Je n’arrive plus a me connecter avec mes servomoteurs AX-12 et XL320

Voici le code

Message d’erreur
Traceback (most recent call last):
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 511, in __real_read
header = self._protocol.DxlPacketHeader.from_string(data)
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/protocol/v1.py”, line 40, in from_string
raise ValueError(‘try to parse corrupted data ({})’.format(header))
ValueError: try to parse corrupted data (bytearray(b’\x00\x00\xfb\xfd’))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/home/pi/Desktop/Test.py”, line 8, in
ax12_motors = (dxl_AX12_io.scan(range(60)))
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 221, in scan
return [id for id in ids if self.ping(id)]
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 221, in
return [id for id in ids if self.ping(id)]
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 214, in ping
self._send_packet(pp, error_handler=None)
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 527, in _send_packet
return self.__real_send(instruction_packet, wait_for_status_packet, _force_lock)
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 495, in __real_send
status_packet = self.__real_read(instruction_packet, _force_lock=True)
File “/usr/local/lib/python3.4/dist-packages/pypot/dynamixel/io/abstract_io.py”, line 517, in __real_read
raise DxlCommunicationError(self, msg, instruction_packet)
pypot.dynamixel.io.abstract_io.DxlCommunicationError: could not parse received data bytearray(b’\x00\x00\xfb\xfd’) after sending DxlPingPacket(id=0)

Quelqu’un à t’il une solution à ce problème ?

Merci

PS : J’ai fait un test de voltage sur les pins VCC et Data du PIXL et j’ai 0v sur la sortie Data.

Bonjour,

Dans le doute j’ai testé les pins TxD et RxD du RaspberryPi afin de m’assurer que le port ttyAMAO fonctionnait bien comme il fallait :slight_smile:

Pour ce, j’ai relié les pins TxD et RxD entre eux et lancé ce bout de code :

#!/usr/bin/env python
#. -- coding: uft-8 --

#Test du port série

try:
serialPort = serial.Serial(port, 9600, timeout = 2)
print ("Port Série “, port, " ouvert pour le test :”)
bytes_sent = serialPort.write(test_string.encode())
print ("Envoyé “, bytes_sent, " octets”)
loopback = serialPort.read(bytes_sent)
if loopback == test_string.encode():
print ("Reçu ", len(loopback), “octets identiques. Le port”, port, “fonctionne bien ! \n”)
else:
print ("Reçu des données incorrectes : ", loopback, " sur le port série “, port, " bouclé \n”)
serialPort.close()
except IOError:
print ("Erreur sur ", port, “\n”)

Résultat:
Port Série /dev/tty/AMA0 ouvert pour le test:
Envoyé 32 octets
Reçu 32 octets identiques. Le port /dev/ttuAMA0 fonctionne bien !

Du coup je sais que ça ne vient pas du Raspberry pi