This is an old revision of the document!


TP 04 - Périphériques sur BBC micro:bit

Objectif du TP

  • Utilisation de périphériques sur BBC micro:bit

Documentation

Introduction

Pendant le TP, on va utiliser des fonctions de la catégorie Input dans MakeCode pour contrôler et lire les informations depuis les périphériques du simulateur Micro:bit.

En continuation, on va pressente les fonctions principales associe pour chaque périphérique intégrée et quelques exemples pour les utiliser.

Des détails en ce qui concerne tous les fonctions de la catégorie Input sont disponibles dans la documentation qui se trouve au début du TP.

L'accéléromètre. Des gestes

Micro:bit est capable de reconnaître des gestes comme l'inclination ou la secousse. Au dos du microcontrôleur, en bas, il a un chip petit, qui représenter l'accéléromètre, il s' appelle Compass and Accelerometer. Cela peut mesurer l'accélération dans toutes les trois dimensions, comme l'accélération gauche-droite, l'accélération avant-arrière et l'accélération haut-bas.

Qu'est-ce qu'un accéléromètre? Un accéléromètre a le but de mesurer et analyser des accélérations linaires et angulaires, par exemple, les voitures modernes utilisent un accéléromètre qui détecte un accident pour déployer des airbags.

Fonctions pour lire les valuers du accéléromètre sont:

  • input.acceleration(Dimension.X) - renvoie l'accélération sur l'axe des x;
  • input.acceleration(Dimension.Y) - renvoie l'accélération sur l'axe des y;
  • input.acceleration(Dimension.Z) - renvoie l'accélération sur l'axe des z;

Si on veut déclencher quelque action quand un geste se passe, on peut utiliser la fonction input.on_gesture(gesture, action) qui est similaire avec la fonction input.on_start().

Exemple 1

Dans cet exemple on va utilise l'accéléromètre en affichant sur l'écran du micro:bit la valeur de l'accélération quand on secoue la plaque

def on_gesture_shake():
    accel = input.acceleration(Dimension.X)
    basic.show_number(accel)
input.on_gesture(Gesture.SHAKE, on_gesture_shake)

Les direction. La boussole

Le capteur pour la boussole détecte les champs magnétiques de la Terre et est mis, aussi, au dos du micro:bit, comme l’accéléromètre. Cela est utilise pour détecter si un aimant est autotour de dispositif ou pour navigation, il peut montre les directions Nord, Sud, Est et Ouest. Fonction utile pour lire les valeurs de la boussole:

  • input.compass_heading() - renvoie une valeur d'angle comprise entre 0 (N) et 360.

Pour modifier l'angle du flèche de la boussole, on tourne le logo.

Exemple 2

def on_forever():
    degrees = input.compass_heading()
    if degrees < 45 or degrees > 315:
        basic.show_string('N')
    elif degrees < 135:
        basic.show_string('E')
    elif degrees < 225:
        basic.show_string('S')
    elif degrees < 315:
        basic.show_string('W')
    else:
        basic.clear_screen()
basic.forever(on_forever)

Capteur de température et de lumière

Le capteur de température enregistre avec une approximation la température autour de micro:bit. Le capteur de lumière peut enregistrer le niveau de lumière par les LED.

Fonctions utiles:

  • input.temperature() - renvoie la température en degrés Celsius
  • input.light_level () - renvoie une valeur comprise entre 0 et 255 (0-sombre, 255 - lumière maximale)

On peut ajuster le niveau de lumière et la température en glissant sur les deux icônes en dessous.

Exemple 3

Dans l'exemple suivant on va afficher la température si le bouton A été appuyé. Si le micro:bit va enregistre la lumière fort sur l'écran va apparaitre une image du coeur.

def on_forever():
    if input.button_is_pressed(Button.A):
        basic.show_number(input.temperature()) #display the temperature
    elif input.light_level() > 100: #check the light level
        basic.show_icon(IconNames.HEART)
    else:
        basic.clear_screen()
 
basic.forever(on_forever)

Le Microphone et le Speaker

BBC micro:bit V2 a le microphone fixé à l'arrière et à la face, vous pouvez voir l'indicateur, qui s'allume lors de lui accès. Cela peut mesurer le niveau du son autotour de dispositif et il peut détecter les son haut ou plus bas. Aussi à l'arrière il y a sur PCB un un haut-parleur(speaker) magnétique d’où provient le son comme output.

On peut fait une action quand le microbit détecte un son qui est fort ou silencieux en utilisant la fonction input.on_sound(sound, action). Pour lire le niveau du son on utilise input.sound_level().

On peut ajuster le niveau du son en glissant sur l'icône ci-dessous.

Exemple 6

Dans l'exemple suivant on va afficher une image si la plaque détecte un son fort.

def on_sound_loud():
    basic.show_icon(IconNames.GHOST)
input.on_sound(DetectedSound.LOUD, on_sound_loud)

Music

Toutes les fonctions de la catégorie Music sont décrites ici.

Exercices

Vous devez resoudre les exercises dans MakeCode en utilisant Python.

  1. Écrivez un programme qui affiche dans la console la température si on appuie sur le bouton B et le niveau de lumière si on appuie sur le logo.
  2. Écrivez un programme qui en atteignant le logo (le capteur tactile) va faire toggle entre une image avec un carré et une image avec un petit carré.
  3. Écrivez un programme qui allume une ligne de LEDs chaque fois que le microbit détecte un son fort.
  4. Créer un programme qui affiche dans la console le niveau de bruit quand la boussole indique le nord ou le sud et la température et niveau de lumière quand la boussole indique l’est ou l’ouest.
  5. Créez un programme qui enregistre le nombre des inclinaisons à gauche et à droite. Chaque fois que le micro: bit est pointé dans l’un des deux côtés, il doit afficher sur l’écran le nombre actuel d’inclinaisons de ce côté. Hint: utilise la fonction sleep
  6. Simuler une alarme avec le microbit. Quand on secousse la plaque, une chanson que vous avez choisie jouera et quand on appuie sur A et B simultanément l’alarme s'arrête.

Pour télécharger vos exercises, créer un repository et ajouter les fichiers correspondant aux exercices faites en Makecode. Copier le code, coller-le dans un fichier avec l’extension .py et ajouter ce fichier à votre repository.

sde2/laboratoare/04_simple_fr.1650341977.txt.gz · Last modified: 2022/04/19 07:19 by cristiana.andrei
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