Différentes façons de programmer en python avec une micro:bit

I) Présentation de la carte micro:bit
II) Comment se procurer une micro:bit ?
III) Programmer en python, oui, mais en microPython
IV) Des outils pour la programmation embarquée

1) Interface MakeCode
2) Interface edublocks : programmer en python, par blocs
3) Interface python.microbit : programmer en python en ligne de texte
4) Logiciel Mu Editor
5) Limites des outils présentés

V) Pour aller plus loin : développer la communication série entre un ordinateur et une micro:bit

1) Installation du driver pour Windows
2) Mise à jour du firmware de la micro:bit
3) Logiciel Mu Editor (suite)

a. Utilisation du « REPL »
b. Utilisation de « Fichiers »
c. Utilisation de « Graphique »

4) Liaison série : gestion des fichiers en python depuis l’ordinateur

a. Flasher un programme à l’aide de python (module uflash)
b. Manipuler des fichiers à l’aide de python (module microfs)

5) Liaison série : échange d’informations entre l’ordinateur (module pySerial) et une micro:bit

VI) Récapitulatif des différents scénarios envisageables
VII) Annexe : instructions microPython
VIII) Sources

I) Présentation de la carte micro:bit

La micro:bit est un « micro ordinateur de poche » [1], on parle aussi de « nano ordinateur » [2] ou de carte microcontrôleur. Initialement conçue pour permettre aux élèves du Royaume-Uni de s’initier dès l’âge de sept ans à la programmation, elle est désormais accessible à tous.

Cette carte peut être programmée à partir d’un ordinateur, d’un smartphone ou d’une tablette. Elle permet de s’initier à la programmation embarquée, disposant nativement de nombreux capteurs et broches d’entrée-sortie [3] :

25 LEDs programmables individuellement (utilisées essentiellement pour un affichage, elles peuvent également servir de capteurs de luminosité)

2 boutons (A et B)

  • Un capteur de température
  • Un accéléromètre (selon 3 axes ; en l’absence d’accélération, la micro:bit reste sensible aux composantes du champ de pesanteur terrestre suivant les 3 axes)
  • Une boussole (capteur sensible au champ magnétique terrestre)
  • Un port micro-USB (assurant la connexion avec un ordinateur)
  • Une communication sans fil :
    • communication radio (permettant aux micro:bits de communiquer entre elles)
    • communication Bluetooth  (assurant la connexion avec un smartphone ou une tablette)
  • Des broches entrée-sortie (mesure et application de tensions électriques, les signaux pouvant être de nature analogique – tension variable entre 0 V et 3,3 V – ou numérique – tension égale à 0 V ou 3,3 V)

Il est possible de connecter sur les broches des capteurs ou actionneurs (moteurs par exemple), ce qui nécessite (par souci de simplicité d’accès aux broches) d’acquérir une carte de connexion supplémentaire, appelée « shield » ; il en existe de différents types, selon le jeu de capteurs que l’on souhaite utiliser.

II) Comment se procurer une micro:bit ?

De nombreux sites de ventes en ligne dédiés à la distribution de matériel électronique ou liés à la robotique propose des micro:bits, à l’unité ou en lot. Les références suivantes ([4] et [5]) ne sont données qu’à titre d’exemples, ces distributeurs utilisant le mandat administratif (ce qui facilite les commandes par un établissement scolaire).

Si l’on achète un lot de 10 micro:bits, il faut compter environ 200 euros (soit 20 euros par poste, l’investissement reste donc très raisonnable) ; le contenu d’un lot est le suivant :

  • 10 cartes micro:bit ;
  • 10 câbles micro-USB ;
  • 10 coupleurs de 2 piles AAA (fournies) avec cordon JST (pour relier le coupleur au microcontrôleur).

Le câble micro-USB proposé a une longueur de 10 cm, ce qui est un peu juste ; on peut envisager l’achat de câbles d’une vingtaine de cm.

Il peut être intéressant de protéger la carte micro:bit avec un boîtier transparent, laissant libre accès aux broches entrée-sortie (compter de 3 à 6 euros par boîtier, selon le modèle).

Source : site Go Tronic

