Bibliothèque RoboEyes pour MicroPython

Bonjour à tous,

Il arrive de temps à autre que l'on tombe sur une petite perle du net.

A propos de RoboEyes

Il y a quelques mois, j'ai découvert RoboEyes pour Arduino (de FluxGarage.com).

Credit: RobotEye par FluxGarage.com

 dont il est possible de voir les caractéristiques sur cette vidéo et cette autre vidéo.

 

 

Je suis instantanément tombé sous le charme... <3 

RoboEyes pour MicroPython

Comme je suis plutôt MicroPython qu'Arduino, j'ai voulu faire un portage sous MicroPython pour pouvoir jouer avec cette magnifique bibliothèque.

Voila qui est fait! La bibliothèque micropython-roboeyes est maintenant publiée sur GitHub. 

Brancher un écran est très facile... surtout si c'est écran OLED I2C:

Et le résultat est plutôt convaincant comme en témoigne la vidéo ci-dessous:


Pour, au final, un code assez facile à appréhender:

from machine import I2C, Pin
from roboeyes import *
import ssd1306

i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )
lcd = ssd1306.SSD1306_I2C( 128, 64, i2c, addr=0x3d )

def robo_show( roboeyes ):
	global lcd
	lcd.show()

# Plug RoboEyes on any FrameBuffer descendant
robo = RoboEyes( lcd, 128, 64, frame_rate=100, on_show = robo_show )
robo.set_auto_blinker( ON, 3, 2) 
robo.set_idle_mode( ON, 2, 2) 

while True:
	robo.update()  # update eyes drawings 

La bibliothèque offre de nombreuses possibilités de création géométrique pour les yeux (voyez l'exemple test_basic.py).


Les fonctionnalités sont également détaillées dans les exemples et la documentation de l'API RoboEyes vous permettra de rapidement prendre le contrôle des yeux.

Avantages apportés par MicroPython

Le FrameBuffer

Comme l'implémentation est basée sur le FrameBuffer de MicroPython, tous les écran dérivant de FrameBuffer peuvent être utilisés avec RoboEyes.

Autrement dit, la majorité des afficheurs graphiques sous MicroPython fonctionneront :-) 

Portabilité

RoboEyes est Platform Agnostic, il fonctionnera donc sur toutes les plateformes MicroPython. La seule vrai dépendance est le FrameBuffer de MicroPython.

Envie d'en savoir plus?

Aucun commentaire