Ce projet consiste à mettre en marche un robot hexapode à l'aide d'une microcontrôleur LPC804. Cet hexapode est constitué d'une base octogonale, et de six pattes situées à 45°, 90° et 135°, de façon symétrique par rapport à l'avant du robot. Chacune des pattes est constituées de trois servomoteur AX-12 liés les uns aux autres, l'un d'eux étant accroché à la base octogonale, et un autre lié à un pied en plastique.
Les servomoteurs se commandent à l'aide du Dynamixel Protocol 1.0. Il consiste à envoyer une trame permettant d'identifier le moteur à commander, puis de lui demander d'exécuter diverses instructions, ce peut être de la lecture ou de l'écriture de données par exemple. Du côté de la LPC804, l'émission des trames se fait à l'aide d'un périphérique UART par liaison série. Pour imposer l'angle d'un servomoteur, il suffit alors d'envoyer une trame d'écriture à l'adresse 30 (goal position), suivi du LSB et du MSB de l'angle pour des valeurs entre 0 et 1023 (une règle de trois permet de retrouver l'angle réel). Une fois la trame construite, elle est stockée dans un buffer circulaire puis chaque caractère est émis un à un à l'aide de l'interruption TXIDLE, qui déclenche une interruption lorsque la transmission n'est pas en cours. Cette interruption est désactivée lorsque l'on a plus de donnée à émettre.
Les pattes sont pilotés en commandant la position cartésienne de l'extrémité des pieds. Pour cela, on dispose de plusieurs équations permettant de passer de la position désirée, aux trois angles à envoyer aux moteur de la patte.
Le robot suit une simple trajectoire rectiligne.
La bibliothèque fournit était censé permettre une rotation, celle-ci n'a malheureusement jamais fonctionné.
Afin d'effectuer cette trajectoire rectiligne, les pieds suivent une trajectoire circulaire.
Par exemple pour aller tout droit, le pied central droit et les pieds extérieurs gauche vont suivre un cercle, les autres pieds vont suivre le même cercle avec un déphasage de 180°, ce qui permet au robot d'avancer.
Afin de piloter l'hexapode à distance, on utilise un périphérique permettant de convertir des données bluetooth en données lisible par liaison série, celles-ci sont émise via un smartphone et l'application SENA BTerm Bluetooth Terminal. Les données reçues permettent de faire les actions suivantes :
- 'Z' : Aller tout droit;
- 'Q' : Aller à gauche;
- 'S' : Aller en arrière;
- 'D' : Aller à droite;
- 32 (espace) : S'arrêter;
à rendre sur https://github.com/ajuton-ens/projets_divers_LPC804