Commander un servomoteur avec le Raspberry Pi |
||
Le principe Pour commander un servomoteur, il faut lui envoyer une impulsion comprise entre 1 ms et 2 ms, répéter cette impulsion toutes les 20 ms pour maintenir l'axe du servomoteur en position. La position neutre du sevomoteur correspond à une impulsion de 1,5 ms. Le câblage Un servomoteur possède un connecteur à 3 broches, par exemple : Attention il ne faut pas utiliser le 3,3 V pour l'alimenter mais le rail 5V, ou mieux une alimentation externe. Le fil de commande (jaune) sera relié à la broche GPIO 17 |
||
Le programme sous Python Avec un Raspbery Pi 2 et Pi .., il faut charger la bibliothèque compatible RPi.GPIO.0.7.0, l'archive est disponible sur le site Python. L' installation se fait avec : Pour l'installation de la bibliothèque RPIO.PWM , taper les commandes suivantes :
Le module RPIO.PWM possède une fonction PWM.Servo() qui comme son nom l'indique commande directement un servomoteur. Après quelques tests j'ai rencontré quelques problèmes de stabilité avec cette fonction et j'ai utilisé une autre fonction PWM.add_channel_pulse () qui comme l'atteste la recopie de l'oscillogramme ci-dessous fonctionne parfaitement. Sur cet oscillogramme la largeur d'impulsion est de 1,5 ms (position neutre) et la période de 20 ms. |
||
Commentaires : Importation des modules Broche GPIO 17 en sortie Initialisation du canal DMA 0 Faire tourner le servomoteur de gauche à droite ( 100 -> 1ms 200 -> 2ms)
Répéter l'impulsion toutes les 20 ms |
|