Un Micro:Bit est une petite carte électronique avec plein de composants :
Tous nos codes commenceront par la ligne d’import :
from microbit import *
On importe tous les sous-modules de micro:Bit !
Faire défiler du texte !
Tu peux aussi préciser la durée !
display.scroll("blabla")
display.scroll("ta str", delay=400)
Effacer ton texte !
display.clear()
Afficher des images !
Tu trouveras ici une liste d'images intégrées au Micro:Bit (Image.HAPPY, Image.HEART, Image.MEH, Image.CHESSBOARD, Image.DIAMOND, Image.TSHIRT, etc) !
display.show(Image.HAPPY)
Créer et afficher tes propres images !
Chaque LED peut avoir une valeur entre 0 et 9 pour régler la luminosité (avec 0 pour éteindre la LED).
Tu vas noter chaque ligne de 5 LEDs entre guillemets. Les deux points servent à séparer les lignes.
from microbit import * img = Image("05050:" "05050:" "05050:" "99999:" "09990") display.show(img)
Tu peux aussi créer des animations en stockant plusieurs images dans un tableau !
Ici, dans cet exemple, on a 4 images dans notre tableau 'toutes_mes_images'. Il nous suffit ensuite de les afficher et de définir une durée pour chaque image avec delay !
Si l'on veut jouer l'animation en boucle, on peut rajouter le paramètre loop=True (loop est à False par défaut).
toutes_mes_img = [img1, img2, img3, img4] display.show(toutes_mes_img, delay=200)
Autres fonctions :
# Définir le pixel à la position (x,y) display.set_pixel(x, y, valeur) # Récupère la valeur du pixel à la position (x,y) (entre 0 et 9) display.get_pixel(x, y)
# renvoie une nouvelle image en superposant les deux images image + image2
Vérifier si on appuie sur un bouton :
if button_a.is_pressed():
if button_b.is_pressed():
Tu peux aussi récupérer le nombre de fois où l'on a appuyé sur un bouton avec 'get_presses()' !
Par exemple, si tu veux afficher le nombre de fois où le bouton A a été appuyé :
display.scroll( str(button_a.get_presses()) )
Avec l'accéléromètre du Micro:Bit, tu peux récupérer 3 valeurs :
Pour chaque axe, tu peux obtenir une valeur négative, positive ou 0 si le Micro:Bit est droit !
Pour récupérer la valeur sur l'axe x par exemple :
accelerometer.get_x()
Avec l'accéléromètre, tu peux aussi détecter des mouvements ! Tu peux reconnaître les mouvements suivants : up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, shake.
Pour ce faire, on va récupérer le mouvement actuel et le comparer avec une des chaînes de caractères possibles. Par exemple, pour déclencher une action si on secoue le Micro:Bit :
if accelerometer.current_gesture() == "shake":
Tu peux aussi vérifier si on secoue le Micro:Bit de la manière suivante :
if accelerometer.was_gesture("shake"):
Ici, si le Micro:bit a été secoué, on rentre dans la condition.
Attention, il faut que tu branches un haut-parleur ou des écouteurs pour obtenir du son !
Tu peux trouver ici la liste des musiques intégrées au Micro:Bit (music.DADADADUM, music.FUNK, music.PUNCHLINE, music.POWER_UP, etc).
import music music.play(music.NYAN)
Tu peux aussi créer tes propres compositions en créant des tableaux de notes de musiques !
Chaque note est représentée par une lettre (A = La, B = Si, C = Do, etc), une octave (entre 0 et 8) et une durée.
On l'écrit de la manière suivante : note [octave] [:durée]
Tu peux utiliser la note R pour marquer un silence.
import music tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4", "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"] music.play(tune)
On commence par importer le module radio et on active la radio !
Tu peux la désactiver avec radio.off()
import radio radio.on()
On choisit ensuite un groupe de communication :
Tu peux choisir un groupe de communication entre 0 et 255. Par défaut on est sur le groupe 0 ! Il te permet de filtrer les messages que tu reçois et envois.
radio.config(group=1)
Envoyer un message :
radio.send("ton message")
Recevoir un message :
nouveau_message = radio.receive()
Tu peux ensuite vérifier la valeur du message !
if nouveau_message == 'mon mot':
Attention ! Lorsque la radio envoie des messages, ils 'se mettent à la queue' ce qui peut provoquer un décalage entre le message envoyé par un Micro:Bit et le message reçu par un autre ! Quand tu envoies plusieurs messages à la suite, ceux d'avant ne sont pas remplacés par les nouveaux.
Pour éviter ce problème, tu peux utiliser une variable pour stocker la valeur reçue et déclencher des actions, uniquement si la valeur a changé :
mon_ancienne_variable = -1 while True: ma_variable = pin0.read_analog() if mon_ancienne_variable != ma_variable : radio.send(str(ma_variable)) mon_ancienne_variable = ma_variable
Ici, par exemple, on envoie la valeur d'un potentiomètre. Pour ne l'envoyer que lorsque la valeur a changé, on utilise une autre variable. Au début, on donne à cette autre variable une valeur qui ne peut pas être égale à celle du potentiomètre et lorsque l'on reçoit une nouvelle valeur, on lui attribue !
Attention ! Si tu n'envoies aucun message, la radio envoie quand même un message : le message 'None' !!
Tu peux déclencher des actions si on reçoit un message autre que le message 'None' de la manière suivante :
message = radio.receive() if message is not None:
Tu peux gérer plein d'autres paramètres avec le module radio ! Regarde cette page pour en savoir plus.
Autres fonctions utiles
Faire une pause !
sleep(1000) # 1000 = 1 seconde
Récupérer le nombre de ms depuis que le Micro:Bit est allumé !
running_time()
Les boucles
Tu peux créer des boucles For comme tu sais le faire en Python !
Tu peux aussi créer une boucle infinie (= répéter indéfiniment)
while True:
Les conditions
Tu peux créer tes conditions comme tu sais le faire en Python :
if ta_condition : # code elif ton_autre_condition : # code else: # code
Tips : Tu peux voir une liste de tous les modules en tapant help('modules')
dans la partie REPL de l’éditeur Mu!
Pour plus de détails, tu peux aller voir la doc officielle ICI !