5 – Analyser et modéliser le traitement de l’information
« Fonction Traiter »
La carte Microbit et le Python
La carte micro:bit est un micro-controleur à base processeur ARM conçu par la BBC pour
l'éducation à l’informatique au Royaume-Uni.
Elle contient 25 LEDs rouges, 2 boutons, un capteur de température, un capteur de
luminosité, un capteur d’inclinaison (accéléromètre), une boussole et surtout une connexion
radio permettant de faire dialoguer les cartes entre elles ou avec un téléphone !
Pour la programmer cette carte en python nous utiliserons le logiciel « Mu » sur le réseau
La carte connectée en USB est vue comme une simple clé USB.
La commande « Flasher » permet d’envoyer le code directement dans la carte.
Le programme se lance automatiquement. Le bouton à l’arrière est le bouton reset pour relancer le programme.
Pour connaître la syntaxe d’une fonction taper simplement le nom de cette
fonction dans Google ou Qwant en rajoutant le terme « microbit », vous tomberez
sur l’aide en ligne de microbit ou servez-vous du glossaire de syntaxe python du
chapitre 03.
Connecter en USB la carte et vérifier qu’elle est bien reconnue.
Sinon installer le driver mbedWinSerial_16466.exe qui se trouve dans le répertoire
« Appli » (à faire une seule fois)
A
Accttiivviittééss ssiim
mpplleess :: jjoouueerr aavveecc lleess ppiixxeellss
Pour chaque code vous expliquerez ce que fait le code et ferez quelques modifications simples .
Usez et abusez du Ctrl C (copier) et Ctrl V (coller) pour recopier votre code !
Modifier « bonjour » en « au revoir »
Simple non ?
Modifier la valeur 500. A quoi sert-elle ? 500 quoi ?
Rechercher dans la documentation les autres images
disponibles « display images microbit » dans Google
Faites afficher une icone HAPPY et SAD
Modifier ce code pour que deux icônes « diamant » clignotent
et ne s’arrêtent jamais :
Utiliser la fonction while True: ne pas oublier l’indentation pour
les lignes sous le while (4 espaces ou tab).
La fonction while True : Image fait une boucle infinie (tant que vrai) et répète ce qui est indenté dessous.
Que fait ce code ?
Expliquer que fait la ligne 2. x varie entre quelles valeurs ?
Modifier le 0 de la ligne 3 en 1, 2, 3 ou 4 qu’est passa ?
Modifier le 9 en 3 par exemple, quelle modification apparait ?
Faire afficher les led en diagonal
Un peu plus compliqué : Modifiez ce programme afin qu'il allume successivement tous les pixels de l'écran
On pourra utiliser 2 boucles for imbriquées l'une dans l'autre.
Il faut une deuxième variable : y (pensez à l’indentation double.= 2 tab)
Les deux premières valeurs de display.set_pixels(x,y,luminosité) sont l'abscisse et l'ordonnée en partant du pixel haut à
gauche (0,0) le dernier paramètre est la luminosité du point entre 0 et 9 : 0 = éteint et 9 = luminosité max.
Expliquer ce code. Pourquoi range(100) ?
Modifiez ce programme afin que la luminosité soit un nombre aléatoire
entre 0 et 9.
Modifier ce code pour l’allumage des pixels ne s’arrête jamais et
remplisse tout l’écran ou alors fasse un effet « pluie qui tombe »
Utiliser encore fonction while True : à la place du for
La fonction [Link]() efface tout l’écran.
A
Accttiivviittééss ssiim
mpplleess :: jjoouueerr aavveecc lleess bboouuttoonnss
Que fait ce code ?
Attention c’est button en anglais et non bouton .
Remplacer button_a par button_b
Simple non ?
Un tout petit peu plus compliqué …
Que fait ce code ?
Faire un compteur / décompteur suivant que l’on appuie sur le
bouton a ou b
Modifier le code pour faire un compteur qui se remet à zéro
lorsqu’on appuie sur les 2 boutons en même temps.
Utiliser pour cela la commande AND dans le if
La ligne 6 consiste à faire une incrémentation : c'est-à-dire augmenter de 1 la valeur dans compteur.
Noter la nuance button_a.is_pressed et button_a.was_pressed
True avec majuscule s’appelle un booléen . Cela veut dire « vrai » le contraire c’est False ou not(True)
A mpplleess :: jjoouueerr aavveecc ll’’aaccccéélléérroom
Accttiivviittééss ssiim mèèttrree
L’accéléromètre mesure le mouvement suivant 3 axes : vous avez le même dans votre téléphone
x = la gauche et la droite (roulis) comme sur un bateau
y = l’avant et l’arrière (tangage)
z = le mouvement vers le haut ou vers le bas
Il renvoie une valeur comprise entre -1000 et 1000 suivant l’inclinaison
Chercher le composant sur la carte
Que fait ce code ?
Faire un programme qui affiche « G » ou « D » ou « H » suivant
que la carte est penchée à gauche à droite ou reste horizontale
Utiliser pour cela les fonctions if elif else
Que fait ce code ?
A quoi sert la ligne 10 ? Que se passet-il si on ne l’a met pas ?
Le # permet de mettre en commentaire une ligne qui ne sera
donc pas exécutée ou pour commenter du code.
Faire un programme qui déplace un pixel allumé dans les deux
directions x et y et qui pourrait servir de niveau.
Autres micro-projets : Dés, Boussole, Bandeau de LED, Communication radio, Snake, Robot télécommandé…
Des éditeurs et simulateurs de cartes Microbit
[Link] (bloc et texte)
[Link] (texte)
[Link] (blocs)
La documentation est ici : [Link]