Vous êtes sur la page 1sur 51

L’apprentissage par la

robotique
Mr. Zouari Lazhar
Email : Zouari.prog@gmail.com
L’apprentissage par le jeu
Le jeu est un support idéal pour permettre l’acquisition de compétences
parfois difficiles à acquérir à travers le travail traditionnel. Il permet de
stimuler diverses compétences en même temps: le verbal, le mental, la
logique, le calcul…

Exemples :

2
La carte micro:bit est un nano-ordinateur créé
pour la promotion de la programmation dans
l'éducation. Elle est très simple d'utilisation,
mais peut également s'intégrer dans des
applications complexes. On parle ici de
Micro:bit, microcontrôleur, à savoir une carte
c’est quoi ? électronique programmable pour interagir
avec le monde réel.

3
Présentation de la carte

4
Programmation de la carte
La première approche c'est la programmation par bloc,
utilisant le principe des Blockly que l’on retrouve dans
Scratch par exemple. L’interface propose une simulation
de la carte. Ceci permet de voir directement les effets du
programme dans l’interface.

5
Programmation de la carte
Pour un usage plus avancé il est notamment
possible de la programmer avec le langage Python
ou Javascript.

6
Makecode
11
Pr
L’ og
Ad inte ra
re rfa
ss ce m
e m
: h de er
ttp pr
s:/ og
/m ram
ak m
ec at
od io
e.m n p
ic ar b
22

ro
bi loc
t.o s
rg
Si /
Le m
sim trè u le
ul s g r
a t ro
eu s
r d nt i
e c érê
ar t d
te e
ce
t te
in
te
r fa
ce
33

co
ns
C ist
ee
Il om n
s so
fic uf p n
hi fit
er de ila
ob c tio
te liq n
nu ue
su r su et
rl r en
a Té
ca lé re
rte ch gi
. arg
er st
et re
de m
co en
pi t
er
le
7
Demander à votre carte microbit
d’afficher "Hello World!".

Hello 1. Ouvrez l’interface Makecode


https://makecode.microbit.org/

World! • Créez un nouveau projet

Blocs • Insérez le bloc


qui permet d’afficher du texte à l' écran, dans
le bloc puis déplacez le dans

• À l’aide de simulateur, déterminez la différence entre le


deux blocs ?

2. Enregistrer ton travail et flasher ta carte


8
Micro Python
Micro Python est une version allégée de Python. C’est une
version dédiée aux microcontrôleurs.

Une interface en ligne


Il est possible de programmer en python à partir d’un éditeur en ligne
L’interface est assez pauvre en fonctionnalité.

Mu : une interface complète


C’est un éditeur de code. Il garantit que toutes les fonctionnalités impossibles à
utiliser à l'aide de l'éditeur basé sur un navigateur

9
Nous allons essayer de réaliser le même programme
précédent mais cette fois à l’aide de ligne de codes en
langage Python.
Hello 1. Exécuter Mu et commençant le codage
World! • Importer la librairie "microbit" pour demander à Micro
Python de récupérer tout ce dont il a besoin pour
Micro fonctionner avec le micro :bit.
from microbit import *
Python • Indiquer à Micro Python d’utiliser l’affichage pour faire
défiler la chaîne de caractères "Hello, World!".

= display.scroll("Hello!")

• Vérifier le code , l’enregistrer et le flasher

10
Modifier le programme afin d’afficher
indéfiniment la chaîne "Hello, World!"

Hello
World! =
Micro
Python Sachant que une condition est une opération
relationnelle ou logique renvoie un résultat égal à la
valeur logique True ou False.

11
Solution
Hello from microbit import *

World! while True:


Micro display.scroll('Hello, World!')

Python Remplacer display.scroll par display.show et dégager la


différence entre les deux méthodes

12
Afficher des images dans la grille de Led 5x5.
I. Les images intégrées
Makecode et MicroPython sont fournis avec beaucoup
d’images intégrées à montrer. Par exemple, pour que
l’appareil affiche un cœur on utilise le bloc suivant :

Les images
Ou en tapant le code suivant :
from microbit import *
display.show(Image. HEART)

Modifier le code pour voir à quoi ressemble les autres


images intégrées ? Il suffit de remplacer Image.HEART
par l’une des images intégrées de la liste suivante :

13
Les images

14
Activité :
Programmez, en block puis en MicroPython, puis
flashez Votre micro:bit a fin d’afficher un cœur animé.

Remarque : Pour ralentir votre animation en

Les images utilise le block qui a pour rôle de


mettre en pause le programme quelques
millisecondes donnée.

Chercher sur Internet l’équivalent de


bloc en MicroPython.
15
Les images
tion
lu
So

En MicroPython le bloc sleep(100)

16
Solution

LES from microbit import *

IMAGES while True:

Micro display.show(Image.HEART)

Python sleep(500)

display.show(Image.HEART_SMALL)

sleep(500)

17
Afficher des images dans la grille de Led 5x5.
II. Les images personnelles
Bien sûr, tu veux que ta propre image s’affiche sur le
micro :bit, non ? On utilise le block suivant :

