Arduino

Feuille de route

  • [✓ 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 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