Tuto pour utiliser un controleur PWM/Servo avec PyBoard

Nous avons complété notre section "MicroPython Pyboard" avec un nouveau tutoriel.
Cette fois, nous nous penchons sur le Controleur PWM/Servo 16 canaux d'Adafruit.
De quoi réaliser des projets démentiels à base de Pyboard et de Servo Moteurs

Controleur PWM/Servo 16 canaux d'Adafruit
Disponible chez MCHobby

Vous voulez réaliser des robots vraiment cools, peut-être un hexapode voire une oeuvre d'art contenant beaucoup d'éléments mobiles. Peut-être voulez vous piloter des LEDs avec une sortie PWM de précision?
Vous réaliserez vite que votre microcontrôleur dispose d'un nombre limité de sorties PWM. Que faire alors? Vous pouvez soit abandonner votre projet ou opter pour ce breakout board vraiment pratique permettant de piloter des sorties PWM et Servo.
Lorsque qu'AdaFruit a vu ce composant, elle a tout de suite réalisé à quel point il pourrait être un excellent complément. Utiliser seulement 2 broches pour contrôler 16 sorties de plus en PWM! Il est même possible de chaîner les breakout boards pour contrôler jusqu'à 992 sorties PWM! (ce que nous voudrions vraiment voir... cela doit produire un résultat "splendide")

Brancher et tester
Un fois que l'on sait comment faire le branchement... cela devient assez simple.
Raccordement - Source: Ce tutoriel de MCHobby
Nous avons branché un servo-moteur sur le port #15 du contrôleur.

Le code de test est, lui aussi, relativement simple. Il fait appel à une bibliothèque que vous trouverez sur le GitHub de MCHobby.

from pyb import I2C
# Import ServoCtrl, classe pour le controleur PMW
from servoctrl import ServoCtrl

# Initialise le bus I2C
i2c = I2C( 2, I2C.MASTER )

# Crée l'objet pour controleur PWM.
# Utilise l'adresse par défaut du controleur 0x40
driver = ServoCtrl( i2c )

# Positionne le servo moteur #15 à un angle de 45 degrés
driver.position( 15, 45 )

# Positionne le servo moteur #15 à un angle de 180 degrés
driver.position( 15, 180 )

Pour en savoir plus
Mais également les fiches détaillées des différents produits: