MicroPython
Introduction
Vous trouverez ici un récapitulatif des principales fonctions permettant de programmer le micro:bit en MicroPython. Ainsi, vous pourrez vous y référer, sans avoir à parcourir tout le livre.
Structure d’un programme
Bibliothèques (ou modules)
Python et MicroPython sont des langages modulaires. Au début du programme, il faut appeler le (ou les) module(s) dont vous aurez besoin.
#Appel de la bibliothèque microbit
from microbit import *
# Exemples d'autres bibliothèques
# Radio
import radio
# Nombres aléatoires
import random
# Musique
import music
# LED Neopixel
import neopixel
Indentation
while True:
# En MicroPython, l'indentation est obligatoire
Commentaires
# Une ligne de code commençant par # (dièse) est un commentaire
# Les commentaires sont ignorés par le programme
Caractères spéciaux
# Les caractères spéciaux ou accentués sont seulement
# acceptés dans les commentaires
Casse
# Attention à la casse "Microbit" et "MicroBit"
# sont des mots complètement différents.
Fonctions
# Les structures de contrôle, les boucles et les fonctions
# personnalisées comportent 2 points ":" à la fin de la
# 1re ligne (avant indentation)
1. Données
a. Variables
Les variables contiennent généralement du texte (chaînes de caractères) ou des nombres, mais il existe d’autres types de données moins courantes (booléenne, vide...). Pour créer une variable, il suffit de la déclarer. Le langage MicroPython détermine automatiquement le type de donnée.
# Nombre entier (pas de guillemets)
variable1 = 2
# Nombre à virgule flottante
variable2 = 1.0
# Chaîne de caractères (guillemets)
variable3 = "Hello World"
variable4 = "123"
# Chaîne de caractères (apostrophes)
variable5 = 'Salut les amis'
# Booléenne (Attention à la majuscule)
variable6 = True
variable7 = False
b. Portée des variables
La portée d’une variable est la partie du programme où elle est reconnue. Cela dépend de l’endroit où elle a été créée. Si c’est à l’intérieur d’une fonction, la variable est locale.
Pour créer une variable globale, il faut la déclarer...
micro:bit
1. Matrice de LED
a. display.show
Affiche une chaîne de caractères, un nombre, une image ou une animation.
display.show("A")
Arguments
delay=400 (par défaut) : délai d’affichage entre les caractères (en millisecondes).
wait=True (par défaut) : la fonction bloque l’exécution du programme jusqu’à la fin de l’animation, sinon (False) l’animation se déroule en arrière-plan.
loop=False (par défaut) : l’animation est jouée une seule fois, sinon (True) elle répétée indéfiniment.
clear=False (par défaut) : à la fin de l’animation, le dernier caractère n’est pas effacé, sinon (True) il est effacé.
Vous n’êtes pas obligé de tous les utiliser, mais les arguments wait, loop et clear doivent être spécifiés. Par contre, vous pouvez tout à fait écrire :
display.show("Hello", delay=400)
ou
display.show("Hello", 400)
Afficher une image prédéfinie:
display.show(Image.HEART)
Liste des images disponibles :
Image.ANGRY |
Image.CLOCK10 |
Image.PITCHFORK |
Image.ARROW_E |
Image.CLOCK11 |
Image.RABBIT |
Image.ARROW_N |
Image.CLOCK12 |
Image.ROLLERSKATE |
Image.ARROW_NE |
Image.CONFUSED |
Image.SAD |
Image.ARROW_NW |
Image.COW |
Image.SILLY |
Image.ARROW_S |
Image.DIAMOND |
Image.SKULL |
Image.ARROW_SE |
Image.DIAMOND_SMALL |
Image.SMILE |
Image.ARROW_SW |
Image.DUCK |
Image.SNAKE |
Image.ARROW_W |
Image.FABULOUS |
Image.SQUARE |
Image.ASLEEP |
Image.GHOST |
Image.SQUARE_SMALL |
Image.BUTTERFLY |
Image.GIRAFFE |
Image.STICKFIGURE |
Image.CHESSBOARD |
Image.HAPPY |
Image.SURPRISED |
Image.CLOCK1 |
Image.HEART |
Image.SWORD |
Image.CLOCK2 |
Image.HEART_SMALL |
Image.TARGET |
Image.CLOCK3 |
Image.HOUSE |
Image.TORTOISE |
Image.CLOCK4 |
Image.MEH |
Image.TRIANGLE |
Image.CLOCK5 |
Image.MUSIC_CROTCHET |
Image.TRIANGLE_LEFT |
Image.CLOCK6 |
Image.MUSIC_QUAVER |
Image.TSHIRT |
Image.CLOCK7 |
Image.MUSIC_QUAVERS |
Image.UMBRELLA |
Image.CLOCK8 |
Image.NO |
Image.XMAS |
Image.CLOCK9 |
Image.PACMAN |
Image.YES |
Dans une image personnalisée, l’intensité lumineuse des LED est définie de 0 à 9.
fusee = Image("00900:"
"09990:"
"09990:"
"99999:" ...