Exercice : Animation

Pour créer une animation avec MicroPython, il suffit d'utiliser une liste d'images.

On peut dire à MicroPython d'animer une liste d'images.

Par chance nous avons deux listes d'images déjà prêtes.

Elles s'appellent Image.ALL_CLOCKS et Image.ALL_ARROWS :

Dans le logiciel Mu, écrire le programme ci-dessous puis flasher le programme sur la carte.

1
from microbit import *
2
3
display.show(Image.ALL_CLOCKS, loop=True, delay=100)

Question

Expliquer comment l'animation est construite.

Indice

Comme avec une seule image, on utilise display.show pour la montrer sur l'affichage du matériel.

Mais ici on indique à MicroPython d'utiliser Image.ALL_CLOCKS et il comprend qu'il doit montrer chaque image de la liste, l'une après l'autre.

On indique aussi à MicroPython de parcourir la liste d'images en boucle (pour que l'animation se répète indéfiniment) en écrivant loop=True.

De plus, nous lui indiquons que nous voulons un temps de 100 millisecondes entre chaque image avec l'argument delay=100.

Question

Modifier le code pour animer la liste Image.ALL_ARROWS, une seule fois avec un temps d'animation de 1 seconde entre chaque image.

Indice

Le contraire de True est False bien que la valeur par défaut de loop soit False

Animation à partir de plusieurs images

Dans le logiciel Mu, écrire le programme ci-dessous puis flasher le programme sur la carte.

1
from microbit import *
2
3
bateau1 = Image("05050:"
4
              "05050:"
5
              "05050:"
6
              "99999:"
7
              "09990")
8
9
bateau2 = Image("00000:"
10
              "05050:"
11
              "05050:"
12
              "05050:"
13
              "99999")
14
15
bateau3 = Image("00000:"
16
              "00000:"
17
              "05050:"
18
              "05050:"
19
              "05050")
20
21
bateau4 = Image("00000:"
22
              "00000:"
23
              "00000:"
24
              "05050:"
25
              "05050")
26
27
bateau5 = Image("00000:"
28
              "00000:"
29
              "00000:"
30
              "00000:"
31
              "05050")
32
33
bateau6 = Image("00000:"
34
              "00000:"
35
              "00000:"
36
              "00000:"
37
              "00000")
38
39
tous_les_bateaux = [bateau1,bateau2,bateau3,bateau4,bateau5,bateau6]
40
display.show(tous_les_bateaux, delay=200)

Question

Expliquer comment l'animation est construite.

Indice

Voici comment le code marche:

  • Il faut créer six images de bateau de la même façon que dans la méthode vue précédemment.

  • Ensuite, il faut créer une liste tous_les_bateaux qui contient toutes les images.

  • Enfin, on utilise display.show pour animer la liste avec un délai de 200 millisecondes.

  • Puisque on n'a pas déclaré loop=True, le bateau ne coulera qu'une fois.

Animation du symbole "#"

On désire réaliser l'animation du symbole "#".

L'animation commence par un écran noir puis le symbole apparaît progressivement de la gauche vers la droite jusqu'à disparition complète.

Question

Après avoir déterminer le nombre d'images nécessaires et défini les images, écrire le programme qui permet de réaliser l'animation demandée.