microbit & Neopixel

MICROBIT : UN “NIVEAU À BULLE”

L’objectif est de créer un “niveau à bulle” , c’est-à-dire un outil qui permette de vérifier l’horizontalité ou la verticalité d’une surface.

Il n’y aura pas de bulle dans notre niveau à bulle …
Nous allons proposer deux solutions différentes

  • un affichage qui utilise les LED de la carte
  • un affichage qui déplace une lumière sur un Neopixel

Principe de fonctionnement

L’accéléromètre du microbit mesure constamment aussi bien l’accélération de la pesanteur à la surface de la terre (environ 9.81 m/s2), dirigée verticalement vers le bas, que des accélérations dues aux changements de vitesse dans les deux autres directions.

L’accéléromètre est bien visible sur la carte du micro:bit. Il est tout-à-fait analogue à ceux qui se trouvent dans les smartphones et qui permettent de déterminer leur orientation ou leurs mouvements.

Ce capteur peut mesurer l’accélération dans chacune des trois dimensions (axes x, y et z), y compris l’accélération de la pesanteur terrestre.

À partir de ces valeurs lues en permanence par le capteur, il est possible de déterminer l’inclinaison avant (pitch) et l’inclinaison latérale (roll).

1/ Mise en œuvre

Il y a une méthode pour chaque axe qui renvoie un nombre positif ou négatif qui indique une mesure en milli-g. Lorsque la lecture est de 0, il y a un alignement selon cet axe.

Par exemple, voici un « niveau à bulle » très simple qui utilise get_x pour mesurer l’alignement de l’appareil selon l’axe X:

 

from microbit import *
while True:
    acc = accelerometer.get_x()
    print (acc)
    if acc > 0:
        display.show(Image.ARROW_E)
    else:
        display.show(Image.ARROW_W)
    sleep(100)

E1 : Testez le programme précédent sur la microbit

2/ Utilisation avancée de l’écran (display)

Les valeurs renvoyées par les méthodes get_x() et get_y() sont comprises entre -1024 et +1024.

E2 : Écrivez un programme qui va allumer un pixel de l’écran au centre, lorsque la carte est parfaitement horizontale.
Le pixel se déplace à droite ou à gauche (selon l’axe x) lorsque la carte tourne autour de l’axe y.

E3 : Écrivez un programme qui va allumer un pixel de l’écran au centre, lorsque la carte est parfaitement horizontale.
Le pixel se déplace en haut ou en bas (selon l’axe y) lorsque la carte tourne autour de l’axe x.

E4 : Enfin, le pixel se déplace sur tout l’écran selon les rotations de l’axe x ou l’axe y

3/ Niveau à bulle et Neopixel

Il s’agit de visualiser le niveau sur un axe, avec un rendu LED, grâce à un Neopixel.

E5 : En partant des programmes précédents et du TP sur Neopixel, la bulle de l’axe x est maintenant matérialisée par une lumière qui se déplace sur le Neopixel.

Si vous avez le temps : une couleur pour la bulle x et une autre couleur pour la bulle y

Micro:bit (2nde option SI)

Introduction

 Avec la carte micro:bit nous allons expérimenter l’informatique embarquée grâce à un micro-système facile à mettre en œuvre, et que nous allons programmer avec un langage familier (python). 

 micro:bit dispose de capteurs et permet de piloter des actionneurs. La communication radio est également possible.

La carte micro:bit

Micro:bit est un microcontrôleur basé sur l’architecture ARM et conçu par la BBC. Sa taille est de la moitié d’une carte de crédit Elle intègre Bluetooth, des accéléromètres, une boussole, trois boutons, une matrice LED 5×5.

  • Tension: DC 5V par USB, ou 3V 
  • Courant: alimenté par USB ou chargeur avec une capacité supérieure ou égale à 1A Puissance maximum de sortie : 10W 
  • Température : 0-50 degrés Celsius 
  • Dimensions: 40*50mm 
  • Microcontrôleur  Nordic Semiconductor nRF51822, 16 MHz, 32 bits, à processeur ARM Cortex-M0, 
  • 256 ko de mémoire de stockage flash (ou mémoire morte, EEPROM ou ROM), 
  • 16 ko de mémoire vive (SRAM ou RAM) statique. 
  • Le noyau ARM peut passer de 16 à 32,768 kHz 
  • Directive environnementale : RoHS 
  • Connectique 2,4 GHz Bluetooth 4.0 LE 
  • Magnétomètre 3D (ou boussole numérique) NPX/Freescale MAG3110 
  • Capteur de mouvements 3D (ou accéléromètre, capteur gyroscopique, capteur d’accélération linéaire) NXP/Freescale MMA8652 
  • Capteur de température embarqué; 
  • Port micro-USB, pour l’alimentation électrique et la connexion à un ordinateur
  • Connecteur pour piles 
  • Un bouton de réinitialisation 
  • Deux boutons programmables 
  • Une matrice 5 x 5 de 25 LED rouges programmables individuellement servant d’affichage Cinq anneaux d’entrée-sortie et 20 broches de
    connexion

Connecteur

Le connecteur de la micro:bit facilite le prototypage d’applications simples : les anneaux 0, 1 et 2 peuvent être programmées en entrée ou en sortie. 

 les anneaux 3V et GND servent, 

  • soit à alimenter la carte, 
  • soit, si la carte est déjà alimentée, à fournir une alimentation pour un capteur ou un actionneur

La carte micro:bit peut facilement être intégrée dans une application matérielle, ce qui peut s’avérer utile dans un projet STI2D.

Le connecteur “edge” sert à concevoir des cartes à base
de micro:bit

Exemple de réalisation

Programmation avec  https://create.withcode.uk/

    Cet interface web permet :

  1. de programmer la carte micro:bit, 
  2. de simuler le programme, lorsqu’on a pas de carte à disposition. 

Aucune installation n’est nécessaire : il suffit d’aller sur le site
https://create.withcode.uk/

  1. Lancer l’application on-line grâce à l’URL : https://create.withcode.uk/ 
  2. Écrire (ou coller) le programme dans la fenêtre de gauche
  3. Lancer le programme avec le bouton en bas à droite
  4. Le cas échéant, agir sur le programme en utilisant le tableau de commande
             
    on peut, ici, simuler un mouvement de la carte, un appui sur un bouton …
  5. Si le programme ne donne pas satisfaction: l’arrêter avec (attention, ceci est obligatoire pour que les modifications apportées au programme soient prises en compte
  6. Recommencer en 2.

Programmation avec mu-editor

Il faut, dans ce cas disposer d’une carte micro:bit reliée au port USB  de l’ordinateur, et avoir mu-editor installé. 

 Une fois l’éditeur installé, la carte micro:bit préalablement reliée à un port USB , est programmée par appui sur le bouton “Lancer”

Librairie python pour micro:bit

 La documentation et des exemples sont disponibles à cette adresse : 

https://microbit-micropython.readthedocs.io/

 Il est utile et recommandé de faire un “tour de tout” , c’est à dire de survoler les exemples , pour mesurer ce que l’on peut attendre de ce matériel .  Ceci nous permettra de savoir, en situation de projet,  si la micro:bit peut être une solution, à moindre coût,  pour un besoins particulier, du moins pour la phase de prototypage.