Exercices Grove/micro:bit


Cette page propose une sélection d’exercices accessibles à des débutants pour découvrir différentes fonctionnalités de la carte Micro:bit.

La carte seule suffit pour réaliser la plupart des exercices. Quelques exercices font usage du shield et de capteurs du kit Grove : les instructions de connexion sont à chaque fois précisées.

1. Afficher une image

1.1 Afficher une image prédéfinie

Voici un premier programme :

 Saisir ce programme et le flasher sur une carte connectée à l’ordinateur.
Que constate-t-on ?
 Remplacer dans le programme le mot YES par l’un des mots suivants :
CHESSBOARD - DIAMOND - HAPPY - HEART - NO - SAD - SQUARE
 Choisir l’une des images et la reproduire sur une feuille à l’aide d’un quadrillage de 5 carreaux sur 5.

1.2 Afficher une image personnalisée

 Saisir le programme suivant et le flasher sur la carte.
Que constate-t-on ? À quoi correspondent les 0 et les 9 ?

 Dessiner sur une feuille à l’aide d’un quadrillage de 5 carreaux sur 5 une image personnelle et modifier le programme précédent pour la faire apparaître sur la carte micro:bit.

1.3 Faire alterner deux images

Créer une animation affichant successivement et en boucle deux images prédéfinies, par exemple Image.SQUARE et Image.SQUARE_SMALL.

Aide : à compléter

Une solution

2. Faire clignoter une LED

2.1 Faire clignoter une LED de la carte

Choisir l’une des LED de la carte et la faire clignoter.

Aide : à compléter

Une solution

2.2 Faire varier le rythme avec un potentiomètre

Placer la carte micro-bit sur le shield Grove et connecter le potentiomètre sur la broche P0-P14.
La fonction pin0.read_analog() renvoie une valeur qui dépend de l’angle de rotation de l’axe du potentiomètre.

 Modifier le programme précédent en ajoutant au début de la boucle while l’intruction : mesure = pin0.read_analog() puis en remplaçant les temps durant lesquels la LED est allumée ou éteinte par mesure.
 Quel effet observe-t-on sur le clignotement lorsque l’on tourne l’axe du potentiomètre ?

Une solution

2.3 Faire clignoter la LED du kit Grove

Connecter la LED sur le shield Grove sur la broche P1-P15 ( en plus du potentiomètre déjà connecté sur la broche P0-P14).
L’instruction pin1.write_digital(1) permet d’allumer la LED lorsqu’elle est sur la broche P1, et l’instruction pin1.write_digital(0) permet de l’éteindre.

 Modifier le programme précédent pour faire clignoter la LED Grove, au lieu d’une LED de la carte.
 Le potentiomètre conserve-t-il son effet ?

Une solution

3. Déplacer un point lumineux

3.1 Programmer le déplacement d’un point lumineux sur la carte

 Lire le programme suivant et anticiper l’effet produit sur la carte micro:bit :


 Saisir ce programme et le flasher sur une carte micro:bit. Vérifier si l’effet constaté correspond à celui anticipé.
 Indenter l’instruction display.clear() pour qu’elle soit alignée avec le sleep(300) de la ligne 5. Quel effet cela a-t-il sur l’affichage produit sur la carte ? Pourquoi ?
 Poursuivre le programme précédent pour que le point lumineux fasse le tour du carré de 25 LED.

Aide : à compléter

Une solution