Cet investissement est amplement suffisant pour permettre une utilisation riche et variée du microcontrôleur ; pour ceux qui veulent aller plus loin dans l’utilisation des capteurs et actionneurs, il faut compter de 50 à 70 euros de plus par poste, selon le jeu de capteurs souhaité (citons par exemple Elecfreaks, Grove, Gravity, …).

III) Programmer en python, oui, mais en microPython

La version python utilisée pour programmer la micro:bit, appelée microPython, est proche de python3. Elle  permet d’utiliser les objets et instructions usuels : entiers, réels, chaînes de caractères, booléens, listes, instructions conditionnelles, boucles itératives et conditionnelles, fonctions, …

Certaines bibliothèques sont cependant absentes, ces dernières nécessitant notamment une place mémoire trop importante ou l’utilisation de composants (hardware) absents du microcontrôleur. Pour les détails concernant les différences entre python 3 et microPython, on pourra consulter la référence suivante [6].

Des modules font également leur apparition, ils permettent d’utiliser les différents capteurs, actionneurs et la matrice de LEDs. Une excellente introduction aux possibilités d’utilisation de la micro:bit via microPython est disponible [7] ; on trouvera également en annexe de cet article un résumé des instructions les plus utiles.

Voici un aperçu des possibilités offertes :

Affichage sur la matrice de LEDs

  • Afficher un message (affichage déroulant).

  • Afficher des images.

Boutons a et b

  • Indiquer si un bouton est pressé, s’il a été pressé, ou le nombre de fois où il a été pressé.

Broches entrée – sortie

(analogique ou numérique)

  • Lire la valeur d’une tension (utilisation de capteurs).

  • Imposer une tension (utilisation d’actionneurs).

Accéléromètre

  • Mesurer une rotation (gauche – droite ; avant – arrière).

  • Détecter un geste particulier : mouvement vers le haut, mouvement vers le bas, rotation, face vers le haut, face vers le bas, chute libre, accélération, agitation.

Compas

  • Mesurer la valeur du champ magnétique (selon 3 axes).

  • Indiquer la direction (un angle nul correspondant à la direction nord).

Radio

  • Communiquer avec d’autres micro:bits, en envoyant ou recevant des messages radio.

Branchement d’un

haut-parleur

Music

  • Jouer un son (en indiquant une note ou fréquence, une durée, …).

Speech

  • Utiliser la synthèse vocale : le haut-parleur prononce une chaîne de caractères (en anglais).

IV) Des outils pour la programmation embarquée

Des outils de programmation en ligne sont disponibles sur le web, ils permettent de démarrer rapidement et facilement la programmation de la carte micro:bit.

1) Interface MakeCode

L’interface MakeCode [8] permet de coder en langage bloc et en Java. Bien que le langage python ne soit pas proposé par cette interface, il peut être intéressant de débuter avec cet outil, la programmation par bloc pouvant rappeler aux élèves l’utilisation de Scratch ; en outre aucune connaissance préalable du langage python n’est nécessaire.

Un simulateur (à gauche sur l’écran) permet de tester le programme, avant transfert sur la micro:bit.
Une fois réalisé, le programme doit être téléchargé (enregistré dans « Téléchargements ») puis transféré sur la micro:bit reliée par câble USB à l’ordinateur. Pour cela, il y a deux possibilités :

  • Ouvrir le dossier « Téléchargements », puis faire glisser le programme codé en hexadécimal (fichier.hex) vers le répertoire de la micro:bit (qui s’ouvre automatiquement lors du branchement de la carte).

  • Ouvrir le dossier « Téléchargements », puis :
    clic droit sur fichier.hex → Envoyer Vers → MICROBIT

Le voyant arrière de la micro:bit clignote pendant environ 10 secondes ; la carte est alors « flashée » et le programme est exécuté. Pour relancer le programme, appuyer sur le bouton Reset (au dos de la carte, près du voyant lumineux).

Interface MakeCode

Avantages

Inconvénients

Interface sur Internet : utilisation légère, ne nécessitant aucune installation.

La procédure « télécharger – déposer » est contraignante pour une utilisation prolongée.

Langage bloc : programmation facilitée pour les débutants.

La maîtrise d’un langage bloc peut être un objectif intermédiaire, mais ce type d’interface ne permet pas de progresser dans la programmation en python en ligne de texte.

Des blocs très variés ; permet une programmation approfondie.

Présence d’un simulateur.

