TigerJython4Kids
micro:bit Robotik
display
Deutsh   English   Franšais

2. ÉCRAN LED

 

 

OBJECTIFS DE CETTE SECTION

 

Apprendre à utiliser la matrice LED pour y afficher des messages textuels et des images simples.

 

 

MATRICE DE LEDS 5 X 5

 

Les 25 LEDS sont disposés en matrice 5 x 5 et peuvent être adressées de manière individuelle à l’aide d’un système de coordonnées (x,y). L’instruction

display.set_pixel(x, y, n)

lpermet d’allumer la LED placée en position (x,y) avec l’intensité n où n est un nombre entier entre 0 (= éteint) et 9 (= allumé à fond).

Il est possible d’éteindre toutes les LEDs à l’aide de
display.clear()

 

 

 

EXEMPLES

 

Allumer et éteindre des LED

Ton programme doit allumer et éteindre les LEDS de la ligne centrale. L’instruction sleep(400) suspend l’exécution du programme pendant 400 ms.

 



Program:

from microbit import *

for x in range(5):
    display.set_pixel(x, 2, 9)
    sleep(400)
    display.set_pixel(x, 2, 0)
► Copy to clipboard

Allumer une LED aléatoirement

Il peut être amusant de faire clignoter des LEDs de manière aléatoire. Dans la fonction randomLed(), on commence par effacer l’écran et on choisit ensuite des coordonnées aléatoires entre 0 et 4 qui vont déterminer la LED à allumer avec une intensité maximale.

 

Program:

from microbit import *
from random import randint

def randomLed():
    display.clear()
    x = randint(0, 4)
    y = randint(0, 4)    
    display.set_pixel(x, y, 9)

while True:
    randomLed()
    sleep(200)  
► Copy to clipboard

 

Afficher des images

Le module microbit contient plusieurs images de 5 x 5 pixels qu’il est possible d’afficher sur l’écran du micro:bit. Le nom des fichiers images se trouve dans l’encadré ci-dessous:
HEART, HEART_SMALL, HAPPY, SMILE, SAD, CONFUSED, ANGRY, ASLEEP, RPRISED, SILLY, FABULOUS, MEH, YES, NO, CLOCK12, LOCK11, CLOCK10, CLOCK9, CLOCK8, CLOCK7,

 



CLOCK6, CLOCK5, CLOCK4, CLOCK3, CLOCK2, CLOCK1, ARROW_N, ARROW_NE, ARROW_E, ARROW_SE, ARROW_S, ARROW_SW, ARROW_W, ROW_NW, TRIANGLE, TRIANGLE_LEFT, CHESSBOARD, DIAMOND, DIAMOND_SMALL, SQUARE, SQUARE_SMALL, RABBIT, COW, MUSIC_CROTCHET, MUSIC_QUAVER, MUSIC_QUAVERS, PITCHFORK, XMAS, PACMAN, TARGET, TSHIRT, ROLLERSKATE, DUCK, HOUSE, TORTOISE, BUTTERFLY, STICKFIGURE, GHOST, SWORD, GIRAFFE, SKULL, SNAKE

L’instruction display.show() permet d’afficher ces images. L’exemple suivant montre les flèches des différents points cardinaux : Nord, Est, Sud, Ouest avec un intervalle de 1 seconde.

Program:

from microbit import *

for i in range(3):
    display.show(Image.ARROW_N)
    sleep(1000)
    display.show(Image.ARROW_E)
    sleep(1000)
    display.show(Image.ARROW_S)
    sleep(1000)
    display.show(Image.ARROW_W)
    sleep(1000)
► Copy to clipboard

 

Fabriquer ses propres images

Tu peux également fabriquer tes propres images de la manière suivante.

Chaque bloc de 5 caractère représente les intensités d’une des lignes de la matrice. Le premier bloc, ici, 99999 représente donc les intensités de la ligne du haut.

 





Program:

from microbit import *

img = Image('99999:90009:90009:90009:99999:')
display.show(img)
► Copy to clipboard

 

 

NOTA BENE

 

Pour piloter l’écran, on utilise l’objet display et ses méthodes set_pixel(), show(), scroll() et clear(). Il vaut la peine de parcourir la documentation de ce module dans le menu d’aide de TigerJython sous Aide | Documentation APLU | MicroPython API (en anglais pour le moment) pour connaître les différents paramètres acceptés par ces ces méthodes.

 

 

EXERCICES

 

 

1.
Développer un programme qui affiche quatre flèches diagonales les unes après les autres en utilisant les images appropriées parmi celles disponibles dans le module microbit. Indication : Nord-Est (North-East) sera NE, South-Est (SE), South-West (SW) et North-West (NW)  

2.

Utiliser une boucle imbriquée pour allumer toutes les LEDs de l’écran.

for y in range(5):
    for x in range(5):
        display.set_pixel(x, y, 9)
        sleep(400)

Éteindre toutes les LEDS 1 seconde après que la dernière LED a été allumée.

3.

Développer un programme qui va tout d’abord allumer la ligne du haut, puis la deuxième, puis la troisième et ainsi de suite à l’infini.