Les images
Activité 1 :

Programmez, puis flashez Votre micro:bit a fin


d’afficher un cœur clignotant.

18
Afficher des images dans la grille de Led 5x5.

1
Les images lu tio
n
So

Puisque le bloc éteint tous les Led on peut le

remplacer par le bloc .Modifier ton

programme pour obtenir le même résultat. 19


Les images lu tio
n 2

So

Chercher sur Internet l’équivalent de bloc


en MicroPython puis taper le code et tester
20
Solution MicroPython

LES from microbit import *

IMAGES while True:

Micro display.show(Image.HEART)

Python sleep(500)

display.clear()

sleep(500)

21
Sachant que chaque pixel peut prendre une parmi dix
valeurs. Si un pixel prend 0 c’est qu’il est éteint. En
revanche, s’il prend 9 il est à la luminosité maximale. Les
LES valeurs de 1 à 8 représentent des niveaux de luminosité.

IMAGES from microbit import *


bateau = Image(
Micro "05050:"
"05050:"
Python "05050:"
"99999:"
"09990")
display.show(bateau)

Une fois lancé, l’appareil devrait afficher un bateau à


voile dont le mât est moins brillant que la coque.
22
LES
En fait, tu n’as pas besoin d’écrire tout ça sur
IMAGES
Micro plusieurs lignes. Si tu te sent capable de garder la

Python
trace de chaque ligne, tu peux le réécrire comme ça :

bateau = Image("05050:05050:05050:99999:09990")

23
III. Animation

Les images statiques sont amusantes, mais c’est encore plus


LES amusant de les faire bouger. Il suffit d’utiliser une liste
d’images. Tu peux stocker n’importe quoi dans une liste en

IMAGES
Python
Exemples:
premiers = [2, 3, 5, 7, 11, 13, 17, 19]
Micro list_variee = ["salut!", 1.234, Image.HAPPY]
Par chance nous avons deux listes d’images déjà prêtes. Elles

Python s’appellent Image.ALL_CLOCKS et Image.ALL_ARROWS


pour l’animer une liste des images il suffit d’écrire:

from microbit import *


display.show(Image.ALL_CLOCKS, loop=True, delay=100)

Taper ce code et tester le.

24
Enfin, voici comment créer ta propre animation. Dans
mon exemple, je vais faire couler mon bateau en bas.

LES from microbit import *

IMAGES bateau1 = Image("05050:" "05050:" "05050:" "99999:"


"09990")

Micro bateau2 = Image("00000:" "05050:" "05050:" "05050:"


"99999")
Python bateau3 = Image("00000:" "00000:" "05050:" "05050:"
"05050")
bateau4 = Image("00000:" "00000:" "00000:" "05050:"
"05050")
bateau5 = Image("00000:" "00000:" "00000:" "00000:"
"05050")
25
Il y a des bandes de métal sur le côté bas du micro:bit qui lui
font des sortes de dents. Ce sont les pin d’entrée/sortie
Certains de ces pins sont plus gros que d’autres donc il est
possible d’y accrocher des pinces crocodiles. Ce sont
numérotés 0, 1, 2, 3 V et GND.

Les Entrées Ces objets ont des méthodes variées qui leur sont associées
en fonction de ce que ce pin particulier est capable de faire.

Sorties Activités
1. Chatouiller la carte Microbit

L’exemple le plus simple d’entrée par les pins est de


déterminer si ils sont touchés. Donc, tu peux
chatouiller ton appareil et le faire rire comme ça :

26
n
Les Entrées

io
utl
So
Sorties

Donner le code MicroPython

= pin0.is_touched()

27
Solution MicroPython

LES
ENTREES from microbit import *

SORTIES while True:

Micro if pin0.is_touched():

display.show(Image.HAPPY)
Python
else:

display.show(Image.SAD)

28
Activités
2. Bip Bip
La chose la plus simple que nous puissions
raccorder à l’appareil est un buzzer. Nous
allons l’utiliser comme une sortie.

Les Entrées Le buzzer émet un bip aigu lorsqu’il sont


connectés à un circuit. Pour en relier un

Sorties à ton micro :bit, tu dois raccorder une


pince crocodile aux pin 0 et GND

pin0.write_digital(1)

