Micro:bit
Afficher
La matrice
La micro:bit dispose d'une matrice de 25 leds. L'intensité d'une led est un entier compris entre 0 et 9 : 0 pour éteinte et 9 pour la luminosité maximale.
Une led de la matrice est repéré par des coordonnées (x, y)
.
- L'abscisse
x
correspond au numéro de la colonne : 0, 1, 2, 3 ou 4 - L'ordonnée
y
correspond au numéro de la ligne : 0, 1, 2, 3 ou 4.
Instructions | Effets |
---|---|
display.set_pixel(x, y, i) |
allume la led de coordonnées (x, y) avec l'intensité i |
display.get_pixel(x, y) |
renvoie le niveau de luminosité du pixel de coordonnées (x, y) |
display.clear() |
éteint les 25 leds |
sleep(1000) |
fait une pause de 1000 millisecondes soit 2 secondes |
Exemple
from microbit import *
for x in range(5):
display.set_pixel(x, 0, 9)
sleep(500)
Affichage
Instructions | Effets |
---|---|
display.scroll("un message") |
fait défiler de droite à gauche les caractères du texte entre guillemets |
display.show(Image.HEART) |
affiche l'image d'un cœur |
display.show("un message") |
affiche un à un les caractères du texte entre guillemets |
Exemple
from microbit import *
while True:
display.scroll('Hello, World!')
display.show(Image.HEART)
sleep(2000)
Voici la référence pour les icônes images disponibles.
On peut définir ses propres images de la façon suivantes en indiquant l'intensité des leds.
Exemple
from microbit import *
mon_image = Image('00300:'
'03630:'
'36963:'
'03630:'
'00300')
display.show(mon_image)
Boutons
Instructions | Effets |
---|---|
button_a.is_pressed() |
Vaut True si le bouton A est appuyé, False sinon. |
button_a.was_pressed() |
Vaut True si le bouton A est appuyé, False sinon |
button_a.get_presses() |
Renvoie le nombre d'appuis sur le bouton A et remet à zéro le compteur d'appuis |
Remarque
button_a.is_pressed()
permet de savoir si un bouton est pressé au moment où la méthode est invoquée et
button_a.was_pressed()
permet de savoir si un bouton a été pressé pendant que le programme était occupé à une autre tâche.
Exemple
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
if button_b.is_pressed():
display.show(Image.SAD)
Accéléromètre
La carte micro:bit comporte un accéléromètre, désigné par accelerometer
Les gestes
Instructions | Effets |
---|---|
accelerometer.current_gesture() |
Renvoie le nom du geste actuel |
accelerometer.is_gesture("nom") |
Vaut True si "nom" correspond au geste actuel, False sinon. |
accelerometer.was_gesture("nom") |
Vaut True si le geste "nom" a été activé depuis le dernier appel, False sinon. |
Les différents gestes détectés sont :
"shake" : secouer
Exemple
from microbit import *
while True:
if accelerometer.was_gesture('shake'):
display.show(Image.SILLY)
sleep(2000)
if accelerometer.was_gesture('face up'):
display.show(Image.HAPPY)
if accelerometer.was_gesture('left'):
display.show('<')
if accelerometer.was_gesture('right'):
display.show('>')
Les données
L'accéléromètre permet de connaître l'orientation de la carte selon 3 axes :
- x : l'inclinaison de gauche à droite
- y : l'inclinaison d'avant en arrière
- z : le mouvement haut et bas
Instructions | Effets |
---|---|
accelerometer.get_values() |
affiche un triplet (tuple) des 3 mesures selon x, y, et z. |
accelerometer.get_x() |
renvoie une valeur d'inclinaison gauche - droite |
accelerometer.get_y() |
renvoie une valeur d'inclinaison avant - arrière |
accelerometer.get_z() |
renvoie la mesure de l'accélération selon l'axe z |
Exemple
from microbit import *
while True:
reading = accelerometer.get_x()
if reading > 20:
display.show(">")
elif reading < -20:
display.show("<")
else:
display.show("-")
Température
La carte micro:bit intègre un capteur de température. Il n'est pas très précis dans la mesure où il est soudé sur la carte elle-même, à proximité du processeur ; il est donc perturbé par l'échauffement provoqué par le fonctionnement de la carte. Le phénomène est encore amplifié lorsque la carte est insérée dans un étui de protection.
Instructions | Effets |
---|---|
temperature() |
renvoie la valeur de la température |
Exemple
from microbit import *
while True:
if button_a.was_pressed():
display.scroll(temperature())
Détecteur de Lumière
L'affichage LED peut également détecter la lumière, agissant comme une entrée de capteur ainsi que comme une sortie.
Instructions | Effets |
---|---|
display.read_light_level() |
renvoie une valeur comprise entre 0 et 255 : plus la valeur est élevée, plus l'environnement est lumineux. |
Exemple
from microbit import *
while True:
if display.read_light_level() < 100:
display.show(Image.HEART)
else:
display.clear()
sleep(2000)
Compas
Votre micro:bit possède un capteur d'entrée pour mesurer les champs magnétiques, que vous pouvez utiliser comme boussole.
Instructions | Effets |
---|---|
compass.calibrate() |
calibre la boussole |
compass.compass.headingheading() |
renvoie un nombre compris entre 0 et 359 degrés et renvoie -1003 si la boussole n'est pas prête |
Exemple
from microbit import *
compass.calibrate()
while True:
if button_a.was_pressed():
display.scroll(str(compass.heading()))
Radio
La fonctionnalité radio permet d'échanger des messages avec une ou plusieurs cartes micro:bit.
Il faut au moins deux cartes et chacune comporte un programme (qui peut être commun si les rôles sont symétriques).
Il faut utiliser le module radio
.
On peut configurer la radio en indiquent le numéro d'un groupe. Toutes les cartes dans un même groupes peuvent communiquer. Les numéros de groupe vont de 0 à 255.
Instructions | Effet |
---|---|
radio.on() |
Active la fonctionnalité radio |
radio.off() |
Désactive la fonctionnalité radio |
radio.send(message) |
Envoie un message de type chaîne de caractères |
radio.receive() |
Prend pour valeur la chaîne de caractères reçue |
radio.config(group=3) |
permet de communiquer uniquement avec une carte du groupe 3 (par exemple) |
Exemple 1
from microbit import *
import radio
radio.config(group=1)
radio.on()
while True:
if button_a.was_pressed():
radio.send("A")
display.show(Image.HAPPY)
sleep(2000)
display.clear()
from microbit import *
import radio
radio.config(group=1)
radio.on()
while True:
message = radio.receive()
if message == "A":
display.show(Image.HAPPY)
sleep(2000)
display.clear()
Exemple 2
from microbit import *
import radio
radio.config(group=2)
radio.on()
while True:
temp = temperature()
radio.send(str(temp))
display.scroll(temp)
sleep(1000)
from microbit import *
import radio
radio.config(group=2)
radio.on()
while True:
message = radio.receive()
if message != None:
tmp = int(message)
if tmp >10:
display.show(Image.HAPPY)
sleep(1000)
display.clear()
Logo tactile
Le logo doré de la micro:bit V2 sur le devant fonctionne comme un capteur tactile.
Instructions | Effets |
---|---|
pin_logo.is_touched() |
Vaut True si le logo est touché, False sinon. |
compass.compass.headingheading() |
renvoie un nombre compris entre 0 et 359 degrés et renvoie -1003 si la boussole n'est pas prête |
Exemple
from microbit import *
while True:
if pin_logo.is_touched():
display.show(Image.SURPRISED)
Son
Musique
Pour jouer une musique avec la micro:bit V2, il faut utiliser le module music
.
Instructions | Effets |
---|---|
music.play(music.PRELUDE) |
joue la passée en paramètre. |
music.play(liste_notes) |
joue la musique composée de la liste de notes |
Voici la référence pour les musiques disponibles.
Vous y trouverez aussi les instructions pour écrire une liste de notes.
Exemple
from microbit import *
import music
liste_notes = ["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"]
while True:
if button_a.was_pressed():
music.play(music.PRELUDE)
sleep(1000)
music.play(liste_notes)
Dire un phrase
Pour faire parler la micro:bit V2, il faut utiliser le module speech
.
Instructions | Effets |
---|---|
speech.say("Hello") |
dit le message (en anglais) écrit entre guillemets |
Exemple
from microbit import *
import speech
speech.say('Hello world')
Sons expressifs
La micro:bit V2 peut jouer des sons expressifs comme des rires, des bâillements et vous saluer avec un "bonjour".
il faut utiliser le module audio
.
Instructions | Effets |
---|---|
audio.play(Sound.HAPPY) |
émet le son expressif indiqué |
Les sons expressifs possibles sont : GIGGLE, HAPPY, HELLO, MYSTERIOUS, SAD, SLIDE, SOARING, SPRING, TWINKLE, YAWN.
Exemple
from microbit import *
import audio
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
audio.play(Sound.HAPPY)
if button_b.is_pressed():
display.show(Image.SAD)
audio.play(Sound.SAD)
if pin_logo.is_touched():
display.show(Image.SURPRISED)
audio.play(Sound.SPRING)
Micro
La micro:bit V2 possède un microphone intégré qui peut détecter les événements forts et silencieux, et également mesurer la force d'un son.
Instructions | Effets |
---|---|
microphone.current_event() |
vaut SoundEvent.LOUD ou SoundEvent.QUIET selon l'intensité du bruit |
microphone.set_threshold(SoundEvent.QUIET, 150) |
définit le seuil pour les événements silencieux en utilisant des nombres de 0 à 255, 0 étant le plus silencieux et 255 le plus bruyant. |
microphone.set_threshold(SoundEvent.LOUD, 200) |
définit le seuil pour les événements bruyants en utilisant des nombres de 0 à 255, 0 étant le plus silencieux et 255 le plus bruyant. |
microphone.was_event(SoundEvent.QUIET) |
Vaut True si le bruit détecté a été silencieux, False sinon. |
microphone.was_event(SoundEvent.LOUD) |
Vaut True si le bruit détecté a été bruyant , False sinon. |
microphone.sound_level() |
renvoie une mesure (0 à 255) du volume des sons. |
Exemple 1
from microbit import *
while True:
if microphone.current_event() == SoundEvent.LOUD:
display.show(Image.HEART)
sleep(200)
if microphone.current_event() == SoundEvent.QUIET:
display.show(Image.HEART_SMALL)
Exemple 2
from microbit import *
microphone.set_threshold(SoundEvent.LOUD, 150)
start = 0
while True:
if microphone.was_event(SoundEvent.LOUD):
start = running_time()
display.show(Image.TARGET)
if microphone.was_event(SoundEvent.QUIET):
if start > 0:
time = running_time() - start
start = 0
display.clear()
sleep(100)
display.scroll(time / 1000)
Exemple 3
from microbit import *
lights = Image("11111:"
"11111:"
"11111:"
"11111:"
"11111")
while True:
display.show(lights * microphone.sound_level())
D'après https://microbit.org/get-started/user-guide/python/.