Affichage de la matrice LED
Fondamental :
Il y a une matrice de 25 LED (diodes électroluminescentes) sur la face avant de la carte. Plusieurs commandes d'affichage sont disponibles en microPython :
display.show() : affiche le caractère ou l'image choisi(e) entre parenthèses ;
display.scroll(string, delay=400) : affiche une chaîne de caractères (string, du texte) en défilement avec une certaine vitesse (delay, plus le délai est grand, moins le texte défilera rapidement) ;
display.set_pixel(x, y, val) : allume le pixel de coordonnées x et y (de 0 à 4 en abscisse et ordonnée) d'une intensité val (entre 0 et 9) ;
sleep() : provoque la pause de la carte pendant un nombre défini de millisecondes choisi entre parenthèses
display.clear() : efface l'affichage en cours.
Conseil :
En cliquant sur l'icône REPL, le programme en cours d'exécution sur la carte (main.py) est stoppé et vous pouvez taper des commandes qui seront immédiatement exécutées par MicroPython. C'est très commode de pouvoir interagir directement avec MicroPython en cours d'élaboration de programme.
Cela permet par exemple :
de tester une ligne de code ;
de se renseigner sur l'usage d'une commande ;
de connaître le contenu d'une librairie.
de connaître les cause d'un plantage du programme
etc....
La matrice LED
Allumer, éteindre l'écran
Les commandes display.on() et display.off() permettent d'allumer et d'éteindre l'écran. Éteindre l'écran peut être utile lorsqu'on veut récupérer les broches d'entrée sortie associées à la matrice de LED (broches 3,4,5,7,9,10).
les commandes display.is_on() et display.is_off() permettent de tester l'état de l'écran.
ne pas confondre ces commandes avec display.clear() qui se contente d'éteindre les pixels de l'écran.
Exemple :
>>> display.show(1)
>>> display.off()
>>> display.on()
La première ligne permet d'afficher le caractère "1" sur la matrice LED.
Le seconde ligne éteint la matrice LED.
Enfin, la dernière ligne permet le rallumage de l'écran et remet ce dernier dans l'état ou il était.
Il n'a donc pas été effacé.
Afficher des messages
display.show() et display scrool()
>>> display.show(23)
>>> display.scroll('Hello World!', loop=True)
>>> display.show('Hello World!', wait=False, loop=True)
Afficher / Lire des pixels
display.get_pixel() et display.set_pixel()
display.get_pixel(x, y) retourne l'illumination du pixel situé à la colonne x et la ligne y sous forme d'un entier de 0 (éteint) à 9 (complètement allumé).
display.set_pixel(x, y, value) allume le pixel situé à la colonne x et la ligne y avec une illumination value de 0 (éteint) à 9 (complètement allumé).
Exemple :
Tester le programme suivant :
from microbit import *
for x in range(5):
for y in range(5):
display.set_pixel(x,y,(x+y)%9)
Afficher des images
Images prédéfinies
Tester l'instruction suivante :
display.show (Image.HAPPY)
Il y a d'autres images prédéfinies dans MicroPython sur microbit que vous pouvez tester. On peut les obtenir par la commande dir(Image) :
'HEART', 'HEART_SMALL', 'HAPPY', 'SMILE', 'SAD', 'CONFUSED', 'ANGRY', 'ASLEEP', 'SURPRISED', 'SILLY', 'FABULOUS', 'MEH', 'YES', 'NO', 'CLOCK12', 'CLOCK1', 'CLOCK2', 'CLOCK3', 'CLOCK4', 'CLOCK5', 'CLOCK6', 'CLOCK7', 'CLOCK8', 'CLOCK9', 'CLOCK10', 'CLOCK11', 'ARROW_N', 'ARROW_NE', 'ARROW_E', 'ARROW_SE', 'ARROW_S', 'ARROW_SW', 'ARROW_W', 'ARROW_NW', 'TRIANGLE', 'TRIANGLE_LEFT', 'CHESSBOARD', 'DIAMOND', 'DIAMOND_SMALL', 'SQUARE', 'SQUARE_SMALL', 'RABBIT', 'COW', 'MUSIC_CROTCHET', 'MUSIC_QUAVER', 'MUSIC_QUAVERS', 'PITCHFORK', 'XMAS', 'PACMAN', 'TARGET', 'ALL_CLOCKS', 'ALL_ARROWS', 'TSHIRT', 'ROLLERSKATE', 'DUCK', 'HOUSE', 'TORTOISE', 'BUTTERFLY', 'STICKFIGURE', 'GHOST', 'SWORD', 'GIRAFFE', 'SKULL', 'UMBRELLA', 'SNAKE'
Créer sa propre image
Tester dans REPL l'exemple suivant :
>>> monImage = Image("90009:06060:00300:06060:90009")
>>> display.show(monImage)
On peut aussi le présenter différemment :
>>> monImage = Image("90009:"
"06060:"
"00300:"
"06060:"
"06060:")
>>> display.show(monImage)
Chaque chiffre non nul représente le pixel allumé.
La valeur du chiffre représente l'intensité du pixel allumé.
Afficher des animations
On peut définir une liste (ou un tuple) d'images pour les afficher sous forme d'une animation : essayer dans le REPL
>>> display.show(Image.ALL_CLOCKS)
>>> display.show(Image.ALL_CLOCKS, delay=1000)
>>> display.show(Image.ALL_CLOCKS, delay=100)
>>> display.show([Image.SAD, Image.HAPPY], delay=1000, loop=True, wait=False)
Complément :
Pour arrêter l'animation lorsqu'elle est jouée en tâche de fond, il suffit de faire un display.clear()