My Free Time

Piloter des servomoteurs avec la Micro Maestro

Aujourd'hui testons la micro maestro de Pololu qui permet entre autre de piloter des servo-moteurs.

Il y a 3 façons de piloter cette carte:

  • Directement sur un PC via le port USB avec par exemple le programme pololu, ou un programme fait en VB, C#, etc...
  • En la branchant sur une carte controlleur, comme arduino.
  • Et enfin par des scripts directement injectés dans la carte.

La plupart du temps il est préférable d'alimenter les servos avec une source externe, de 5v à 16v.

Pour les tests nous allons utiliser la star des mini servos, le Tower Pro SG90.

Ci-dessous le schéma de branchement avec une arduino nano.

Je n'est pas trouvé comment faire fonctionner la maestro avec les sorties et entrées TX et RX pour l'instant, on utilise donc les pins 10 et 11.

Donc pour déclarer la liaison dans le sketch arduino il faut utiliser:

SoftwareSerial maestroSerial(10, 11);

Le code arduino pour utiliser ce montage

Ce qui donne ...

Piloter la maestro en VB.net

La Maestro se pilote en USB directement à partir d'un PC.

Pololu fournit un programme sur son site : Maestro Control Center qui permet de faire pas mal de choses, et même de générer des scripts à partir de séquences de mouvements.

Le driver pour que la carte soit reconnue sous Windows est fournit avec le programme.

On branche la Maestro comme ceci :

Pour concevoir un programme en C# ou VB.net avec Visual Studio il faut utiliser les DLL que Pololu propose sur son site dans le SDK USB POLOLU

UsbWrapper.dll et Usc.dll

Importer les 2 dll dans le projet "ajouter>références"

Commencer le programme par :

Imports Pololu.UsbWrapper

Imports Pololu.Usc

Pour gérer les servos il faut au moins les lignes ci-dessous :

Vous pouvez ensuite utiliser ces fonctions dans le style :

TrySetSpeed(0, 200)

0 est l'emplacement du servo à piloter donc ici le premier, sur la micro maestro il y a 6 emplacements donc de 0 à 5.

A savoir que si on met un emplacement où il n'ya pas de servo, l'appli ne plante pas.

200 est la vitesse, valeurs possibles : 0 à 255.

TrySetTarget(0, 5000))

0 est l'emplacement du servo à piloter donc ici le premier, sur la micro maestro il y a 6 emplacements donc de 0 à 5.

5000 est l'angle auxquel ont veut amener le servo, à vous de voir les correspondances.