Arduino
Feuille de route
undefined[✓ robert_dazi1, 2017-03-08]
Implementer la classe RoueCodeuse
Commander le robot a tourner, avancer, reculer
A propos Arduino
Arduino a deux types de pins, analogue et digitale. Il faut initialiser les pins dans le setup sans quoi elles ne pourront pas etre utilise par l'Arduino dans le loop. Faire attention a choisir le bon mode (Analog/Digital) pour l'initialisation. Idem avec le Serial, il faut fixer le BaudRate en Setup.
Code
Objectifs
Le code devra gerer plusieurs choses en meme temps :
Faire bouger le robot (asservir le moteur, …)
Comprendre les signaux issues du port Serial (necessite de definir le /assoce/robot/coupe_robotique/protocole)
Repondre aux signaux
Faire du feed-back des actions en cours
Partie Motrice
On definit les classes :
Axe :
RoueDroite, RoueGauche (RoueAsservie)
ecart
RoueAsservie :
Moteur
RoueCodeuse
RouePhysique
Moteur :
pinSens (Pin)
pinVitesse (Pin)
sens
vitesse
RoueCodeuse :
pin
tick
rayon
RouePhysique :
rayon
Voici les interfaces a implementer (ATTENTION: Ces interfaces sont issues de l'ancien code (pas tres fiable). Donc si vous voulez changer quelque chose, faites le !)
Axe
tourner
avance
arreter
aller_a
RoueAsservie
get_ticks (deleguee)
add_vitesse (deleguee)
set_sens (deleguee)
Moteur
add_vitesse
set_sens
RoueCodeuse
La roue codeuse fonctionne de maniere simple. Dire que la roue codeuse tique signifie que l'etat de son signal de sortie change pendant un certain temps. On peut ainsi recuperer les changements montants. Pour s'eviter des problemes de temps, et laisser l'Arduino gerer cela par elle-meme, on utilise directement la fonction qui hooks une fonction donnee a l'evenement "changement montant" d'un pin voulu (sur la UNO, uniquement 2 et 3). Ainsi, on peut compter le nombre de tours effectuer par la roue codeuse. Simple mais efficace.
get_ticks
update