MicroPython: capteur luminosité grove (U136) et joystick analogique Grove (U024) de M5Stack

Bonjour à tous, et salutation aux amoureux du ptit Python (MicroPython) :-)

 ¸.·´¯`·.(MicroPython)·´¯`ᕙ

Je dois avouer beaucoup aimer les modules Grove de M5Stack, ils ont une esthétique bien finie, disposent d'une connectique Grove, supporte I2C mais surtout, ils utilisent des signaux logiques en 3.3V (donc directement compatible avec Raspberry-Pi Pico, Pyboard, ESP32, ESP8266).

Pour ces deux nouveaux pilotes MicroPython, je me suis penché sur un capteur de luminosité et sur un joystick analogique... tous les deux fonctionnant en I2C.

I2C DLight Unit - U136

L'unité Grove DLight est un capteur de luminosité Ambiante numérique utilisant le capteur BH1750FVI. Ce capteur communique via un bus I2C, utilise un convertisseur analogique 16 bits (ADC) et offre une large gamme de mesure de 1 à 65535 Lux.

Unité DLight (I2C, U136) @ MCHobby

Je dois avouer avoir été agréablement surpris par ce module. Son utilisation est simple et l'information renvoyé très facilement exploitable. L'utilisation est stable.

Au contraire d'autre modules excessivement réactif et/ou hyper-sensibles, celui-ci permet d'évaluer la luminosité avec un retour de résultat suffisamment pondéré que pour être directement exploitable dans une application tout publique.

Les capteurs de précision sont forcement sont réactifs et sensibles, donc parfois difficiles à maîtriser (du point de vue logiciel) pour les nouveaux venus. En effet, des données qui changent très rapidement et dans de grandes amplitudes peuvent produire des "faux positifs" dans les programmes des débutants.

Cette unité DLight basée sur le composant BH1750FVI-TR est donc un excellent compromis.

Le raccordement sur un Pico est simple et comme c'est en I2C, rien n'empêche de le combiner avec d'autres unités/modules I2C.

Source: Github ESP8266-upy et ses nombreux pilotes

Et une fois la bibliothèque dlight.py installée, rien de plus simple pour exploiter de module grove.

from machine import I2C
from dlight import *
from time import sleep

# Pico - I2C(1) - sda=GP6, scl=GP7
i2c = I2C(1)
# M5Stack core
# i2c = I2C( sda=Pin(21), scl=Pin(22) )

ambiant = AmbiantLight(i2c)
ambiant.set_mode( CONTINUOUSLY_H_RESOLUTION_MODE )
while True:
	print( 'Light: %i Lux' % ambiant.lux )
	sleep( 0.200 )

Simple et efficace :-) 

I2C Analog Joystick  - U024

Voici un autre module I2C sympa qui propose une connectique Grove.... c'est le joystick analogique I2C... donc combinable avec d'autres composants/modules sur le même bus I2C.

Joystick Analogique I2C (U024) @ MCHobby

 Au branchement sur Pico aussi simple que le précédent montage.

Source: dépôt Esp8266-upy/m5stack-u024

Il faut bien entendu installer le pilote joyi2c.py pour faciliter l'utilisation du module. Une fois ceci fait, il devient très simple d'utiliser le joystick.


from machine import I2C
from joyi2c import Joystick
from time import sleep

# Pico - I2C(1) - sda=GP6, scl=GP7
i2c = I2C(1)
# M5Stack core
# i2c = I2C( sda=Pin(21), scl=Pin(22) )

joy = Joystick(i2c)
while True:
	joy.update() # Capturer l'etat du joystick via I2C
	print( "X: %4i, Y: %4i, Button: %s" % (joy.x, joy.y, joy.button) )
	sleep( 0.1 )

Ressources

MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible. 

SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Aucun commentaire