This shows you the differences between two versions of the page.
sde2:laboratoare:02_simple_fr [2022/03/15 23:59] cristiana.andrei [Blocks language] |
sde2:laboratoare:02_simple_fr [2022/04/02 15:12] (current) cristiana.andrei [Exercises] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TP 02 - BBC micro:bit et Makecode ====== | + | ====== TP 02 - BBC micro:bit et MakeCode ====== |
===== Objectifs du TP ===== | ===== Objectifs du TP ===== | ||
* Travail avec le micro:bit | * Travail avec le micro:bit | ||
- | * Utilisation d'editeur Makecode pour micro:bit | + | * Utilisation d'editeur MakeCode pour micro:bit |
* Introduction en Blocks language | * Introduction en Blocks language | ||
Line 9: | Line 9: | ||
*[[https://microbit.org/fr/get-started/first-steps/introduction/| BBC micro:bit]] | *[[https://microbit.org/fr/get-started/first-steps/introduction/| BBC micro:bit]] | ||
*[[https://makecode.microbit.org/blocks| Blocks language]] | *[[https://makecode.microbit.org/blocks| Blocks language]] | ||
+ | *[[https://makecode.microbit.org/reference|Blocs utiles]] | ||
===== Présentation du BBC micro:bit V2===== | ===== Présentation du BBC micro:bit V2===== | ||
Line 25: | Line 26: | ||
{{ :sde2:laboratoare:microbitv2.png?600 |}} | {{ :sde2:laboratoare:microbitv2.png?600 |}} | ||
- | ===== L'editeur Makecode pour micro:bit ===== | + | ===== L'editeur MakeCode pour micro:bit ===== |
- | **Microsoft Makecode** est cadre permettant de créer des expériences de programmation interactives et engageantes pour les nouveaux venus dans le monde de la programmation. La plate-forme fournit la base d'une expérience de codage sur mesure pour créer et exécuter des programmes utilisateur sur du matériel réel ou dans une cible simulée. | + | **Microsoft MakeCode** est cadre permettant de créer des expériences de programmation interactives et engageantes pour les nouveaux venus dans le monde de la programmation. La plate-forme fournit la base d'une expérience de codage sur mesure pour créer et exécuter des programmes utilisateur sur du matériel réel ou dans une cible simulée. |
Il se compose de 3 parties: | Il se compose de 3 parties: | ||
Line 41: | Line 42: | ||
Les blocs se trouvent dans les catégories disponibles dans la boîte à outils des blocs alignés à côté de l'espace de travail. | Les blocs se trouvent dans les catégories disponibles dans la boîte à outils des blocs alignés à côté de l'espace de travail. | ||
- | {{ :sde2:laboratoare:block_editor.png?600 |}} | + | {{ :sde2:laboratoare:block_editor.png?500 |}} |
==== Language editor ==== | ==== Language editor ==== | ||
Line 47: | Line 48: | ||
**Un éditeur de langage** complète l'éditeur de blocs dans MakeCode. Lorsque des blocs sont définis pour des fonctions, des instructions et des affectations, le code correspondant dans l'éditeur de langage représente les blocs correspondants dans l'éditeur de blocs. Dans l'éditeur de langage, cependant, un utilisateur peut écrire du code supplémentaire avec une plus grande complexité que ce qui est disponible avec les blocs. | **Un éditeur de langage** complète l'éditeur de blocs dans MakeCode. Lorsque des blocs sont définis pour des fonctions, des instructions et des affectations, le code correspondant dans l'éditeur de langage représente les blocs correspondants dans l'éditeur de blocs. Dans l'éditeur de langage, cependant, un utilisateur peut écrire du code supplémentaire avec une plus grande complexité que ce qui est disponible avec les blocs. | ||
- | {{ :sde2:laboratoare:language_editor.png?600 |}} | + | {{ :sde2:laboratoare:language_editor.png?500 |}} |
==== Simulateur ==== | ==== Simulateur ==== | ||
Line 55: | Line 56: | ||
{{ :sde2:laboratoare:microbit_simulator.png?300 |}} | {{ :sde2:laboratoare:microbit_simulator.png?300 |}} | ||
- | ===== Le premier programme écrit dans Makecode ===== | + | ===== Le premier programme écrit dans MakeCode ===== |
<note important> | <note important> | ||
- | Pendant les TPs on va utiliser l'editeur [[https://makecode.microbit.org/#|Makecode pour micro:bit]]. | + | Pendant les TPs on va utiliser l'editeur [[https://makecode.microbit.org/#|MakeCode pour micro:bit]]. |
</note> | </note> | ||
On va utiliser Blocks language pour afficher sur la matrice de LEDs du micro:bit le texte "Hello Sde2!". | On va utiliser Blocks language pour afficher sur la matrice de LEDs du micro:bit le texte "Hello Sde2!". | ||
- | Premièrement, on va aller sur Makecode et cliquer sur //New Project//. Après ça, vous devez donner un nom à votre projet et appuyer sur //Create//. | + | Premièrement, on va aller sur MakeCode et cliquer sur //New Project//. Après ça, vous devez donner un nom à votre projet et appuyer sur //Create//. |
{{ :sde2:laboratoare:create_new_project.png?300 |}} | {{ :sde2:laboratoare:create_new_project.png?300 |}} | ||
Line 78: | Line 79: | ||
{{ :sde2:laboratoare:run_microbit_program.png?300 |}} | {{ :sde2:laboratoare:run_microbit_program.png?300 |}} | ||
+ | |||
+ | === on start vs. forever === | ||
+ | |||
+ | Le code qui se trouve à l'intérieur du bloc **on start** est exécutée juste au début du programme. D’autre part, le code dans le bloc **forever** est exécutée tout au long de l'exécution du programme, mais dans **background**, c’est a dire, si une autre partie du code doit être exécutée, la boucle forever va céder le temps à cette partie. | ||
Line 148: | Line 153: | ||
La syntaxe d'un boucle **for**. | La syntaxe d'un boucle **for**. | ||
- | {{ :sde2:laboratoare:while.png?200 |}} | + | {{ :sde2:laboratoare:for.png?200 |}} |
=== Repeat === | === Repeat === | ||
Line 173: | Line 178: | ||
* **remove last value from [array_name]**: efface le dernier élément dans [array_name] | * **remove last value from [array_name]**: efface le dernier élément dans [array_name] | ||
* **remove first value from [array_name]**: efface le première élément dans [array_name] | * **remove first value from [array_name]**: efface le première élément dans [array_name] | ||
- | Le reste des blocs sont expliqués dans la [[https://makecode.microbit.org/reference/arrays|documentation]]. | + | Le reste des blocs sont expliqués dans la [[https://makecode.microbit.org/reference/arrays|documentation]]. |
+ | |||
+ | ===== Math ===== | ||
+ | La catégorie //Math// contient des blocs pour des opérations mathématiques: | ||
+ | * **somme** | ||
+ | * **substraction** | ||
+ | * **multiplication** | ||
+ | * **division** | ||
+ | * **modulo** | ||
+ | * **minimum** | ||
+ | * **maximum** | ||
+ | * **valeur absolue** | ||
+ | * **radical** | ||
+ | * **random entre deux nombres** | ||
+ | * **aproximation** | ||
+ | |||
+ | |||
+ | ===== Basic ===== | ||
+ | La catégorie //Basic// vous aide à utiliser quelques fonctions et actions de base du micro:bit. | ||
+ | * **showNumber**: affiche un nombre donné comme paramètre sur la matrice de LEDs | ||
+ | * **showIcon**: dessine l'image sélectionnée sur la matrice de LEDs | ||
+ | * **showLeds**: allume les LEDs sélectionnés | ||
+ | * **showString**: affiche un string donné comme paramètre sur la matrice de LEDs | ||
+ | * **clearScreen**: éteint tous les LEDs | ||
+ | * **pause**: arrête l'execution pour un nombre de milisecondes donné | ||
+ | |||
+ | |||
+ | ===== LEDs ===== | ||
+ | |||
+ | Le dispositif a une matrice de LEDs qui peut être contrôle individuellement ou tous ensemble pour pouvoir faire des dessins dur l'écran. Chaque LED de la matrice est caractérisé par deux coordonne qui représente la ligne et la colonne ou il se trouve. | ||
+ | |||
+ | <note> | ||
+ | x est la coordonnée verticale et y la coordonnée horizontale. | ||
+ | </note> | ||
+ | |||
+ | Blocs pour la control de la matrice LED: | ||
+ | * **plot [x] [y]**: allumer le LED de la position (y,x) | ||
+ | * **unplot [x] [y]**: éteindre le LED de la position (y,x) | ||
+ | * **point [x] [y]**: retourne le status(allumé ou éteindré) du LED de la position (y,x) | ||
+ | * **toggle [x] [y]**: changer le status de la position (y,x) | ||
+ | * **plot bar graph of [inferior_limit] to [superior_limit]**: afficher un graphique de type barre pour une valeur numerique | ||
+ | |||
+ | ===== Butons ===== | ||
+ | |||
+ | Sur le devant du dispositif il y a deux butons A et B, qui peut-être accéder dans le code avec buton_a et button_b. Ces boutons ont le bloc **on button [A/B] pressed** (catégorie //Input//), qui va retourne //True// si le bouton est appuyé, si non va retourne //False//. Le code qui se trouve dans **on button [A/B] pressed** est exécutée quand on fait click sur le buton. | ||
+ | |||
+ | ===== Images ===== | ||
+ | |||
+ | <note important> | ||
+ | Vous pouvez trouver des informations concernant le travail avec des images [[https://makecode.microbit.org/reference/images|ici]]. | ||
+ | </note> | ||
+ | |||
+ | ===== Exercises ===== | ||
+ | - Stockez votre nom dans un variable et affichez le sur la matrice de LEDs. | ||
+ | - Faitez le LED de la position (2,3) clignoter tout au long de l'exécution du programme. | ||
+ | - Créez un programme qui affiche l'image smiley face quand le buton A est appuyé et l'image sad face quand le buton B est appuyé. | ||
+ | - Affichez tous les chiffres paires jusqu'a 9 en utilisant la boucle for. | ||
+ | - Affichez tous les chiffres impaire jusqu'a 9 en utilisant la boucle repeat. | ||
+ | - Créez un programme qui allume et clignoter les LEDs au dessus de la diagonale principale. | ||
+ | - Créez un programme qui allume un par un les LEDs(quand le LED suivant s'allume, le LED en derrière s'éteint) de la deuxième ligne. | ||
+ | - Créez un array avec 4 images. Affichez l'image suivant quand on appuie sur le buton B et l'image précédent quand on appuie sur le buton A. | ||
+ | |||
+ | ===== Solutions ===== | ||
+ | Vous pouvez trouver les solutions [[https://github.com/UPB-FILS-SdE2/Solutions/tree/microbit|ici]]. | ||
+ | |||