2) Interface edublocks : programmer en python, par blocs

L’interface edublocks [9] présente l’intérêt de proposer une programmation par blocs, mais en python !

En cliquant sur « Blocks » dans le coin supérieur droit de la page, on accède au programme python, en ligne de texte.

La procédure est la même que précédemment : il faut téléverser le programme (au format .hex) vers la micro:bit.

Interface edublocks

Avantages

Inconvénients

Interface sur Internet : utilisation légère, ne nécessitant aucune installation.

La procédure « télécharger – déposer » est contraignante pour une utilisation prolongée.

Langage bloc en python : programmation facilitée pour les débutants, avec apprentissage de la syntaxe python.

Si on complète le programme python en ligne de texte, le programme n’a pas été complété lorsqu’on repasse en mode « blocks ».

Possibilité d’accéder au programme python correspondant, en ligne de texte.

Les blocs proposés offrent moins de possibilités que l’interface MakeCode.

Pas de simulateur proposé.

3) Interface python.microbit : programmer en python en ligne de texte

L’interface python.microbit [10] est conçue uniquement pour programmer la micro:bit en python, en lignes de texte. L’utilisation de la documentation microPython [7] est vivement conseillée.

La procédure est la même que précédemment : il faut téléverser le programme (au format .hex) vers la micro:bit.

Interface python.microbit

Avantages

Inconvénients

Interface sur Internet : utilisation légère, ne nécessitant aucune installation.

Pas de simulateur proposé.

Langage python, en ligne de texte : impose à l’utilisateur une rigueur accrue dans la gestion de la syntaxe, ainsi qu’une recherche dans l’utilisation des fonctionnalités propres à la micro:bit.

La procédure « télécharger – déposer » est contraignante pour une utilisation prolongée.

4) Logiciel Mu Editor

Le logiciel Mu Editor [11] permet une programmation en microPython, en lignes de texte. Il peut être installé sur l’ordinateur, une version portable est également disponible. Une documentation en ligne du logiciel [12] permet d’explorer les différentes fonctionnalités.

Dans le cadre d’une utilisation basique (les fonctionnalités « Fichiers », « REPL » et « Graphique » seront présentées plus loin dans cet article), le logiciel Mu Editor présente déjà un grand intérêt : la possibilité de « Flasher » directement la carte micro:bit. Il n’est donc plus nécessaire de télécharger puis de transférer le programme au format hexadécimal sur la micro:bit, ce qui est un gain de temps et d’énergie !

Logiciel Mu Editor (utilisation basique)

Avantages

Inconvénients

Une version portable est disponible, ce qui est plus pratique lorsque l’on n’a pas directement la main sur l’installation de logiciel (dans un établissement).

Pas de simulateur proposé.

Langage python, en ligne de texte : impose à l’utilisateur une rigueur accrue dans la gestion de la syntaxe, ainsi qu’une recherche dans l’utilisation des fonctionnalités propres à la micro:bit.

Possibilité de « flasher » directement le programme.

5) Limites des outils présentés

On se contente jusqu’à présent de flasher un programme sur la micro:bit, puis de l’exécuter. Cet usage présente deux difficultés :

  • S’il y a une erreur de syntaxe dans le programme, un message (affichage déroulant) apparaît sur la micro:bit, indiquant la ligne concernée et le type d’erreur. Le message est clair, mais son affichage peut prendre un peu de temps (affichage lettre par lettre), ce qui peut être vécu comme une contrainte par l’utilisateur.
  • Si on souhaite vérifier l’exécution correcte d’un programme (lors de la conception), en affichant par exemple la valeur d’une variable calculée dans une boucle, on reste contraint par la limite de vitesse d’affichage d’un message sur la micro:bit.
    Afin de palier à l’absence d’écran branché sur la micro:bit, il est nécessaire d’aller plus loin dans son utilisation, en utilisant notamment l’accès au REPL (« Read Evalute Print Loop »), qui permettra d’avoir un aperçu visuel (par le biais de l’écran de l’ordinateur) bien plus efficace de ce qui ce passe lors de l’exécution d’un programme sur la micro:bit.

