TP 11 - UART et Bluetooth BBC Micro: bit

Objectifs du TP

  • Utilisation du protocole de communication UART
  • Connexion micro: bit au téléphone via Bluetooth

UART

VirtualBox sera utilisé pour réaliser ce chapitre dans le laboratoire. Pour connecter la carte à la machine virtuelle, elle doit être installée Extension Pack et intégré avec des extensions dans VirtualBox.

Connectez le micro: bit à la machine virtuelle en selectionnant sélectionnez l'option Devices→USB→Microbit.

Apres, ouvrez un terminal et si vous n'avez pas encore installé le programme screen , tapez la commande suivante:

$sudo apt-get install screen

L'étape suivante consiste à trouver le port auquel la carte est connectée, à l'aide de la commande:

$ls /dev/ttyACM*

Vous devriez avoir une sortie similaire à / dev / ttyACM0. La dernière étape consiste à se connecter au série à l'aide de la commande:

$sudo screen /dev/ttyACM0 115200

115200 représente la vitesse lue par le port série. Pour quitter l'écran, tapez Ctrl-A, Ctrl-D.

Fonctions utiles dans le module uart :

  • microbit.uart.init (baudrate = 9600, bits = 8, parity = None, stop = 1, *, tx = None, rx = None) - initialise la communication avec la série.

bauderate - représente la vitesse de communication avec la série, il peut prendre les valeurs suivantes: 9600, 14400, 19200, 28800, 38400, 57600, 115200.

bits - représente le nombre de bits qui seront transmis.

parity - montre comment vérifier la parité; peut prendre les valeurs: Aucun, microbit.uart.ODD, microbit.uart.EVEN.

stop - représente le nombre de bits d'arrêt, dans le cas de cette plaque, la valeur est 1.

  • uart.any - renvoie True s'il attend des données, sinon il retournera False .
  • uart.read ([nbytes]) - lecture de bits. Le paramètre nbytes est facultatif, mais s'il est spécifié, au plus nbytes seront lus.
  • uart.readall () - lit autant de données que possible.
  • uart.readinto (buf [, nbytes]) - renvoie le nombre de bits lus et stockés dans buf ou renvoie None à l'expiration du délai.
  • uart.readline () - lit une ligne se terminant par une nouvelle ligne.
  • uart.write (buff) - écrit le buffer.
Exemple

Dans l'exemple suivant, nous enverrons un message de micro: bit à l'ordinateur. Chargez le code sur micro: bit, puis dans le terminal linux, où vous avez ouvert le programme écran vous verrez le message Hello from micro: bit .

from microbit import *
 
msg = "Hello from micro: bit"
uart.write(msg)

Envoi de données de micro: bit à l'ordinateur

Si vous n'avez pas installé python sur votre machine virtuelle, suivez les étapes de documentation.

La première étape consiste à écrire le code qui sera chargé sur le micro: bit. Le programme suivant mesurera et affichera la température toutes les secondes.

from microbit import *
while True:
    msg = str(temperature()) + "\n"
    uart.write(msg)
    sleep (100)

Écrivez le programme suivant dans un fichier python appelé serial_example.py :

import serial, time #import the libraries; serial library is used for the connection to micro:bit
port = "/dev/ttyACM0" #port value to connect the computer with micro: bit
baud = 115200
s = serial.Serial(port) #initialize the serial
s.baudrate = baud
while True:
    data = s.readline() # read the lines of data being sent via the serial connection
    print(data)
    time.sleep(1)

Pour exécuter le programme, vous devez installer pyserial en utilisant la commande ci-dessous.

sudo pip3 install pyserial

Exécutez le fichier python précédemment écrit avec la commande:

$sudo python3 serial_exemple.py

Exercices

  1. Ecrivez un programme en Python, qui envoie à l'ordinateur à un intervalle de 2 secondes une valeur des paramètres environnementaux (température, luminosité, niveau de bruit)). Exemple (temperature: 20)
  2. Ecrivez un programme en Python, qui avertit l'ordinateur par un message, si le logo ou les boutons ont été pressés sur le micro: bit, et si la plaque a été secouée, le programme arrêtera l'exécution.
  3. Simulez Chatbot. Écrivez un programme avec les fonctionnalités suivantes:
  • Au début du programme, il envoie un message d'accueil à l'utilisateur (dans ecran ), ex: Hello! .
  • Si le micro: bit est secoué, le chatbot envoie un message “Can't respond”
  • L'utilisateur peut envoyer des messages standard pour connaître les valeurs des paramètres environnementaux. Par exemple, si l'utilisateur entre le texte light le chatbot retournera la valeur du niveau de lumière enregistré par le micro: bit. Commandes similaires pour le reste des paramètres (par exemple température, son, boussole, accéléromètre)
  • Activation de l'alarme: lorsque l'utilisateur entre le message “Alarm on”, le micro: bit commence à s'allumer pendant 2 secondes et va donner une chanson de la bibliothèque musique .
  • Pour terminer la “conversation” avec le chatbot, l'utilisateur enverra le message “Goodbye”. Le chatbot enverra le même message.

Bluetooth

