MicroPython: Mini I2C Moteur & joystick 5 Position de SeeedStudio (Grove)

Bonjour à tous,

J'ai eu l'occasion de développer deux nouveaux pilotes MicroPython. Cela concerne les modules Mini I2C driver (DRV8830) de SeeedStudio et Joystick 5 positions de SeeedStudio (mais fonctionne aussi pour le 6 positions DIP switch).

Mini i2C Motor, Joystick I2C, 6 Positions DIP switch

L'intérêt de ces modules est qu'ils disposent d'une connectique Grove I2C... donc facile à brancher sur un Arduino.

En utilisant un Level Shifter compatible I2C, il est très facile de les brancher sur des microcontrôleurs 3.3V comme le Raspberry-Pi Pico.

Voici donc les deux schémas de raccordement utilisés.

Brancher le Mini I2C Motor sur un Pico (source: esp8266-upy)


Brancher le Joystick 5 positions sur un Pico (source: esp8266-upy)

Du code

Dans les deux cas, il est très simple d'utiliser les modules grâce aux pilotes publiés sur GitHub (voir section Ressources ci-dessous).

Voici, par exemple, le contrôle du mini I2C moteur.... rien de compliqué:

from machine import I2C
from drv8830mot import DRV8830
import time

# Pico - I2C(0), sda=IO8, scl=IO9
i2c = I2C(0, freq=100000)

# Activer les deux controleurs moteurs
mot1 = DRV8830( i2c, address=0x65 ) # Chanel 1
mot2 = DRV8830( i2c, address=0x60 ) # Chanel 2
print( 'Marche avant plein vitesse' )
mot1.drive( 63 )
mot2.drive( 63 )
time.sleep( 2 )
print( 'Stop' )
mot1.stop()
mot2.stop()
time.sleep( 1 )
print( 'Marche Arrière mi-vitesse' )
mot1.drive( -32 )
mot2.drive( -32 )
time.sleep( 2 )
print( 'Freiner les moteurs' )
mot1.brake()
mot2.brake()
time.sleep( 1 )
print( 'Stop moteurs' )
mot1.stop()
mot2.stop()
print( 'Thats all folks' )

Ressources

Bon amusement

Aucun commentaire