Chorégraphie d'un robot orchestrée par un Raspberry pi

  • Posted on: 29 August 2015
  • By: philippe

Pour faire suite au projet "Communication client serveur avec un robot EV3", voici un autre défi: un Raspberry pi remplace le PC et envoie des commandes au robot.
Le raspberry contient une séquence d'ordres qui représentent les différents mouvements que devra effectuer le robot. Les ordres sont envoyés au robot de façon séquentielle. Avant d'envoyer un ordre, le Raspberry attend la confirmation du robot que l'ordre précédent a été exécuté et impose un délai d'attente qui sera fixé dans notre cas à 1 seconde.
Cette dernière contrainte complique un peu le projet et est établie en prévision de réaliser une chorégraphie entre plusieurs robots.

Principe de fonctionnement
Les contraintes sont les suivantes:

  •  le serveur sera placé sur le Raspberry.
  • le client sera placé sur le robot.
  •  on branchera 3 dels (jaune, rouge, bleue) sur le GPIO du raspberry pour visualiser les différentes étapes de la communication.

La communication s'effectue dans les deux sens selon les règles suivantes:

  • l'allumage de la del jaune visualise la connexion client-serveur.
  • le robot demande quel mouvement éxécuter (mot clé "what").
  • si les conditions le permettent (le robot a terminé le mouvement précédent et le délai d'attente est expiré) le Raspberry envoie l'ordre suivant au robot et allume la del rouge.
  • le robot effectue la manoeuvre et informe le Raspberry lorsque celle-ci est terminée (mot clé "fin_mouvement").
  • à la recepetion du mot clé "fin_mouvement",  le raspberry éteint la del rouge, informe le robot de la réception et impose un délai d'attente de une seconde matérialisé par l'allumage de la del bleue.
  • le robot demande quel mouvement exécuter, le raspberry lui répond lorsque le délai d'attente est expiré et le cycle recommence.