MISE EN OEUVRE DE LA CARTE MICRO:BIT
Partie 2: mise en oeuvre
Pour programmer une carte Micro:bit, on peut utiliser un éditeur en ligne comme le site web: https://python.microbit.org/v/3
Ce site web se présente avec trois zones ( voir la capture ci-dessous):
- A gauche la documentation des différentes fonctionnalités avec des exemples de code en python.
- Au centre la zone de code où vous écrivez le programme (script python) que devra exécuter le processeur de la carte.
- A droite un simulateur qui permet de tester le programme avant de l'envoyer sur la carte:
Exercice 2.1: prise en main:
La structure d'un programme python pour microcontrôleur est différente de celle d'un programme python pour ordinateur, une des différences est que le microcontrôleur n'a qu'un seul programme à exécuter en boucle, le système d'exploitation basé sur micropython donne la main au programme principal et ne la reprend plus ( sauf si une exception est déclenchée ou s'il détecte une interruption matérielle).
Information (savoir abstraire): il est inutile de comprendre comment le système d'exploitation micropython charge le programme principal, vous devez juste savoir écrire un programme principal en python ce qui est décrit ci-dessous.
Le script python ( programme principal ) se compose d'une boucle infinie "while True:" ( condition toujours vraie) qui s'exécute tant que le microcontrôleur est sous tension, toutes les instructions du programme principal sont dans cette boucle.
L'accès aux fonctionnalités de la carte sont disponibles dans un module pré-compilé appelé microbit dont on importera tout le contenu dans notre programme principal avec la directive " from microbit import * ".
Ainsi voici un programme minimaliste qui allume une des diodes luminescentes de la matrice de leds de la carte:
from microbit import *
while True:
# allumer la diode en ligne 0 et colonne 0 de la matrice avec l'intensité max (valeur 9)
display.set_pixel(0,0,9)
- Saisir ce programme et le tester avec le simulateur:
Résultat:
Exercice 2.2: un clignotant
la réalisation d'un clignotant consiste à allumer la diode, attendre un certain temps ( temporiser) , éteindre la diode, attendre un certain temps puis reboucler ce qui fait repasser à l'instruction allumer la diode et ainsi de suite.
La fonction sleep(...) demande à l'interpréteur micropython de temporiser le temps passé en millisecondes entre les parenthèses de la fonction sleep avant de passer à l'instruction suivante, sleep(500) pausera 500 ms soit 0,5 s.
# Importation de l'ensemble des fonctionnalités
from microbit import *
# répéter en boucle
while True:
# allumer la diode ligne 0 colonne 0
display.set_pixel(0,0,9)
# attendre 500 ms ( 0.5 s)
sleep(500)
# éteindre la diode ligne 0 colonne 0
display.set_pixel(0,0,0)
# attendre 500 ms ( 0.5 s) avant de reboucler
sleep(500)
- Saisir ce programme et le tester avec le simulateur:
- Vous allez maintenant transférer ce programme sur la carte et le tester :
a) La carte étant raccordée en USB au PC et prête ( un lecteur MICROBIT doit apparaître parmi les disques de stockage, sur la capture ci-dessous il est entouré en rouge, le votre ne s’appellera pas forcément D:)
b) Cliquer sur le bouton " Send to micro:bit" en dessous du code de la partie centrale:
c) Selon le navigateur, vous aurez un message qui vous prévient que le navigateur ne peut pas faire du WebUSB et qu'il va devoir télécharger votre programme dans le dossier téléchargement du PC, cliquer sur Close:
d) Le navigateur vous demande de donner un nom au programme, appeler le programme cligno puis cliquer sur "Confirm and save":
e) Une fenêtre apparaît avec une vidéo qui vous montre qu'il faut glisser-déposer le programme qui est dans téléchargement ( download en Anglais) vers le lecteur de la carte micro:bit, faire la manipulation:
e) Le programme se téléverse dans la carte, ce qui provoque un reset puis l'exécution du programme, la led de la carte doit clignoter.
Exercice 2.3: utilisation de l'éditeur Thonny
Pour programmer une carte micro:bit on peut également utiliser un éditeur python adapté, c'est le cas de Thonny.
a) Lancer Thonny que vous trouverez parmi les logiciels par disciplines dans la rubrique "logiciels SNT-NSI"
b) Ouvrir son menu Options du menu Outils:
c) Cliquer sur l'onglet Interpréteur, choisir l'interpréteur MicroPython (BBC micro:bit), laisser la détection automatique du Port de la carte, cliquer sur OK:
Au niveau de la console, vous devriez voir apparaître la console pour MicroPython; si le logiciel affiche " Device Busy", saisir la suite de touches clavier "ctrl + c" pour déclencher une interruption clavier ce qui interrompt l'exécution du programme en cours.
Au final vous aurez la console pour MicroPython :
Vous pouvez saisir des commandes interactives avec le prompt >>> , ci-dessous, on commande l'allumage de la led ( en ligne 0 et colonne
0 avec son intensité maximale 9) après avoir importer les fonctionnalités de microbit.
On peut aussi soumettre des scripts à Micropython avec Thonny, saisir votre programme du clignotant dans la zone de script puis cliquer sur la flèche verte pour provoquer son téléversement et son exécution:
la console affiche:
Le programme tournera en boucle jusqu'à ce qu'une interruption soit déclenchée, cliquer sur le bouton stop pour déclencher une interruption et l'arrêt de l'exécution du programme:
La console affiche la détection de l'interruption:
Exercice 2.4: commande des ports d'usage général (GPIO)
On peut utiliser la carte pour interagir avec des composants qui ne sont pas sur la carte. Avec les ports GPIO vous pouvez détecter des états en provenance de capteurs ou de boutons , commander des éléments comme des voyants, des afficheurs, des buzzers ( etc..).
Attention ! ne jamais raccorder des composants si la carte est branchée ( sous tension) , débrancher la carte de la prise USB avant tout raccordement.
- la carte micro:bit étant débranchée, connecter un shield grove à la carte micro:bit, résultat:
Vous allez maintenant raccorder un voyant sur la broche P0 ( entourée en rouge ci-dessus).
- la carte micro:bit étant toujours débranchée, connecter le voyant sur la broche P0 du shield grove:
Vous allez allumer le voyant quand on appuie sur le bouton A de la carte ( entouré en rouge ci-dessus).
- Rebrancher la prise USB de la carte sur le PC
- Saisir le programme suivant avec Thonny puis lancer son exécution et tester en cliquant sur le bouton A:
from microbit import *
while True:
# si le bouton A est actionné
if button_a.is_pressed():
# commander la mise à 1 de la broche 0
pin0.write_digital(1)
else:
# sinon commander la mise à 0 de la broche 0
pin0.write_digital(0)
Résultat:
Exercice 2.5: clignotant si appui sur bouton
Modifier le programme précédent pour que le voyant clignote si on appuie sur le bouton A
Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source