3.2 Programmer le déplacement d’un point lumineux sur le ruban NeoPixel

 Placer la carte micro-bit sur le shield Grove et connecter le ruban de led NeoPixel sur la broche P0-P14.
 Lire le programme suivant et anticiper l’effet produit sur le ruban NeoPixel : quels pixels sont allumés, dans quel ordre, de quelle(s) couleurs(s) ?

 Saisir ce programme et le flasher sur une carte micro:bit, connectée. Vérifier si l’effet constaté correspond à celui anticipé.
 Indenter l’instruction np.clear() pour qu’elle soit alignée avec le np.show() de la ligne 10. Quel effet cela a-t-il sur l’affichage produit sur le ruban ? Pourquoi ?
 Modifier une valeur du programme pour augmenter la « vitesse » du point lumineux.
 Modifier une ou plusieurs valeurs pour que le pixel allumé soit jaune.
 Poursuivre le programme précédent pour que le point lumineux fasse des allers-retours entre les deux extrémités du ruban.

3.3 Déplacer un point lumineux sur la carte avec les boutons

Fonctionnement attendu  : Une led est allumée au centre de l’écran.
En appuyant sur le bouton A, le point lumineux se « déplace » d’un pixel vers la gauche, et en appuyant sur le bouton B, il se « déplace » d’un pixel vers la droite. Lorsqu’il atteint un bord (gauche ou droit), l’appui sur le bouton correspondant à ce bord n’a plus d’effet.

Aide : à compléter

Une solution

3.4 Déplacer un point lumineux sur un ruban NeoPixel avec les boutons

Fonctionnement attendu : Une led NeoPixel est allumée au début du ruban de led NeoPixel.
En appuyant sur le bouton A, le point lumineux se « déplace » d’un pixel vers la fin du ruban, et en appuyant sur le bouton B, il revient d’un pixel vers le début du ruban. Lorsque le point lumineux atteint une extrémité, l’appui sur le bouton correspondant à cette extrémité n’a plus d’effet.

Aide : à compléter

Une solution

3.5 Déplacer un point lumineux avec l’inclinaison de la carte

On souhaite déplacer un point lumineux sur l’écran en fonction des valeurs des inclinaisons gauche-droite et avant-arrière de la carte, comme une bille qui se déplacerait sur un plan incliné.

On utilise la valeur détectée pour accelerometer.get_x() (inclinaison gauche-droite) et accelerometer.get_y() (inclinaison avant-arrière) et selon leur valeur, on donne à l’abscisse x et à l’ordonnée y d’un pixel allumé la valeur 0, 1, 2, 3 ou 4.
Par exemple, voici la valeur que l’on peut donner à x selon la valeur de accelerometer.get_x() :

 Compléter le programme suivant pour qu’il respecte les indications précédentes pour déterminer la valeur de x.

 Saisir le programme et le flasher sur une carte connectée à l’ordinateur. Vérifier si le comportement anticipé est conforme à celui observé.
 Compléter le programme en procédant de façon analogue pour déterminer la valeur que doit en prendre l’ordonnée du pixel y selon les valeurs de accelerometer.get_y()

4. Détecter l’intensité lumineuse

4.1 Avec les leds de la carte micro:bit

Les LED de la carte peuvent détecter le niveau de lumière ambiante : la fonction display.read_light_level() renvoie une valeur comprise entre 0 et 255 : plus la valeur est élevée, plus l’environnement est lumineux.

 Saisir ce programme et le flasher sur une carte connectée à l’ordinateur.
Que faut-il faire pour que l’image Image.YES s’affiche ?
 Modifier ce programme pour que la carte affiche un carré en luminosité « normale » et un diamant dans la pénombre.

4.2 Avec un capteur de lumière Grove

Placer la carte micro-bit sur le shield Grove et connecter le capteur de lumière sur la broche P0-P14.
La fonction pin0.read_analog() renvoie une valeur entière d’autant plus élevée que l’environnement est lumineux.

Saisir et flasher le programme suivant :

 Que peut-on faire pour que l’image Image.NO s’affiche sur la carte micro:bit ?
 Emballer le capteur (connecté à la carte) dans une feuille de papier. Modifier le programme pour que la carte affiche l’image Image.YES tant que le capteur reste emballé et l’image Image.NO dès que l’emballage est ouvert.

Partager

Imprimer cette page (impression du contenu de la page)