Moteurs et robots
Moteurs à courant continu
Ce type de moteur est très courant, vous pouvez facilement en récupérer sur un appareil hors d’usage. Il suffit simplement de savoir sous quelle tension il fonctionne. Souvent, c’est écrit dessus, sinon regardez sa source d’alimentation (piles ou batterie).
Exemple de moteur à courant continu
Le branchement est très simple : il n’a que deux fils, il suffit donc de brancher le (+) à une borne et le (-) à l’autre, pour qu’il tourne dans un sens. Si vous inversez les deux bornes, il tourne dans l’autre sens. Et si vous baissez la tension de l’alimentation, il tourne moins vite.
Attention, vous ne devez jamais connecter directement un moteur à un port du micro:bit, car la puissance de sortie est limitée et les moteurs génèrent des courants parasites qui risqueraient d’endommager la carte.
1. Utilisation d’un transistor
Pour protéger le micro:bit, utilisez un transistor de type NPN (comme le 2N222A, que nous avons déjà utilisé avec le buzzer) et une diode Schottky (de roue libre), pour protéger le transistor d’un retour de courant. Le port du micro:bit doit aussi être protégé, avec une résistance de 1 kΩ.
Le micro:bit et le moteur possèdent des alimentations séparées, le transistor sert seulement d’interrupteur. Ce branchement permet au micro:bit de contrôler sans risque un moteur d’une tension supérieure à 3,3 V. Cependant, le moteur ne peut tourner que dans un seul sens.
a. Branchement
Branchement d’un moteur avec un transistor
b. Programmation
En mode numérique, vous ne pourrez pas contrôler sa vitesse, car vous n’aurez que deux possibilités (0 ou 1), soit le moteur est à l’arrêt, soit il tourne à la vitesse maximum. Par contre, en mode analogique, vous avez le choix entre 1 024 vitesses différentes (de 0 à 1 023). La régulation de la vitesse du moteur fonctionne comme avec une LED (cf. chapitre Entrées et sorties - Actionneurs - LED (sortie analogique)).
Dans cet exemple, vous pouvez augmenter la vitesse avec le bouton B et la réduire avec le bouton A.
MakeCode
Contrôle de la vitesse du moteur
MicroPython
# MoteurTransistor ...
Servomoteur
Contrairement au moteur à courant continu, qui réagit simplement en fonction de son alimentation (vitesse et sens de rotation), le servomoteur est plus évolué. Il interprète les instructions envoyées par le micro:bit sous la forme d’impulsions électriques.
Le servomoteur tourne lentement, mais il est relativement puissant, car il contient un système d’engrenages qui démultiplie sa force.
Le servomoteur classique n’est pas capable d’effectuer une rotation de plus de 180° (nous verrons plus tard que ce n’est toujours pas le cas). Mais il est très précis ; il est en effet capable de se positionner exactement à l’angle choisi par l’utilisateur.
Servomoteur classique (SG90)
1. Branchement simple
Il n’y a pas de précautions particulières pour connecter le micro:bit au servomoteur mais il nécessite une alimentation séparée (environ 5 V).
Par convention, le fil rouge est toujours relié à la borne (+), le fil noir ou marron à la borne GND et le fil jaune aux ports du microcontrôleur (micro:bit).
a. Branchement
Branchement du servomoteur
b. Programmation
Pour faire tourner le servomoteur, il suffit d’indiquer la position souhaitée, en degrés (entre 0 et 180°). Vous pouvez augmenter ou réduire l’angle en utilisant les boutons A et B.
MakeCode
Utilisez le bloc régler la position servo broche ... à ... disponible dans le volet Broches (dans la catégorie Avancé).
Contrôle d’un servomoteur
MicroPython...
Moteurs et servomoteurs en même temps
Certaines cartes d’extension sont polyvalentes, elles peuvent contrôler à la fois les moteurs classiques et les servomoteurs.
1. Driver Expansion Board
La carte d’extension Driver Expansion Board permet de piloter jusqu’à quatre moteurs à courant continu et jusqu’à huit servomoteurs. Bien sûr, il faudra, dans ce cas, ajouter une alimentation suffisamment puissante.
Driver Expansion Board (www.dfrobot.com)
a. Branchement
Branchez, par exemple, un moteur à courant continu aux bornes M1 et un servomoteur aux bornes S1.
Branchement des moteurs
b. Programmation
MakeCode
Le plus simple est d’installer la bibliothèque DF-Driver. Pour cela, sélectionnez Avancé puis Extensions et tapez https://github.com/DFRobot/pxt-motor dans la barre de recherche. Cliquez ensuite sur la nouvelle bibliothèque pour l’installer.
Sélection de la bibliothèque DF-Driver
Le programme suivant permet de modifier la vitesse et le sens de rotation du moteur en appuyant sur les boutons A et B.
Contrôle d’un moteur à courant continu
Pour contrôler le servomoteur, indiquez simplement l’angle souhaité dans le bloc Servo... degree...
Contrôle d’un servomoteur
MicroPython
Malheureusement, DFrobot n’a pas encore développé de bibliothèque pour contrôler en MicroPython la carte d’extension. N’hésitez pas à consulter de temps en temps le wiki de DFrobot, pour savoir si la situation a évolué : https://wiki.dfrobot.com/Micro_bit_Driver_Expansion_Board_SKU_DFR0548
2. Crickit
Le Crickit est une carte d’extension très complète (fabriquée par Adafruit). Elle permet de piloter les moteurs à courant continu, mais également les servomoteurs. Elle offre aussi d’autres fonctions, comme la gestion de haut-parleur, de LED Neopixel, huit entrées/sorties, quatre entrées tactiles et quatre sorties pour relais ou solénoïdes. Elle est disponible pour les cartes Circuit Playground Express, Feather, micro:bit et Raspberry Pi (sous forme de Hat). Chaque version possède un connecteur adapté à la carte.
Crickit, version micro:bit...
Robots
1. MeArm
Le bras robot MeArm existe en plusieurs versions, dont une spécialement adaptée au micro:bit.
Le bras robot MeArm (www.kitronik.co.uk)
Vous pouvez imprimer vous-même la structure du robot, puisque les fichiers nécessaires sont sur Thingiverse : www.thingiverse.com/thing:1550041
Mais le kit proposé par Kitronik comprend :
-
4 servomoteurs MG90S (engrenages métalliques),
-
la carte de contrôle des moteurs,
-
le module de pilotage (avec 2 joysticks), où s’insère le micro:bit,
-
le boîtier d’alimentation du robot (pour 4 piles AA),
-
la visserie nécessaire (et même une petite clé Allen).
Les pièces du kit MeArm
a. Montage
Les instructions de montage sont disponibles en PDF : https://learn.mime.co.uk/assets/mearm.pdf
ou en vidéo, sur YouTube : www.youtube.com/watch?v=sPdbs9b5udQ&feature=emb_logo
Prenez le temps de bien repérer les pièces et le sens de montage, cela évite ensuite d’avoir à démonter et remonter une partie du robot en cas d’erreur. Repérez également les cornes (petits trucs en plastique qui se fixent sur l’axe) utilisées, ainsi que le sens de branchement des moteurs.
Sens de branchement des servomoteurs
b. Alimentation
Le robot est alimenté depuis la carte de contrôle (et non depuis le micro:bit). Vous avez le choix entre la prise micro-USB (5 V) ou la prise jack (6 V). L’alimentation doit être suffisamment puissante. Utilisez des piles neuves ou un bon transformateur, comme, par exemple, un chargeur de téléphone de 2 A (2 ampères). Sinon vous risquez de rencontrer des coupures et des redémarrages intempestifs (rendant le robot imprévisible).
Alimentation du robot
c. Fonctionnement
Chaque joystick possède deux axes (x et y). Ils se comportent comme des potentiomètres. Leurs résistances varient suivant la position de la manette. Il suffit donc d’alimenter une borne du joystick et de mesurer la valeur (analogique) retournée à l’autre borne pour en déduire la position du "champignon". Voilà ce que cela donne :
Port micro:bit |
Valeurs mini/maxi |
Valeurs au repos |
|
Joystick 1 Axe x |
P0 |
de 0 à 1024 |
de 510 à 515 |
Joystick 1 Axe y |
P1 |
de 0 à 1024 |
de 510 à 515 |
Joystick 2 Axe x |
P2 |
de 0 à 1024... |