Interface python

Basée sur celle de l'année dernière, notre script, qui est lancé dans l'ordinateur, nous permet de contrôler le serpent et aussi de faire l'écriture dans la flash de toutes (ou de chacune individuellement) vertèbres.

Cette interface est divisée en deux partie : celle qui fait l'écriture dans la flash des cartes du serpent et celle qui le contrôle.

Par rapport à l'écriture dans la flash, ou la partie bootloader, comme ce script est relié au bootloader qui était déjà dans les cartes du serpent, nous l'avons laisse tel quel. Il nous permet d'entrer en mode bootloader (au démarrage, les cartes ont une attente de 10 secondes avant de sauter vers le programme principal. Dans ce dix secondes, s'il y a un message du bootloader qui arrive, elles entrent en mode bootloader et ne continue pas l'exécution). Dans ce mode, nous pouvons écrire un programme à partir d’une adresse qui peut être spécifié ou vérifier qu'il a été bien flashé. Sauter à une adresse spécifique de la flash est possible aussi.

Tous les messages envoyés par ces commandes sont des trames acceptées par le bus CAN. De cette façon, la carte du TP s'occupe juste de recevoir les bytes et de les organiser dans une trame CAN.

La deuxième partie de l'interface est celle qui nous permet de contrôler le serpent. Elle n'envoie pas des commandes acceptées par un bus CAN, mais juste des commandes qui vont être interprétées par la carte maître du serpent. De cette façon, la carte du TP s'occupe juste de recevoir les bits par le port série et de les envoyer par zigbee. Comme le zigbee est branché à une UART, tous les bits reçus par le port série sont mis dans la sortie du zigbee.

Pour faciliter son utilisation, il y a des boutons pour chacune d'action à être effectuée par le serpent :
- marcher (en avant ou en arrière) et s'arrêter;
- reset;
- tourner (à droit ou à gauche) ou revenir à un déplacement droit;
- augmenter / diminuer la vitesse;
- augmenter / diminuer l'amplitude de la sinusoïde;
- augmenter / diminuer la période de la sinusoïde;

En tapant une valeur, l'angle d'un virage peut être modifié aussi.

Pour faire nos tests, nous pouvions aussi envoyer une trame CAN totalement configurable. Mais cette option à été enlevée de la version finale de l'Interface parce qu’il y avait trop d'information et nous avons voulu l'avoir de manière plus "clean".

Voici une photo de notre Interface :

interface.jpg

—-
Back

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License