Utiliser l'éditeur Mu

Les modes

L'éditeur Mu peut s'adapter à plusieurs contextes en fonction des cartes qu'on lui connecte. Il peut même être utilisé pour coder en Python directement sur l'ordinateur, même si on utilise pas de carte microbit. Les fonctionnalités d'une carte à l'autre peuvent varier donc l'éditeur se met dans un mode spécifique à la carte qui est connectée.

Ce mode peut se changer en appuyant sur l'icône .

Dans ce tutoriel, nous supposerons que nous sommes en mode BBC microbit. L'environnement Mu va nous permettre de

  • taper nos programmes et les envoyer sur la carte pour s'exécuter

  • transférer des fichiers vers et depuis la carte

  • accéder à la console interactive MicroPython (REPL)

  • tracer des graphiques

  • vérifier la syntaxe de nos programmes

Où sont les fichiers

Mu stocke ses fichiers dans le dossier nommé mu_code situé dans votre dossier personnel.

La racine de ce dossier apparaît quand vous cliquez sur l'icône

Créer son premier programme

Cliquer sur puis commencer à taper votre programme. Celui ci-dessous sera très bien :)

1
from microbit import *
2
display.show("Hello World")

Enregistrer le fichier à l'emplacement de votre choix en choisissant un nom, par exemple testHW.py. Il n'est pas nécessaire de l'enregistrer dans le dossier mu_editor mais cela peut être une bonne idée.

Flasher le programme sur la carte à l'aide de l'icône . Cela signifie que le programme sera transféré sur la carte - en remplaçant éventuellement celui qui était présent - et sera lancé automatiquement au démarrage.

RemarqueFichier main.py

Si vous cliquez sur l'icône pour voir les fichiers sur la carte, vous pouvez vous attendre à voir un fichier nommé testHW.py si c'est le nom que vous avez choisi. Or il n'en est rien. A la place, vous n'avez qu'un fichier nommé main.py, ce qui peut être déroutant au début.

Il faut savoir que le bouton flasher va transférer le programme en cours d'édition sous le nom main.py car c'est ce nom que MicroPython s'attend à trouver au démarrage de la carte et lance automatiquement.

Il est bien sûr possible de transférer sur la carte d'autres programmes python (par exemple des librairies) tout en conservant leur nom original. La capture ci-dessus montre que la librairie hcsr04.py (qui pilote un capteur de distance à ultrasons) a été copiée sur la carte. Il faut pour cela utiliser l'outil . On poura inclure ce fichier à notre programme en cours à l'aide de la ligne

import hcsr04

La console interactive REPL

Le REPL permet un contact direct avec MicroPython installé sur la carte. C'est ce qui correspond à la console Python sur ordinateur ou la calculatrice Numworks. Pour lancer REPL, cliquez sur l'icône .

En cliquant sur l'icône REPL, le programme en cours d'exécution sur la carte (main.py) est stoppé et vous pouvez taper des commandes qui seront immédiatement exécutées par MicroPython. La capture ci-dessus vous affichera instantanément le message sur la matrice LED. C'est très commode de pouvoir interagir directement avec MicroPython en cours d'élaboration de programme. Cela permet par exemple :

  • de tester une ligne de code comme display.show("Hello world!!")

  • de se renseigner sur l'usage d'une commande. Essayez help(display.show)

  • de connaître le contenu d'une librairie. Essayez dir(Image)

  • de connaître les cause d'un plantage du programme

  • etc....

Attention :

Vous ne pouvez pas avoir REPL ouvert en même temps que Fichiers.

Vous ne pouvez pas Flasher quand REPL est ouvert.

Déceler une erreur

Tapez le programme suivant. Il contient une erreur ! Le message d'erreur va défiler sur la matrice LED mais il n'est pas du tout évident à lire !

1
from microbit import *
2
a=[3,2,1]
3
display.show(a)

Les erreurs de syntaxe peuvent être décelées avant même le flashage grâce au bouton . L'erreur ici apparaît à l'exécution et n'a pas été décelée par Vérifier. Pour visualiser les retours d'erreur, nous allons utiliser le REPL :

Lancer REPL. L'invite de commande >>> apparaît. Nous allons provoquer un redémarrage de la carte. Il y a 2 manières de le faire

  • A l'aide du bouton reset au dos de la carte

  • en tapant CTRL-D dans le REPL

Avec l'expérience, la seconde méthode (soft reboot) est plus rapide. Le programme se lance à nouveau mais cette fois-ci, les erreurs sont affichées dans la console. Nous pouvons lire

Traceback (most recent call last):

File "__main__", line 3, in <module>

TypeError: not an image

et nous pouvons corriger notre programme.

Voir le résultat de la commande print

Vous pouvez afficher des informations à l'aide de l'instruction python print, mais la carte ne possède pas d'écran. Elles n'apparaissent pas non plus sur la matrice LED car celle-ci se pilote via la commande display. Essayez le programme ci-dessous qui simule le lancer de 10 dés.

1
from random import randint
2
for i in range(10):
3
    print("lancer ",i," : ",randint(1,6))

Rien ne s'affiche sur la carte. Pour voir le résultat, ouvrez REPL puis redémarrez le programme par un soft reset (CTRL-D).

Utiliser l'outil Graphique

L'outil graphique permet de visualiser sous forme de courbe les valeurs affichées via la commande print. Celles-ci doivent être présentées dans un tuple (similaire à une liste mais délimitée par des parenthèses). A chaque élément du tuple correspondra une courbe. On peut ainsi tracer une ou plusieurs courbe.

Si on ne veut qu'une seule courbe, il faut quand même afficher un print à un seul élément ce qui ressemble à cela (21,). Ne pas oublier la virgule à la fin. Voici un exemple :

1
from microbit import *
2
3
while True:
4
    temp = temperature()
5
    print((temp,))
6
    sleep(1000)