Carte Microbit

 

 

1        Découverte

·        Les caractéristiques de la carte Microbit peuvent être vues ici : https://os.mbed.com/platforms/Microbit/

·        Les caractéristiques DETAILLEES peuvent être vues là : https://tech.Microbit.org/hardware/

·        Résumé des caractéristiques (document pdf)

 

·        Brancher la carte Microbit au PC sous Windows à l'aide du câble USB.

·        Elle apparait comme un lecteur sur le PC

·        Une séquence d'allumage de ses 25 LEDs rouges commence : affichage de Hello, appuyer sur les boutons A et B, Secouer la carte Microbit, un jeu de chasse d'un point, puis une séquence répétitive d'allumage des LEDs.

·        La vidéo de 10mn suivante montre la séquence d'allumage :

 

https://www.youtube.com/watch?v=RkWDYTx_mg4

 

 

·        Une fois que la Carte Microbit est branchée sur le PC, aller sur https://Carte Microbit.org/fr/guide/python/

 

·        Mettre le site en français.

 

·        Télécharger "Mu" l'éditeur de MicroPython et installez-le sur votre ordinateur (systèmes d'exploitation compatibles : Windows, Raspbian, Mac OSX).

 

·        Allez dans les tutoriels :

https://Carte Microbit-micropython.readthedocs.io/en/latest/tutorials/introduction.html

 

·        Suivez par exemple le tutoriel "Hello World !"

 

·        Exécuter Mu.

 

·        Dans la fenêtre qui s'ouvre, choisir "carte Microbit"

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

Puis OK

 

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

·        Puis cliquer sur "flasher".

 

·        La méthode scroll de l'objet display sera répétée indéfiniment par la carte Microbit.

 

 

·        Editeur de programme micro:python en ligne

https://Microbit.org (site sécurisé basé aux Etats Unis)

https://micropython.org/(site sur micropython)

 

 

·        Un tutoriel IREM sur la prise en main de la programmation par blocs

 

 

2        Exploiter les afficheurs (25 LEDs rouges) et des capteurs (accélération, boutons) de la carte Carte Microbit

Tutoriel d'après la vidéo de Tony D sur Youtube

·        Branchez la carte Microbit sur l'ordinateur (PC ou Raspberry). Si la carte Microbit est branchée sur un Raspberry, elle apparait comme un dossier CARTE MICROBIT dans /media/pi

 

2.1       Utilisation de l'interface de programmation en ligne (avantage : pas d'installation)

·        Aller sur le site Carte Microbit.org

·        Cliquez sur l'onglet en haut de la page "Let's code". Plusieurs éditeurs de programmes apparaissent

o   MakeCode Editor (programmation par blocs)

o   Python Editor

o   Des applications (Androïd, Apple dont le Swift pour Ipad, Microsoft)

·        Cliquez sur "Let's Code" à côté de Python Editor. Une page web permettant de programmer la Carte Microbit en Python s'ouvre :

 

 

(le guide de toutes les possibilités de l'éditeur Python en ligne pour la Carte Microbit est sur https://Carte Microbit.org/guide/python/)

·        Saisissez des lignes de programme dans l'éditeur Python pour Carte Microbit en ligne (ou laissez les lignes de code qui figurent dans la démonstration ci-dessus).

·        Cliquez sur le bouton "Download" situé en haut à gauche de la barre de boutons. Tout en bas à gauche de fenêtre du navigateur, se télécharge un fichier avec l'extension .hex Ce fichier est éditable avec un éditeur de programmes Python tel que "Mu".

·        Afficher le dossier de téléchargement ce fichier .hex et le renommer en lui donnant un nom significatif. Par exemple nommez-le hello.hex

·        Collez hello.hex dans le dossier CARTE MICROBIT La LED jaune de la carte Microbit clignote, le temps que le programme hello.hex se charge dans sa mémoire. Puis la carte Microbit commence l'exécution du programme qui vient d'être chargé.

 

2.2       Utilisation de l'éditeur Mu  (avantage : possède un shell. Cliquez sur le bouton REPL qui ouvre l'environnement de programmation du type Read - Eval- Print - Loop)

Prérequis : la carte Microbit doit être connectée à l'ordi. Sinon cliquer sur le bouton REPL renvoie un message d'erreur.

 

·        Installation sur Raspberry :

