Enregistrement en direct des données avec Python et Mu

Visualiser en temps réel les données des capteurs du Micro:bit avec Python et Mu

Ce guide vous montrera comment utiliser Python pour afficher des données à partir des capteurs de votre Micro:bit en temps réel en utilisant l'éditeur Mu.

Vous aurez besoin:

  • 1 ou 2 micro:bits.
  • Un ordinateur avec la version 1.0.0 ou supérieure de l'éditeur Mu Pythoninstallé.
  • Un boitier de piles (optionnel).
  • Un camion en jouet, ou un chien (optionnel).

Introduction

The BBC micro:bit has various built-in sensors. Il a un accéléromètre, par exemple, qui peut mesurer la gravité en 3 dimensions et un magnétomètre qui mesure les champs magnétiques. Ceux-ci sont utilisés pour provoquer des événements lorsque vous secouer votre micro:bit ou le retourner et dans des projets de boussole.

En utilisant Python et Mu, vous pouvez faire des lectures des capteurs du micro:bit et les visualiser en temps réel sur des graphiques à l'écran de votre ordinateur. Les animations ci-dessous vous montrent comment cela fonctionne :

C'est parti

Ouvrez Mu et vérifiez que vous avez choisi le mode Micro:bit BBC. Maintenant flashez ce programme Python sur votre micro:bit:

    
from microbit import *

while True:
    sleep(20)
    print(accelerometer.get_values())
  

Puis appuyez sur le bouton REPL dans Mu. (REPL pour Read/Lecture-evaluate/évaluer-Print Loop/Boucle d'impression. Cela vous permet d'interragir avec votre micro:bit en utilisant la commande en ligne de Python, en tapant les commandes en texte qui s'exécuteront immédiatement et répondantes à votre micro:bit.)

Redémarrez votre micro:bit en appuyant sur le bouton reset à l’arrière. Vous devriez maintenant voir des séries de trois chiffres defilés vers le haut de l’écran. Ce sont les lectures de l’accéléromètre. Si vous agitez votre micro:bit vous devriez les voir changer.

Ces chiffres clignotent si rapidement, qu'il est difficile de trouver ce qu’ils signifient. Vous pouvez les rendre beaucoup plus facile à comprendre en les reportant sur un graphique. Appuyez sur le bouton Plotter de Mu et vous verrez les données du capteur tracées en temps réel. Si vous appuyez de nouveau sur le bouton REPL, vous pouvez agrandir le graphiqueet donc plus facile à voir.

Vous devriez voir trois lignes : vert, bleu et orange, chacune indiquant une mesure dans un axe différent (X, Y et Z). Pouvez-vous observer sur quelle ligne se visualise quel axe ?

Si vous agitez votre micro:bit vous devriez les voir changer. Now set your micro:bit back on the table face-up and look at the lines again. You should see the blue and green lines are around 0, and the orange line is much lower, at around -1000. Flip the micro:bit upside-down and you should see the orange reading change to +1000.

This shows the effect of the Earth's gravity on the accelerometer. The numbers are measured in milli-g, or one thousandths of a g. 1g (1000 milli-g) is the force of the Earth's gravity. This means the Earth is pulling down on your microbit in one axis much more than the others, so the orange line must be measuring readings in the Z-axis.

Now thump the table and you should see the lines move like the trace on a seismograph which measures earth tremors. What happens when you bang the table harder, more softly, closer and further away?

If you stand your micro:bit up on its edge you should see the green line go up to 1000 with the other two lines at 0. This means the green line is showing measurements in the Y axis.

Stand the micro:bit on its side and the blue line moves to 1000 or -1000 depending on which side you put it on.

These readings are also used to make the micro:bit Python gestures like “shake”, “up”, “down”, “left”, “right”, “face up” and “face down” work.

Can't flash your program?

If you can’t flash a program on to your micro:bit because the ‘flash’ button doesn’t work, you may need to close the REPL or the Plotter by pressing their buttons again. You can’t flash programs while using the REPL or the Plotter as they use the same interface your computer uses to flash programs to your micro:bit.

Video guide

Here is an instructional video that shows you how to get live data logging with your micro:bit, Python and Mu:

Add a remote sensor using radio

You may find it much more useful to be able to log data remotely, without having a USB attached. For example, you could attach a micro:bit to a toy vehicle, and view its acceleration as it rolls down a slope.

You can use the micro:bit’s radio function to do this. One micro:bit will be the sensor, attached to a battery pack and sending data wirelessly. You’ll need a second micro:bit to receive the data and send it down a USB cable to Mu on your computer.

Flash this Python program to the sensor micro:bit:

  
from microbit import *
import radio
radio.on()

while True:
    sleep(20)
    radio.send(str(accelerometer.get_values()))
  

Then unplug this micro:bit from your computer and attach a battery pack. It is now transmitting 3 accelerometer readings (X, Y and Z axis) every 20 milliseconds as a string of characters.

Your second micro:bit will remain attached to your computer by its USB cable. Flash the following Python program to it:

  
from microbit import *
import radio
radio.on()

while True:
    message = radio.receive()
    sleep(20)
    print(message)
  

As before, click on the REPL button in Mu, restart the micro:bit by pressing the reset button on the back and press the Plotter button in Mu. You should now see live accelerometer readings from the other, remote sensor micro:bit.

As well as attaching it to a moving vehicle, you could bundle the remote sensor up with a rubber band and play catch and see what happens to the readings. What other experiments could you come up with?

Storing captured data

You can study any captured data at a later date. Mu saves your data as a CSV (comma separated values) file, which you can open in any spreadsheet program. If you highlight the data in a spreadsheet you can plot the data as a line graph to make it easier to interpret.

You can find the CSV files in your computer's home folder. Look in 'mu_code' and then the 'data_capture' folder.

Taking it further

You could try taking readings from other built-in sensors like the compass or by adding external sensors like temperature probes, light sensors or sound sensors. For example, you can plot how strong magnetic fields are near your micro:bit using this Python program and using Mu Plotter:

  
from microbit import *

while True:
    sleep(20)
    print((compass.get_field_strength(),))
  

This may look a bit odd! The Mu Plotter only works with tuples (values grouped together), so we have to put the trailing comma after the reading from the compass. Flash this program to a micro:bit, open the REPL and the Plotter, restart the micro:bit and see what happens when you bring different metal objects or magnets close to your micro:bit.

You can find more information on how the Mu plotter works here: https://codewith.mu/en/tutorials/1.0/plotter

Amusez-vous bien!

Selecting this opens external content from our support system, which adheres to their privacy policy.