Piloter les moteurs

La propulsion de l’Alphabot est de type différentielle : deux moteurs indépendants propulsent et dirigent le robot.

Chaque moteur est piloté par les moyens techniques suivants :

 

Voici les correspondances entre les ports de communications des microcontrôleurs et les états qu’ils doivent prendre ( LOW ou HIGH) pour obtenir le comportement moteur attendu :

Arrêt
(moteur libre)
Avant Arrière Arrêt
(moteur freiné)
Moteur

Gauche

Moteur

Droite

Nom de
l’interface
In1 In3 LOW HIGH LOW pas possible !
Port
Arduino
A0  A2
Port
Raspberry
 P12  P20
Nom de
l’interface
In2 In4 LOW LOW HIGH pas possible !
Port
Arduino
 A1  A3
Port
Raspberry
 P13  P21

Contrôle des mouvements

Arduino

Les mouvements du robot peuvent être contrôlés à l’aide de quelques commandes simples.

Bibliothèque

Il existe une bibliothèque Arduino pour faciliter l’utilisation de l’AlphaBot.

  • Télécharger l’archive zip : AlphaBot_arduino.zip.
  • Dézipper l’ensemble dans un dossier (avec 7zip par exemple)
  • Copier le contenu de ce dossier dans Mes Documents/Arduino/libraries .

Initialisation

Au début du programme, en dehors de toute fonction, ajouter ces lignes :

Commandes

  • Régler la vitesse du robot : Robot.SetSpeed(250);
  • Avancer/Reculer tout droit : Robot.Forward(duree_en_ms); / Robot.Backward(duree_en_ms);
  • Tourner sur place :  Robot.Left(duree_en_ms);  / Robot.Right(duree_en_ms);
  • Décrire un cercle :  Robot.LeftCircle(duree_en_ms);  / Robot.RightCircle(duree_en_ms);
  • Alimenter les moteurs : Robot.MotorRun(VitGauche, VitDroite); // Vitesses des moteurs de -255 à 255
  • Stopper (freiner) : Robot.Brake();

Utilisation des codeurs

Chaque roue étant équipée d’un codeur incrémental, il est donc possible de commander le mouvement en distance plutôt qu’en temps.

Le code suivant propose quelques exemples de fonctions permettant de piloter les moteurs en utilisant les codeurs incrémentaux placés sur les roues.

Attention : les contrôleurs des moteurs n’autorisent pas le freinage ! Il y a donc un fort risque de dépassement des positions visées !

Voir le code


 

 

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code