Dclics Parcours Robotique
Dclics Parcours Robotique
Dclics Parcours Robotique
“ROBOTIQUE”
janvier 2017 - version 1.0
3
INTRODUCTION Do It Yourself
La culture du “Do It Yourself” renvoie à l’image du “bricoleur”
mais ne s'arrête pas là. Plus profondément, il s’agit d’être
DES CHOIX ÉDUCATIFS acteur et non pas consommateur, d’être créatif, de faire
partie d’une communauté de partage de connaissances.
ET PÉDAGOGIQUES
Cette philosophie met en avant la culture du bien commun
(libre, open source) et forme des citoyens responsables dans
une société où chacun/e doit peut y trouver sa place.
Notre société est traversée par les usages numériques : Le rôle de l’animateur/trice
monde de données et d’algorithmes parfois complexes, Afin de mettre en place ce parcours et réussir ses objectifs,
les usages numériques dématérialisés peuvent apparaître l’animateur/trice doit incarner le rôle de l’accompagnateur.
désincarnés et, de ce fait, difficiles à appréhender par L’animateur/trice, ne maîtrisant pas tous les projets mis en
les enfants et les adolescents. Parce qu’elles permettent place par les enfants, apparaît comme un médiateur plus
d’expérimenter en situation l’influence de ces données sur qu’un “sachant”. Son rôle est donc d’aider les enfants à
le monde physique, les activités robotiques sont dans ce surmonter les difficultés rencontrées et poursuivre le travail
contexte d'excellentes portes d’entrée pour accompagner qu’eux mêmes ont mis en place. L’autonomie des enfants
les enfants et les adolescents dans leur éducation numé- est mise en avant.
rique. A travers la construction de robots, ils comprennent
comment sont construites les machines qui nous entourent L’animateur/trice est également libre à adapter le parcours
et, à travers leur programmation, comment les algorithmes à son groupe d’enfants (âge, niveau de compétences
peuvent influencer notre quotidien. Il y a là un véritable vi- informatiques, temps...). Il/elle peut changer l’ordre de
vier d’activités scientifiques et techniques que ce parcours séances et/ou d’activités.
propose d’explorer.
Choix du robot
De plus, le contexte est à l’utilisation croissante de robots Le kit robotique utilisé dans notre parcours est basé sur
disposant parfois d'une "semi-autonomie", et pour de multi- l’Arduino. Nous l’avons conçu avec l’apport de l’association
ples usages : appui aux activités humaines, secours aux la Maison du Libre à Brest.
victimes, surveillance, mais aussi parfois comme appui et/
ou complément à des interventions militaires. Arduino :
On comprend que la notion de responsabilité citoyenne - est une carte électronique, programmable et open source
liée à l'utilisation de robots évolue et pose de nouvelles - A un prix raisonnable
questions éthiques. La robotique est donc une porte - dispose d’un logiciel open source et gratuit, développé
d’entrée pour travailler d’autres questions non seulement en Java.
scientifiques mais aussi citoyennes. Qui utilise des robots - est compatible avec toutes les plateformes (Windows, Gnu/
aujourd’hui ? Pour quels objectifs ? Qu’est-ce que cela Linux et Mac OS).
nous apprend sur la société humaine ? - est accompagnée d’une communauté très développée :
Que sont les objets connectés et l’homme augmenté et des forums d'entre-aide, de présentations de projets,
quel est leur rapport au numérique que cela implique ? de propositions de programmes et de bibliothèques, ...
- Et d’un site en anglais arduino.cc et un autre en français
Ce parcours regroupe 10 séances d'activités pédago- https://www.flossmanualsfr.net/arduino/ch033_ressources-
giques destinées à la découverte de la robotique en-ligne où on trouve la référence Arduino, le matériel,
et de la programmation auprès des enfants de 8 à 16 ans. des exemples d'utilisations, de l'aide pour débuter, des
Chaque activité est prévue pour une séance d'environ explications sur le logiciel et le matériel, etc.
d’une heure.
Choix du langage informatique
Pédagogie Des outils d’accompagnement spécifiques sont proposés
La pédagogie utilisée met l’enfant au centre du processus dans le parcours avec le langage Arduino. Cependant,
d’apprentissage. L’animation se fait par l’expérimentation et nous avons souhaité laisser la liberté à chaque animateur/
par la méthode d’essais-erreurs. En passant par la robotique trice voire chaque enfant de choisir le langage informatique
nous faisons le lien entre le monde numérique et le monde qui lui convient.
physique. Il est possible de visualiser directement les résultats
de nos actions de programmation ce qui a un effet positif Les langages proposés dans ce parcours sont libres et gratuits :
sur l'acquisition structurée des connaissances. - Arduino : langage textuel proposé par les créateurs de la
carte Arduino. Langage qui se rapproche du C/C++.
La robotique constitue un moyen ludique pour libérer le
potentiel créatif des enfants et des adolescents (en matière -S
cratch : langage de programmation visuel1. Idéal pour les
graphique, corporelle, logique…). Elle développe l’imaginaire plus jeunes (8-10 ans).
des enfants. Elle les invite à réfléchir sur leur place dans
une société qui se transforme rapidement. - Blockly : programme web permettant la programmation
visuel pour Arduino. Ce logiciel est un outil de qualité
Nous avons également voulu favoriser le travail en équipe, pour démarrer facilement sur Arduino sans connaissances
le partage et la communication, et permettre une première en programmation. L’utilisation d’un environnement de
sensibilisation à la gestion de projets. Via la robotique, les programmation graphique permet des résultats rapides
enfants expérimentent la réalisation d’un projet dans le quitte à passer progressivement au codage traditionnel.
monde réel et appréhendent ainsi son caractère complexe.
Le collectif prend alors tout son sens : ensemble, on va plus loin. Découvrir, Décrypter, Diffuser
Le présent parcours répond à ces objectifs et à ces ambitions.
La robotique est donc une vraie entrée éducative pour la Partie intégrante du projet “D-Clics numériques”, il reprend
formation de futurs citoyens créatifs, critiques et responsables sa dynamique pédagogique, et vise successivement à faire
de leurs usages numériques. découvrir, décrypter, transmettre.
4
DÉCOUVRIR DÉCRYPTER DIFFUSER
Nous intégrons dans cet axe l’en- Nous sommes convaincus que Nous accordons une grande im-
semble des activités d’initiation, de pour décrypter et comprendre le portance aux cultures du libre, des
deux types : monde, il faut autant disposer de biens communs, et de l’intelligence
connaissances et de clefs de com- collective, qui nous semblent de-
Celles qui conduisent à faire préhension qu’être mis en situation voir être transmises aux enfants et
connaître aux enfants et aux jeunes active par la pratique. Nous inté- aux jeunes. Ainsi, nous proposons
la richesse de la robotique, tant des grons dans cet axe les activités qui des activités qui leur permettent
points de vue techniques et artis- permettent progressivement aux d’agir ensemble et de partager
tiques, que des usages. enfants et aux jeunes d’expérimen- leurs créations (en vue de les faire
Celles qui permettent de décou- ter et de découvrir leur potentiel découvrir comme de les voir amé-
vrir les bases de la robotique et créatif. liorées par d’autres), y compris à
de la programmation simple des l’extérieur de l’espace éducatif
robots. Elles doivent également dans lequel ils ont bénéficié de
donner confiance aux enfants et l’activité.
aux jeunes dans leur capacité à
construire et programmer des ro-
bots plus complexes.
1
Un langage de programmation graphique ou visuel est un langage de programmation
dans lequel les programmes sont écrits par assemblage d'éléments graphiques.
5
UN PARCOURS QUI INTÈGRE
LES GRANDS ENJEUX DE L’ÉCOLE
DU SOCLE COMMUN
Le parcours « Robotique et DIY », partie intégrante du projet de D-Clics
numériques, répond transversalement aux enjeux de l’école du socle
commun, comme définis au décret n° 2015-372 relatif au socle commun
de connaissances, de compétences et de culture du Ministère de l’éducation
nationale, de l’enseignement supérieur et de la recherche.
1
“LES LANGAGES POUR
2
“MÉTHODES ET OUTILS
PENSER ET COMMUNIQUER” POUR APPRENDRE”
Il vise entre autres l’apprentissage des langages infor- Autrement dit, comment apprendre à apprendre.
matiques et des médias. « Ce domaine permet l’accès Ce domaine vise entre autres un enseignement explicite
[…] à une culture rendant possible l’exercice de l’es- des outils numériques. « La maîtrise des méthodes et
prit critique. Il implique la maîtrise de codes ; de règles, outils pour apprendre […] favorise l’implication dans le
de systèmes de signes et de représentations. » (Décret travail commun, l’entraide et la coopération » (Décret
n° 2015-372). Au travers du projet D-Clics numériques, n° 2015-372), valeurs partagés également par le projet
l’élève prend conscience du fait que les langages infor- D-Clics numériques. Plus précisément, l’élève sera amené
matiques sont utilisés pour programmer des outils numé- à pratiquer la programmation en découvrant différents
riques comme des robots et réalise des traitements au- langages informatiques, en expérimentant, en passant
tomatiques de donnés. Il apprend les principes de base par une démarche d’essais et erreurs. Il sera ensuite
de l’algorithme et de la conception des programmes in- amené à co-construire un projet en équipe pour la
formatiques. Il les met en pratique pour programmer un création et programmation d’un robot. Il apprend ainsi à
robot en utilisant différents logiciels et hardwares libres et travailler en équipe, partager des tâches, s’engager dans
ouverts à tous (ex. Arduino, Scratch...). L’élève s’exprime un dialogue constructif, négocier, chercher un consensus,
également en utilisant la langue française à l’oral et à gérer un projet, planifier les tâches et évaluer l’atteinte de
l’écrit en fin de parcous pour la présentation de son pro- ses objectifs.
jet en groupe.
6
3
“ SYSTÈMES NATURELS
4
“ REPRÉSENTATIONS DU
ET DES SYSTÈMES TECHNIQUES ” MONDE ET D'ACTIVITÉ
Ce domaine vise à développer la curiosité, le sens de HUMAINE ”
l’observation et la capacité à résoudre des problèmes.
Un de ses objectifs principaux est de donner à l’élève Ce domaine est consacré à la compréhension des so-
les fondements de la culture technologique. A travers ciétés dans le temps et l’espace. Les diverses discussions
des discussions autour des robots qui nous entourent autour du sujet du numérique, de l’évolution de la ro-
dans notre quotidien, les expériences de l’élève et les botique, de l’identité numérique, de la programmation
questions éthiques sur l’utilisation des robots aujourd’hui, visent une meilleure compréhension de la société dite
on mène la réflexion sur ses vécus et connaissances déjà numérique et du monde contemporain dans lequel on
en place mais en même temps on éveille sa curiosité, vit. « Ce domaine vise également […] la construction de
son envie de se poser des questions, de chercher des la citoyenneté en permettant à l’élève d’aborder de
réponses et d’inventer. Le projet final proposé dans le façon éclairée de grands débats du monde contempo-
parcours ici présenté, pour la programmation des robots rain » (Décret n° 2015-372).
par les élèves, les familiarise avec le monde technique,
numérique mais aussi physique. Ils doivent d’abord
comprendre la programmation et les algorithmes et
ensuite être capables de concevoir et réaliser eux-mêmes
des projets en groupe. Ces activités « sont des occasions
de prendre conscience que la démarche technologique
consiste à rechercher l’efficacité dans un milieu contraint
(en particulier par les ressources) pour répondre à des
besoins humains, en tenant compte des impacts sociaux
et environnementaux. » (Décret n° 2015-372) car pour
la personnalisation des robots les enfants utiliserons des
matériaux de récupération afin de limiter les déchets,
l’impact sur l’environnement et favoriser l’imagination.
7
8
Retrouvez, ci-après, les fiches séances
qui vous permettront de pratiquer,
avec les enfants, l’ensemble des
activités proposées dans le cadre
de ce parcours “Robotique”.
SOMMAIRE
TRONC COMMUN
10 SÉANCE 1 ANNEXES 1, 2, 3, 4, 5, 6
12 SÉANCE 2 ANNEXES 7, 8, 9, 10, 11
13 SÉANCE 3 ANNEXES 12, 13, 14, 15, 16
14 SÉANCE 4 ANNEXES 17, 18, 19, 20
16 SÉANCE 5 ANNEXES 11, 12, 21, 22
17 SÉANCE 6 ANNEXES 4, 23, 24, 25, 26
19 SÉANCE 7 ANNEXE 26
20 SÉANCE 8 ANNEXE 22
21 SÉANCE 9-10 ANNEXES 27, 28, 29
9
TRONC COMMUN
QUESTIONS D'USAGES :
permettre aux enfants de réfléchir à la notion de robot. Qu’est ce qu’un robot ? Quels sont les organes,
les fonctions, les éléments qui constituent un robot ? À quoi sert un robot ?
a. Démonstration d’un robot qui bouge - 10 min Proposition : Afin de présenter à la fin du parcours
L’animateur/trice montre aux enfants un robot (séances 9 et 10), les projets des enfants il faudra
ROSA déjà réalisé (voir https://wiki.mdl29.net/doku. en début de projet prévoir un “reporter” dans le groupe
php?id=projets:robotarduino pour le montage). pour mettre en oeuvre les pré-requis suivants :
ROSA réalisera des mouvements simples comme :
aller tout droit, reculer, s’arrêter. – prise de photos à chaque étape,
Questionner les enfants : de quel type de robot s’agit-il ? tout au long du projet,
Peut-on interagir avec lui ? Leur demander d’Identifier – copies d’écran lors de la programmation,
son capteur, contrôleur, actionneur, énergie, pièces – éventuellement captation vidéo tout au long
d’assemblage. du projet (essais durant le projet, interviews, etc.).
b. Discussion autour de la robotique - 15 min L’ensemble des productions écrites réalisées lors du
A partir de cette démonstration une discussion projet doivent être réservées par l’animateur/trice :
et réflexion autour de la robotique peuvent être croquis, dessins, schémas. Concernant les productions
lancées. Demander aux enfants de donner leur papier, il est souhaitable que l’animateur/trice les
représentation lorsqu’ils entendent le mot robot. numérise en les scannant ou en les prenant en photo.
À quoi sert un robot ? Que peut faire un robot ? Dans
quel milieu un robot peut intervenir ? À quoi ressemble Proposition : On peut également commencer par le
un robot ? L’animateur/trice classera les idées des temps c, ensuite b pour arriver au temps a. L’objectif
enfants en fonction des types différents étant de ne pas influencer les représentations des
des robots qui apparaissent (cf. 4). enfants.
10
TRONC COMMUN
11
TRONC COMMUN
12
TRONC COMMUN
L’animateur/trice regarde en amont la fiche sur la carte Après avoir finalisé la structure de base de ROSA,
Arduino (www.arduino.cc) (cf. 12,13) pour pouvoir on peut commencer à s’initier aux notions de base
répondre aux questions des enfants si besoin. de la programmation. Pour cela, faisons un jeu (cf. 15).
En donnant le rôle du robot à un enfant, il doit réali-
1 Montage électronique - 30 min ser plusieurs actions. Les enfants ou l’animateur/trice
Les enfants montent la partie électronique de ROSA donnent les consignes écrites ou orales.
avec l’aide de l’animateur/trice, de la documentation a. Se déplacer d’un point A vers un point B (donner
et des vidéos (cf.14) une consigne courte et simple en nombre de pas)
Montage de la carte Arduino, du contrôleur de moteurs, b. Sortir de la pièce (donner une consigne plus com-
du capteur de distance et branchement des câbles. plexe avec plusieurs actions les unes enchaînées avec
Pédagogie: un modèle d’apprentissage type essai/ les autres). Pensez à organiser la classe.
erreur peut être mis en place, l’animateur/trice peut c. Se déplacer d’un point A vers un point B en met-
accompagner le cablage du robot. Par exemple, tant un obstacle entre les deux (reprendre le premier
si je branche le fil rouge; le moteur s’actionne. programme et tester lorsque l’enfant entre en contact
Proposition 1: L’animateur/trice peut mettre la vidéo avec l’obstacle).
du montage du châssis dans un ordinateur par groupe. d. Mettre en place la notion de Si Alors en demandant
L’image est parfois plus ludique qu’un document papier. à l’enfant robot de se servir de ces bras pour récupérer
Les enfants sont ainsi plus autonomes. ET/OU des informations de son environnement. Par exemple,
Proposition 2: L’animateur/trice peut diffuser avec un vi- “si tu touches le mur, tourne à gauche”. Nous pouvons
déo projecteur la vidéo du montage comme un outil de initier ainsi la notion des capteurs d’un robot (proposer
repère-référence commune. Cela permettra aux enfants une suite d’actions en fonction de l’environnement
de suivre les séquences et aux animateur/trices de ne dans lequel je me trouve).
pas avoir des grands écarts entre les enfants qui finissent L’objectif est de faire le lien entre la programmation
rapidement et d’autres qui ont besoin de plus de temps. et les mouvements physiques du robot.
13
TRONC COMMUN
1 Comment communiquer avec l’ordinateur - 40 min a. 10 min - Sous forme d’échange avec le groupe abor-
L’animateur/trice peut emmener son robot et le mettre der les sujets suivants :
en mouvement. A partir de cette démonstration la dis- – Qu’est ce qui fait bouger un robot ?
cussion autour de la programmation commence. – Où se trouvent les ordres dans un robot ? (Caché
a. 1
5 min Lancer une discussion avec les enfants autour dans le programme)
de ce qu’est un ordinateur, de la programmation – Qui les gère ? (l’appareil qui fait tourner le robot)
et le langage informatique. (cf. 17) – Qui les a écrites ? (Le créateur du robot / celui qui l’a
b. 1
5 min Continuer la discussion autour de la program- programmé)
mation en regardant plus précisément ce qu’est un – Est-ce qu’on les connaît ? (On est au courant de
algorithme et un organigramme de programmation certaines ordres qui sont visibles (ce qui fait avancer,
(cf. 17, 18) reculer le robot) mais on n’a pas accès à tous les
ordres, qui ne sont pas visibles ou pas activés… sauf à
Activité : Si on voulait créer un robot qui soit bon per- avoir accès au “code source” et à savoir le lire !)
dant, comment nous y prendrions-nous ? (cf. 19)
Écrire avec les enfants l’organigramme de program- b. 10 min - Activité : Échanger avec le groupe sur
mation correspondant ou préparer des losanges et des les mouvements que les robots, faits par les enfants,
rectangles en carton pour créer l’algorithme en 3D. pourraient faire. Création d’un tableau où on liste
À travers de cette activité les enfants apprennent les mouvements. A la fin de cette séance la notion
aussi comment jouer ensemble et ils s’interrogent sur à transmettre c’est que les ordres auxquels un robot
le comportement qu’on doit avoir pour vivre ensemble. obéit sont son code. Le robot c’est l’exécutant.
14
TRONC COMMUN
15
TRONC COMMUN
L’animateur/trice a déjà installé et préparé les Les enfants installent dans leurs ordinateurs le code
ordinateurs. Si chaque enfant a monté son robot, complet de ROSA (cf. 22) en suivant les instructions de
vous pouvez, à ce stade là, faire des groupes de 2 à 3 l’animateur/trice qui s’affichent sur l’écran du vidéopro-
enfants et donner 1 ordinateur par groupe. jecteur. Une fois le code téléversé dans la carte Ardui-
Cela incitera le travail en équipe et résoudra no, ROSA avance, détecte un obstacle, s'arrête, recule,
le problème d’équipement en ordinateurs. change de direction et recommence.
1 Présentation de la carte Arduino - 10 min Attention : Les deux moteurs n’avancent pas toujours
L’animateur/trice a lu auparavant les fiches sur à la même vitesse. Il peut donc être nécessaire de re-
Arduino (cf. 11,12) pour pouvoir la présenter coder les lignes qui définissent la vitesse des moteurs.
rapidement et répondre aux questions des enfants. Il est important que les enfants aient du temps pour
jouer avec ROSA et tester le code.
2 Tester le fonctionnement du capteur de distance
20 min Proposition : L’animateur/trice peut accompagner
Nous testons tous ensemble le fonctionnement du cap- la découverte progressive du code. On monte dans
teur qui calcule la distance. L’animateur/trice projette un premier temps, ROSA sans y ajouter le capteur de
son écran et les enfants suivent la procédure pour distance. On remarque que ROSA avance et recule
installer la bibliothèque NewPing.zip et la téléverser mais n’est pas capable de détecter les obstacles. On
à la carte Arduino. (cf. 21) demande aux enfants ce qu’il lui manque. La réponse
L’objectif est de faire l’expérience de l’installation est « des yeux » soit un capteur de distance. On re-
d’une bibliothèque dans une carte Arduino sans passer tourne aux séances 3 et 4 pour monter le capteur de
par la partie théorique et des notions complexes. distance. ROSA est maintenant capable de détecter
Dans le cas où chaque enfants a son robot, l’ani- les obstacles !
mateur/trice doit prévoir le temps pour que tous les
membres de l’équipe puissent tester le capteur
de distance de leurs robots.
16
TRONC COMMUN
Proposition : Les enfants veulent faire une forme inédite; b. Dessiner la structure de base de ROSA - 20 min
il est possible de leur indiquer qu’ils peuvent se baser sur L’animateur/trice peut distribuer le modèle boîte de
une structure existante (ex : boîte) ROSA (cf. 25,26) et laisser les enfants dessiner les leurs.
Nous affichons les groupes sur un tableau/mur et après
discussion collective : les groupes seront composés de 5
enfants environ.
17
TRONC COMMUN
18
TRONC COMMUN
19
TRONC COMMUN
20
TRONC COMMUN
21
22
Retrouvez, ci-après, les fiches annexes
qui vous permettront de compléter
les séances conçues dans le cadre
des parcours “Robotique”.
SOMMAIRE
ANNEXES
24 ANNEXE 1 SÉANCE 1
33 ANNEXE 2 SÉANCE 1
34 ANNEXE 3 SÉANCE 1
45 ANNEXE 4 SÉANCES 1, 6
47 ANNEXE 5 SÉANCE 1
48 ANNEXE 6 SÉANCE 1
54 ANNEXE 7 SÉANCE 2
55 ANNEXE 8 SÉANCE 2
56 ANNEXE 9 SÉANCE 2
57 ANNEXE 10 SÉANCE 2
58 ANNEXE 11 SÉANCES 2, 5
59 ANNEXE 12 SÉANCES 3, 5
60 ANNEXE 13 SÉANCE 3
68 ANNEXE 14 SÉANCE 3
82 ANNEXE 15 SÉANCE 3
85 ANNEXE 16 SÉANCE 3
86 ANNEXE 17 SÉANCE 4
91 ANNEXE 18 SÉANCE 4
92 ANNEXE 19 SÉANCE 4
93 ANNEXE 20 SÉANCE 4
94 ANNEXE 21 SÉANCE 5
95 ANNEXE 22 SÉANCES 5, 8
101 ANNEXE 23 SÉANCE 6
102 ANNEXE 24 SÉANCE 6
103 ANNEXE 25 SÉANCE 6
104 ANNEXE 26 SÉANCES 6, 7
105 ANNEXE 27 SÉANCES 9, 10
106 ANNEXE 28 SÉANCES 9, 10
107 ANNEXE 29 SÉANCES 9, 10
23
SÉANCE 1
INTRODUCTION
ET
DEFINITION
DE
LA
ROBOTIQUE
Sommaire
Qu’est
ce
qu’un
robot
.......................................................................................................................................
2
Composition
d'un
robot
....................................................................................................................................
3
Les
capteurs
..............................................................................................................................................
3
Les
circuits
électroniques
.........................................................................................................................
3
Les
actionneurs
.........................................................................................................................................
3
Autonomie
................................................................................................................................................
3
Origine
de
la
robotique
.....................................................................................................................................
4
Les
premiers
robots
..................................................................................................................................
4
Usages
.......................................................................................................................................................
5
Différence
entre
automate
et
robot
.................................................................................................................
5
Les
lois
de
la
robotique
.....................................................................................................................................
5
La
conception
d’un
robot
..................................................................................................................................
6
Usages
des
Robots
............................................................................................................................................
6
Métiers
de
la
Robotique
...................................................................................................................................
7
Les
activités
autour
de
la
robotique
en
milieu
scolaire
et
périscolaire
.............................................................
7
Préambule
.................................................................................................................................................
7
Démarche
pédagogique
“
Apprendre
en
faisant
”
...................................................................................
7
Démarche
expérimentale
et
apprentissages
...........................................................................................
7
Des
ateliers
contribuant
à
la
validation
de
compétences
transversales
.................................................
7
Un
usage
naturel
des
outils
numériques…
...............................................................................................
8
La
programmation
et
la
robotique
...........................................................................................................
8
Conclusion
:
la
robotique
pédagogique
.............................................................................................................
9
Robotique
Pédagogique
et
pensée
critique
.............................................................................................
9
Robotique
pédagogique
et
créativité
......................................................................................................
9
Robotique
pédagogique
et
pensée
informatique
....................................................................................
9
Robotique
pédagogique
et
collaboration
................................................................................................
9
Robotique
pédagogique
et
résolution
de
problèmes
..............................................................................
9
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
24
SÉANCE 1
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
25
SÉANCE 1
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
26
SÉANCE 1
ce
buffet
est
déplacé
ou
supprimé,
le
robot
est
capable
de
modifier
son
plan
en
conséquence
et
de
traiter
une
zone
du
sol
qu'il
ne
prenait
pas
en
compte
jusqu'alors.
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
27
SÉANCE 1
Usages
La
robotique
possède
de
nombreux
domaines
d'application.
Les
robots
ont
été
installés
dans
les
industries,
ce
qui
permet
de
faire
des
tâches
répétitives
avec
une
précision
constante.
À
la
suite
de
l'évolution
des
techniques
on
retrouve
des
robots
dans
des
secteurs
de
pointe
tels
que
le
spatial,
la
médecine,
chez
les
militaires.
Depuis
quelques
années
la
robotique
est
devenue
grand
public
et
on
retrouve
désormais
de
nombreux
robots
domestiques
et
ludiques.
(Cf.
Usage
des
robots)
[1]
Un
robot
ne
peut
porter
atteinte
à
un
être
humain,
ni,
en
restant
passif,
permettre
qu'un
être
humain
soit
exposé
au
danger.
[2]
Un
robot
doit
obéir
aux
ordres
qui
lui
sont
donnés
par
un
être
humain,
sauf
si
de
tels
ordres
entrent
en
conflit
avec
la
première
loi.
[3]
Un
robot
doit
protéger
son
existence
tant
que
cette
protection
n'entre
pas
en
conflit
avec
la
première
ou
la
deuxième
loi.
Une
nouvelle
loi
a
été
ajoutée
:
Un
robot
ne
peut
porter
atteinte
à
l'humanité
ni,
restant
passif,
laisser
l'humanité
exposée
au
danger.
Avec
la
modification
consécutive
de
la
première
loi
:
«
Un
robot
ne
peut
porter
atteinte
à
un
être
humain
ni,
restant
passif,
laisser
cet
être
humain
exposé
au
danger,
sauf
quand
cela
s'oppose
à
la
précédente
loi.
»
Désormais
une
cinquième
loi
est
apparue
:
Un
robot
ne
pourra
pas
se
réparer
lui-‐même.
La
robotique
est
l’enjeu
de
demain
et
une
réflexion
sur
les
robots
“
qui
remplaceront
”
l’Homme
est
un
sujet
inhérent
à
la
robotique.
Les
lois
de
la
robotique
sont
un
support
intéressant
pour
mener
cette
réflexion.
Ce
sujet
a
été
abordé
dans
de
nombreux
films
de
science
fiction,
qui
peut
par
des
visions
optimiste
ou
pessimiste
être
un
complément
à
un
débat
“
enjeux
de
la
robotique
”.
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
28
SÉANCE 1
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
29
SÉANCE 1
Les
activités
autour
de
la
robotique
en
milieu
scolaire
et
périscolaire
Préambule
Il
est
fortement
conseillé
d’accompagner
les
ateliers
robotiques
par
la
transmission
des
connaissances
sur
la
robotique.
Connaissances
autour
des
notions
de
base
de
la
robotique
:
Définition
de
la
robotique,
composition
d’un
robot,…
ainsi
que
les
connaissances
générales
sur
l’histoire
de
la
robotique,
notre
environnement
et
la
robotique,
la
mécatronique,
les
métiers
de
la
robotique…
Ces
notions
acquises
complèteront
les
ateliers
et
permettront
aux
enfants
d’une
part
de
comprendre
le
fonctionnement
des
robots
qu’ils
construiront
et
d’autre
part
de
faire
un
rapprochement
entre
ce
qu’ils
réaliseront
et
ce
qu’ils
peuvent
observer
autour
d’eux.
(Pourquoi
et
comment
les
portes
d’un
ascenseur
ne
se
ferment
pas
quand
on
monte
dedans,
comment
une
machine
distributrice
déclenche
l’obtention
d’une
boisson
et
rend
la
monnaie,
fonctionnement
du
corps
humain,…)
Démarche
pédagogique
“
Apprendre
en
faisant
”
Les
activités
robotiques
font
appel
à
une
pratique
coopérative,
les
enfants
apprennent
avec
l’animateur
mais
aussi
par
et
avec
les
autres.
Le
travail
et
la
réflexion
en
groupe
permettent
aux
enfants
de
confronter
leurs
idées
et
de
prendre
des
décisions
communes,
parfois
après
des
expérimentations.
La
pluridisciplinarité
de
la
robotique
facilite
également
l’implication
et
l’expression
de
chacun
et
sollicite
chez
les
enfants
une
ouverture
vers
plusieurs
savoirs
ce
qui
développe
ainsi
leurs
curiosités
et
leurs
envies
d’apprendre.
L’aspect
ludique
de
la
robotique
renforce
l’intérêt
des
enfants
et
augmente
ainsi
leurs
attentions.
L’ensemble
de
ces
éléments
renforce
la
solidarité
entre
les
enfants
et
facilite
les
apprentissages.
Démarche
expérimentale
et
apprentissages
Le
moteur
principal
est
l’expérimentation
scientifique
avec
pour
thème
la
“
Conception
de
systèmes
robotisés
”.
Les
situations
de
démarches
expérimentales
sont
nombreuses
tant
dans
la
découverte
du
fonctionnement
des
articulations
que
dans
la
conception
de
systèmes
robotisés
reproduisant
les
mouvements.
Concernant
la
composante
“
robotique
”
en
particulier,
celle-‐ci
a
pour
but
de
faire
comprendre
à
des
enfants
les
enjeux
mathématiques
(angles,
leviers,
échelles,
proportionnalité,
calcul
de
périmètres
de
cercles
et
polygones,
parallélogrammes,
raisonnement,
etc…
en
fonction
du
niveau
de
l’enfant)
qu’ils
abordent
en
robotique.
Des
ateliers
contribuant
à
la
validation
de
compétences
transversales
Les
enfants
ont
le
rôle
principal
tandis
que
les
animateurs
sont
dans
une
posture
d’accompagnateurs.
Les
enfants
doivent
imaginer
et
réaliser
le
robot
par
eux-‐mêmes.
Les
animateurs
sont
là
pour
accompagner
et
non
pour
apporter
des
réponses
“
expertes
”.
Les
enfants
valident
leurs
réponses
par
leurs
démarches
expérimentales
réalisées
en
groupe
dans
les
ateliers.
Tout
le
travail
réalisé
peut-‐être
réinvesti
ensuite
dans
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
30
SÉANCE 1
les
enseignements
en
classe
de
SVT,
de
physique,
de
mathématiques...
L’activité
robotique
est
facilitatrice
pour
l’acquisition
des
compétences
du
Socle
relatives
à
“
L’autonomie
et
l’initiative
”
ou
bien
touchant
aux
“
principaux
éléments
de
mathématiques
”
et
“
de
culture
scientifique
et
technologique
”.
Les
aptitudes
comme
“
Savoir
observer,
questionner,
formuler
une
hypothèse
et
la
valider,
argumenter,
modéliser
de
façon
élémentaire
”
ou
“
Comprendre
le
lien
entre
les
phénomènes
de
la
nature
et
le
langage
mathématique
qui
s’y
applique
et
aide
à
les
décrire
”
sont
particulièrement
sollicitées.
Un
usage
naturel
des
outils
numériques…
Cette
pratique
est
également
riche
d’usages
numériques
par
la
recherche
d’informations
et
d’investigation,
notamment
sur
Internet,
et
par
la
programmation
des
robots.
Les
compétences
telles
que
“S’approprier
un
environnement
informatique
de
travail
”,
“
Créer,
produire,
traiter,
exploiter
des
données
”,
“
S’informer,
se
documenter
”
ou
encore
“
Communiquer,
échanger
”
sont
mises
en
œuvre.
Il
faut
distinguer
trois
applications
pédagogiques
distinctes
de
la
robotique
• l’apprentissage
de
la
robotique
implique
l’utilisation
du
robot
en
tant
que
support
pour
apprendre
la
mécanique,
l'électronique,
l’informatique
à
travers
des
activités
pratiques
collaboratives.
La
finalité
est
l’acquisition
de
connaissances
et
de
compétences
inhérentes
à
la
construction
et
à
la
programmation
de
robots.
• l’apprentissage
avec
la
robotique
repose
sur
l’interaction
entre
les
enfants
et
un
robot
humanoïde
ou
animoïde
qui
recouvre
le
rôle
de
compagnon
pour
les
enfants
ou
d’assistant
pour
l’enseignant.
La
finalité
vise
à
provoquer
des
réactions
empathiques
et
à
créer
des
interactions
cognitives
et
sociales.
• l’apprentissage
par
la
robotique
implique
l’usage
de
kits
robotiques
de
construction
et
de
programmation.
La
finalité
est
l’acquisition
de
connaissances
et
compétences
liées
à
une
matière
scolaire
précise
–
mathématiques,
sciences,
technologie.
Mais
sa
finalité
éducative
réside
aussi
dans
l’acquisition
de
compétences
transversales
(résoudre
des
problèmes,
communiquer,
prendre
des
initiatives,
...)
et
dans
le
développement
des
facultés
cognitives,
métacognitives
et
sociales
des
enfants
à
travers
l’autocorrection,
la
planification,
l’esprit
critique,
le
travail
collaboratif,
la
confiance
en
soi...
Le
potentiel
de
la
robotique
pour
les
apprentissages
est
lié
à
la
mise
en
œuvre
d’une
approche
et
d’une
scénarisation
pédagogiques
adaptées
à
l'âge
des
enfants
et
aux
contextes
des
ateliers.
La
programmation
et
la
robotique
Il
est
important
de
différencier
deux
types
de
programmation
:
• La
programmation
d’«
Actions
»,
actions
sous
conditions.
(ex.
si
le
robot
rencontre
un
obstacle,
alors
on
lui
demande
de
tourner)
«
SI
-‐
ALORS
-‐
SINON
»
• La
programmation
de
«
Motions
»,
mouvements
que
peut
effectuer
un
robot
(ex.
avancer,
reculer,
tourner,…
pour
un
robot
humanoïde)
Le
principe
de
la
programmation
d’actions
est
de
tester
les
capteurs
présents
sur
le
robot
afin
de
déclencher
une
action.
Si
cette
action
est
un
mouvement
il
sera
nécessaire
de
programmer
ce
mouvement
(moteurs,
servomoteurs,
vérins,…)
La
plupart
des
outils
robotiques
à
visée
pédagogique
ne
nécessitent
pas
la
programmation
de
mouvements.
Les
interfaces
proposent
le
plus
souvent
des
programmations
sous
conditions
qui
font
appels
à
des
fonctions
qui
réalisent
les
mouvements
désirés.
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
31
SÉANCE 1
Conclusion
:
la
robotique
pédagogique
Pour
le
développement
des
compétences
du
21ème
siècle
Robotique
Pédagogique
et
pensée
critique
Comprendre
et
être
critique
face
aux
technologies
existantes.
Développer
une
réflexion
sur
les
défis
éthiques
des
relations
personne-‐robot.
Robotique
pédagogique
et
créativité
Développer
la
créativité
au
niveau
de
la
conception
de
la
construction
ou
de
la
programmation.
Trouver
des
solutions
nouvelles
innovantes
et
pertinentes
pour
répondre
à
un
défi
robotique.
Aller
au-‐delà
de
la
consommation
passive
ou
interactive
des
technologies
et
développer
une
approche
créative
aux
technologies.
Robotique
pédagogique
et
pensée
informatique
Apprendre
à
programmer
par
le
biais
d’interfaces
de
programmation
visuelles
qui
facilitent
la
compréhension
des
processus
et
des
méthodes
informatiques.
Développer
la
capacité
d’abstraction,
de
décomposition
et
de
structuration
des
données
et
des
processus
nécessaires
à
l’élaboration
de
la
programmation
du
robot.
Robotique
pédagogique
et
collaboration
Développer
la
collaboration
face
à
des
défis
robotiques
en
équipe
qui
nécessitent
une
coordination
des
différents
membres.
Mettre
en
valeur
la
diversité
de
compétences
et
de
talents
des
membres
de
l’équipe.
Développer
l’engagement
des
apprenants
par
des
mécaniques
de
coopération
et
de
compétition.
Robotique
pédagogique
et
résolution
de
problèmes
Développer
une
attitude
positive
face
aux
problèmes
comme
source
d’apprentissage
et
de
résilience.
Développer
une
approche
interactive
et
de
prototype
(design
thinking)
pour
résoudre
une
situation
problème
complexe.
Développer
une
analyse
afin
de
décomposer
les
besoins
pour
un
défi
robotique.
Développer
une
capacité
à
déterminer
une
solution
à
construire
et
à
mettre
en
œuvre.
Adrien
Payet
Directeur
du
CRREP
Centre
de
Ressources
en
Robotique
Educative
et
Professionnelle
32
SÉANCE 1
https://wiki.mdl29.net/lib/exe/fetch.
Présentation
php?media=robotsarduino:
de la carte Arduino presentation_arduino.pdf
https://wiki.mdl29.net/lib/exe/fetch.
Installation d'Arduino php?media=robotsarduino: Ardublock facultatif
sous Windows installation_arduino_ardublock pour le moment
_windows.pdf
https://wiki.mdl29.net/lib/exe/fetch.
Installation d'Arduino Ardublock facultatif
php?media=robotsarduino:
sous Mac installer_arduino_sur_un_mac.pdf
pour le moment
https://wiki.mdl29.net/lib/exe/fetch.
php?media=robotsarduino:
Installation d'Arduino Installation orientée
installation_arduino_linux.
sous Gnu/Linux pdfphp?media=robotsarduino:
Raspberry
installation_arduino_linux.pdf
33
SÉANCE 1
Magician Chassis
Introduction
Le Magician chassis est une plateforme robotique facile à assembler soi-même. Il
propose un support 6 piles AA pour l’alimentation. Une fois le châssis monté, on peut
l’équiper de capteurs ou d’actionneurs pour en faire un véritable robot intelligent et
autonome.
Contenu
• 2 plaques en acrylique de 3mm découpées au laser
• 2 moteurs DC 6V double axe
• 2 roues complètes
• 1 roue à bille
• 1 support de 6 piles AA
• 1 support ultrason
• 1 ensemble de quincaillerie, vis et écrous
• 1 ensemble de fil de câblage
34
SÉANCE 1
1 1ère étape
Positionnez les quatre supports des moteurs à leur emplacement respectif. Ils seront
ensuite fixés sur le châssis une fois les moteurs positionnés et vissés.
35
SÉANCE 1
36
SÉANCE 1
3 3ème étape
Une fois le moteur positionné sur le châssis entre les deux supports, on peut visser
l’ensemble avec les vis M3*30, deux vis par support. Attention, les vis peuvent être un
peu difficiles à insérer. Les animateurs peuvent donc aider les enfants pour visser les
moteurs. Les deux vis de bas sont optionnelles.
37
SÉANCE 1
4 4ème étape
Ajoutez les deux roues de chaque côté des moteurs, sur les axes de rotation. De
même, évitez de les emboîter entièrement pour ne pas qu’elles frottent contre le
châssis.
5 5ème étape
On vient à présent fixer la roue à bille sur le châssis. Comme indiqué sur la notice
du montage, on vient placer la roue sur deux entretoises (L25 spacers) et on visse
l’ensemble avec quatre petites vis (M3*6 screws).
38
SÉANCE 1
6 6ème étape
Pour pouvoir ensuite fixer la partie supérieure du châssis, on ajoute 5 entretoises (L25
spacers) sur notre montage. On vient visser ses entretoises avec les vis M3*6 aux
emplacements indiqués par des points rouges sur la photo ci-dessus. Pour les deux du
haut, il faut bien les visser sur la « base » du T pour pouvoir positionner correctement la
plaque supérieure du châssis dans l’étape suivante.
39
SÉANCE 1
7 7ème étape
Fixer le contrôleur de moteur sur la partie haute du châssis en utilisant le support noir.
8 8ème étape
Visser la carte Arduino (montrer en jaune sur la photo). Vous aurez besoin de deux vis
à tête plate. Attention à ne pas cacher les trous pour les 7 vis (montrer en rouge sur la
photo) dont on aura besoin plus tard.
Une option plus pratique serait de fixer la carte avec du scotch double face.
40
SÉANCE 1
9 9ème étape
On peut maintenant venir fixer la plaque supérieure du châssis sur les entretoises à l’aide
de cinq vis M3*6.
10 10ème étape
Enfin, vous pouvez coller ou visser le support de piles à la partie basse ou haute du
châssis. Nous vous conseillons la partie haute car c’est plus pratique pour changer les
piles.
Il peut être maintenu par deux vis à tête plate (M3*10). Il faut forcer un peu pour faire
rentrer les vis dans les trous déjà réalisés dans le support de piles. Sinon, l’utilisation du
scotch double face est bien plus pratique pour retirer le support lors du changement
des piles.
41
SÉANCE 1
42
SÉANCE 1
11 11ème étape
Passez les fils (2 violets et 2 noirs) des moteurs via les deux parties du châssis. Il faut qu’ils
soient près du contrôleur de moteurs.
12 12ème étape
43
SÉANCE 1
Ajoutez ensuite, le support de la tête est fixez-le en utilisant les deux vis restantes.
Pour finir, vissez le capteur de distance, en utilisant deux vis M3*30 et deux écrous.
Conseil : vous pouvez faire cet étape après la séance 3 « câblage » de ROSA.
44
SÉANCES 1, 6
Robot Tripod
45
SÉANCES 1, 6
46
SÉANCE 1
Nous vous proposons une liste de vidéos qui montrent les différents robots déjà
existant et/ou de différentes situations où l'existence d’un robot peut apporter
des choses supplémentaires à l’activité humaine.
Ces vidéos peuvent être utilisées pour emmener une réflexion sur :
• la place que les robots occupent dans notre société
• la place que les robots occuperont dans le futur proche
• l’utilité des robots dans les différents domaines etc.
Festo Tripod EXPT - the parallel Tripod est un manipulateur robotisé https://www.youtube.com/
kinematic robots haute vitesse pour une liberté de watch?v=aH_t_1-
mouvement dans l'espace.
Précision et réponse dynamique
élevée jusqu'à 150 prélèvements/
min.
47
SÉANCE 1
Les
robots
Parmi
les
objets
qui
embarquent
des
ordinateurs,
les
«
robots
»
ont
une
importance
scientifique,
sociétale
et
économique
grandissante.
Les
robots
sont
partout
:
dans
les
usines
et
dans
les
champs,
au
fond
des
mers
et
dans
l’espace,
dans
les
jardins
et
les
salons.
En
outre,
ils
ont
pénétré
notre
culture
et
certains
d’entre
eux
participent
au
renouvellement
de
la
vision
que
nous
avons
de
nous-‐‑mêmes.
Quelques
exemples
de
robots.
De
gauche
à
droite
et
de
bas
en
haut:
bras
mécaniques
utilisés
dans
l’industrie
automobile
;
robot
humanoïde
dédié
à
la
reconnaissance
et
à
la
reproduction
des
émotions;
robot
explorateur
sur
Mars
;
robot
militaire
destiné
à
transporter
des
charges
lourdes
sur
des
terrains
accidentés.
D’un
point
de
vue
technique,
un
robot
est
une
machine
doté e
de
capteurs
(de
contact,
de
distance,
de
couleur,
de
force,
…)
qui
lui
permettent
de
percevoir
son
environnement,
de
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
48
SÉANCE 1
moteurs
l’autorisant
à
bouger
et
à
agir
sur
cet
environnement,
et
d’un
systè me
qui
contrôle
ce
qu’effectue
le
robot
en
fonction
de
ce
qu’il
perçoit.
Une
caractéristique
fondamentale
des
robots,
qui
les
distingue
des
automates,
est
cette
rétroaction
entre
perception
et
action.
Les
automates
(tels
que
ceux
de
Jacques
de
Vaucanson
ou
de
Pierre
et
Henri-‐‑Louis
Jaquet-‐‑Droz
au
XVIIIe
siècle)
ne
sont
pas
des
robots
car
leurs
mouvements
ne
dépendent
pas
de
ce
qui
se
passe
autour
d’eux
:
ils
n’ont
pas
de
capteurs
et
leurs
enchainements
sont
entièrement
prédéterminés
par
le
programme.
En
pratique,
cette
définition
d’un
robot
recouvre
une
très
vaste
diversité
de
machines
:
les
bras
articulés
programmables
des
usines
automobiles,
les
voitures
(en
mode
d’assistance
à
la
conduite)
et
les
avions
qui
sont
aujourd’hui
largement
automatisés,
les
aspirateurs
qui
font
le
ménage
tout
seuls,
certains
objets
électroniques
des
magasins
de
jouets,
ou
les
robots
biomimétiques
en
forme
d’animaux
(singes,
poissons…)
que
l’on
rencontre
parfois
dans
les
laboratoires
de
recherche.
Cette
diversité
n’est
pas
seulement
une
diversité
de
formes,
c’est
aussi
une
diversité
d’usages,
qui
sous-‐‑tendent
une
diversité
de
logiques
de
fonctionnement.
Ainsi,
les
robots
se
spécialisent
selon
deux
axes
majeurs
:
l’autonomie
et
les
capacités
d’adaptation
et/ou
d’apprentissage.
L’autonomie
:
il
existe
des
robots
qui
agissent
sans
qu’un
humain
les
guide,
et
d’autres
dont
le
comportement
est,
soit
influencé
par
un
humain,
soit
presque
totalement
contrô lé
par
un
humain.
Par
exemple,
dans
une
usine,
les
robots
qui
travaillent
à
la
chaine
et
ré pè tent
toujours
le
mê me
geste
le
font
souvent
de
maniè re
autonome.
En
revanche,
les
robots
utilisé s
dans
les
centrales
nuclé aires
(pour
opé rer
dans
les
zones
à
forte
radiation)
sont
typiquement
té lé guidé s
par
un
humain
qui
leur
dit
où
aller
et
quoi
faire
après
chaque
action.
L’adaptation
et
l’apprentissage
:
le
comportement
de
certains
robots
est
figé
au
départ
et
une
fois
pour
toutes
par
le
programmeur,
alors
que
d’autres
robots
sont
capables
d’acquérir
de
nouveaux
comportements
et
de
nouvelles
connaissances
par
leurs
expériences
:
leur
comportement
évolue
en
fonction
de
l’histoire
de
leurs
interactions
avec
l’environnement.
Ainsi,
certains
robots
sont
capables
d’apprendre
à
reconnaître
des
objets
dans
des
images
ou
encore
d’apprendre
à
marcher
en
expérimentant
et
évaluant
eux-‐‑mêmes
différentes
stratégies.
Ces
mécanismes
d’adaptation
sont
permis
par
des
«
algorithmes
d’apprentissage
»,
qui
reposent
sur
la
détection
automatique
de
régularités
dans
des
flux
de
données
captées
par
le
robot,
et
sur
des
méthodes
d’
«
optimisation
»
permettant
de
raffiner
de
manière
progressive
et
itérative
les
paramètres
des
solutions
à
un
problème.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
49
SÉANCE 1
Exemple
de
processus
itératif
permettant
à
des
«
générations
»
de
robot
d’apprendre
à
réaliser
une
tâche
par
eux-‐‑mêmes
(par
exemple,
se
déplacer).
Grâce
à
ces
algorithmes
d’apprentissage,
certains
robots
sont
capables
d’inventer
des
solutions
et
des
comportements
non
prédits
par
leur
concepteur,
et
même
de
sélectionner
pour
eux-‐‑mêmes
des
objectifs
qui
ne
sont
pas
préprogrammés.
Il
est
par
exemple
possible
de
programmer
un
robot
en
lui
donnant
des
instructions
lui
demandant
de
rechercher
des
situations
nouvelles
afin
d’augmenter
ses
connaissances
sur
le
monde
qui
l’entoure.
Ainsi,
certains
algorithmes
permettent
de
doter
ces
machines
de
formes
d’apprentissage
et
de
créativité.
Néanmoins,
les
capacités
et
les
performances
de
ces
algorithmes
sont
aujourd’hui,
et
encore
pour
très
longtemps
probablement,
très
faibles
en
comparaison
des
capacités
d’adaptation
et
de
raisonnement
de
nombreux
animaux,
et
en
particulier
de
l’humain.
La
plupart
des
robots
en
service
dans
le
monde
sont
industriels
(on
en
compte
aujourd’hui
environ
9
millions).
Trè s
tô t,
les
entreprises
se
sont
inté ressé es
à
ces
machines
pour
deux
raisons
:
• D’abord,
les
robots
peuvent
être
utilisés
pour
remplacer
les
travailleurs
humains
dans
les
tâches
répétitives,
pénibles
et
nécessitant
de
faibles
compétences,
comme
les
montages,
la
peinture
ou
les
soudures
de
pièces
;
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
50
SÉANCE 1
• En
outre,
ces
machines
sont
capables
de
ré aliser
des
travaux
à
la
chaine
bien
plus
rapidement
et
efficacement
que
les
humains.
Le
premier
robot
industriel,
Unimate,
est
apparu
en
1961
:
installé
dans
une
usine
automobile
de
General
Motors,
ce
bras
articulé
manipulait
de
lourdes
pièces
de
fonderie.
Dans
les
années
1970,
l’usage
des
robots
dans
l’industrie
a
pris
son
envol.
Aujourd’hui,
les
robots
ont
pénétré
toutes
les
branches
de
l’industrie
et
ne
sont
plus
restreints
au
seul
secteur
de
l’automobile.
Par
exemple,
dans
l’agriculture
et
l’agro-‐‑alimentaire,
les
robots
vont
dans
les
champs
cueillir
fruits
et
légumes,
certains
coupent,
pressent
et
mettent
en
bouteille
;
d’autres
trient
et
mettent
en
cartons
;
d’autres
encore
groupent
en
palettes.
Dans
certains
aéroports,
des
flottes
de
robots
s’occupent
de
transporter
les
bagages
et
de
les
charger
dans
les
soutes.
Les
robots
ne
sont
pas
seulement
utiles
dans
l’industrie
pour
les
tâches
simples
et
répétitives,
ils
sont
aussi
utilisés
pour
travailler
dans
des
environnements
dangereux
pour
l’homme.
L’industrie
nucléaire
est
un
exemple
typique.
Qu’ils
soient
autonomes
ou
partiellement
téléguidés,
les
robots
des
centrales
nucléaires
peuvent
déambuler
dans
les
enceintes
confinées
et
radioactives,
ils
peuvent
manipuler
les
substances
dangereuses
et
s’occuper
de
la
maintenance
des
autres
machines.
Un
autre
exemple
est
l’industrie
pétrolière
:
les
robots
sous-‐‑marins
sont
par
exemple
utilisés
pour
contrôler
l’état
de
la
coque
des
navires
afin
de
prévenir
les
accidents
et
d’identifier
les
«
navires
poubelles
».
Les
robots
sont
enfin
cruciaux
pour
l’exploration
des
endroits
où
l’homme
ne
peut
pas
aller,
au
premier
rang
desquels
l’espace
et
les
corps
du
Système
solaire.
C’est
en
1966
que
le
premier
robot
mobile
arrive
sur
la
Lune,
embarqué
dans
la
sonde
Surveyor.
Suivront
le
soviétique
Lunokhod,
puis
toute
la
série
des
américains
Mariner.
En
1997,
un
robot
atterrit
sur
la
planète
Mars
:
Sojourner,
qui
est
propulsé
par
l’é nergie
qu’il
capte
grâ ce
à
ses
panneaux
solaires
;
il
envoie
à
la
Terre
des
milliers
de
cliché s
et
provoque
un
engouement
du
grand
public.
Sojourner
navigue
en
partie
de
manière
autonome
car,
étant
donné
la
distance
avec
la
Terre,
il
est
très
difficile
de
le
téléguider
en
temps
réel.
En
2004,
une
nouvelle
mission
robotisée
concentre
l’attention
du
monde
entier
:
Spirit
et
Opportunity,
équipés
de
spectromètres
et
d’un
bras
qui
leur
permet
de
creuser
la
surface,
apportent
la
preuve
que
de
l’eau
a
coulé
sur
Mars.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
51
SÉANCE 1
Les
robots
sont
devenus
essentiels
comme
outils
pour
penser
et
modéliser
les
systèmes
complexes
dans
le
domaine
du
vivant.
En
particulier,
les
robots
sont
aujourd’hui
utilisés
dans
des
laboratoires
de
recherche
pour
comprendre
comment
les
êtres
vivants
s’adaptent
à
leur
environnement
naturel,
en
termes
de
comportement
et
de
déploiement
de
capacités
cognitives.
En
effet,
ce
comportement
est
le
résultat
de
la
dynamique
des
interactions
entre
un
cerveau,
un
corps
physique
et
un
environnement,
dynamique
qui
se
redé finit
en
permanence
car
le
cerveau
est
modifié
à
chaque
nouvelle
interaction.
Les
robots
embarquent
à
la
fois
un
«
cerveau
»
(des
programmes
qui
permettent
de
traiter
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
52
SÉANCE 1
l’information
acquise
par
le
robot,
selon
des
règles
précises),
des
«
organes
sensoriels
»
(les
senseurs)
et
des
«
systèmes
moteurs
»
(les
actuateurs).
De
cette
manière,
les
robots
peuvent,
comme
les
êtres
vivants,
modifier
et
être
modifiés
par
l’environnement
physique
dans
lequel
ils
agissent.
Leur
«
cerveau
»
aussi
en
est
modifié,
car
le
robot
acquiert
de
nouvelles
connaissances
qu’il
peut
réutiliser
dans
ses
interactions
successives.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016. Publié sous licence CC by-nc-nd 3.0.
53
SÉANCE 2
Montage du chassis
Le Magician chassis est une plateforme robotique facile à assembler soi-même. Il
fonctionne grâce à deux moto-réducteurs à courant continu. Il propose un support 4
piles AA pour l’alimentation mais il est conseillé d'utiliser un support 6 piles. Une fois le
châssis monté, on peut l’équiper de capteurs ou d’actionneurs pour en faire un véritable
robot intelligent et autonome.
Les 2 roues à disque permettent d'y connecter des encodeurs. Montage facultatif.
Notices Fichiers
Lecture de la vidéo
Montage complet du http://rosa.lph.bzh/montage.html
robot Télécharger la vidéo
http://rosa.lph.bzh/videos/montage_robot.zip
Si vous avez des problèmes pour fixer la carte Arduino sur le châssis, je vous conseille de
le faire avec du scotch double face.
54
SÉANCE 2
Les capteurs
Un capteur est un dispositif qui transforme l’état d’une grandeur physique observée (comme la
température, la distance, la luminosité, le débit, le niveau, la pression, le son) en une mesure
utilisable. Il permet donc d’acquérir des données, des nombres, comme une amplitude de courant
ou de tension, une hauteur de mercure pour un thermomètre, ou encore une distance de
déviation d’une bulle pour un niveau. Tout capteur doit être associé à un contrôleur pour pouvoir
donner une information manipulable : par exemple dans le cas d’un capteur de distance à
infrarouges, le capteur envoie un faisceau infrarouge, et détecte la réflexion de ce faisceau par un
objet. Il faut alors qu’un petit contrôleur calcule le temps qu’a mis le faisceau à être réfléchi pour
pouvoir déterminer la distance à laquelle se trouve l’objet.
Le capteur que nous utilisons pour ROSA c’est un capteur de distance, autrement dit un capteur
Ultrason.
Les actionneurs
Un actuateur, ou actionneur, est un dispositif d’une machine (moteur, vérin, speaker, lampe, etc.)
qui permet à une machine de transformer l’énergie qui lui est fournie en un phénomène physique
utilisable. Un actionneur exécute les ordres qui lui sont envoyés par la partie commande de la
machine.
ROSA utilise deux moteurs, deux roues à vitesse variable qui lui permettent d’avancer, de reculer
et de tourner.
Il s’agit ici de faire comprendre aux enfants que chez les robots rien n’est naturel, et qu’ ils ont
besoin d’un petit outil pour sentir chacune de ces choses. Par exemple s’ils n’ont pas de capteurs de
distance, ils ne peuvent pas voir !
55
SÉANCE 2
Vu
de
haut,
la
roue
est
collée
à
l’axe
du
moteur.
Vu
de
haut,
la
roue
est
collée
à
l’axe
du
moteur.
Vu
de
haut,
la
roue
est
collée
à
l’axe
du
moteur.
Ce
système
est
utilisé
dans
les
voitures
et
les
trains.
Les
roues
tournent
et
font
avancer
le
véhicule
Ce
slystème
sur
a
route.
est
utilisé
dans
les
voitures
et
les
trains.
Les
roues
tournent
et
font
avancer
le
véhicule
sur
slystème
Ce
a
route.
est
utilisé
dans
les
voitures
et
les
trains.
Les
roues
tournent
et
font
avancer
le
véhicule
sur
la
route.
56
SÉANCE 2
Déplacement du robot
Le robot peut :
•Avancer
•Reculer
•Tourner à droite
•Tourner à gauche
•Tourner sur place
Le tout plus ou moins rapidement, en changeant la vitesse des moteurs dans le code.
57
SÉANCES 2, 5
Lecture de la vidéo
http://rosa.lph.bzh/test_moteurs.html
Télécharger la vidéo
http://rosa.lph.bzh/videos/test_moteurs.zip
58
SÉANCES 3, 5
Présentation Arduino
Introduction
Si on considère qu’un robot est un dispositif mécatronique (mécanique, électronique & informatique) pouvant réaliser des tâches
programmées de manière autonome, alors il y a longtemps qu’ils sont parmi nous: lave-vaisselle, lave-linge, magnétoscope, sans même parler
des robots tondeuses ou aspirateurs! Ce qui les distingue des simples appareils électromécaniques (comme une ancienne machine à laver),
c’est leur gestion des tâches à l’aide d’un microcontrôleur. Il s’agit d’une sorte de petit ordinateur minimaliste et de faible puissance, mais
aussi de faible consommation. C’est lui qui commande les tâches en fonction de son environnement.
Dans le cas d’un lave-vaisselle moderne, il s’agit de commander de nombreuses actions (ouverture de vannes, pompes, chauffage de l’eau,
ouverture du réservoir de poudre…) selon divers programmes, et en fonction de différents capteurs (porte fermée, arrivée d’eau ouverte,
température de l’eau, débitmètre, choix du programme…) et de réagir en fonction de capteurs de pannes (pompe défectueuse, arrivée d’eau
fermée, capteur antidébordement…). L’ensemble du dispositif informatique et électronique commandant le lave-vaisselle est appelé système
embarqué.
Arduino est une famille de cartes contenant un microcontrôleur et de nombreux connecteurs (entrées/sorties) qui peuvent recevoir des
informations de capteurs et produire des signaux à même d’interagir avec des moteurs, des relais ou d’autres circuits électroniques.
Sa particularité est d’être entièrement Open Source, d’un faible prix et aisément programmable. Dès lors, Arduino est devenu une référence
dans le monde des bricoleurs et bidouilleurs de toutes sortes. Il suffit de voir la diversité des réalisations présentées ici pour s’en rendre
compte!
Arduino permet de faire une introduction à l’automation, à l’électronique, à la mécanique et à la programmation à moindre coût. Tout ceci
nous amène à penser qu’il a parfaitement sa place sur Edurobot et à l’école!
Présentation
Le projet Arduino est intéressant à plus d’un titre; à commencer par son origine: l’Italie du Nord. Le magazine en ligne OWNI a publié un bon
article sur l’origine et l’histoire d’Arduino; la lecture de cet article est vraiment recommandée, car elle permet d’aborder Arduino en
comprenant la philosophie qui a mené au projet actuel.
http://owni.fr/2011/12/16/arduino-naissance-mythe-bidouille/
Arduino est donc un projet Open Hardware, c’est-à-dire basé sur le principe Open Source. La partie matérielle est sous licence Creative
Commons Attribution Share-Alike (c’est la raison pour laquelle la section et les documents Arduino d’Edurobot possèdent la même licence).
La partie logicielle est sous licences GPL et LGPL.
Cela signifie que chacun peut construire son propre Arduino, mais que des entreprises peuvent aussi créer et vendre leurs propres modules
Arduino. Néanmoins seuls les modules « officiels » portent le nom d’Arduino. Dès lors, toute une série de modules compatibles Arduino est
commercialisée sous divers noms: Freeduino, Sanguino, Seeduino, Uduino, Diduino…
Arduino se programme à l’aide d’une application java open source. Le langage de programmation est du C++, soit l’un des langages les plus
populaires.
Licence
d’utilisation
Ce site et son contenu sont à disposition selon les termes de la Licence Creative
Commons Attribution - Pas d'Utilisation Commerciale 2.5 Suisse
59
SÉANCE 3
Présentation Arduino
Sommaire
➢
➢
➢
➢
➢
60
SÉANCE 3
Températures Moteurs
Humidité Servosmoteurs
Pression Electrovannes
Présence Pompes
Carte
Distance Arduino Vérins
Luminosité Eclairages
... ...
Pour qui?
➢
➢
➢
➢
➢ œ
➢
➢
61
SÉANCE 3
C’est quoi?
➢
➢ …
➢
➢
➢
➢
➢
62
SÉANCE 3
Ethernet WIFI
GSM
63
SÉANCE 3
C’est quoi?
64
SÉANCE 3
•
Setup
Loop
int LED = 12 ;
void setup() {
pinMode(LED, OUTPUT) ;
} 01011101100
void loop() {
digitalWrite(LED, LOW) ;
delay(500) ;
digitalWrite(LED, HIGH) ;
USB
delay(500) ;
}
PC
65
SÉANCE 3
66
SÉANCE 3
➢
➢
➢
➢
67
SÉANCE 3
1
-‐
La
carte
Arduino
«
Arduino
»
est
une
famille
de
cartes
(circuits
imprimés)
en
«
open
hardware
»
sur
lequel
on
retrouve
un
microcontrôleur
qui
peut
être
programmé
pour
réaliser
différentes
opérations
ainsi
que
de
nombreux
connecteurs
(entrées/sorties)
qui
permettent
d’ajouter
des
composants
à
la
carte.
Cette
carte
électronique
«
Arduino
»
programmable
et
son
logiciel
multiplateforme
ont
été
imaginés
et
développés
par
Massimo
Banzi,
David
Cuartielles,
Tom
Igoe,
Gianluca
Martino,
David
Mellis
et
Nicholas
Zambetti
en
2006
afin
d’offrir
au
plus
grand
nombre
la
possibilité
de
créer
facilement
des
systèmes
électroniques.
Carte
Arduino
de
type
UNO
o USB
Plug
:
Port
USB
pour
discuter
avec
l’ordinateur.
o
o External
Power
Supply
:
Entrée
pour
une
alimentation
autre
que
USB
(une
batterie
par
exemple)
o
o Atmega328
:
Microcontrôleur
de
la
carte,
c’est
le
cerveau
de
la
carte
qui
stock
le
programme
et
l’exécute.
o
o Les
Pins
:
Deux
types
de
pins,
analogique
et
numérique
(*)
permettant
de
brancher
tous
les
éléments
externes
en
entrées/sorties.
o
o Reset
Button
:
Permet
de
réinitialiser
(relancer)
le
programme.
Le
montage
peut
se
réaliser
sur
une
Breadboard,
plaque
additionnelle
prévue
à
cet
effet.
68
SÉANCE 3
Pour
les
curieux
:
La
carte
Arduino
a
un
régulateur
à
faible
chute
de
tension
qui
assure
la
conversion
entre
la
tension
externe
(piles,
batterie)
et
les
5V
nécessaires
pour
la
carte.
La
tension
d’alimentation
externe
recommandée
se
situe
entre
7
volts
et
12
volts.
3
–
L’interface
du
logiciel
Arduino
Après l’installation du logiciel (lien de téléchargement), le lancer pour rentrer sur l’interface de programmation
Cette
interface
ressemble
à
un
éditeur
de
texte
simple,
il
permet
d’écrire
des
programmes
en
langage
C/C++
simplifié,
de
les
tester
et
de
les
transférer
dans
le
microcontrôleur
de
la
carte
Arduino.
Les
Boutons
du
menu
du
logiciel
Arduino
Ce
bouton
permet
de
vérifier
le
programme.
Le
logiciel
Arduino
va
chercher
si
ce
qui
est
écrit
est
conforme
à
ce
qui
est
attendu,
il
teste
et
compile
le
programme.
La
compilation
est
la
transformation
du
langage
(C/C++)
de
programmation
en
langage
machine
utilisé
par
la
carte.
Ce
bouton
permet
de
téléverser
le
programme.
Le
logiciel
va
transférer
le
programme
compilé
dans
la
mémoire
du
microcontrôleur
de
l'Arduino
qui
le
gardera
en
mémoire.
Il
l'exécutera
tant
qu'il
sera
alimenté
en
électricité.
Il
sera
donc
autonome
et
ne
dépendra
plus
de
l'ordinateur.
Ce
bouton
permet
d’ouvrir
une
nouvelle
fenêtre.
L’interface
de
programmation
Arduino
permet
de
travailler
sur
plusieurs
programmes
(fenêtres)
en
simultané.
Ce
bouton
permet
d’ouvrir
un
programme
enregistré.
De
nombreux
exemples
de
programmes
sont
proposés
par
Arduino
et
permettent
une
prise
en
main
rapide
ainsi
que
de
retrouver
les
syntaxes
correctes
des
mots
clés
les
plus
courants
du
langage
de
programmation.
Ce
bouton
permet
d’enregistrer
votre
programme.
Les
fichiers
sont
stockés
dans
des
dossiers
créés
automatiquement,
aussi
appelés
"Carnet
de
croquis".
2
69
SÉANCE 3
4
–
La
programmation
4.1
-‐
La
structure
du
programme
1
//
(déclarations
variables…)
Cf.
Chapitre
4.2
:
Les
constantes
et
les
variables
2
3
void
setup()
La
fonction
setup()
est
appelée
au
démarrage
du
programme.
Elle
est
4
//
Fonction
setup
d’initialisation
utilisée
pour
initialiser
les
variables,
le
sens
des
broches,
les
librairies
5
{
utilisées...
Elle
n'est
exécutée
qu'une
seule
fois,
après
chaque
mise
6
…
sous
tension
ou
réinitialisation
de
la
carte
Arduino.
7
}
8
void
loop()
La
fonction
loop()
est
le
programme
principal.
9
/*
Fonction
loop
infinie
Les
instructions
contenues
dans
cette
fonction
sont
exécutées
en
10
programme
principal
*/
boucle
tant
que
la
carte
n’est
ni
éteinte
ni
réinitialisée.
11
{
Ce
sera
donc
le
programme
du
robot
!
12
…
13
}
Il
est
possible
de
créer
ses
propres
fonctions(),
celles-‐ci
pourront
être
14
mafonction()
appelées
depuis
le
programme
principal.
La
création
de
fonctions
à
15
/*
Création
d’une
fonction
qui
l’extérieur
du
programme
principal
permet
:
16
pourra
être
appelée
dans
le
-‐ d’alléger
la
fonction
loop
qui
sera
ainsi
plus
lisible
;
17
programme
principal
*/
-‐ d’appeler
plusieurs
fois
une
fonction
sans
avoir
à
la
réécrire.
18
{
19
…
Remarques
:
20
}
-‐ Une
fonction
est
une
succession
d’instructions
qui
débutent
21
TOUJOURS
par
«
{
»
et
se
terminent
TOUJOURS
par
«
}
»
22
-‐ Attention
la
casse
des
lettres
est
prise
en
compte
en
C/C++
Pour
commenter
son
programme
il
suffit
de
saisir
le
code
//
tout
ce
qui
suivra
sur
la
ligne
sera
lisible
mais
transparent
pour
le
programme.
Pour
un
bloc
de
plusieurs
lignes
à
la
suite
on
utilise
:
début
/*
et
fin
*/
4.2
-‐
Les
constantes
et
les
variables
On
déclare
les
constances
e t
les
variables
avant
le
setup
(),
on
peut
les
apparenter
à
des
«
boites
»
dans
lesquelles
on
range
des
informations
:
textes,
nombres,…
que
l’on
pourra
utiliser
à
tout
moment
dans
la
programme
et
sur
lesquelles
on
pourra
effectuer
des
opérations.
Ces
espaces
mémoire
sont
caractérisés
par
des
noms
qui
permettent
d’y
accéder
facilement.
Comme
son
nom
l’indique
la
valeur
d’une
constante
restera
identique
au
cours
du
programme
tandis
que
celle
d’une
variable
pourra
changer
au
cours
du
programme.
Remarque
:
Chaque
variable
et/ou
constante
que
l’on
utilise
va
prendre
de
la
place
dans
la
mémoire
de
l’Arduino.
Il
est
donc
important
de
bien
choisir
son
type
selon
son
utilisation.
Les
principaux
types
sont
:
boolean
maVariable
=
true
;
«
boolean
»
peut
prendre
deux
états
TRUE
(vrai)
(1)
ou
FALSE
(faux)
(0)
c
Espace
utilisé
1
bit
int
maVariable
=
15
;
«
int
»
est
un
nombre
entier
de
–
32
768
à
32
767
c
Espace
utilisé
16
bits
(soit
2
octets)
float
maVariable
=
1.23
;
«
float
»
peut
être
un
nombre
à
virgule
de
-‐3.4028235E+38
à
3.4028235E+38
c
Espace
utilisé
32
bits
string
maVariable
=
«
Bonjour
»
;
«
string
»
peut
contenir
du
texte
de
0
à
2
milliards
de
car. c
Espace
utilisé
10
octets
+
longueur
de
chaine
float
maVariable
=
3.14159265358979323846264338327950288419;
//
On
déclare
ici
une
variable
de
type
float
qui
aura
pour
nom
maVariable
et
pour
valeur
Pi.
3
70
SÉANCE 3
4.3
–
Exemple
:
«
programmation
pour
faire
clignoter
une
LED
»
Une
des
forces
d’apprentissage
d’Arduino
repose
dans
ces
nombreux
exemples
intégrés
au
logiciel
qui
permettent
de
se
familiariser
avec
le
code
et
peuvent
s’utiliser
comme
des
briques
entre-‐elles.
Tous
ces
exemples
se
retrouvent
dans
fichier/exemples.
Lancer
le
logiciel
Arduino
puis
ouvrir
un
fichier
répertoire
[01.Basics]
et
sélectionner
le
croquis
mis
à
disposition
en
exemple
:
Blink
(On
peut
également
ouvrir
le
fichier
Blink
en
passant
par
le
menu
Fichier
c
Exemples
c
01.Basics
c
Blink)
Analyse
du
code
:
«
void
setup
()
»
Initialisation
de
l’Arduino,
tout
ce
qui
se
situe
entre
les
{
}
ne
sera
effectué
qu’au
démarrage.
«
void
loop
()
»
Boucle
infinie,
tout
ce
qui
se
trouve
entre
les
{
}
va
être
répété
indéfiniment.
On
connecte
donc
la
LED
sur
le
PIN
13
:
La
cathode
sur
un
connecteur
GND
et
l’anode
sur
le
connecteur
13.
Décomposition
de
loop()
:
{
//
DEBUT
digitalWrite
(13,
HIGH)
;
/
/
1ère
instruction
(action)
à
effectuer.
On
écrit
sur
la
pin
13
une
valeur
haute
c
on
envoie
du
courant
sur
la
sortie
13
c
la
LED
s’allume.
delay(1000)
;
//
2ème
instruction
(action)
à
effectuer.
On
attend
1000
millisecondes
soit
1
sec.
digitalWrite
(13,
LOW)
;
//
3ème
instruction
(action)
à
effectuer.
On
écrit
sur
la
pin
13
une
valeur
basse
c
on
envoie
plus
de
courant
sur
la
sortie
13
c
la
LED
s’éteint.
delay(1000)
;
//
4ème
instruction
(action)
à
effectuer.
On
attend
1000
millisecondes
soit
1
sec.
}
//
FIN
–
La
fonction
loop()
est
exécutée
en
boucle
on
retourne
donc
au
début
Remarques
:
La
PIN
13
est
alimentée
en
5V
lorsqu’on
fait
un
digitalWrite
HIGH
et
à
0V
lorsqu’on
fait
un
digitalWrite
LOW.
Noter
le
caractère
«
;
»
à
la
fin
des
lignes.
C’est
une
information
pour
indiquer
la
fin
d’une
action.
Ce
caractère
est
INDISPENSABLE
à
chaque
fin
d’action
pour
que
le
programme
fonctionne
correctement.
PAR
SIMPLIFICATION
DE
MONTAGE
NOUS
N’UTILISONS
PAS
DE
RESISTANCE
EN
SERIE
AVEC
LA
LED
MAIS
ATTENTION
CE
N’EST
BON
NI
POUR
LA
LED
NI
POUR
LES
COMPOSANTS
DE
LA
CARTE
!
ET
UN
ELECTRONICIEN
SAUTERAIT
AU
PLAFOND
EN
VOYANT
CE
MONTAGE.
A
N’UTILISER
DONC
QUE
DANS
LE
CAS
DE
CE
TUTO
ET
SANS
EN
ABUSER.
Tester
le
programme
en
le
téléversant
dans
le
microcontrôleur
de
la
carte
Arduino
:
-‐ Connecter
la
carte
à
l’ordinateur
via
un
câble
USB,
choisir
le
modèle
de
la
carte
dans
le
menu
Outils
et
vérifier
la
configuration
du
port
COM
de
la
prise
USB.
(Normalement
le
port
se
sélectionne
tout
seul).
Les
paramètres
du
Port
COM
(gestionnaire
de
périphérique
de
votre
PC)
doit-‐être
à
115
200
Bits
par
seconde
-‐ Cliquer
sur
la
petite
flèche
en
haut
à
gauche
«
Téléverser
».
4
71
SÉANCE 3
5
–
La
robotique
avec
une
carte
Arduino
5.1
–
Rappel
Les
robots
sont
constitués
de
capteurs,
d’un
contrôleur
et
d’actionneurs.
Le
contrôleur
reçoit
des
informations
des
capteurs
et
envoi
des
instructions
aux
actionneurs.
Capteurs
c
Contrôleur
c
Actionneurs
-‐ Les
capteurs
se
brancheront
sur
les
Pins
de
la
carte,
ils
seront
configurés
en
entrées
INTPUT
-‐ Le
microcontrôleur
de
la
carte
Arduino
sera
le
contrôleur
du
robot.
-‐ Les
actionneurs
se
brancheront
sur
les
Pins
de
la
carte,
ils
seront
configurés
en
sorties
OUTPUT
Pour
créer
un
robot
avec
une
carte
Arduino
il
suffit
donc
de
choisir
les
capteurs
et
les
actionneurs
adaptés
au
robot
souhaité
et
d’écrire
le
programme
déterminant
les
actions
que
réaliseront
les
actionneurs
du
robot
en
fonction
des
informations
reçus
par
ses
capteurs.
Si
l’on
regarde
l’exemple
de
la
LED
pinMode
(13,
OUTPUT);
elle
est
connectée
en
sortie
car
elle
reçoit
des
instructions
du
contrôleur
digitalWrite
(13,
HIGH);
digitalWrite
(13,
LOW);
C’est
un
actionneur
5.2
–
Les
Capteurs
La
library
(ou
bibliothèque
de
fonctions)
associée
à
un
capteur
est
un
ensemble
de
fonctions
qui
ont
été
développées
spécifiquement
pour
ce
capteur.
Elles
sont
le
plus
souvent
disponibles
en
Open
Source
sur
Internet.
Pour
utiliser
une
bibliothèque
il
faut
la
télécharger
et
l’installer
dans
le
programme
Arduino.
Il
sera
nécessaire
d’inclure
cette
bibliothèque
à
votre
programme
afin
que
ces
fonctions
soient
utilisables
dans
le
bloc
void
loop()
de
celui-‐ci
(de
la
même
manière
que
les
fonctions
C++
de
base). Pour les curieux : Il
suffira
alors
de
connaître
les
déclarations
nécessaires
à
l’utilisation
du
capteur
et
les
paramètres
attendus
par
les
fonctions
développées
dans
la
bibliothèque
pour
utiliser
facilement
un
capteur
sur
votre
robot.
Capteur
de
distance
à
utlrason
Connecteurs
:
Vcc
:
Alimentation
5V
Trig
:
(input)
connecté
sur
la
Pin
12
Echo
:
(output)
connecté
sur
le
Pin
11
Gnd
:
Masse
5.3
-‐
Fonctionnement
du
capteur
de
distance
Il
envoie
une
impulsion
niveau
haut
(5v)
pendant
au
moins
10
µs
sur
la
broche
‘Trig
Input’
qui
déclenche
la
mesure.
En
sortie
‘Echo
Output’
fourni
une
impulsion
de
5v
dont
la
durée
est
proportionnelle
à
la
distance
de
l’objet.
La
distance
en
cm
est
calculée
en
utilisant
la
formule
:
distance
=
(durée
de
l’impulsion
en
µs)
/
58.
Téléchargement
la
bibliothèque
newping
pour
le
capteur
de
distance
à
ultrason
:
Lien
de
téléchargement
Installation
:
Menu
Croquis
c
Inclure
une
bibliothèque
c
Ajouter
la
bibliothèque
ZIP
c
Retrouver
le
répertoire
de
téléchargement
de
la
bibliothèque
newping.zip
sur
votre
ordinateur
et
l’ouvrir.
Pour les curieux :
Structure
d'une
bibliothèque
Les
bibliothèques
Arduino
sont
composés
d'au
moins
deux
fichiers,
un
fichier
d'en
tête
finissant
par
.h
et
un
fichier
source
finissant
par
.cpp.
Le
fichier
d'en
tête
contient
les
définitions
des
fonctions
disponibles
et
le
fichier
source
contient
l'implémentation
du
code
des
fonctions
qui
ont
été
définies
dans
le
fichier
d'en
tête.
5
72
SÉANCE 3
5.4
–
Programmation
:
OBJECTIF
«
Allumer
la
LED
quand
un
obstacle
se
trouve
devant
le
capteur
»
Déclaration
et
Initialisation
setup()
Représentation
Graphique
«
organigramme
»
Programme
en
C++
Description
{
Début
du
programme
int
distance
=
mesureDistance();
Distance
de
l’objet,
on
met
sa
valeur
delay(attenteCapteur);
dans
variable
distance.
if
(PasObstacle
==
false)
TEST
:
Présence
d’un
obstacle
?
{
début
digitalWrite(13,
LOW)
;
Si
pas
d’obstacle
on
éteint
la
LED
}
fin
else
Sinon
{
début
digitalWrite(13,
HIGH);
On
allume
la
LED
Serial.print(distanceCM.ping_cm());
Affichage
:
distance
de
l’obstacle
(1)
delay(500);
On
attend
0.5
sec
}
fin
}
Fin
du
programme
c
début
Fonction
spécifique
:
Création
de
la
fonction
qui
va
renseigner
la
variable
PasObstacle
(1)
(1) Serial.print
permet
à
tout
moment
d’afficher
des
informations
dans
le
moniteur
série
du
logiciel
Arduino.
(2) distanceCM.ping_cm()
est
une
fonction
de
la
bibliothèque
newping.h
qui
calcule
la
distance
de
l’obstacle.
6
73
SÉANCE 3
Code
(Arduino)
«
Pour
allumer
une
LED
quand
un
obstacle
se
trouve
devant
le
capteur
entre
10
et
20cm
»
/*
Programme
permettant
d’allumer
une
LED
(branchée
sur
la
Pin
13
de
la
carte
Arduino)
lorsque
le
capteur
de
distance
détecte
un
objet
à
une
distance
comprise
entre
10
et
20
cm.
*/
#include
<NewPing.h>
//
définitions
et
déclarations
des
variables
#define
trigPin
12
#define
echoPin
11
NewPing
distanceCM
(trigPin,
echoPin);
int
maximumDistance
=
50;
int
minimumDistance
=
10;
boolean
PasObstacle
=
false;
const
int
distanceObstacle
=
20;
int
attenteCapteur
=
100;
7
74
SÉANCE 3
6
–
ROSA
(Robot
Open
Source
Arduino)
6.1
–
Introduction
Conçu
à
l'occasion
du
projet
D-‐Clics
numériques,
ce
robot
se
veut
une
machine
simple
à
fabriquer
et
évolutive.
Il
s'agit
d'un
robot
éviteur
d'obstacles
utilisant
deux
moteurs
et
un
capteur
de
distance,
pour
découvrir
les
bases
de
la
robotique
notamment
à
travers
:
§ l'assemblage
du
châssis
§ l'électronique
(à
travers
le
câblage
des
différents
éléments)
§ la
programmation
de
la
carte
Arduino
Uno
L'objectif
du
cahier
des
charges
est
de
construire
un
robot
à
bas
coût
et
évolutif.
§ reproductibilité
:
toutes
les
pièces
utilisées
doivent
être
faciles
à
trouver
§ low-‐cost
:
le
coût
doit
être
acceptable
pour
une
utilisation
en
nombre,
de
l'ordre
de
45€
§ polyvalent
:
la
carte
Arduino
peut
être
utilisée
pour
réaliser
d'autres
projets
§ programmation
libre
et
open-‐source
:
code
open-‐source
et
GPL
§ simplicité
de
réalisation
§ Il
doit
être
facilement
réalisable
sans
avoir
de
compétences
particulières
en
mécanique
ou
bricolage
Ce
robot
utilise
un
capteur
ultrason
qui
mesure
une
distance.
L'information
est
traitée
par
la
carte
Arduino
et
permet
au
robot
lorsqu’il
rencontre
un
obstacle
frontal
de
s’arrêter
quelques
instants
puis
reculer.
Ensuite
il
pivote
à
droite
ou
à
gauche
avant
de
redémarrer
jusqu’à
l’obstacle
suivant.
Il
est
bien
entendu
possible
de
changer
la
programmation
afin
de
lui
attribuer
d’autres
comportements.
6.2
–
Eléments
du
robot
• Le
chassis
2
plaques
en
acrylique
de
3mm
découpées
au
laser
• 2
roues
complètes
+
1
roue
à
bille
• Pièces
de
jonction
+
1
ensemble
de
quincaillerie,
vis
et
écrous
• 1
capteur
ultrason
de
distance
avec
son
support
• 1
contrôleur
(carte
Arduino)
• 2
moteurs
DC
6V
double
axe
• 1
ensemble
de
fil
de
câblage
+
1
support
de
6
piles
AA
Le
Robot
est
donc
constitué
d’un
capteur
(capteur
de
distance),
d’un
contrôleur
(carte
Arduino)
et
de
deux
actionneurs
(moteurs).
Un
moteur
électrique
permet
de
convertir
l’énergie
électrique
(par
ses
composants
qui
transforment
la
puissance
d’un
champ
magnétique)
en
énergie
mécanique.
Caractéristiques
:
-‐
Plus
le
voltage
est
élevé
et
plus
le
moteur
tourne
vite
-‐
Le
champ
magnétique
a
2
pôles,
si
on
inverse
ces
pôles
le
moteur
tournera
en
sens
inverse
Pour
tester
les
moteurs
il
suffit
de
relier
les
fils
à
chaque
extrémité
d’une
pile,
en
inversant
les
fils
le
moteur
tournera
en
sens
inverse.
c
Si
on
envoie
le
courant
sur
un
des
fils
le
moteur
tourne
dans
un
sens
et
si
on
l’envoie
sur
l’autre
fil
il
tourne
en
sens
inverse.
8
75
SÉANCE 3
6.3
–
Montage
du
châssis
Cf.
fiche
de
montage
6.4
–
Câblages
sur
la
carte
Arduino
Connexions
Contrôleur
moteur
Carte
Arduino
Remarques
Câble
marron
GND
=
Masse
Pin
GND
Correspond
à
la
masse
du
contrôleur
moteur
Câble
rouge
VCC
=
Alimentation
5V
Pin
VIN
Alimentation
5V
du
contrôleur
moteur
Câble
orange
Moteur
droit
BIB
Pin
10
Pour
faire
tourner
le
moteur
droit
c
en
avant
Câble
jaune
Moteur
droit
BIA
Pin
9
c
en
arrière
Câble
vert
Moteur
gauche
AIB
Pin
6
Pour
faire
tourner
le
moteur
gauche
c
en
avant
Câble
bleu
Moteur
gauche
AIA
Pin
5
c
en
arrière
6.5
–
Programmation
La
programmation
de
«
ROSA
»
s’apparente
à
la
programmation
précédemment
effectuée
avec
le
capteur
de
distance
et
la
LED
(La
LED
est
remplacée
par
des
moteurs
!)
En
fonction
de
l’information
reçue
par
le
capteur
on
enverra
des
instructions
aux
moteurs.
Déclarations
76
SÉANCE 3
Initialisations
Void
setup()
Le
Robot
ROSA
avance
tant
qu’il
int
distance
=
mesureDistance();
Distance
de
l’objet,
on
met
sa
valeur
ne
rencontre
pas
d’obstacle.
delay(attenteCapteur);
dans
variable
distance.
if
(PasObstacle
==
true)
TEST
:
Présence
d’un
obstacle
?
Si
le
capteur
de
distance
détecte
{
début
un
obstacle
à
X
cm
(1)
:
avanceRobot();
Si
pas
d’obstacle
on
avance
-‐
Le
robot
stoppe
}
fin
-‐
Il
fait
une
pause
de
0.3
sec
else
Sinon
-‐
Le
robot
recule
pendant
0.2
sec
{
début
-‐
Le
robot
tourne
à
droite
stopRobot();
On
arrête
le
robot
pendant
0.2
sec.
delay(300);
On
attend
0.3
sec
reculeRobot();
Le
robot
recule
Puis
il
redémarre…
delay(200);
On
attend
0.2
sec
(Pendant
0.2
sec)
tourneDroite();
Le
robot
tourne
à
droite
(1)
X
est
défini
dans
les
déclarations
delay(200);
On
attend
0.2
sec
(Pendant
0.2
sec)
const
int
distanceObstacle
=
X;
}
fin
}
Fin
du
programme
c
début
Fonction
spécifique
:
Création
des
fonctions
qui
agissent
sur
les
moteurs
1
void
avanceRobot()
2
{
Pour
créer
les
fonctions
spécifiques
du
robot
il
suffit
de
déterminer
pour
3
analogWrite(AIA,
vitesse_MG);
chaque
action
à
quelle
broche
on
doit
envoyer
du
courant.
4
analogWrite(AIB,
LOW);
5
analogWrite(BIA,
vitesse_MD);
void
avanceRobot()
6
analogWrite(BIB,
LOW);
-‐
on
envoie
du
courant
sur
les
broches
A
des
deux
moteurs
7
}
void
reculeRobot()
8
void
stopRobot()
-‐
on
envoie
du
courant
sur
les
broches
B
des
deux
moteurs
9
{
void
tourneGauche()
15
void
tourneDroite()
-‐
on
envoie
du
courant
sur
les
broches
A
du
moteur
Droit
16
{
77
SÉANCE 3
Code
(Arduino)
«
du
Robot
ROSA
»
/*
Programmation
:
Si
le
robot
rencontre
un
obstacle
il
s’arrête,
recule
puis
tourne
à
droite
et
repart
en
avant
*/
#include
<NewPing.h>
//
définitions
et
déclarations
des
variables
//
déclarations
pour
le
capteur
#define
trigPin
12
#define
echoPin
11
NewPing
distanceCM
(trigPin,
echoPin);
int
maximumDistance
=
50;
int
minimumDistance
=
10;
boolean
PasObstacle
=
true;
const
int
distanceObstacle
=
20;
int
attenteCapteur
=
100;
//
déclaration
pour
les
moteurs
#define
vitesse_MG
150
//
vitesse
du
moteur
gauche
#define
vitesse_MD
150
//
vitesse
du
moteur
droit
//
Les
moteurs
ne
tournant
pas
exactement
à
la
même
vitesse,
on
peut
jouer
sur
les
valeurs
(Maximum
255
=
5V)
int
AIA
=
5;
//
Broche
A
du
moteur
gauche
connecté
à
la
Pin
5
de
l'Arduino
int
AIB
=
6;
//
Broche
B
du
moteur
gauche
connecté
à
la
Pin
6
de
l'Arduino
int
BIA
=
9;
//
Broche
A
du
moteur
droit
connecté
à
la
Pin
9
de
l'Arduino
int
BIB
=
10;
//
Broche
B
du
moteur
droit
connecté
à
la
Pin
10
de
l'Arduino
//
the
setup
function
void
setup()
{
pinMode(AIA,
OUTPUT);
//
On
initialise
la
pin
5
en
sortie
(OUTPUT)
pinMode(AIB,
OUTPUT);
//
On
initialise
la
pin
6
en
sortie
(OUTPUT)
pinMode(BIA,
OUTPUT);
//
On
initialise
la
pin
9
en
sortie
(OUTPUT)
pinMode(BIB,
OUTPUT);
//
On
initialise
la
pin
10
en
sortie
(OUTPUT)
stopRobot();
//
On
lance
la
fonction
stopRobot()
qui
stoppe
le
robot
delay(300);
//
On
attend
0.3
sec
}
//
the
loop
function
void
loop()
{
//
DEBUT
int
distance
=
mesureDistance();
//
on
stock
dans
la
variable
distance
la
valeur
du
capteur
en
cm
delay(attenteCapteur);
//
attente
en
ms
entre
chaque
mesure
du
capteur
if
(PasObstacle
==
true)
//
S’il
n’y
a
pas
d’obstacle
{
avanceRobot();
//
On
lance
la
fonction
avanceRobot()
}
else
//
Sinon,
un
obstacle
est
détecté
{
stopRobot();
//
On
lance
la
fonction
stopRobot()
delay(300);
//
On
attend
0.3
sec
reculeRobot();
//
On
lance
la
fonction
reculeRobot()
delay(200);
//
On
attend
0.2
sec
tourneDroite();
//
On
lance
la
fonction
tourneDroite()
delay(200);
//
On
attend
0.2
sec
}
}
//
FIN
on
retourne
au
DEBUT
/*
Le
Loop
peut
être
modifié
facilement
avec
les
enfants
en
utilisant
toutes
les
fonctions
prédéfinies
:
avanceRobot()
reculeRobot()
tourneDroite()
tourneGauche()
robotSurPlaceGauche()
robotSurPlaceDroite()
stopRobot()
*/
11
78
SÉANCE 3
//
the
personal
fonction
//
Fonctions
de
mouvements
des
moteurs
void
avanceRobot()
{
//
Fonction
:
Le
robot
avance
analogWrite(AIA,
vitesse_MG);
analogWrite(AIB,
LOW);
analogWrite(BIA,
vitesse_MD);
analogWrite(BIB,
LOW);
}
void
reculeRobot()
{
//
Fonction
:
Le
robot
recule
analogWrite(AIA,
LOW);
analogWrite(AIB,
vitesse_MG);
analogWrite(BIA,
LOW);
analogWrite(BIB,
vitesse_MD);
}
void
tourneDroite()
{
//
Fonction
:
Le
robot
tourne
à
droite
analogWrite(AIA,
vitesse_MG);
analogWrite(AIB,
LOW);
analogWrite(BIA,
LOW);
analogWrite(BIB,
LOW);
}
void
tourneGauche()
{
//
Fonction
:
Le
robot
tourne
à
gauche
analogWrite(AIA,
LOW);
analogWrite(AIB,
LOW);
analogWrite(BIA,
vitesse_MD);
analogWrite(BIB,
LOW);
}
void
robotSurPlaceGauche()
{
//
Fonction
:
Le
robot
fait
la
toupie
à
gauche
analogWrite(AIA,
LOW);
analogWrite(AIB,
vitesse_MG);
analogWrite(BIA,
vitesse_MD);
analogWrite(BIB,
LOW);
}
void
robotSurPlaceDroite()
{
//
Fonction
:
Le
robot
fait
la
toupie
à
droite
analogWrite(AIA,
vitesse_MG);
analogWrite(AIB,
LOW);
analogWrite(BIA,
LOW);
analogWrite(BIB,
vitesse_MD);
}
void
stopRobot()
{
//
Fonction
:
Le
robot
s’arrête
digitalWrite(AIA,
LOW);
digitalWrite(AIB,
LOW);
digitalWrite(BIA,
LOW);
digitalWrite(BIB,
LOW);
}
//
Fonction
du
capteur
unsigned
int
mesureDistance()
{
//
Déclaration
de
la
variable
mesureDistance
int
cm
=
distanceCM.ping_cm();
//
déclaration
de
la
variable
locale
(cm)
à
qui
on
assigne
la
distance
if
(cm
>
distanceObstacle
||
cm
<=
minimumDistance)
//
on
définit
la
plage
de
détection
du
capteur
{
PasObstacle
=
true;
//
on
renvoie
true
si
pas
d'obstacle
dans
la
plage
définie
dans
le
test
}
else
{
PasObstacle
=
false;
//
sinon
on
renvoie
false
(si
il
y
a
un
obstacle
dans
la
plage
définie)
}
return
cm;
//
on
retourne
la
distance
de
l’obstacle
à
la
fonction
}
12
79
SÉANCE 3
7
-‐
Récapitulatif
1. Déclaration
d'une
variable
:
on
vient
avec
cette
ligne
stocker
la
valeur
à
droite
du
signe
égal
(=)
dans
la
variable
à
gauche
du
signe
égal.
int
maximumDistance
=
50;
Dans
notre
cas,
cela
signifie
que
la
variable
appelée
maximumDistance
viendra
prendre
la
valeur
50.
Le
mot
clé
int
en
début
de
phrase
signifie
que
la
variable
sera
un
nombre
entier.
2. Les
blocs
d'instructions
:
setup
regroupe
toutes
les
instructions
qui
seront
exécutées
au
démarrage
du
programme.
La
fonction
setup
n'est
exécutée
qu'une
seule
fois,
après
chaque
mise
sous
tension
ou
reset
(réinitialisation)
de
la
carte
Arduino.
loop
(boucle
en
anglais)
contient
les
instructions
que
l'on
souhaite
voir
exécutées
encore
et
encore
tant
que
l'Arduino
est
branché.
void
setup()
{
}
void
loop()
{
}
3. Les
fonctions
:
sont
des
instructions
qui
permettent
d'exécuter
une
ou
plusieurs
actions.
Les
fonctions
sont
définies
avec
:
Un
nom
:
ce
qu'on
devra
taper
pour
appeler
la
fonction.
Une
ou
des
entrées
:
ce
sont
des
variables
passées
à
la
fonction
appelées
paramètres
ou
arguments.
Ces
arguments
sont
placés
entre
parenthèses.
Une
sortie
:
le
résultat
de
la
fonction
qui
peut
être
stocké
dans
une
variable.
Prenons
l'exemple
de
la
fonction
suivante
:
analogWrite(AIB,
LOW);
Dans
ce
cas,
le
nom
de
la
fonction
est
analogWrite.
Nous
passons
deux
paramètres
à
la
fonction
:
AIB
et
LOW.
La
fonction
analogWrite
n'a
pas
de
sortie.
Avec
cette
fonction,
nous
éteignons
la
broche
située
sur
la
broche
passée
avec
le
premier
paramètre
(qui
peut
être
un
nombre
ou
une
variable).
Lorsque
le
second
argument
est
placé
à
LOW,
on
vient
d’arrêter
le
moteur.
Tandis
qu'on
mettra
en
marche
le
moteur
si
le
second
argument
utilise
un
nombre
entier
supérieur
à
0.
Ce
nombre
est
compris
entre
0
et
255.
Faisons
l'analogie
avec
l'électricité
:
0
correspond
à
0
volt.
255
correspond
à
5
volts.
Plus
la
tension
est
élevée
plus
le
moteur
tournera
vite.
4. Autres
fonctions
pinMode
configure
la
broche
spécifiée
dans
le
premier
paramètre
pour
qu'elle
se
comporte
soit
en
entrée
(INPUT),
soit
en
sortie
(OUTPUT)
passée
avec
le
second
paramètre
:
pinMode(AIA,
OUTPUT);
delay
correspond
au
temps
d’exécution
d’une
fonction.
La
durée
est
mesurée
en
millisecondes:
avanceRobot()
delay(200);
Le
robot
avancera
pendant
200ms
Pour
aller
plus
loin
:
Compléments
sur
la
programmation
Arduino
par
Eskimon
13
80
SÉANCE 3
8
–
Glossaire
Actionneurs
Les
actionneurs
sont
des
composants
matériels,
qui
une
fois
correctement
connectés
à
la
carte
Arduino,
permettent
d'agir
sur
le
monde
extérieur.
Ils
convertissent
une
valeur
électrique
en
action
physique.
Arduino
Arduino
est
une
plate-‐forme
libre
de
création
d'objets
électroniques
composée
d'un
appareil
d'entrée-‐sortie
configurable
(microcontrôleur)
et
d'un
environnement
de
programmation.
Bibliothèque
Une
bibliothèque
est
un
ensemble
de
fonctions
regroupées
et
mises
à
disposition
des
utilisateurs
d'Arduino.
Capteurs
Les
capteurs
sont
des
composants
matériels,
qui
une
fois
correctement
connecté
à
la
carte
Arduino,
peuvent
fournir
des
informations
sur
le
monde
extérieur.
Circuit
imprimé
Un
circuit
imprimé
est
un
support,
en
général
une
plaque,
permettant
de
relier
électriquement
un
ensemble
de
composants
électroniques
entre
eux,
dans
le
but
de
réaliser
un
circuit
électronique.
Fonction
Une
fonction
effectue
un
traitement
en
fonction
des
infos
qu’on
lui
donne
(les
arguments).
L’instruction
«
return
»
sert
à
renvoyer
le
résultat
des
traitements
effectués
par
la
fonction
à
ce
qui
a
appelé
la
dite
fonction
IDE
(Integrated
Development
Environment)
Environnement
de
développement
intégré
(EDI)
est
un
programme
regroupant
un
ensemble
d'outils
pour
le
développement
de
logiciels.
Un
EDI
regroupe
un
éditeur
de
texte,
un
compilateur,
des
outils
automatiques
de
fabrication,
et
souvent
un
débogueur.
Interface
de
programmation
Une
interface
de
programmation
applicative,
souvent
désignée
par
le
terme
API
(Application
Programming
Interface)
e st
une
«
façade
»,
surcouche
clairement
délimitée
afin
de
simplifier
la
programmation
en
cachant
les
détails
de
la
mise
en
œuvre.
Plusieurs
interfaces
existent
pour
programmer
une
carte
Arduino
:
Ardublock,
Scratch,
ou
encore
Blockly.
Langage
de
programmation
Un
langage
de
programmation
est
une
notation
conventionnelle
destinée
à
formuler
des
algorithmes
et
produire
des
programmes
informatiques
qui
les
appliquent.
Le
langage
des
cartes
Arduino
est
le
C/C++.
LED
Une
LED
ou
DEL
(diode
électroluminescente
en
français),
ou
est
un
composant
capable
d’émettre
de
la
lumière
lorsqu’il
est
parcouru
par
un
courant
électrique.
Les
LEDs
laissent
passer
le
courant
que
dans
un
seul
sens,
on
parle
de
polarité
des
deux
pattes,
une
positive
(+,
anode)
et
une
négative
(-‐,cathode).
Moniteur
sériel
Le
moniteur
sériel
est
un
élément
de
l'environnement
de
programmation
Arduino.
Il
permet
de
recevoir
et
d’envoyer
des
messages
en
communication
sérielle
à
partir
de
l'ordinateur.
Pin
Il
s'agit
des
ports
de
l'Arduino.
Ce
sont
les
broches
qui
permettent
de
connecter
des
fils
à
la
carte.
Elles
seront
déclarées
en
entrée
(INPUT)
d'information
ou
en
sortie
(OUTPUT).
(Cf.
Tx
-‐
Rx)
Platine
d'essai
Une
platine
d'essai
est
un
support,
le
plus
souvent
en
plastique,
qui
comporte
des
petits
trous
dans
lesquels
on
peut
positionner
des
composants
ainsi
que
des
fils
qui
permettent
de
réaliser
un
circuit
électrique.
Platine
de
prototypage
Une
platine
de
prototypage
est
une
plaque
en
époxyde
ou
en
bakélite
(plastique
synthétique)
qui
comporte
des
trous
et
des
lignes
de
cuivres
permettant
d'y
souder
des
composants
pour
réaliser
un
circuit
électronique.
Servomoteur
Moteur
qui
peut
recevoir
des
informations
de
positionnement
et
les
atteindre
de
manière
autonome.
Shield
Carte
comprenant
un
circuit
complexe
qui
se
connecte
directement
à
l'Arduino
et
qui
assure
une
fonction
spécifique
(communication
internet,
lecture
de
mp3,
etc…).
Variable
Une
variable
est
un
espace
mémoire
caractérisé
par
un
nom
dans
lequel
on
range
des
informations
:
textes,
nombres,…
et
que
l’on
pourra
utiliser
à
tout
moment
dans
le
programme.
14
81
SÉANCE 3
Jeu
« robot-idiot »
Acteurs
Adulte et enfants
Résumé
Le « robot-idiot » doit sortir d’un petit labyrinthe que l’on aura construit dans le séjour en
déplaçant quelques tables ou chaises, ou en dessinant à la craie sur le sol de la cour. On
se met dans la « peau » d’un robot pour voir ce qu’il peut ou pas faire.
La fiche d’activité
Disponible ici.
https://pixees.fr/wp-content/uploads/2015/09/Activit%C3%A9-d%C3%A9branch%C3%A9e_Le-jeu-du-robot-
idiot.doc
L’activité dans sa première partie est adaptée au plus petit (dès le début du primaire),
de même que la version proposée en vidéo, la seconde partie « La rupture et si on
connaissait pas la sortie ?!? » est prévue pour aller plus loin quand l’enfant est en cycle 3
(à partir du cours moyen).
Références
Un document complet pour le parent ou l’animateur (http://images.math.cnrs.fr/Dis-ma-
man-ou-papa-c-est-quoi-un.html)
une vidéo récréative sur le sujet (https://files.inria.fr/mecsci/grains-videos3.0/videos/18-al-
gorithmes.mp4)
et un tutoriel vidéo « Comprendre l’informatique en jouant à faire le robot » par Marie
Duflot.
Objectif
Initier les enfants à la notion d’algorithme en les faisant agir et en se dirigeant selon un
« programme » préparé au préalable. Donner un sens à la notion « d’algorithme » à
travers un savoir-faire concret. Mais aussi proposer un savoir-être pertinent par rapport à
l’intelligence mécanique (la machine calcule très vite et de manière exacte … mais est
bête comme nos pieds !).
82
SÉANCE 3
Notions scientifiques
Algorithme (https://pixees.fr/?p=435),
Variable (http://fr.wikipedia.org/wiki/Variable_%28math%C3%A9matiques%29),
Bug
Initiation au jeu
Préparer la pièce, au préalable faire un parcours simple sans trop d’obstacle puis selon
la compréhension des enfants, élever le niveau.
Celui qui incarne le rôle du robot n’a pas le droit de comprendre le langage humain,
mais juste un langage très limité pour effectuer une action décomposée en étapes élé-
mentaires.
Actions
L’enfant qui imitera le robot ne pourra que :
On fabriquera des petites cartes à jouer en découpant un vieux carton en petits carrés
avec les mots « avancer », « gauche », « droite ». Et on lui donnera une séquence de ces
cartes qui sera son « algorithme ».
Il devra exécuter cet algorithme sans « réfléchir » (gare au mur – et à la rigolade – s’il y a
un bug !). Ensuite on aura sûrement envie de ne pas répéter « avance d’un pas, avance
d’un pas, avance d’un pas » mais « avance de trois pas ». Donc l’instruction aura une
valeur variable qui permettra d’avancer plus efficacement. Avec un crayon à papier et
une gomme, on pourra mémoriser la valeur et l’effacer ensuite.
Le jeu pourra se compliquer s’il y a une porte (concrétisée par un objet quelconque)
qui peut-être fermée ou ouverte, sans qu’on le sache à l’avance. Il faudra alors introduire une
condition dans notre algorithme : « si la porte est fermée alors [fais le tour] »… mais bien entendu
il faudra expliquer en détail ce que veut dire « fais le tour » ! Pour le robot, il y aura alors deux pa-
quets de cartes à choisir selon la condition.
83
SÉANCE 3
Ce qui arrivera
en cas de bug !
Un langage formel se distingue d’une langue naturelle par sa spécialisation, son carac-
tère artificiel, le caractère limité de son lexique et la simplicité des règles qui régissent sa
grammaire. Un exemple simple est le langage formé de quatre mots : « nord », « sud »,
« est » et « ouest » et d’une construction, la séquence, qui permet de former des suites
de tels mots. Ce langage permet d’indiquer un chemin à suivre sur une grille carrée.
Par exemple l’expression « nord, nord, nord, est, est, est, sud, sud, sud, ouest, ouest,
ouest » indique, par exemple, de se déplacer de trois carreaux vers le nord, puis de trois
carreaux vers l’est, puis de trois carreaux vers le sud et enfin de trois carreaux vers l’ouest,
dessinant ainsi un carré sur le sol.
Ce même mouvement peut être exprimé dans le langage : « avancer, avancer, avan-
cer, tourner-à-droite, avancer, avancer, avancer, tourner-à-droite, avancer, avancer,
avancer, tourner-à-droite, avancer, avancer, avancer, tourner-à-droite » qui ne com-
prend que trois mots : « avancer », « tourner-à-droite » et « tourner à gauche », composés
par une opération de séquence.
84
SÉANCE 3
Arnaud Reugnoat
La Maison du Libre
https://wiki.mdl29.net/doku.php?id=projets:robotarduino
Les deux notions fondamentales sont le courant et la tension, elles peuvent être facilement comprises en
prenant l'analogie d'un circuit électronique avec un cours d'eau.
La tension
La tension est une différence de potentiel entre deux points du circuit, ce qui n'est pas très parlant. En
prenant l'exemple d'une écluse sur un cours d'eau, une tension peut-être comparée à la différence de
niveau entre l'amont de l'écluse et l'aval de l'écluse.
Le courant
Le courant est la quantité d'électrons qui parcourt le circuit électronique. Il est en général comparé au débit
d'un cours d'eau, lui mesuré en m³/s. Le courant est le diamètre du tuyau d'eau qui permet ce débit. Le
courant d'un circuit utilise l'unité Ampère (A). L’intensité du courant se note avec la lettre I.
Résistance
La résistance est ce qui s'oppose au débit de l'eau ou qui permet de le réguler, c'est le robinet ou les gorges
d'une rivière, les rochers. La résistance est le composant électronique de base dont la principale
caractéristique est d'opposer une plus ou moins grande résistance (mesurée en ohms) à la circulation du
courant électrique. Son unité est donc le Ohm (Ω) et se note R. Exemple de résistance :
Loi d'ohm
Avec la carte Arduino, il vous faudra protéger vos LED avec une
résistance d'une valeur comprise entre 200Ω et
1kΩ.
85
SÉANCE 4
[Poser la question : Qui croit qu’il est plus intelligent qu’un ordinateur et faire un vote à main levée en demandant
à chacun d’expliquer sa position.
Puis demander aux autres enfants, si exécuter ces tâches requièrent de l’intelligence.
Explication :
Un ordinateur calcule très vite, il peut répéter une action plusieurs millions de fois sans se lasser, mais il n’est pas
intelligent.
La différence entre un humain et un ordinateur est que face à une situation nouvelle, l’être humain peut
s’adapter : il essayera de trouver des similitudes entre son expérience et cette nouvelle situation, expérimentera,
fera des suppositions, bref il peut improviser.
Alors qu’un ordinateur lui est incapable d’agir en dehors de ce pourquoi il a été programmé. C’est d’ailleurs un des
enjeux du développement des intelligences artificielles.
Un ordinateur, on vient de le voir, ne fait qu’exécuter les instructions qu’on lui a données.
Derrière chaque programme de l’ordinateur, une personne lui a dit quoi faire et comment le faire.
Et cette personne qui lui a dit quoi faire, c’est un programmeur.
Que ça soit pour créer un jeu vidéo, ou un site internet ou même une application de téléphone : il y a toujours un
ou plusieurs développeurs qui ont expliqué aux ordinateurs, téléphones, tablettes quoi faire.
Alors le souci quand on veut expliquer quoi faire à un ordinateur, c’est qu’il parle une langue qui s’appelle le
binaire : des 0 et des 1 et rien d’autre !
Le binaire, l’ordinateur le comprend très bien mais pour les humains, c’est compliqué à parler.
86
SÉANCE 4
J’ai un ami néerlandais qui parle néerlandais mais qui ne parle pas français et moi je parle français mais pas
néerlandais. Comment pouvons-nous faire pour nous comprendre l’un l’autre ?
Peut-être que nous connaissons une langue commune. Effectivement, lui et moi parlons anglais : on va pouvoir
se comprendre ! ]
Avec l’ordinateur c’est pareil, il comprend le binaire, moi pas, on va donc trouver un langage commun : un
langage informatique que lui et moi pourrons comprendre.
Des langages informatiques, il y en a pleins mais ils ont tous la même fonction : donner des instructions.
IV) L’algorithme
Mais même si on peut communiquer avec l’ordinateur, il a sa façon à lui de penser : le binaire.
0 et 1, on peut les assimiler à « Oui » et « Non ». Alors pour expliquer à quelqu’un qui ne comprend que les oui et
non, comment faire pour jouer à Super Mario ? Il va falloir structurer ce qu’on lui demande, être clair, précis et
méthodique. Et pour cela, on utilise les algorithmes.
Derrière ce nom un peu effrayant se cache en réalité quelque chose de très commun.
Un algorithme est une succession d’actions (difficile de faire plus bref comme définition).
Alors vous vous doutez bien, que tous les algorithmes ne sont pas aussi simples. En réalité, il existe ce qu’on appelle
des structures de contrôle qui permettent de les complexifier :
Les conditions,
Les boucles,
Les variables.
87
SÉANCE 4
Non
Est-ce que
l’eau bout ?
Oui
Attendre 8 minutes
Servir
88
SÉANCE 4
Les conditions :
Les conditions permettent à un programme de faire une action en fonction d’une ou plusieurs informations. Les
termes utilisés sont « Si » et « Sinon » (« If » et « Else » en anglais). Les conditions peuvent s’imbriquer les unes
dans les autres.
Les boucles :
En programmation, un des maîtres-mots est optimisation. Alors souvent plutôt que de réécrire des lignes de codes,
on demande à l’ordinateur de répéter une opération en utilisant une boucle.
Une boucle peut se répéter un certain nombre de fois, ou tant qu’une condition n’est pas vérifiée.
Dans notre exemple : tant que l’eau ne bout pas, il se repose en boucle la question (« Est-ce que l’eau bout ? »).
Un autre exemple :
Imaginons que vous n’ayez une casserole ne pouvant faire des pates que pour 2 personnes et que vous êtes 4, il
faudra donc répéter 2 fois, votre recette.
Les variables :
Les variables sont des espaces de mémoire dans l’ordinateur dans lesquels on peut lui demander de garder une
information pour nous (soit sous la forme d’un nombre soit sous la forme de mots).
Dans un jeu vidéo, votre nombre de vie ou votre score sont des variables :
Dans le cas de notre exemple : la recette ne fonctionne que pour des pâtes ayant un temps de cuisson de 8
minutes. Pour du riz longue cuisson, le programme ne fonctionne pas.
Ce que nous allons donc faire, c’est qu’au début de notre recette, nous allons créer une variable que nous
appellerons « temps de cuisson » qui va dépendre de ce que l’on veut faire cuire et après avoir versé le riz dans la
casserole, on va « attendre : temps de cuisson ».
89
SÉANCE 4
Récupérer variable :
Temps de cuisson
Non
Est-ce que
l’eau bout ?
Oui
Attendre :
Temps de cuisson
Servir
90
SÉANCE 4
Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de
résoudre un problème ou d'obtenir un résultat (https://fr.wikipedia.org/wiki/Algorithme).
Une différence significtive entre algorithme et programme (représenté par un organigramme) est
que l’exécution d’un algorithme doit toujours se terminer avec un resultat, alors que celle d’un
programme peut conduire à une boucle infinie (ne jamais s’arrêter). On peut donc utiliser des
organigrammes de programmation pour représenter un algorithme néanmoins un organigramme
ne représente pas forcément un algorithme.
91
SÉANCE 4
92
SÉANCE 4
93
SÉANCE 5
Bien qu'il soit possible de programmer la carte Arduino avec Ardublock, Scratch, ou
encore Blockly nous allons utiliser l'environnement Arduino.
Les bibliothèques (ou librairie) permettent d'appeler des fonctions toutes prêtes par rap-
port à un shield ou un capteur. La bibliothèque NewPing permet d'utiliser facilement le
capteur de distance (le HC-SR04).
Télécharger le fichier
Bibliothèque NewPing https://wiki.mdl29.net/lib/exe/fetch.
php?media=robotsarduino:newping.zip
http://rosa.lph.bzh/installation_librairie.html
Installation d'une
bibliothèque Télécharger le fichier
http://rosa.lph.bzh/videos/installation_librairie.zip
Télécharger le fichier
Code test des moteurs https://wiki.mdl29.net/lib/exe/fetch.
php?media=robotsarduino:test_moteurs.ino.zip
Télécharger le fichier
Code du robot https://wiki.mdl29.net/lib/exe/fetch.
php?media=robotsarduino:robot_ligue_l9110.ino.zip
94
SÉANCES 5, 8
Le Code de ROSA
#include <NewPing.h> O
n importe la bibliothèque New Ping. Elle possède une fonction
qui mesure la distance.
const int distanceObstacle = 15; on définit la distance de détection d’un obstacle, ici
15 cm
int attenteCapteur = 100; valeur en ms
Les moteurs ne tournant pas exactement à la même vitesse, vous pouvez modifier les
valeurs suivantes.
1 Une constante est une variable dont la valeur est inchangeable lors de l’exécution d’un programme.
2 Une variable est un un espace de stockage qui associe un nom à une valeur. Les variables peuvent changer de
valeur au cours du temps.
95
SÉANCES 5, 8
* Vous pouvez inverser les moteurs, en respectant bien le branchement sur la carte
Arduino. Ex. le moteur gauche devient le moteur droit.
2 La fonction SETUP
La fonction setup() est appelée au démarrage du programme. Cette fonction est uti-
lisée pour initialiser les variables, le sens des broches, les librairies utilisées. La fonction
setup n’est exécutée qu’une seule fois, après chaque mise sous tension ou reset (réini-
tialisation) de la carte Arduino.
void setup()
{
Moteur gauche
pinMode(AIA, OUTPUT);
pinMode(AIB, OUTPUT);
Moteur droit
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
stopRobot(); le robot est à l’arrêt
delay(300); pendant 300 ms
}
96
SÉANCES 5, 8
3 La fonction LOOP
La boucle (loop) = le programme principal. Le code dans cette fonction est exécuté
en boucle. C’est la partie qu’on utilisera avec les enfants.
void loop()
{
int distance = mesureDistance(); On stocke dans la variable distance la valeur du
capteur en cm
97
SÉANCES 5, 8
98
SÉANCES 5, 8
• Déclaration d’une variable : on vient avec cette ligne stocker la valeur à droite du
signe égal (=) dans la variable à gauche du signe égal.
int maximumDistance = 50;
Dans notre cas, cela signifie que la variable appelée maximumDistance viendra
prendre la valeur 50. Le mot clé int en début de phrase signifie que la variable sera
un nombre entier.
• Les blocs d’instructions : setup regroupe toutes les instructions qui seront exécutées
au démarrage du programme. La fonction setup n’est exécutée qu’une seule fois,
après chaque mise sous tension ou reset (réinitialisation) de la carte Arduino.
loop (boucle en anglais) contient les instructions que l’on souhaite voir exécutées en-
core et encore tant que l’Arduino est branché.
void setup() { }
void loop() { }
• Les fonctions : sont des instructions qui permettent d’exécuter une ou plusieurs ac-
tions. Les fonctions sont définies avec :
Un nom : ce qu’on devra taper pour appeler la fonction.
Une ou des entrées : ce sont des variables passées à la fonction appelées para-
mètres ou arguments. Ces arguments sont placés entre parenthèses.
Une sortie : le résultat de la fonction qui peut être stocké dans une variable.
99
SÉANCES 5, 8
Dans ce cas, le nom de la fonction est analogWrite. Nous passons deux pa-
ramètres à la fonction : AIB et LOW. La fonction analogWrite n’a pas de sortie.
Avec cette fonction, nous éteignons la broche située sur la broche passée
avec le premier paramètre (qui peut être un nombre ou une variable).
Lorsque le second argument est placé à LOW, on vient d’arrêter le moteur.
Tandis qu’on mettra en marche le moteur si le second argument utilise un
nombre entier supérieur à 0. Ce nombre est compris entre 0 et 255. Faisons
l’analogie avec l’électricité :
0 correspond à 0 volt.
•A
utres fonctions
pinMode configure la broche spécifiée dans le premier paramètre pour qu’elle se
comporte soit en entrée (INPUT), soit en sortie (OUTPUT) passée avec le second para-
mètre :
pinMode(AIA, OUTPUT);
avanceRobot()
delay(200); Le robot avancera pendant 200ms
100
SÉANCE 6
Fiche individuelle
Mon projet prend comme base un robot
(cocher les bonnes cases) humanoïde
mékhano centré
zoo centré
autres, à préciser
101
SÉANCE 6
102
SÉANCE 6
103
SÉANCES 6, 7
2016
Robot boîte
104
SÉANCES 9, 10
Nom du robot
105
SÉANCES 9, 10
Tutoriel Prezi
Actualisation de ce tutoriel en ligne avec les dernières modifications de l’interface Prezi
le 23 septembre 2014.
Pour pouvoir faire une utilisation pertinente d’un outil, il est indispensable de le connaître, de
s’entraîner, de le pratiquer. Après et seulement après on pourra choisir celui-ci, ou un autre.
La présentation Prezi qui suit permet une prise en main rapide de cet outil de présentation
dynamique.
106
SÉANCES 9, 10
Créer
Tutoriels
•V
otre première présentation
(http://sozi.baierouge.fr/pages/tutorial-first-fr.html)
•U
tiliser les calques
(http://sozi.baierouge.fr/pages/tutorial-layers-fr.html)
• L es effets de transition
(http://sozi.baierouge.fr/pages/tutorial-transitions-fr.html)
•C
réer un lien vers une vue ou une URL
(http://sozi.baierouge.fr/pages/tutorial-links-fr.html)
• Insérer une présentation Sozi dans une page HTML
(http://sozi.baierouge.fr/pages/tutorial-embedding-fr.html)
•M
ontrer et cacher des objets
(http://sozi.baierouge.fr/pages/tutorial-showing-hiding-fr.html)
• Insérer de l'audio ou une vidéo
(http://sozi.baierouge.fr/pages/tutorial-media-fr.html)
•C
onvertir les présentations Sozi en PDF ou en vidéo
(http://sozi.baierouge.fr/pages/tutorial-converting-fr.html)
•A
méliorer les performances
(http://sozi.baierouge.fr/pages/tutorial-performance-fr.html)
107
La réalisation de ce parcours éducatif
a été confiée à la Ligue de l’enseignement :
Antonin Cois,
Responsable « D-Clics numériques »
Melpomeni Papadopoulou,
Chargée de projet « Ingénierie pédagogique
pour l’éducation au et par le numérique »
Arnaud Reungoat
Membre fondateur de l’association La Maison du Libre
Animateur Petits Hackers
https://mdl29.net/
Brian Benatier
Coordinateur départementale
Francas de Seine Maritime
www.francas.asso.fr
Eric Chaumet
Médiateur numérique,
Réseau CANOPE
www.reseau-canope.fr
Régis Leloup
Coordonnateur technique et pédagogique
Colombbus
www.colombbus.org
Stéphane Brunel
Président de la Ligue de l’Enseignement de la Gironde
Maitre de conférences - Université de Bordeaux - Laboratoire IMS UMR 5218 CNRS
Enseignant chercheur à l’ESPE de l’Académie de Bordeaux
www.laligue.org
Adrien PAYET
Directeur du CRREP
Centre de Ressources en Robotique Educative
et Professionnelle
Cette licence permet aux autres de remixer, arranger, et adapter cette œuvre
à des fins non commerciales tant qu’on nous crédite en citant nos noms
et que les nouvelles œuvres sont diffusées selon les mêmes conditions.
Le projet national
D-clicsnumeriques.org est coordonné par