Des outils sont présentés dans la suite de cet article, permettant :

  • d’afficher sur l’écran de l’ordinateur le contenu d’une variable en temps réel ;
  • de réaliser en direct des graphiques ;
  • de déposer et récupérer des fichiers (programmes python, fichiers texte, …) ;
  • d’établir une communication entre un programme s’exécutant sur l’ordinateur, et un autre programme s’exécutant sur la micro:bit.

V) Pour aller plus loin : développer la communication série entre un ordinateur et une micro:bit

1) Installation du driver pour Windows

Sur les versions antérieures à Windows 10, l’installation d’un driver [13] est nécessaire pour permettre la communication série, et donc l’utilisation des fonctionnalités avancées de Mu Editor.

2) Mise à jour du firmware de la micro:bit

Afin de bénéficier des dernières fonctionnalités des logiciels et interfaces proposés, il peut être nécessaire de mettre à jour le firmware de la micro:bit [14].
La version actuelle du firmware est visible dans le dossier de la micro:bit (DETAILS.txt).
La procédure à suivre est la suivante :

  • Télécharger la dernière version du firmware (voir [14]) ;

  • Brancher la micro:bit, en maintenant appuyé le bouton Reset : un dossier MAINTENANCE apparaît.

  • Faire glisser le fichier téléchargé dans le dossier MAINTENANCE : le firmware est mis à jour.

3) Logiciel Mu Editor (suite)

L’accès au REPL (Read Evalute Print Loop, voir [15]) permet une utilisation avancée de la micro:bit.

a. Utilisation du « REPL »

Le principe est le suivant :

  • Flasher un programme sur la micro:bit.
  • Cliquer sur « REPL » ; exécuter le programme (bouton « Reset » de la micro:bit).
  • L’affichage permet de visualiser :
    • une éventuelle erreur dans le programme (apparaissant d’ordinaire en affichage déroulant sur les LEDs de la micro:bit) :

    • le résultat d’un affichage (print() dans le programme exécuté sur la micro:bit) :

b. Utilisation de « Fichiers »

Dans l’exemple ci-dessous, on crée un fichier texte, dans lequel on écrit « Ecriture ».
En cliquant (après exécution du programme) sur « Fichiers » , on observe la présence du fichier texte, que l’on peut copier sur l’ordinateur (destination C:\Users\Administrateur\mu_code)

Remarque : il est impossible en microPython d’ouvrir en « append » (ajout) un fichier texte, mais uniquement en écriture (w) ou en lecture (r).

c. Utilisation de « Graphique »

En effectuant l’affichage d’une valeur (à placer impérativement dans un tuple, même s’il n’y a qu’une valeur), on peut afficher le graphique en direct :

Lorsqu’on referme le graphique, un fichier csv est enregistré dans :
C:\Users\Administrateur\mu_code\data_capture

Logiciel Mu Editor (utilisation avancée)

Avantages

Inconvénients

Une version portable est disponible, ce qui est plus pratique lorsque l’on n’a pas directement la main sur l’installation de logiciel (dans un établissement).

Pas de simulateur proposé.

Langage python, en ligne de texte : impose à l’utilisateur une rigueur accrue dans la gestion de la syntaxe, ainsi qu’une recherche dans l’utilisation des fonctionnalités propres à la micro:bit.

Les fichiers récupérés, ainsi que les fichiers générés par le graphique, sont placés dans un dossier peu intuitif (même si on utilise une version portable, les fichiers sont enregistrés dans C:\).

Possibilité de « flasher » directement le programme.

Gestion des fichiers (main.py, texte.txt, …) : dépôt et récupération.

Affichage des messages d’erreur et des instructions « print() » effectuées sur la micro:bit.

Les valeurs provenant de la micro:bit sont accessibles visuellement et enregistrées au format csv, mais ne sont pas exploitées en interaction avec un programme s’exécutant sur l’ordinateur.

Tracé en direct des graphiques et enregistrement dans un fichier.csv.

4) Liaison série : gestion des fichiers en python depuis l’ordinateur

a. Flasher un programme à l’aide de python (module uflash)

[16]
Il suffit d’écrire les instructions suivantes dans un programme python :


Le programme (ici nommé prog.py) est automatiquement flashé sur la carte.

b. Manipuler des fichiers à l’aide de python (module microfs)

[17]
Le module microfs permet de déposer sur la carte, mais aussi de récupérer tout type de fichier présent sur la micro:bit.
Il est notamment possible de déposer :

  • un programme principal (qui doit être nommé main.py)
  • des programmes contenant des fonctions pouvant être appelées par main.py

