Files
Documentations/Writerside/topics/Pilotage-PCB-Actionneurs.md
2025-05-23 15:12:56 +02:00

3.1 KiB

Pilotage PCB Actionneurs

Informations que le PCB peut faire remonter

  • Position des servomoteurs
  • Position des moteurs pas à pas
  • Etat des relais
  • Information des capteurs fin de course
  • Etat de la tirette

Ordres envoyables au PCB

  • Armer la tirette
  • Désarmer la tirette
  • Activer/désactiver le relai (qui alimente les solénoïdes)
  • Faire tourner le servo vers un angle

Evenements envoyables à la raspi

  • Activation de la tirette si armée
  • Appui sur un bouton
  • Activation d'un capteur

Protocole de communication

La communication se fait en USB CDC

Récupération d'une donnée par la raspi :

GET;XXXX;YYYY\n avec XXXX l'élément du PCB concerné et YYYY la donnée demandée dans la liste suivante :

  • ASC;POS pour récupérer la position de l'ascenseur (renvoie le numéro de position prédéfini par l'utilisateur (le x de POSx dans la commande SET))
  • SERVOn;POS pour récupérer la position du servo n (renvoie le numéro de position prédéfini par l'utilisateur (le x de POSx dans la commande SET))
  • RELAYn;STATE pour récupérer l'état d'un relai (1 = activé, 0 = désactivé) avec n l'id du relai (1, 2 ou 3)

Réponse du PCB à une demande de donnée

SET;XXXX;YYYY;val avec XXXX et YYYY identiques à la commande GET et val une valeur dans l'unité ou la plage de valeurs convenue.

Modification d'une constante par la raspi :

SET;XXXX;YYYY;val avec XXXX l'élément du PCB concerné, YYYY la donnée à enregistrer et val la valeur dans la liste suivante :

  • ASC;POSx;val (valeur en mm de hauteur de la position haute de l'ascenseur)
  • SERVOn;POSx;angle (valeur de l'angle de la position d'un servo moteur en radians avec n et x des nombres (id du servo et de la pos de ce servo))
  • SET;TIR;ARM;val (1 pour armer la tirette si le robot est prêt, 0 pour désarmer la tirette)

Réponse du PCB à la modif d'une constante

OK;XXXX;YYYY;val avec XXXX, YYYY et val identiques à la commande SET pour valider une commande effectuée. KO;XXXX;YYYY;val pour une commande échouée

Déclenchement d'une action par la rasp

MOV;XXX;YYY

  • ASC;POSx pour mettre l'ascenseur à la position x
  • SERVOn;POSx pour mettre le servo n à la position x
  • RELAYn;x avec x vaut 1 ou 0 pour activer ou désactiver des sorties

Réponse du PCB au déclenchement d'une action

OK;XXXX;YYYY avec XXXX et YYYY identiques à la commande MOV pour valider une commande effectuée. KO;XXXX;YYYY pour une commande échouée

Envoi d'évènement par le PCB

Le PCB peut envoyer des informations à la rasp sans répondre à l'une de ses requêtes de la sorte : EVENT;XXX;YYY avec XXX l'évènement et YYY une info complémentaire

  • TIR;START pour une tirette armée actionnée par l'utilisateur
  • TIR;ARM pour signaler un appui bouton sur le panneau de commande demandant l'armement de la tirette
  • TIR;DIS pour signaler un appui bouton sur le panneau de commande et le désarmement de la tirette

Réponse de la rasp à un évènement du PCB

Si la rasp ne répond pas à l'envoi d'un évènement par le PCB celui ci sera renvoyé jusqu'à recevoir une réponse

  • ACK;XXX;YYY pour un message pris en compte par la rasp, XXX et YYY identiques au message EVENT correspondant
  • rien sinon