Il existe sur Raspbian une méthode pour Installer l'éditeur Mu (qui se trouve dans le menu préférences / Recommanded Software / Programming).

MAIS cette méthode installe Mu SANS le bouton "Graphique" ce qui empêche de voir en direct à l'écran le trafic sur le port série entre la carte Microbit et le Raspberry.

 

Pour avoir le « bouton Graphique » (et donc voir le flux de données série en provenance de la carte Microbit) dans Mu sur raspberry  il faut installer (avant d’installer Mu) un certain nombre de programmes comme indiqué dans la procédure ci-dessous :

 

 

En étant dans le dossier /home/pi   (c’est-à-dire avec des lignes dans le terminal commençant par $)

 

 

$ sudo apt-get install python3-pyqt5

 

 

$ sudo apt-get install qtdeclarative5-dev

 

 

$ sudo apt-get install qt5-default

 

 

$ sudo apt-get install pyqt5-dev

 

 

$ sudo apt-get install pyqt5-dev-tools

 

 

$ sudo apt-get install pyqt5.qsci-dev

 

 

$ sudo apt-cache policy qt5-qmake

 

 

SIP 4.18.1:

$ wget https://netcologne.dl.sourceforge.net/project/pyqt/sip/sip-4.18.1/sip-4.18.1.tar.gz

$ tar zxvf sip-4.18.1.tar.gz

$ cd sip-4.18.1

$ python3 configure.py

$ make -j 3

$ sudo make install

 

Puis revenir dans le dossier /home/pi   en faisant cd ..

 

QtCharts 5.7:

$ git clone git://code.qt.io/qt/qtcharts.git -b 5.7

$ cd qtcharts

$ qmake -r

$ make

$ sudo make install

 

 

Puis revenir dans le dossier /home/pi   en faisant cd ..

 

PyQtChart 5.7:

$ cd ..

$ wget https://datapacket.dl.sourceforge.net/project/pyqt/PyQtChart/PyQtChart-5.7/PyQtChart_gpl-5.7.tar.gz

$ tar zxvf PyQtChart_gpl-5.7.tar.gz

$ cd PyQtChart_gpl-5.7

$ python3 configure.py --qtchart-version=2.0.1 --verbose

$ make

$ sudo make install

 

 

Puis revenir dans le dossier /home/pi   en faisant cd ..

 

·      Puis installation de mu :

 