En utilisant les services bluetooth, on peut utilise les fonctions suivantes:

  • bluetooth.on_bluetooth_connected () - il démarre un gestionnaire d'événements qui s'exécute tant que le microSbit est connecté à partir de Bluetooth.
  • bluetooth.on_bluetooth_disconnected () - il démarre un gestionnaire d'événements qui s'exécute tant que le microSbit est déconnecté de Bluetooth.
  • bluetooth.start_accelerometer_service () - le service d'accéléromètre permet à un autre appareil, tel qu'un smartphone, de recevoir des données sans fil de l'accéléromètre micro: bit. Un accéléromètre détecte le mouvement.
  • bluetooth.start_button_service () - le service de bouton permet à un autre appareil, par exemple un smartphone, d'être averti sans fil chaque fois qu'un bouton à l'avant du micro: bit est enfoncé.
  • bluetooth.start_led_service () - Le service LED permet à un autre appareil, tel qu'un smartphone, d'envoyer de courtes chaînes de texte ou des motifs via une connexion Bluetooth à un micro: bit pour affichage sur son tableau de LED.
  • bluetooth.start_temperature_service () - Service de température Bluetooth, transforme votre smartphone ou tablette en un thermomètre graphique en utilisant micro: bit comme capteur.

Pairing

Tout d'abord, il est recommandé de télécharger le fichier .hex à partir d'un programme écrit en MakeCode. Ecrivez un programme, qui affiche une image sur l'écran micro: bit, comme dans l'exemple suivant:

basic.show_icon(IconNames.HAPPY)

L'étape suivante consiste à installer l'application micro: bit sur votre téléphone Android iOS.

Ouvrez l'application sur votre téléphone mobile et sélectionnez “Pair”, puis appuyez sur “PAIR A NEW MICRO:BIT”. Autorisez l'application à accéder au Bluetooth. Appuyez simultanément sur les boutons A et B, puis appuyez et relâchez le bouton RESET. Maintenez les boutons A et B enfoncés jusqu'à ce que vous voyiez le signe Bluetooth sur l'écran. Un motif apparaîtra sur l'écran micro: bit que vous devez reproduire sur votre téléphone.

Si vous rencontrez des difficultés pour accéder au Bluetooth sur la carte, éteignez le micro: bit sur l'ordinateur et connectez la carte à la batterie du kit.

Création d'un programme depuis l'application

Ajoutez l'extension bluetooth à MakeCode dans le menu en appuyant sur “Extensions”, puis choisissez l'extension souhaitée. Parce que la carte est connectée via Bluetooth au téléphone, via l'application, des programmes peuvent être écrits, qui peuvent fonctionner sur micro: bit.

Exercice

Dans le menu de l'application, cliquez sur “Créer du code”, puis vous aurez l'éditeur de code ouvert. Écrivez un code en Python, qui lorsque vous appuyez sur le logo affiche un nombre aléatoire de 0 à 9 sur l'affichage micro: bit.

Le micro: bit peut ne pas être détecté par l'application dans certaines situations. Dans ce cas, entrez les paramètres Bluetooth de votre téléphone, appuyez sur pour Dissocier BBC micro: bit, puis répétez les étapes précédentes.

Exemple

Pour commencer, nous allons écrire un programme simple dans lequel nous vérifierons si le microcontrôleur est connecté ou non à Bluetooth, en accédant à l'extension précédemment ajoutée. Nous utiliserons on_bluetooth_connected et on_bluetooth_disconnected. Téléchargez le programme suivant sur le micro: bit active le Bluetooth sur la carte et le téléphone.

def on_bluetooth_connected():
    basic.show_icon(IconNames.HAPPY)
bluetooth.on_bluetooth_connected(on_bluetooth_connected)
 
def on_bluetooth_disconnected():
    basic.show_icon(IconNames.SAD)
bluetooth.on_bluetooth_disconnected(on_bluetooth_disconnected)

Bitty Blue

Bitty Blue est une application pour iOS et Android qui vous permet de vous connecter à votre appareil BBC micro: bit via Bluetooth. Installez l'application pour Android ou iOS.

Exemple

Dans l'exemple suivant, nous utiliserons la boussole. Téléchargez le code suivant sur la carte, puis connectez-la via Bluetooth à l'application Bitty Blue en appuyant sur le bouton Scan . Après la connexion, choisissez dans le menu de l'application Compass où vous pourrez voir en temps réel les coordonnées micro: bit sur la boussole.

def on_bluetooth_connected():
    basic.show_icon(IconNames.HAPPY)
bluetooth.on_bluetooth_connected(on_bluetooth_connected)
 
def on_bluetooth_disconnected():
    basic.show_icon(IconNames.SAD)
bluetooth.on_bluetooth_disconnected(on_bluetooth_disconnected)
 
input.calibrate_compass()
bluetooth.start_magnetometer_service()

Exercice

  1. Ecrivez un programme qui accède les fonctionnalités disponibles dans l'application Bity Blue et voyez comment il interagit avec le micro:bit. (polysquiggle, display control, animal magic).
sde2/laboratoare/11_microbit_fr.txt · Last modified: 2021/05/26 14:21 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0