MicroPython : Pilote pour écran Nokia 3310 (pilote FrameBuffer pour PCD8544)
Bonjour à tous,
Quand on ne dors pas de la nuit et que mille et une choses viennent polluer la douce mélodie du marchand de sable.... et bien, c'est le moment de s'occuper l'esprit avec.... Heuuu.... un pilote MicroPython?!?!.
Donc, ce petit matin, c'est l'occasion de vous annoncer la sortie du pilote pour écran Nokia 3310 (basé sur le contrôleur PCD8544).
Affichage sur afficheur Nokia 3310 |
Et comme vous pouvez le voir, la nuit fût productive :-)
Je suis d'accord, la résolution (84x48 pixels) n'est pas à tomber par terre mais cela à quand même permis à Nokia de faire fortune.
Brancher
J'ai utilisé un écran 3310 équipé d'un connecteur UEXT (le MOD-LCD3310 d'Olimex) aussi disponible ici chez MCHobby.
Comme j'ai une carte breakout pour Pyboard avec un connecteur UEXT, c'est super simple à brancher. Je me suis pas foulé pour la connectique... autant de temps gagné sur le code ;-)
Bon, tout le monde n'a pas de carte breakout... voici les connections à réaliser avec des fils Dupont
Source: dépôt GitHub esp8266-upy/modlcd3310 |
Le code de test
Une fois la bibliothèque lcd3310.py copiée depuis le dépôt GitHub esp8266-upy/modlcd3310 , il ne reste plus qu'à tester le pilote.
Il faut créer l'instance du bus SPI (et broches de commandes LCD_RESET et LCD_DATA) et puis c'est parti!
Le pilote hérite de la classe FrameBuffer, vous pouvez donc utiliser toutes les méthodes de tracé proposées par FrameBuffer.
import time from machine import SPI, Pin from lcd3310 import LCD3310 # Pyboard - créer les bus et broches nécessaires ssel = Pin( "Y5", Pin.OUT, value=True ) # Non sélectionner par défaut lcd_reset = Pin( "Y9", Pin.OUT, value=True ) # Non sélectionné par défaut lcd_data = Pin( "Y10", Pin.OUT, value=True ) # Data/Command (Data par défaut) spi = SPI( 2 ) # y7=mosi, y6=sck lcd = LCD3310( spi, ssel, lcd_reset, lcd_data ) # Voir aussi les méthodes FrameBuffer pour plus d'information # https://docs.micropython.org/en/latest/library/framebuf.html # lcd.fill( 1 ) # Allumer tous les points lcd.text( "Hello", 0,0,0 ) # text, x,y, color=0=transparent lcd.update() time.sleep( 3 ) lcd.clear() lcd.text( "MCHobby<3", 3, 12 ) lcd.text( "Micro-", 3, 12+10 ) lcd.text( " Python", 3, 12+10+10 ) lcd.rect(0,0,83,47,1) lcd.update()
Bon pour le reste... la journée, cela ne risque pas d'être aussi productif :/
Faudra un p'tit coup de pouce.
Où acheter
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.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
- MOD-LCD3310 - écran Nokia 3310 84x48 pixels @ MCHobby
- MOD-LCD3310 - écran Nokia 3310 84x48 pixels @ Olimex
- MicroPython boards @ MCHobby
Écrire un commentaire