pin0.write_digital((0

29
Les Entrées / Sorties

Solution MicroPython
from microbit import *

MUSIQUE while True:


pin0.write_digital(1)
sleep(20)
Micro pin0.write_digital(0)
sleep(480)
Python MicroPython sur le microbit est fourni avec un module de
musique et de son puissant. Il est très facile de générer des bips
avec l’appareil si tu le raccordes à un haut-parleur.

MicroPython (code) Makecode (bloc)

import music
music.play(music.DADADADUM
)

30
Remarque que nous importons le module music. Il contient les
méthodes utilisées pour produire et contrôler le son. MicroPython a
tout un tas de mélodies préprogrammées. En voici la liste complète :

music.DADADADUM music.BLUES music.CHASE

MUSIQUE music.ENTERTAINER music.BIRTHDAY music.BA_DING

Micro music.PRELUDE

music.ODE
music.WEDDING

music.FUNERAL
music.WAWAWAWAA

music.JUMP_UP

Python music.NYAN music.PUNCHLINE music.JUMP_DOWN

music.RINGTONE music.PYTHON music.POWER_UP

music.FUNK music.BADDY music.POWER_DOWN

Prend le code d’exemple et change la mélodie. Quelle est


ta préférée ? Comment pourrais-tu utiliser ces airs
comme des signaux ou des indices ?

31
Créer ta propre mélodie est facile ! Chaque note a un nom,
une octave (quelle hauteur il faut jouer la note) et une durée
(combien de temps elle dure). Si tu utilises la note nommée
R alors MicroPython jouera une pause (un silence) pendant
la durée spécifiée. Chaque note est représentée par une
MUSIQUE chaîne de caractères NOTE[octave][:durée]

Micro Fais une liste de note pour créer une mélodie. Par
exemple, voici comment faire jouer à MicroPython
Python le début de « Frère Jacques » :

import music
tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4",
"E4:4", "C4:4", "E4:4", "F4:4", "G4:8", "E4:4", "F4:4",
"G4:8"]
music.play(tune)

32
Les nombres aléatoires sont très utiles, dans les jeux
par exemple. Voici comment faire un simple dé :

1ère Méthode

NOMBRES
ALEATOIRES

33
2ème Méthode

NOMBRES
ALEATOIRES

34
Solution MicroPython
NOMBRES
ALEATOIRES from microbit import *

import random

while True:

if button_a.was_pressed():

display.show(str(random.randint(1, 6)))

35
La carte micro:bit est munit d’un accéléromètre. Il mesure le
mouvement selon trois axes :
 X - l’inclinaison de gauche à droite.
 Y - l’inclinaison d’avant en arrière.
MOUVEMENT  Z - le mouvement haut et bas.
Il y a une méthode pour chaque axe qui renvoie un nombre positif
ou négatif qui indique une mesure. Lorsque la lecture est de 0, tu
es « aligné » selon cet axe.
Activité :
Programmez votre carte micro: Bit pour mesurer l’alignement de
l’appareil selon l’axe X (Gauche, Droite) :

36
Solution

MOUVEMENT

37
Solution MicroPython

from microbit import *


NOMBRES while True:
ALEATOIRES lecture = accelerometer.get_x()
if lecture > 20:
display.show("D")
elif lecture < -20:
display.show("G")
else:
display.show("-")

38
L’effet collatéral le plus intéressant d’un accéléromètre est la
détection des gestes. Il est capable de reconnaître les
gestes suivants : Haut, bas, gauche, droite, face, face en
bas, chute libre et secousse.

GESTES Activité :
Programmez votre carte micro: Bit pour simuler un
dé et pour assurer l’actions suivante :
• En la secouant elle affiche au hasard pile au face

39
n
tio
lu
So
GESTES

Modifier le programme qui calcule et affiche les valeurs


suivantes :
o Nombre des essais si le bouton A+B sont pressés
o Nombre des piles obtenus si le bouton A est pressés
o Nombre des faces obtenus si le bouton B est pressé
40
GESTES

So
lu
ti o
n

41
Il y a une boussole sur le BBC micro :bit, Il peut
aussi t’indiquer la direction du Nord.
Activité :
Programmez votre carte micro:bit pour quelle
DIRECTION
indique vers quelle direction est dirigée.

42
Solution

DIRECTION

43
Tu dois calibrer la boussole avant de l’utiliser. Ne pas le
faire entraine des résultats inutilisables. La méthode
DIRECTION calibration lance un petit jeu pour aider l’appareil à
déterminer sa position par rapport au champs magnétique
de la Terre. Pour calibrer la boussole, incline le micro :bit
dans tous les sens jusqu’à ce qu’un cercle de pixel soit
dessiné sur les bords de l’affichage

44
Solution MicroPython

from microbit import *


while True:
NOMBRES deg = compass.heading()
ALEATOIRES if deg > 315 or deg < 45:
display.show(Image.ARROW_N)
elif deg > 225:
display.show(Image.ARROW_W)
elif deg > 135:
display.show(Image.ARROW_S)
else:
display.show(Image.ARROW_E) 45
Comment ça fonctionne
Le micro:bit n’a pas un capteur de température dédié. Au lieu
de cela, la température fournie est en fait la température de la
puce de silicium du processeur principal. Comme le

DIRECTION processeur chauffe peu en fonctionnement, sa température


est une bonne approximation de la température ambiante.
Activité :
Programmez votre carte micro:bit pour simuler un
thermomètre et assurer les actions suivantes :
Affichage de la valeur digitale de la température ambiante
Affichage de la température ambiante sous forme d'un graphe

Répéter en boucle les actions précédentes, en assurant une


46
pause entre les deux formes d'affichage.
Solution

TEMPERATURE

47
48
49
50
51

Vous aimerez peut-être aussi