L’exemple ci-dessous montre comment on peut récupérer des fichiers (en sélectionnant ici les fichiers .txt uniquement) :

Gestion des fichiers (programme python sur ordinateur, utilisant uflash et microfs)

Avantages

Inconvénients

Gestion automatique des fichiers, il n’est plus nécessaire (comme avec Mu Editor) de les déplacer « à la main ».

La programmation est complexifiée : un programme python permet, depuis l’ordinateur, de déposer des programmes sur la micro:bit et de gérer les fichiers texte.

Possibilité de déposer plusieurs programmes (dont l’un, main.py, est le programme principal).

Nécessité d’installer les modules uflash et microfs.

5) Liaison série : échange d’informations entre l’ordinateur (module pySerial) et une micro:bit

On effectue une liaison série ([18] , [19]) entre une micro:bit et un ordinateur ; il y a donc deux programmes s’exécutant en même temps, communiquant entre eux :

Sur l’ordinateur

Sur la micro:bit

Module à importer

serial

microbit

Initialisation

nom_port = Serial(port=num_port, baudrate=9600, timeout=1, writeTimeout=1)

uart.init(9600)

Pour envoyer un message

nom_port.write(mess)

avec mess = bytes(chaine_str, ‘utf-8’)

print(mess) mess : int, float, str

ou uart.write(bytes(mess, “utf8”))

mess : str

Pour recevoir un message

reception = nom_port.readline().rstrip().decode()

reception = str(uart.readline())

reception = reception[2 :-1]

Le numéro du port dépend du port USB utilisé, on peut l’obtenir de deux façons :

  • Sous Windows, dans une « Invite de Commandes » , taper “mode”

Exemple de résultat obtenu (dans cet exemple le numéro du port est “COM5”) :

  • Dans un programme python (source [20]) :

Pour plus d’informations sur le module pySerial, consulter la référence [21].
Deux programmes (prog_microbit.py et prog_ordi.py) de communication série sont donnés à titre d’exemples.

Liaison série (programme python sur ordinateur, utilisant pySerial)

Avantages

Inconvénients

Programmation enrichie : la micro:bit, de par ses différents capteurs, permet de contrôler un programme s’exécutant sur l’ordinateur.

La programmation est complexifiée : deux programmes s’exécutent en même temps (l’un sur l’ordinateur, l’autre sur la micro:bit) et communiquent entre eux.

Le programme s’exécutant sur ordinateur permet, de façon symétrique, de commander la micro:bit (utilisation d’actionneurs ou d’un affichage sur la carte).

Nécessité d’installer le module pySerial.

VI) Récapitulatif des différents scénarios envisageables

En conclusion, la micro:bit permet, de par ses capteurs intégrés et la possibilité d’ajouter d’autres capteurs et actionneurs, d’enrichir considérablement les possibilités de programmation en python. Le module radio, permettant la communication entre micro:bits, est notamment très stimulant pour les élèves.
Divers exemples de projets utilisant une micro:bit sont proposés sur le web, on pourra notamment consulter la page suivante [22].
Différents scénarios d’utilisation sont envisageables, du plus élémentaire au plus complexe :

Descriptif

Outil nécessaire

Scénario 1

Utilisation basique du microcontrôleur, afin de découvrir la programmation embarquée. Une fois le programme flashé, la micro:bit peut être utilisée en autonomie (piles).

MakeCode

ou edublocks

ou python.microbit

ou Mu Editor

Scénario 2

Utilisation de la micro:bit en liaison avec un ordinateur : les mesures effectuées par la micro:bit sont affichées (valeurs et/ou graphique) à l’aide du logiciel Mu Editor.

Possibilité d’enregistrer les valeurs au format csv.

Ce scénario peut être privilégié pour une utilisation en sciences expérimentales (par exemple pour l’affichage de la mesure effectuée par un capteur – numérique ou analogique – au cours du temps).

Mu Editor

Scénario 3

Utilisation de la micro:bit en autonomie, avec enregistrement de fichiers texte.

Les fichiers texte sont ensuite récupérés sur l’ordinateur et analysés. Un traitement riche de ces données peut être effectué.

