Hack-micropython-dfrobot-motor
A ecrire
Moteur DFRobot avec contrôleur
Il n'y a pas très longtemps, nous avons découvert ce moteur réalisé par DFRobot.
Nous connaissons bien ces micro-micromoteurs à engrenage métal qui sont d'une excellente qualité et facile à fixer à l'aide du support de fixation.
Ce qui différencie ce moteur des autres, c'est le contrôleur qui y est fixé au moteur et qui permet de contrôler le sens de rotation et la vitesse du moteur à l'aide d'un signal de servo-moteur et donc d'un seul fil de commande (idée grandiose à portée des makers).
Ce moteur offre les caractéristiques suivantes:
- Signal Servi
- Tension d'alimentation: 3.5 à 8V
- Courant (sans charge) : 40mA @ 6V
- Courant statique (sans signal PWM) : < 1mA
Détails du signal servo
Le signal Servo est un signal PWM à 500 Hz avec les caractéristiques suivantes:
- Signal PWM à 500Hz
- Impulsion de 500µs (-90°) à 2500µs (+90°)
- Résolution 1µs
Les impulsions entre 1400µs et 1600µs (soit entre -9° à +9°) place le moteur à l'arrêt.
Lorsqu'une impulsion est inférieure à 1400µs (<= -10°) le moteur commence à tourner dans le sens des aiguilles d'une montre. Plus la valeur d'impulsion approche de 500µs (tendant vers -90°) et plus le moteur tourne vite.
Les valeurs supérieures à 1600µs (>= 10°) font tourner le moteur en sens anti-horlogique. Plus la valeur tend vers 2500µs (soit +90°) et plus le moteur tourne vite.
Brancher
Le moteur est équipé d'un connecteur avec détrompeur sur lequel vient se brancher le câble gravity (3 pôles à empattement standard de 2.54mm)
Couleur | Type | Description |
Noir | GND | masse |
Rouge | Power | Alimentation de 3.5 à 8V pour le moteur et le contrôleur |
Vert | Signal | Signal de commande Servo |
Sur Pyboard
Sur Pyboard-Uno-R3
L'adaptateur Pyboard-UNO-R3 expose déjà les connecteurs servo-moteur.
Il ne reste plus qu'a brancher le moteur de DFRobot directement sur le connecteur 3 broches correspondant à Servo1 (près de la LED NeoPixel).
Code de test
MicroPython v1.11-473-g86090de on 2019-11-15; PYBv1.1 with STM32F405RG
Type "help()" for more information.
>>>
>>> from pyb import Servo
>>> s1 = Servo(1)
>>> s1.speed( +100 ) # sens anti-horlogique, vitesse 100%
>>> s1.speed( -100 ) # Sens horlogique, vitesse 100%
>>> s1.speed( -50 ) # Sens horlogique, vitesse 50%
>>> s1.speed( -10 ) # Sens horlogique, vitesse 10%
>>> s1.speed( 0 ) # Arrêt