Voir la page (pour une installation intégrée au système d'exploitation Raspbian, version stretch)

 

Ou en ligne de commande dans le terminal :

sudo apt-get update && sudo apt-get -y install mu

 

 

The micro:bit can be connected to the USB port of the Raspberry Pi and now be programmed using Mu editor. To read data from the BBC micro:bit, you need to have it running its own program and sending the results to the raspberry pi via serial communication. For that, you need to set up the BBC micro:bit, so it’s constantly taking readings from one of its sensors or pins. The microbit uses the serial USB port to send results to the REPL of the Mu editor. Thus, just printing the values in the REPL is enough for the sensor data to flow to the Raspberry Pi. The next step is to collect this data directly from the serial device. To get started, you first need to find out the device name the BBC micro:bit is using. Open the terminal and type the following

dmesg | tail -20 | grep ttyACM 

This will return the microbit’s serial device name as shown here:

https://makerdemy.com/wp-content/uploads/2019/04/ddd.png

Now, to collect the data from the microbit: Type the following command in the terminal

screen /dev/ttyACM0 115200

Make sure you change the device name to your own serial device name. Here the number 115200 is the baud rate at which the microbit is sending the data.

What can you do with this data you might ask? You can send this data to the cloud by using the Raspberry Pi as a Gateway. Furthermore, you may utilize the Radio functionality of the micro:bit to connect to other micro:bits in its range, and form a mesh network with Raspberry Pi as a Gateway Hub to the cloud. Thus the possibilities are endless.

 

 

·      Pour éjecter un lecteur clé USB

 

La commande

$ df

donne les disques montés.

 

Par exemple la clé USB apparait en ayant comme nom

/media/pi/0E90-A602

 

La commande

$ umount /media/pi/0E90-A602

Permet d'éjecter la clé USB.

 

 

 

·        En cas de problème (la carte Microbit n’apparait pas) on peut vérifier avec la commande suivante (si on est l’utilisateur pi) qu’on est bien dans le groupe dialout qui donne la permission d’utiliser la communication série tty du raspberry pi.

$ groups pi

renvoie entre autres :

dialout

 

 

 

Une image contenant carte, texte

Description générée avec un niveau de confiance très élevé

 

·        Exemple 1 : Afficher Essai 1 dans le shell

Saisir dans le shell

>>> print('essai 1')

 

Résultat :

essai 1 s'affiche dans le shell

mais essai 1 ne s'affiche pas sur la Carte Microbit

 

·        Exemple 2 : Afficher une fois Essai 2 défilant sur la Carte Microbit

Saisir dans le shell

>>> from microbit import *

>>> display.scroll('avec essai 2') puis appuyez sur la touche Entrer

 

Résultat :

Rien ne s'affiche dans le shell

essai 2 défile sur la Carte Microbit une seule fois puisqu'il n'y a pas de boucle while True:

 

·        Exemple 3 : Afficher en permanence Essai 3 défilant sur la Carte Microbit

Saisir dans le shell

>>>while True :

>>>      display.scroll('essai 3') puis appuyez sur la touche Entrer 4 fois

 

Résultat :

Le curseur revient à la marge dans le shell

essai 3 s'affiche sur la Carte Microbit en boucle infinie

Cliquez deux fois sur le bouton REPL pour interrompre l'exécution d'une boucle infinie

Des tutoriels détaillés pour les commandes en micropython sont disponibles sur :

https://Carte Microbit-micropython.readthedocs.io/en/latest/tutorials/introduction.html

 

·        Exemple 4 : Afficher une image ou une autre selon le bouton appuyé sur la Carte Microbit

o   Dans l'éditeur, appuyer sur le bouton Nouveau

o   Un nouvel onglet s'ouvre. Il s'appelle sans titre *

o   Saisir les lignes

from microbit import *

 

while True:

If button_a.is_pressed():

display.show(Image.ANGRY)

elif button_b.is_pressed():

display.show(Image.HAPPY)

 

o   Cliquez sur le bouton Vérifier. S'il y a des erreurs, corrigez-les. Sinon, cliquez sur le bouton Enregistrer en donnant un nom significatif au programme.

o   Cliquez sur le bouton Flasher pour charger le programme dans la carte Carte Microbit.

o   Sitôt le chargement terminé, la Carte Microbit exécute le programme.

 

·        Exemple 5 : Afficher une lettre ou une autre selon l'inclinaison de la Carte Microbit

o   Dans l'éditeur, appuyer sur le bouton Nouveau

o   Un nouvel onglet s'ouvre. Il s'appelle sans titre *

o   Saisir les lignes

from microbit import *

 

while True:

reading = accelerometer.get_(x)

print(reading)

if reading > 20:

display.show("R")

elif reading < -20:

display.show("L")

else:

display.show("-")

 

o   Cliquez sur le bouton Vérifier. S'il y a des erreurs, corrigez-les. Sinon, cliquez sur le bouton Enregistrer en donnant un nom significatif au programme.

o   Cliquez sur le bouton Flasher pour charger le programme dans la carte Microbit.

o   Sitôt le chargement terminé, la Carte Microbit exécute le programme.

 

Pour voir les valeurs de l'accélération s'afficher dans la fenêtre du graphique de Mu :

1.      Cliquez sur le bouton graphique (indisponible si l'ordi tourne sous Raspbian).

2.      Cliquez sur le bouton REPL

Une image contenant carte, texte, capture d’écran

Description générée avec un niveau de confiance élevé

 

Variante de code qui permet de voir le graphique se dessiner en temps réel :

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

Remarque :

Un fichier csv exploitable par un tableur est automatiquement enregistré par Mu dans le dossier C:\Users\nom_utilisateur\mu_code\data_capture

 

·        Exemple 6 : Faire dire un mot anglais au haut-parleur

Brancher un haut parleur entre les grosses pins 0 et 1.

o   Dans l'éditeur, appuyer sur le bouton Nouveau

o   Un nouvel onglet s'ouvre. Il s'appelle sans titre *

o   Saisir les lignes

import speech

 

speech.say("Hello world")

 

o   Cliquez sur le bouton Vérifier. S'il y a des erreurs, corrigez-les. Sinon, cliquez sur le bouton Enregistrer en donnant un nom significatif au programme.

o   Cliquez sur le bouton Flasher pour charger le programme dans la carte Microbit.

o   Sitôt le chargement terminé, la carte Microbit exécute le programme.

 

 

·        Exemple 7 : Faire jouer de la musique au haut-parleur

Brancher un haut parleur entre les grosses pins 0 et GND.

o   Dans l'éditeur, appuyer sur le bouton Nouveau

o   Un nouvel onglet s'ouvre. Il s'appelle sans titre *

o   Saisir les lignes

import music

 

music.play(music.NYAN)

 

o   Cliquez sur le bouton Vérifier. S'il y a des erreurs, corrigez-les. Sinon, cliquez sur le bouton Enregistrer en donnant un nom significatif au programme.

o   Cliquez sur le bouton Flasher pour charger le programme dans la carte Microbit.

o   Sitôt le chargement terminé, la carte Microbit exécute le programme.

 

 

·        Exemple 8 : Faire communiquer deux cartes Carte Microbit

o   Dans l'éditeur, appuyer sur le bouton Nouveau

o   Un nouvel onglet s'ouvre. Il s'appelle sans titre *

o   Saisir les lignes

Utilisez un copié collé à partir du site https://Carte Microbit-micropython.readthedocs.io/en/latest/tutorials/radio.html

 

# A carte Microbit Firefly.

# By Nicholas H.Tollervey. Released to the public domain.

import radio

import random

from Carte Microbit import display, Image, button_a, sleep

 

# Create the "flash" animation frames. Can you work out how it's done?

flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]

 

# The radio won't work unless it's switched on.

radio.on()

 

# Event loop.

while True:

    # Button A sends a "flash" message.

    if button_a.was_pressed():

        radio.send('flash'# a-ha

    # Read any incoming messages.

    incoming = radio.receive()

    if incoming == 'flash':

        # If there's an incoming "flash" message display

        # the firefly flash animation after a random short

        # pause.

        sleep(random.randint(50, 350))

        display.show(flash, delay=100, wait=False)

        # Randomly re-broadcast the flash message after a

        # slight delay.

        if random.randint(0, 9) == 0:

            sleep(500)

            radio.send('flash')  # a-ha

 

Puis, pour la carte émetteur, le simplifier en :

 

# A carte Microbit Firefly.

# By Nicholas H.Tollervey. Released to the public domain.

import radio

from Carte Microbit import *

 

# The radio won't work unless it's switched on.

radio.on()

 

display.show(Image.HEART)

 

# Event loop.

while True:

    # Button A sends a "flash" message.

    if button_a.was_pressed():

        radio.send('Button A pressed !')

    elif button_b.was_pressed():

        radio.send('Button B pressed !')

 

 

o   Cliquez sur le bouton Vérifier. S'il y a des erreurs, corrigez-les. Sinon, cliquez sur le bouton Enregistrer en donnant un nom significatif au programme.

o   Cliquez sur le bouton Flasher pour charger le programme dans la carte Microbit.

o   Sitôt le chargement terminé, la Carte Microbit exécute le programme.

 

·        Site pour mettre à jour le Firmware des cartes Microbit (version 0253 au 18 août 2019).

 

3        Appairer une carte Microbit avec un téléphone Androïd en bluetooth

https://makecode.Carte Microbit.org/reference/bluetooth/bluetooth-pairing

  L’appariement n’est pas possible pour une carte Microbit qui a été programmée en micropython. C’est possible seulement pour une carte Microbit qui a été programmée par blocs avec MakeCode.

 

 

4        Effectuer la transition Programmation par blocs (collège) à la Programmation en Python (Lycée)

 

4.1       Correspondance Scratch - Python

document .pdf en anglais.

 

4.2       Outil Vittascience

L’outil proposé par Vittascience permet la programmation graphique en version francisée, mais également de voir en parallèle le code Python idoine.

Un commutateur situé en haut à droite permet de choisir le mode de programmation (graphique, python, ou mixte).

https://fr.vittascience.com/microbit/?lang=fr&mode=mixed

D'autres outils intéressants sont présents sur le site, à explorer également,

 

 

4.3       L'éditeur de programme edublocks

Cette éditeur offre deux possibilités :

·        Sous Windows : edublocks s'utilise sur le site web https://edublocks.org/

·        Sous raspbian, on installe le logiciel Edublocks par la commande :

curl -sSL get.edublocks.org | bash

 

Une image contenant équipement électronique

Description générée avec un niveau de confiance très élevé

 

 

·        Sous Raspbian : le même site propose une version installable sur Raspberry Pi

 

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

 

Avantages :

·        Les programmes peuvent être écrits en Scratch ou en Python.

·        Il traduit les programmes scratch en Python (traduction instantanée dans la version sou Raspbian).

·        Il permet de charger des bibliothèques supplémentaires comme celle du robot GiggleBots.

 

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

 

·        Expérimentation avec Le Prototyping System for the BBC carte Microbit de Kitronik

 

Le schéma ci-dessus ( edge connector breakout de Kitronik) est téléchargeable en pdf ici.

 

Explication de la transmission de données (video  sur Youtube ) et plus encore sur le site de Core Electronics

·        Utilise un programme Carte Microbit transmission data montré dans la vidéo avec l'éditeur par blocs : makecode)

·        Utilise le module SparkFun OpenLog capable d'envoyer des données série sur un micro carte SD

·        Une carte Microbit dont on utilise les pins 14 (récepteur RX) et 15 (émetteur TX)

 

Un grand nombre de projets sur le blog de Kitronik

 

Et aussi sur le site http://www.bittysoftware.com/

 

 

5        Transmission série : explications du protocole série et mise en œuvre sur 2 Carte Microbits :

·        Vidéo de Martin Dave https://www.youtube.com/watch?v=MYoMM1FY6yM

 

·        Utilisation de l'éditeur de micropython Mu : Fichiers uart-test-aaa et uart-test-bbb

 

 

Photo du montage :

 

La vidéo du fonctionnement du montage est téléchargeable ici.

 

6        Recevoir des signaux GPS sur une carte Microbit par le bus série I²C ou par l'entrée RX de la carte Microbit (cela dépend du type de module GPS. Certains n'ont pas de bus I²C et n'ont qu'une sortie série "TX" qui va sur l'entrée série "RX" de la carte Microbit)

·        D'après le site de Dave Ackerman http://www.daveakerman.com/?p=2019

 

6.1       Equipement

6.1.1       Schéma général si le module GPS a un bus I²C avec ses deux lignes Serial Data et Serial CLock:

 

o   Script micropython Carte Microbit émetteur : emetteur_gps_avec_radio.py

o   Script micropython Carte Microbit récepteur : recepteur_avec_radio.py

o   Programme Python sur Spyder

§  Sans extraction. Affiche 50 lignes NMEA : listing_nmea_sans_extraction_dans_spyderV1.py

§  Avec extraction des coordonnées géographiques : listing_nmea_avec_extraction_dans_spyderV2.py

 

 

6.1.2       si le module GPS n'a qu'une transmission série pilotée par un UART avec sa sortie TX

 

o   Script micropython Carte Microbit émetteur : emetteur_gps_tx_avec_radio.py

o   Script micropython Carte Microbit récepteur : recepteur_avec_radio.py

o   Programme Python sur Spyder

§  Sans extraction. Affiche 50 lignes NMEA : listing_nmea_sans_extraction_dans_spyderV1.py

§  Avec extraction des coordonnées géographiques : listing_nmea_avec_extraction_dans_spyderV2.py

 

Logiciel Mu :

o   L'éditeur de code MicroPython "Mu" pour programmer les cartes Microbit

o   L'interface de la carte Microbit doit être au moins le version 250. Pour vérifier la version, allez dans le lecteur qui représente la carte Microbit dans l'explorateur de fichiers. Ouvrez le fichier texte "DETAILS.TXT" :

1.      Ici on a la version 249 :

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

2.      Pour passer à la version 253, téléchargez le fichier 0253_kl26z_Microbit_0x8000.hex

3.      Ou bien vérifiez s'il y a une version encore plus récente sur ce site https://Microbit.org/guide/firmware/

4.      Retirez les piles.

5.      Débranchez le câble USB de la carte Microbit.

6.      Tout en maintenant enfoncé le bouton Reset, branchez le câble USB sur la carte Microbit puis relâchez le bouton Reset.

7.      Le lecteur associé à la carte Miocrobit devrait prendre le nom de MAINTENANCE.

8.      Faites glisser le fichier 0253_kl26z_Microbit_0x8000.hex (ou plus récent) sur le lecteur MAINTENANCE

9.      Au bout de quelques secondes, la carte Microbit se déconnecte d'elle-même et se reconnecte. Elle doit apparaitre à nouveau comme un lecteur nommé MICROBIT

10.   Vérifiez alors comme à l'étape 1. la version de l'interface. Elle devrait avoir évolué.

 

Une image contenant capture d’écran

Description générée avec un niveau de confiance élevé

 

La carte Microbit est maintenant prête à comprendre certaines instructions comme les références au bus I²C.

 

 

6.2       Montage

6.2.1       Montage si le module GPS a un bus I²C avec ses deux lignes Serial Data et Serial CLock:

 

 

6.2.2       Montage si le module GPS n'a qu'une transmission série pilotée par un UART avec sa sortie TX

 

6.3       Premiers programmes émetteur (Carte Microbit A) et recepteur (Carte Microbit B)

Après les premiers essais, un problème apparait : les trames NMEA qui sont affichées par le récepteur sont tronquées. Probablement, les chaines de caractères Line sont trop longues.

 

On modifie donc le programme émetteur de façon à paramétrer la longueur des lignes (en nombre d'octets) pour l'objet radio() de la carte Microbit. La documentation sur la spécification pour les communications NMEA 0183   Wikipedia (en anglais) dit que les trames NMEA ont une longueur maximale de 82 octets. On règle aussi le paramètre radio.queue() qui est une mémoire tampon a sa plus grande longueur afin que les données arrivant puissent s'y écrire sans perte.

(D'après la documentation de micropython pour la carte Microbit sur le site https://Carte Microbit-micropython.readthedocs.io/en/latest/radio.html )

 

·        Listing complet du Code sur la carte Microbit A (qui reçoit les trames NMEA du module GPS et les émet par radio) :

emetteur_gps_avec_radio.py

 

Une image contenant capture d’écran

Description générée avec un niveau de confiance très élevé

 

 

 

·        Listing complet du Code sur la carte Microbit B (qui reçoit les trames NMEA par radio en provenance de A) :

recepteur_gps_avec_radio.py

 

Une image contenant extérieur

Description générée avec un niveau de confiance élevé

 

 

·        La Carte Microbit B envoie les trames NMEA sur le REPL de Mu par la prise USB : ici la manip en vidéo

 

 

6.4       Programme dans Spyder

 On doit d'abord paramétrer Spyder ainsi :

·        Allez dans Outils / Préférences et activez la prise en charge des graphes par Matplotlib :

 

·        Dans la rubrique "Exécuter", demandez l'exécution dans un terminal système externe :

 

Et un peu plus bas dans le même onglet, cochez "Interagir avec la console Python après exécution" :

 

 

·        Refermez Spyder.

 

·        Avant de continuer, il faut d'abord installer l'outil pip ou faire la mise à jour de pip qui permet d'installer des bibliothèques de Python

 

La procédure est décrite ici.

 

Une fois la procédure terminée, se placer dans C:\python-drawnow-master

puis taper

pip install serial

puis

pip install pyserial

 

 

·        Enfin, ouvrez Spyder et saisissez le début du code suivant qui va permettre de faire défiler les trames NMEA dans Python (une trame compte une dizaine de lignes commençant toutes par $ puis 5 lettres d'identification par exemple $GNPMC, $GNGGA…) :

Listing complet du Code Python dans Spyder (qui écoute la carte Microbit réceptrice qui parle sur un port de l'ordinateur) :

listing_nmea_sans_extraction_dans_spyderV1.py

 

·        Le résultat dans le shell de Spyder (paramétré comme indiqué au début de ce paragraphe 6.3) :

La trame GGA est très courante car elle fait partie de celle qui sont utilisées pour connaitre l'heure courante et la position du récepteur GPS :

 

 

On voit dans cet exemple, à quelles positions il faut se situer dans la ligne $GNGGA pour obtenir "GGA" (pour identification de la ligne) et où il faut aller extraire la latitude et la longitude.

 

 

 

Vidéos du fonctionnement dans Spyder (avec un module GPS n'ayant qu'une sortie TX)

·        Sans extraction. Affiche une cinquantaine de lignes NMEA : Vidéo 20190310_trames_nmea_tx_sans_extraction.mp4

·        Avec extraction des coordonnées géographiques : Vidéo 20190310_trames_nmea_tx_avec_extraction.mp4

 

 

6.5       Retrouver l'endroit où se situe le module GPS dans Geoportail

Il faut d'abord convertir le format degrés – minutes des trames NMEA au format Degrés Décimaux

Exemple avec la trame GNGGA ci-dessus :

 

 

Trame GNGGA du GPS

Format degrés décimaux

Latitude

48° 01,74697' N

 

Degrés

1

x

Minutes

60

1,74697

 

Donc 01,74697' = 0,02917°

Donc la latitude décimale est 48,02917° N

 

Longitude

000° 45,90129 W

 

Degrés

1

x

Minutes

60

45,90129

 

Donc 45,09129' = 0,76502°

Donc la longitude décimale est 0,76502° W ce qui donne – 0,76502° dans Geoportail car les longitudes à l'ouest du méridien de Greenwich sont comptées négativement)

 

 

Sur le site www.geoportail.gouv.fr, saisir dans la zone de recherches les coordonnées 48,02917N et 0,76502W (Géoportail fait la traduction en Coordonnées 48.02917 -0.76502 instantanément)

 

Puis cliquez sur OK pour voir le lieu sur la carte où se trouve le GPS quand il reçoit cette trame.

 

Pour plus d'informations, cliquez sur l'iconne "Outils cartographiques à droite de la fenêtre :

 

Une image contenant texte, carte

Description générée avec un niveau de confiance très élevé

 

Allez dans Outils principaux et Afficher les coordonnées.

Une image contenant capture d’écran, carte

Description générée avec un niveau de confiance élevé

 

Déplacer le curseur de la souris sur la carte. On voit l'altitude du point.

 

6.6       Explications sur les trames NMEA

Voir plus d'explications sur les types de trames (d'après https://fr.wikipedia.org/wiki/NMEA_0183 )

 

Type de trames

Il existe plus d'une trentaine de trames GPS différentes. Le type d'équipement est défini par les deux caractères qui suivent le $. Le type de trame est défini par les caractères suivants jusqu'à la virgule. Par exemple :

$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E

est une trame GPS de type GGA.

Les deux premiers caractères après le signe $ (talker id) identifient l'origine du signal2. Les principaux préfixes sont :

·        BD ou GB - Beidou chinois ;

·        GA - Galileo  européen;

·        GP - GPS ;américain

·        GL - GLONASS. russe

·        GN – signaux mixés GPS + GLONASS

Le préfixe GN est utilisé dans le cas de signaux mixés GPS + GLONASS.

Chaque trame a sa syntaxe propre, mais selon le cas elles peuvent ou doivent se terminer, après le *, par des bits de contrôle qui permettent de vérifier que la trame n'a pas été endommagée avant sa réception3.

La trame GGA est très courante car elle fait partie de celles qui sont utilisées pour connaître la position courante du récepteur GPS.

$GPGGA       : Type de trame
064036.289   : Trame envoyée à 06h 40m 36,289s (heure UTC)
4836.5375,N  : Latitude 48,608958° Nord = 48°36'32.25" Nord
00740.9373,E : Longitude 7,682288° Est = 7°40'56.238" Est
1            : Type de positionnement (le 1 est un positionnement GPS)
04           : Nombre de satellites utilisés pour calculer les coordonnées
3.2          : Précision horizontale ou HDOP (Horizontal dilution of precision)
200.2,M      : Altitude 200,2, en mètres
,,,,,0000    : D'autres informations peuvent être inscrites dans ces champs
*0E          : Somme de contrôle de parité, un simple XOR sur les caractères entre $ et *3

Une autre trame très courante pour les bateaux est la RMC, qui donne l'heure, la latitude, la longitude, la date, ainsi que la vitesse et la route sur le fond mais pas l'altitude.

$GPRMC,053740.000,A,2503.6319,N,12136.0099,E,2.69,79.65,100106,,,A*53
 
$GPRMC       : type de trame
053740.000   : heure UTC exprimée en hhmmss.sss : 5h 37m 40s
A            : état A=données valides, V=données invalides
2503.6319    : Latitude exprimée en ddmm.mmmm : 25°03.6319' = 25°03'37,914"
N            : indicateur de latitude N=nord, S=sud
12136.0099   : Longitude exprimée en dddmm.mmmm : 121°36.0099' = 121°36'00,594"
E            : indicateur de longitude E=est, W=ouest
2.69         : vitesse sur le fond en nœuds (2,69 kn = 3,10 mph = 4,98 km/h)
79.65        : route sur le fond en degrés
100106       : date exprimée en qqmmaa : 10 janvier 2006
,            : déclinaison magnétique en degrés (souvent vide pour un GPS)
,            : sens de la déclinaison E=est, W=ouest (souvent vide pour un GPS)
A            : mode de positionnement A=autonome, D=DGPS, E=DR
*53          : somme de contrôle de parité au format hexadécimal3 

Un récepteur GPS renvoie souvent plusieurs types de trames complémentaires (les GGA et RMC en sont un exemple) car tous les logiciels qui interprètent le NMEA ne connaissent pas toutes les trames. De même de nombreux GPS transmettent des trames non standardisées propres à leur fabricant (d'habitude ces trames propriétaires ne commencent pas par $GP. Par exemple, «GL» réservé aux GLONASS).

Les trames NMEA font toutes référence à l'ellipsoïde WGS84 comme base de son système de coordonnées.

 

 

7        Affichage de la tension de source d’alimentation de la carte Microbit

D’après le site

Fichier .hex ici : battery-voltage.hex

 

 

8        Une prise en main de la carte Microbit sur le site de l'académie de Nantes (Lycée Aristide Briand – Saint Nazaire)

 

Activité de prise en main de la carte Microbit trouvée sur http://python.abriand.info/  (voir le point 13)

Prise en main puis 12 exercices progressifs : énoncés

Exercice 1. Correction

Exercice2. Correction

Exercice 3. Correction

Exercice 4. Correction

Exercice 5. Correction

Exercice 6. Correction

Exercice 7. Correction

Exercice 8. Correction

Exercice 9. Correction

Exercice 10. Correction

Exercice 11. Correction

Exercice 12. Correction

 

 

 

·        Pour aller plus loin : Annexe 1

·        Schéma structurel du contrôleur Microbit : Annexe 2

 

 

 

9        Divers projets utilisant la programmation en Scratch sur la carte Microbit sur le site de projects.raspberrypi.org

https://projects.raspberrypi.org/fr-FR/projects?page%5Bnumber%5D=1

 

 

 

Un bloc note sur la carte Microbit :

https://hub.mybinder.org/user/ericecmorlaix-mesbn-4vrwz6pv/notebooks/BBCMicrobit-Un_BN_Pour_MicroPython.ipynb

 

 

10   Thingspeak

Sur le site  https://thingspeak.com/channels/754738/private_show  de Thingspeak

Channel name : astrovirtuel

Description : mesures

- A l'aide de Mu, téléverser le programme CARTE001.py dans la carte (en mode Microbit) : il fait 5 lignes !
- Exécuter le programme
PC001.py directement dans MU (en mode python 3)

Ou une évolution :

- Exécuter le programme PC002MB.py directement dans MU (en mode python 3)

 

 

 

11   Interfacer une carte Microbit avec une application tournant sous Python

 

Pour info on peut très facilement interfacer la carte Microbit avec une application tournant sous Python. ( ou node.js ou web USB)

Du coup on peut utiliser les modules de son choix (matplotlib,etc)

 

Voir le lien ci-dessous :

http://isnbreizh.fr/ixn/activity/Microbit/MicrobitSerial/MicrobitSerial.html

 

On peut même avoir une carte Microbit embarqué qui envoie des valeurs via le mode radio à  une autre carte  Microbit reliée au PC.

http://isnbreizh.fr/ixn/activity/Microbit/MicrobitRadio/MicrobitRadio.html

 

 

12   Documentation

Sur le site https://laboiteaphysique.fr/site2/ par Vincent le Mieux

1.      Un document pdf « Découvrir Python Microcontrôleur » (utilisation de base de la carte Microbit)

2.      Un document pdf « Etendre fonctionnalités microcontrôleur A3 » (utilisation avancée de la carte Microbit)

 

 

 

13   Plein d’idées de montages

Sur le site   https://microbit.org/fr/ideas/

 

 

Des tutoriels de chez Yahboom autour du « Starterkit Microbit »

Basic lessons  (pdf)

Sensor lessons  (pdf)

Creative lessons  (pdf) – Notamment avec l’utilisation d’une entrée analogique série

Python lessons  (pdf)