On peut penser par exemple à un programme comptant le nombre de pas effectués par un marcheur dans une journée (en utilisant l’accéléromètre) et inscrivant ces informations dans un fichier texte, que l’on peut exploiter par la suite sur ordinateur.

Mu Editor

ou programme python (module microfs)

Scénario 4

Utilisation de la micro:bit en liaison avec l’ordinateur :

  • les données envoyées par la micro:bit sont récupérées en direct dans l’ordinateur et exploitées par un programme python (possibilité par exemple de programmer un jeu répondant à des évènements correspondant à des mesures effectuées par la micro:bit)

  • l’ordinateur (par le biais d’un programme python) peut envoyer des données à la micro:bit (commande d’actionneurs, affichage, …)

Programme python (module pySerial)

VII) Annexe : instructions microPython

Un programme en microPython débutera probablement par l’importation du module microbit :
from microbit import *

Voici une rapide présentation des fonctionnalités propres au microcontrôleur :

  • Redémarrer la micro:bit

reset()

  • Faire une pause (durée exprimée en ms) :

sleep(duree)

  • Indiquer depuis combien de temps la micro:bit a été démarrée :

running_time()

  • Indiquer la température en °C :

temperature()

  • Utiliser la matrice de LEDs pour afficher un message déroulant :

display.scroll(“Hello, World!”)

  • Utiliser la matrice de LEDs pour afficher une image :

display.show(Image.HAPPY)

  • Utiliser les boutons (button_a et button_b) :
button_X.is_pressed() ex : button_a.is_pressed() Retourne True si le bouton X est pressé.
A utiliser comme condition, dans une boucle.
button_X.was_pressed() Retourne True si le bouton X a été pressé depuis le démarrage ou depuis le dernier appel de la méthode was.pressed().
button_X.get_presses() Retourne le nombre de fois où le bouton X a été pressé et réinitialise ce compteur.
  • Utiliser les broches entrée / sortie (input / output PINS) :
Analogique

(pins 0, 1, 2, 3, 4, 10)

pinX.read_analog()

ex : pin1.read_analog()

Retourne une valeur entière entre 0 (0 V) et 1023 (3,3 V).
pinX.write_analog(value) Impose une tension au pin : valeur haute si value=1023 valeur basse si value=0

Value varie entre 0 et 1023.

Touché

(pins 0, 1, 2)

pinX.is_touched() Retourne True si le pin est touché, False sinon.
Numérique

(pins 5, 6, 7, 8, 9, 11)

pinX.read_digital() Retourne 1 si la valeur est haute, 0 sinon.
pinX.write_digital(value) Impose une tension au pin : valeur haute si value=1, valeur basse si value=0.
  • Utiliser l’accéléromètre :
accelerometer.get_x() Retourne l’accélération, en milli-g, suivant l’axe x (axe reliant le port micro-USB au pin 2) : rotation gauche – droite.
accelerometer.get_y() Retourne l’accélération, en milli-g, suivant l’axe y (axe reliant les boutons a et b) : rotation avant – arrière.
accelerometer.current_gesture() Retourne le nom du geste en court : “up”, “down”, “left”, “right”, “face up”, “face down”, “freefall”, “3g”, “6g”, “8g”, “shake”.
accelerometer.is_gesture(name) Retourne True si le geste en court est le geste mentionné.
accelerometer.was_gesture(name) Retourne True si le geste a été effectué depuis le dernier appel.
accelerometer.get_gestures() Retourne la liste de tous les gestes effectués depuis démarrage ou depuis le dernier appel.
  • Utiliser le compas :
compass.calibrate() Effectue la calibration (l’utilisateur doit faire pivoter la micro:bit, afin d’illuminer la matrice de LEDs).
compass.is_calibrated() Retourne True si la calibration a été effectuée avec succès.
compass.clear_calibration() Annule la calibration.
compass.get_x() Retourne la valeur du champ magnétique suivant l’axe x.
compass.get_y() Retourne la valeur du champ magnétique suivant l’axe y.
compass.get_z() Retourne la valeur du champ magnétique suivant l’axe z.
compass.heading() Retourne un angle entre 0 et 360 (0 correspondant au nord, 180 au sud ) : très utile pour s’orienter !
compass.get_field_strength() Retourne l’intensité du champ magnétique terrestre.
  • Utiliser la liaison série avec un ordinateur :
