La BBC micro:bit est une carte à microcontrôleur.
Elle est conçue en 2015 au Royaume-Uni pour développer l'apprentissage de l'algorithmique et de la programmation.
Pourvu de capteurs et d'actionneurs, ce petit ordinateur possède la dernière technologie qui équipe les appareils modernes : téléphones mobiles, réfrigérateurs, montres intelligentes, alarmes antivol, robots, etc...
Ainsi, il s'apparente à ce que l'on nomme l'Internet des objets : Internet of Things, abrégé IoT.
CONNECT
. Envoyer vers micro:bit
..py
sur le PC dans votre répertoire de travail.scroll
par show
. Transférer à nouveau le programme à la carte.from microbit import *
while True:
display.show(Image.HEART)
sleep(1000)
display.scroll('Hello')
display.show(Image.SMILE)
(pour afficher le smiley par exemple) Image.HEART
Image.HEART_SMALL
Image.HAPPY
Image.SMILE
Image.SAD
Image.CONFUSED
Image.ANGRY
Image.ASLEEP
Image.SURPRISED
Image.SILLY
Image.FABULOUS
Image.MEH
Image.YES
Image.NO
Image.CLOCK12, Image.CLOCK11, Image.CLOCK10, Image.CLOCK9, Image.CLOCK8, Image.CLOCK7, Image.CLOCK6, Image.CLOCK5, Image.CLOCK4, Image.CLOCK3, Image.CLOCK2, Image.CLOCK1
Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E, Image.ARROW_SE, Image.ARROW_S, Image.ARROW_SW, Image.ARROW_W, Image.ARROW_NW
Image.TRIANGLE
Image.TRIANGLE_LEFT
Image.CHESSBOARD
Image.DIAMOND
Image.DIAMOND_SMALL
Image.SQUARE
Image.SQUARE_SMALL
Image.RABBIT
Image.COW
Image.MUSIC_CROTCHET
Image.MUSIC_QUAVER
Image.MUSIC_QUAVERS
Image.PITCHFORK
Image.XMAS
Image.PACMAN
Image.TARGET
Image.TSHIRT
Image.ROLLERSKATE
Image.DUCK
Image.HOUSE
Image.TORTOISE
Image.BUTTERFLY
Image.STICKFIGURE
Image.GHOST
Image.SWORD
Image.GIRAFFE
Image.SKULL
Image.UMBRELLA
Image.SNAKE
sleep()
permet de faire une pause. Le temps de pause en millisecondes (millièmes de secondes) s'insère entre les parenthèses.
from microbit import *
bateau = Image("05050:"
"05050:"
"05050:"
"99999:"
"09990")
display.show(bateau)
:
et entourée de "
(guillemets doubles).display.set_pixel(x,y,l)
il est possible de régler la luminosité des pixels de l'affichage individuellement de 0 (désactivé) à 9 (luminosité maximale). x et y varient de 0 à 4.display.set_pixel(1, 4, 9)
allume la 2ème LED de la 5ème ligne. display.set_pixel(x,y,l)
et sleep(1000)
, faire clignoter le haut des mâts du bateau.button_a.is_pressed()
renvoie True
si le bouton est effectivement appuyé.button_a.was_pressed()
renvoie True
si le bouton a été appuyé.button_a.get_pressed()
renvoie le nombre de fois que le bouton a été appuyé.Écrire un script qui affiche un smiley qui sourit 😊 lorsqu'on appuie sur le bouton A et un smiley triste 🙁 lorsqu'on appuie sur le bouton B.
Aide : Dans une une structure de boucle infinie (while True
), inclure une structure conditionnelle (if
appui bouton A -> action 😊 elif
appui bouton B -> action 🙁).
À partir des parties précédentes, réaliser un programme qui simule un lancer de dé à 6 faces. Le programme devra choisir un chiffre entre 1 et 6 au hasard (on utilisera la fonction random
qu'il faudra importer via l'instruction import random
).
Un bouton servira à effectuer le lancer de dé tandis que l'autre permettra d'effacer l'écran.
display.clear()
permet d'éteindre les pixels de l'écran.
Améliorations possibles :
display.read_light_level()
retourne un entier compris entre 0
et 255
représentant le niveau de lumière. Compléter le programme ci-dessous pour qu'il affiche une image de lune si on baisse la luminosité (en recouvrant la carte avec sa main par exemple) et un soleil sinon.
from microbit import *
soleil = Image("90909:"
"09990:"
"99999:"
"09990:"
"90909:")
lune = Image("00999:"
"09990:"
"09900:"
"09990:"
"00999:")
while True:
if display.read_light_level()>"Compléter ici":
display.show(soleil)
else:
display.show("Compléter ici")
sleep(10)
Aller plus loin : Créer un programme qui allume d'autant plus fort les LEDS que la luminosité est faible pour simuler un lampadaire intelligent tels qu'on les trouve dans les rues de Toulouse. Le tester avec la LED d'un téléphone portable par exemple.
temperature()
renvoie la température de la carte micro:bit en degrés Celsius. display.scroll()
.X
: l'inclinaison de gauche à droite.Y
: l'inclinaison d'avant en arrière.Z
: le mouvement haut et bas.accelerometer.get_x()
permet de détecter un mouvement de gauche à droite en renvoyant un nombre compris entre -1023
et 1023
; 0
étant la position «d'équilibre». from microbit import *
while True:
abscisse = accelerometer.get_x()
if abscisse > 500:
display.show(Image.ARROW_E)
elif abscisse < -500:
display.show(Image.ARROW_W)
else:
display.show("-")
La boussole détecte le champ magnétique de la Terre, nous permettant de savoir quelle direction la micro:bit indique. La boussole doit être étalonnée avant de pouvoir être utilisée. Pour cela, on utilise compass.calibrate()
qui exécute un petit jeu :
"Tilt to fill screen"
. La fonction compass.heading()
donne le cap de la boussole sous la forme d'un entier compris entre 0 et 360, représentant l'angle en degrés, dans le sens des aiguilles d'une montre, avec le nord égal à 0.
from microbit import *
#Calibrage boussole
compass.calibrate()
#boucle
while True:
angle = compass.heading()
if 315 <= angle or angle <= 45:
display.show("N")
elif 45 < angle and angle <= 135:
display.show("E")
# compléter les autres cas ici
#attente d'une seconde
sleep(1000)
break
Le micro:bit V2 est doté d’un microphone intégré.
Situé à l’arrière de la carte micro:bit, il est muni d’un trou à l’avant, à droite du logo tactile, permettant l’entrée du son. Il existe aussi une LED de microphone sur la face avant qui s’allume lorsque le microphone est utilisé.
from microbit import *
#boucle
while True:
if microphone.current_event() == SoundEvent.LOUD:
display.show(Image.HAPPY)
elif microphone.current_event() == SoundEvent.QUIET:
display.show(Image.ASLEEP)
# compléter le programme ici
microphone.sound_level
Le micro:bit peut lire des mélodies et peut même parler.
Le micro:bit V2 dispose d’un haut-parleur. Pour utiliser les fonctionnaliéts musicales, vous devez importer de la musique peu de temps après le démarrage de votre programme.
from microbit import *
import music
import speech
speech.say('Are you ready for music ?')
sleep(500)
music.play(music.ENTERTAINER)
music.play(["C:durée"])
. Chaque note est séparée par une virgule.
Votre programme devra faire interagir l'affichage avec la grandeur captée à votre convenance.
Écrire préalablement votre cahier des charges et le faire valider par l'enseignant.
<pre>
pour écrire le code python sur la page ; <a href="dossier/programme.py" download>
;