uart.init(baudrate=9600) Initialise la communication série, en précisant la vitesse de transfert.
uart.readline() Retourne une ligne du tampon (None si le tampon est vide).
uart.write() Envoi par le bus un message (de type str ou bytes).
  • Utiliser la communication radio entre micro:bits :
import radio Importe le module radio.
radio.on() Allume la radio (allocation de mémoire).
radio.off() Ferme la radio (économie d’énergie et de mémoire).
radio.config(**kwargs)

 

ex :

radio.config(channel=4, power=7)

Configure la radio, notamment :

  • length=32  (taille, en bytes, d’un message ; max 251)
  • channel=7 (de 0 à 100, base 2400 MHz, pas de 1 MHz)
  • power=6 (puissance d’émission, de 0 à 7)
  • group=0 (de 0 à 255 ; précise un groupe de discussion entre micro:bits)
  • data_rate=radio.RATE_1MBIT (250KBIT, 1MBIT ou 2MBIT)
radio.reset() Initialise les paramètres.
radio.send(message) Envoie un message (chaîne de caractères, il est possible d’envoyer des bytes avec radio.send_bytes(message) ).
radio.receive() Reçoit un message (ou radio.receive_bytes() ).
  • Utiliser un haut-parleur (par défaut connecté au PIN 0 et à la masse) pour jouer un son :
import music Importe le module music.
music.play(notes, pin=microbit.pin0, wait=True, loop=False)

notes = [‘c1:4’, ‘e:2’, ‘g’]

Ex : joue la suite do1 (4 temps) – mi (2 temps) – sol (1 temps).
music.pitch(frequency, len=-1, pin=microbit.pin0, wait=True)

ex : music.pitch(440, len=1000)

Ex : joue un son de fréquence 440 Hz pendant 1000 ms (1 s).
  • Utiliser un haut-parleur pour une synthèse vocale :
import speech Importe le module speech.
speech.pronounce(phonemes, pitch=64, speed=72, mouth=128, throat=128) Prononce le phonème (chaîne de caractères).

Paramètres : timbre, vitesse, articulation, tension.

speech.say(words) Prononce un mot en anglais (chaîne de caractères).
speech.sing(phonemes) Chante le phonème (chaîne de caractères).

VIII) Sources

[1] Site officiel micro:bit https://microbit.org/fr/guide/

[2] Page wikipedia https://fr.wikipedia.org/wiki/Micro%3Abit

[3] Fonctionnalités micro:bit https://microbit.org/fr/guide/features/

[4] Société Go Tronic https://www.gotronic.fr/cat-cartes-et-starters-kits-1701.htm

[5] Société Génération Robots https://www.generationrobots.com/fr/

[6] MicroPython et python3 https://www.sutron.com/micropython/html/reference/differences.html

[7] Documentation MicroPython https://microbit-micropython.readthedocs.io/en/latest/tutorials/introduction.html

[8] Programmation block et java https://makecode.microbit.org/#editor

[9] Edublocks https://microbit.edublocks.org/

[10] MicroPython en ligne https://python.microbit.org/v/1

[11] Installation Mu Editor https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor

[12] Documentation Mu Editor https://codewith.mu/en/tutorials/

[13] Installation du driver Windows https://os.mbed.com/docs/mbed-os/v5.12/tutorials/windows-serial-driver.html

[14] Mise à jour du firmware https://microbit.org/guide/firmware/

[15] Accéder au REPL https://microbit-micropython.readthedocs.io/en/latest/devguide/repl.html

[16] Documentation uflash https://uflash.readthedocs.io/en/latest/

[17] Documentation microfs https://microfs.readthedocs.io/en/latest/

[18] Communication série (1) https://makecode.microbit.org/device/serial

[19] Communication série (2) https://www.isnbreizh.fr/ixn/activity/microbit/microbitSerial/microbitSerial.html

[20] Fonction python port microbit https://gist.github.com/jezdean/be25f0730a932c0a1b80683dd3a25b40

[21] Documentation pySerial https://pyserial.readthedocs.io/en/latest/shortintro.html

[22] Utilisation pédagogique https://www.isnbreizh.fr/snt/activity/microbit/microbit.html

Vous aimerez aussi...