Académique Documents
Professionnel Documents
Culture Documents
Présenté par :
Encadré par :
Imane BOUAZZAOUI
Pr. Mostafa AZIZI
Abderrahim MAKOUAR
ET
1
Remerciements
Ce travail n’a pas pu prendre naissance que par l’aide de certaines personnes à
qui nous présentons nos sincères remerciements.
Nous remercions les membres du jury pour leur présence, pour leur lecture
attentive du présent rapport, ainsi que pour les remarques qu'ils nous
adresseront.
Dans l’impossibilité de citer tous les noms, que toutes les personnes ayant
contribués de près ou de loin aux réalisations de ce projet, trouvent ici
l’expression de nos sincères remerciements.
2
Résumé
Dans ce rapport nous avons la mise en œuvre de trois robots : Thymio,
Ozobot Evo et « Seeedstudio jetbot smart car ». Tout d'abord, le petit
robot Thymio, ses deux roues lui permettent de se déplacer et
manœuvrer, tandis qu'il embarque des boutons ainsi que de nombreux
capteurs infrarouges. Son accessibilité est liée à la disponibilité des
interfaces de programmation comme Thymio Suite et Aseba Studio.les 6
comportements sont toujours présents dans le robot. En résumé, il s'agit
d'un robot complet, doté de nombreux capteurs et accessibles à tous.
Ensuite, le robot Ozobot Evo est un robot miniature, le plus petit de sa
catégorie, qui roule et qui possède sous sa base des capteurs lui
permettant de prendre des informations de couleurs. Equipé sous sa
base de capteurs de détection optique, il réagit également aux couleurs
qu'il traverse sur son chemin. On peut également le programmer sur le
site Ozoblockly. Finalement, JetBot est un projet d'IA open source pour
les fabricants. Il est facile à installer et à utiliser, est compatible avec de
nombreux accessoires populaires et est livré avec plusieurs didacticiels
interactifs qui vous montrent comment exploiter la puissance de l'IA pour
apprendre à JetBot à suivre des objets, à éviter les collisions et plus
encore. Les tâches que nous avons effectuées avec les trois robots sont
nombreuses, mais nous donnons quelques exemples: Suivi une ligne
avec des sons «Thymi », Thymio dessinateur, tour de Victoire « Ozobot
Evo», danse avec Ozobot Evo, changer de couleur et parler «Ozobot
Evo», l’assemblage et connectivité de robot «Seeed studio jet bot smart
car Kit » et d'autre programmes.
3
Summary
In this report we have the implementation of three robots: Thymio,
Ozobot Evo and “Seeedstudio jetbot smart car”. First of all, we started
with the small robot Thymio, its two wheels allow it to move and
maneuver, while it embeds buttons as well as numerous infrared
sensors. Its accessibility is linked to the availability of programming
interfaces such as Thymio Suite. The 6 behaviors are always present in
the robot. In summary, it is a complete robot, equipped with many
sensors and accessible to all. Then, the Ozobot Evo robot is a miniature
robot, the smallest in its category, which rolls and has sensors under its
base allowing it to take color information. Equipped under its base with
optical detection sensors, it also reacts to the colors it passes through on
its way. It can also be programmed on the Ozoblockly site. Finally,
JetBot is an open source AI project for manufacturers. It's easy to set up
and use, is compatible with many popular accessories, and comes with
several interactive tutorials that show you how to harness the power of AI
to teach JetBot to track objects, avoid collisions, and more. . The tasks
we performed with the three robots are many, but we give some
examples: Following a line with "Thymio" sounds, Thymio cartoonist,
Victory trick "Ozobot Evo", dance with Ozobot Evo, change color and talk
"Ozobot Evo", robot assembly and connectivity "Seeed studio jet bot
smart car Kit" and other programs.
الملخص
"Seeedstudio jetbot smart وOzobot Evo و: Thymio في هذا التقرير لدينا تنفيذ ثالثة روبوتات
بينما يتضمن، تسمح له عجلته ذات العجلتين بالتحرك والمناورة، Thymio بدأنا بالروبوت الصغير، بادئ ذي بدءcar".
ترتبط إمكانية الوصول الخاصة به بتوافر واجهات البرمجة.أزرارا ب اإلضافة إلى العديد من أجهزة استشعار األشعة تحت الحمراء
ً
مزود بالعديد من أجهزة، إنه روبوت كامل، باختصار.دائما في الروبوت
ً توجد السلوكيات ا لستة Thymio Suite. مثل
والذي يتدحرج، وهو األصغر في فئته،مصغرا
ً روبوتOzobot Evo يعد، بعد ذلك.االستشعار ويمكن للجميع الوصول إليه
، مزو ًدا أسفل قاعدته بأجهزة استشعار للكشف البصري.ويحتوي على أجهزة استشعار أسفل قاعدته تسمح له بأخذ معلومات األلوان
هوJetBot ،أخيرا ً Ozoblockly. يمكن أيضًا برمجتها على موقع.فإنه يتفاعل أيضًا مع األلوان التي يمر بها في طريقه
، وهو متوافق مع العديد من الملحقات الشائعة، من السهل اإلعداد واالستخدام.مشروع مفتوح المصدر للذكاء االصطناعي للمصنعين
تتبع الكائناتJetBot ويأتي مع العديد من البرامج التعليمية التفاعلية التي توضح لك كيفية تسخير قوة الذكاء االصطناعي لتعليم
اتباع سطر بأصوات: لكننا نقدم بعض األمثلة، المهام التي أجريناها مع الروبوتات الثالثة كثيرة.وتجنب االصطدامات والمزيد
، Ozobot Evo والرقص مع، "Ozobot Evo" وخدعة النصر، Thymio رسام كاريكاتير،"Thymio"
"Seeed studio jet bot smart تجميع الروبوت واالتصال، "Ozobot Evo" وتغيير اللون والتحدث
.والبرامج األخرىcar Kit"
4
Table des matières
Dédicaces ....................................................................................................................................... 1
Remerciements ................................................................................................................................. 2
Résumé .......................................................................................................................................... 3
Table de figures ........................................................................................................................ 7
Liste des tableaux .................................................................................................................... 8
Abréviations .............................................................................................................................. 9
Introduction Générale ............................................................................................................ 10
Chapitre 1 : Présentation des robots Thymio, Ozobot Evo et seeedstudio jetbot smart
car kit ....................................................................................................................................... 12
I. Présentation de robot Thymio : .................................................................................... 13
1) Robot Thymio ........................................................................................................... 13
a) Allumer et éteindre le robot ....................................................................................... 13
b) Recharger Thymio ..................................................................................................... 13
c) Découvrir le matériel .................................................................................................. 14
d) Les capteurs .............................................................................................................. 14
e) Les actuateurs ........................................................................................................... 15
f) Les autres éléments .................................................................................................. 16
2) Les 6 comportements préprogrammés du Thymio ............................................. 16
3) Les différents langages de programmation du robot Thymio ........................... 18
A. Logiciel ASEBA Studio ............................................................................................. 18
B. Thymio Suite : ............................................................................................................ 23
Tableau informatif sur le robot Thymio ............................................................................. 25
II. Présentation de Robot OZOBOT EVO : ........................................................................ 27
1) Robot Ozobot Evo : ................................................................................................. 27
a) Recharger OZOBOT : ............................................................................................... 27
.................................................................................................................................................. 28
b) Mise en marche : ....................................................................................................... 28
c) Prendre soin d’Ozobot : ............................................................................................. 28
d) Découvrir le matériel .................................................................................................. 29
2) Les différents langages de programmation du robot Thymio : ......................... 30
a) Programmation avec des codes de couleur .............................................................. 30
b) Programmation par blocs avec Ozoblockly ............................................................... 31
c) Créer le programme................................................................................................... 31
d) Télé verser le programme ......................................................................................... 32
Tableau informatif sur le robot Ozobot Evo ...................................................................... 33
5
III. Présentation de Robot seeedstudio jetbot smart car kit : ..................................... 35
1) Robot seeedstudio jetbot smart car :.................................................................... 35
Applications ........................................................................................................................ 35
2) L’ordinateur NVIDIA Jetson Nano.......................................................................... 36
Chapitre 2: Mise en œuvre et application............................................................................ 39
I. Les missions réalisées avec le robot Thymio: ............................................................ 40
1) Suivi une ligne avec des sons ............................................................................... 40
2) Thymio dessinateur................................................................................................. 40
Timer (minuterie) ................................................................................................................ 43
3) Accélération de Thymio .......................................................................................... 43
4) Initiation au mémoire............................................................................................... 43
5) Thymio émet des sons avec les capteurs ............................................................ 44
II. Les missions réalisées avec le robot Ozobot Evo: .................................................... 44
1) En mode suiveur de ligne ....................................................................................... 45
2) En mode programmation ........................................................................................ 46
a) Exemple de programme carrée ................................................................................. 46
b) Exemple de programme de tour de Victoire.............................................................. 47
c) Exemple de Programme vertigineux ......................................................................... 47
d) Programme pour éviter le rouge................................................................................ 48
e) Programme de dance avec Ozobot Evo .................................................................. 50
f) Programme d’animation couleur ............................................................................... 50
g) Programme de changer de couleur et parler ............................................................ 51
3) Conduit Ozobot Evo avec l'application ................................................................. 52
III. Les tâches réalisées avec le robot seeedstudio jetbot smart car kit: .................. 53
1) Assemblage du kit d'IA JetBot ............................................................................... 53
2) Configuration du logiciel ........................................................................................ 60
a) JetBot Suivi d'objet .................................................................................................... 62
3) Les diagrammes ...................................................................................................... 63
a) Diagramme de cas d’utilisation ................................................................................. 63
b) Diagramme de définition de bloc « Thymio »............................................................ 64
c) Diagramme de définition de bloc « Ozobot » ............................................................ 64
Conclusion Générale et perspectives.................................................................................. 66
Références .............................................................................................................................. 67
Annexe ..................................................................................................................................... 68
6
Table de figures
7
Figure 49: fixez chaque moteur ............................................................................................... 54
Figure 50: Assemblez les antennes ......................................................................................... 54
Figure 51: Montez la caméra .................................................................................................. 55
Figure 52: Les entretoises sur la boîte métallique ................................................................... 55
Figure 53: Fixez les roues ........................................................................................................ 56
Figure 54: Assembler la boîte en métal ................................................................................... 56
Figure 55: Fixez la planche Jetson Nano ................................................................................ 57
Figure 56: Assemblez le Wireless-AC 8265 ............................................................................ 57
Figure 57: Fixez le module WiFi .............................................................................................. 58
Figure 58: Monter la batterie .................................................................................................... 58
Figure 59: Robot JetBot ........................................................................................................... 58
Figure 60: Branchez l'OLED .................................................................................................... 59
Figure 61: Le câblage du moteur ............................................................................................. 59
Figure 62: Le câblage complet................................................................................................. 60
Figure 63:Démarrez Jetson Nano ............................................................................................ 62
Figure 64:Ouvrir et suivre le live_demo ................................................................................... 63
Figure 65: Diagramme de cas d'utilisation............................................................................... 63
Figure 66: BDD de Thymio....................................................................................................... 64
Figure 67: BDD Ozobot Evo..................................................................................................... 64
8
Abréviations
AI : Artificial Intelligence
PoE : Power over Ethernet
EPFL : l’École Polytechnique Fédérale de Lausanne
ECAL : l'École Cantonale d'Art de Lausanne
USB : Universal Serial Bus
SD: Secure Digital
SDHC : Secure Digital High Capacity
SDXC : Secure Digital eXtended Capacity
Li-Po : Lithium-Polymère
GNU : Lesser General Public License
VPL : Le langage de programmation visuel
GPIO : General Purpose Input/Output
HDMI : High Definition Multimedia Interface (Interface multimédia haute-défintition).
CC : Un courant continu
CSI : Camera Serial Interface ; MIPI : l'interface mobile de processeur d'industrie.
9
Introduction Générale
La robotique est définie comme étant l’ensemble des techniques permettant la
conception et la réalisation de machines automatiques ou de robots, elle est basée sur
les capteurs, des systèmes logiques à base des microprocesseurs et les
actionneurs. C'est ainsi que le concept de robot mobile et ses complexités se sont
développées positivement avec diverses applications, notamment la planification
d'itinéraire, l'auto-localisation et l'interprétation de cartes.
L’origine du mot robot provient de la langue tchèque dans laquelle sont ancêtre «ro-
bota» signifie travail forcé. Le terme de robotique quant à lui est apparu en 1942 dans
le cycle universellement connu rédigé par Isaac Asimov et intitulé « Les robots ».
Au cours de l’histoire on peut distinguer 3 types de robots correspondant en quelques
sorte à l’évolution de cette ”espèce” créée par l’Homme. Le premier type de machine
que l’on peut appeler robot correspond aux « automates ». Le second type de robot
correspond à ceux qui sont équipés de capteurs, par exemple éviter les obstacles et/ou
suivre une trajectoire. Enfin le dernier type de robot existant correspond à ceux
disposant d’une intelligence dite « artificielle » et reposant sur des modèles
mathématiques complexes tels que les réseaux de neurones.
Dans ce projet, nous allons nous intéresser à un type précis de robots mobiles : tout
d'abord, Thymio est un petit robot qui va vous permettre de découvrir le monde de la
robotique et d'apprendre le langage des robots. Il comprend divers capteurs qui
peuvent mesurer la lumière, les distances, température, etc. C'est un robot autonome
qui évite les obstacles, suit une main ou un objet, suit les commandes fournies par les
boutons, fait du bruit lorsqu'on le touche, suit un chemin et réagit au son. Son
accessibilité est liée à la disponibilité des interfaces de programmation comme Thymio
Suite et Aseba Studio. Ensuite, le robot Ozobot Evo est un robot miniature, le plus petit
de sa catégorie qui roule et qui possède sous sa base des capteurs lui permettant de
prendre des informations de couleurs. Ozobot-bit est utilisable de deux façons en
mode suiveur de ligne (imprimée ou tracée au feutre à pointe large) et en mode
programmation avec le logiciel en ligne Ozoblockly. Finalement, le robot JetBot Smart
Car est basé sur l'ordinateur NVIDIA Jetson Nano AI. Il s'agit d'un kit AI Robot basé
sur le kit de développement Jetson Nano. Prend en charge la reconnaissance faciale,
le suivi des objets, le suivi automatique des lignes ou l'évitement des collisions, etc.
JetBot est construit à l'aide des bibliothèques Python simples de Jetson Nano et du
matériel de fabricant populaire.
Notre intérêt pour la question suivante : comment programmer un robot mobile pour
effectuer les tâches que l'on souhaite ? Par exemple émet des sons et des dessins
avec le robot Thymio et d'autres missions avec les autres robots.
Dans le but de répondre à cette problématique, nous allons dans un premier temps
opter à une étude fonctionnelle portant sur nos robots mobiles, en commençant par
une analyse détaillée sur les différentes fonctions que doit satisfaire notre robot pour
arriver enfin à obtenir une conception claire et nette de nos robots. Ensuite, nous
10
passons à l'étape de mise en œuvre de notre mission : Thymio dessinateur,
accélération de Thymio, émet des sons avec les capteurs de thymio, de changer de
couleurs et parler avec Ozoot Evo et d'autres missions.
Ce rapport sera présenté comme suit : le premier chapitre traitera le côté de
présentation des robots Thymio, Ozobot Evo et seeedstudio jetbot smart car Kit.
Ensuite, Le deuxième chapitre sera réservé à mise en œuvre et application et nous
terminons avec une conclusion générale.
11
Chapitre 1 : Présentation des robots Thymio, Ozobot Evo et
seeedstudio jetbot smart car kit
Introduction
12
I. Présentation de robot Thymio :
1) Robot Thymio
Thymio II a été développé en collaboration par l’École Polytechnique Fédérale de
Lausanne (EPFL) et l'École Cantonale d'Art de Lausanne (ECAL). Leur but est de
fournir un robot éducatif à bas prix. Thymio est un petit robot qui te permettra de
découvrir l’univers de la robotique et d’apprendre le langage des robots. Il s’adresse à
une grande tranche d’âge dû à sa programmation évolutive. Il comprend différents
capteurs qui peuvent mesurer la lumière, les distances, la température, etc. Il possède
également des boutons tactiles, il peut se rendre compte qu’on lui donne une petite
tape et peut entendre quelqu’un qui frappe dans ses mains. Il possède deux roues,
chacune reliée à un moteur, lui permettant de se déplacer sur une table, ou sur le sol.
Il peut encore s’illuminer de toutes les couleurs et jouer de la musique.
13
c) Découvrir le matériel
14
Ils fonctionnent comme les autres capteurs de distance. Ils permettent à
Thymio de mesurer à quelle distance il se trouve du sol, et par exemple
de s’arrêter au bord d’une table. Ils lui permettent aussi de suivre des
lignes.
Un capteur de température
Un thermomètre électronique qui permet à Thymio de mesurer la température qu’il fait.
Un accéléromètre à 3 axes
e) Les actuateurs
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
15
un phénomène physique utilisable. Un actionneur exécute les ordres qui lui sont
envoyés par la partie commande de la machine.
Un haut-parleur
Comme une enceinte, le haut-parleur permet à Thymio de faire du bruit ou de la
musique.
Trente-neuf LED
Situées dessus, dessous, et à proximité, les LED de Thymio peuvent s’allumer de
toutes les couleurs.
Deux roues
Animées par deux moteurs à vitesse variable, ces deux roues permettent à Thymio
d’avancer, de reculer et de tourner
f) Les autres éléments
La connexion USB
On branche Thymio sur ce port micro USB pour le recharger ou bien pour le brancher
à l’ordinateur et le programmer.
Le lecteur de carte mémoire
Avec une carte micro SD, il est possible d’utiliser d’autres sons pour Thymio (en format
.wav), que ce soit des sons, de la musiques ou des mots. Il est également possible de
sauvegarder des données internes sur la carte. Attention : Toutes les cartes micro SD
ne fonctionnent pas avec Thymio. Choisissez de préférence une carte SD (et non
SDHC ou SDXC), plutôt lente (“speed class” 2 ou 4), de petite capacité.
Le crochet pour remorque
Un crochet qui permet à Thymio de se transformer en locomotive ou autre.
Support crayon
On peut glisser un feutre dans ce trou pour dessiner avec Thymio. Avec un peu
d’imagination et d’ingéniosité, on peut tracer toutes sortes de formes géométriques.
Bouton reset
Si Thymio charge mal ou s’il se comporte de manière anormale, vous pouvez le
RESETER en appuyant longtemps sur ce bouton. Laissez-le ensuite charger deux
heures.
Niveau de batterie Li-Po
Cet indicateur permet de savoir si le robot est chargé.
16
permettant de démarrer le comportement. Ensuite, le bouton central permet de revenir
au menu de sélection des comportements.
17
3) Les différents langages de programmation du robot Thymio
A. Logiciel ASEBA Studio
18
Figure 5: logiciel Aseba Studio
a) Programmation visuelle
Le langage de programmation visuel (VPL) pour le robot Thymio, créé par Dr. Jiwon
Shin et Dr. Stéphane Magnenat, est un module d'Aseba qui permet de programmer
le robot en associant des blocs d'événements et d'actions.
Démarrer VPL
L’interface VPL
L’interface VPL est illustrée ci-dessous. Elle est composée de six zones :
1. Une barre d’outils avec les boutons pour créer un nouveau programme, en ouvrir
un existant, sauvegarder, lancer le programme, etc.
3. Une zone de messages qui donne les messages d’erreur lorsque le programme
n’est pas construit correctement.
19
4. Les blocs d’événement disponibles pour construire votre programme. 5. Les blocs
d’action disponibles pour construire votre programme.
Comment programmer
Les listes d'événements ou d'actions des côtés de l'écran, sur des paires dans la
zone centrale de programmation.
b) Programmation Blockly
Blockly est un langage de programmation open-source mêlant programmation
visuelle et textuelle. Développé par Google, ce langage vous permet d'assembler des
blocs visuels dans lesquels du texte est écrit. La communauté Thymio a désormais
intégré ce langage dans Aseba (dès la version 1.5) :
20
Figure 7: Langage de programmation Blockly
Blockly fournit tous les événements disponibles sur Thymio, vous permettant de le
programmer de façon purement événementielle. C'est ce qui fait la différence
avec l'intégration Scratch, qui offre une interface similaire, mais avec une approche
plus séquentielle.
Lancer Blockly
Une fois que l'environnement de programmation texte est ouvert, regarder dans le
coin gauche en bas de l'interface et cliquez sur "Lancer Blockly".
L'interface de Blockly
21
Figure 9: L'interface de Blockly
1. Une liste des catégories (événements, actionneurs, LED…) qui regroupe les
blocs
2. La fenêtre de sélection des blocs
3. La zone de programmation, dans laquelle vous glissez et assemblez les blocs
pour programmer
4. Les boutons "Play" et "Stop", qui chargent et arrêtent les programmes et le robot
5. Les icônes "Nouveau", "Ouvrir" et "Enregistrer Sous"
6. La documentation en ligne et le bouton de sélection de langue
7. L'équivalence du programme en format texte Aseba (non modifiable)
Comment programmer
c) Programmation texte
Tu as fait beaucoup de choses avec VPL, tu pourras en faire encore plus avec Aseba
Studio et la programmation textuelle.
22
Figure 10: la programmation textuelle
B. Thymio Suite :
Le robot se programme avec Thymio Suite, 1 software qui permet de programmer le
robot Thymio avec 5 langages de programmation : VPL3, VPL, Scratch, Blockly et
Aseba (programmation textuelle).
Ce logiciel est compatible avec Windows, Mac, Linux et peut s’utiliser sur des iPads et
des tablettes Android.
23
b) Les 5 langages de programmation
24
Tableau informatif sur le robot Thymio
Nom Thymio
Fabricant Mobsya EPFL - open source
Prix* * prix indicatif € Pack Education de 5 robots avec valise 790 €
Taille 11 x 11,2 x 5,3 cm
Chargement USB 1 à 2h
Autonomie 3 à 5h
Montage Non: livré monté, non démontable
Capteurs Microphone
récepteur infrarouge pour télécommande
capteurs de température
capteurs de proximité
accéléromètre 3 axes
capteurs de sol
5 boutons capacitifs
Actionneurs 1 haut-parleur
39 LEDS
2 moteurs DC
Connecteurs Liaison Port USB pour le chargement et la transmission du
programme transmission du programme par Wi-Fi
pour la version Thymio Wireless grâce au d’ongle
USB
Environnement de programmation *Aseba : programmation visuelle ou textuelle ou par
blocs *AsebaScratch *Blockly4Thymio
Système d'exploitation *Aseba peut être installé sur Linux, Mac OS et
Windows. *Une application Thymio VPL mobile pour
tablette et smartphone Android est en cours de
développement.
Matériel complémentaire *crayon
*télécommande
*tapis
*carte micro SD
*possibilité de créer des accessoires avec
impression 3D
25
Open Source / Propriétaire *Thymio est un projet open-source et open-
hardware. Son matériel est protégé par une licence
Creative Commons Attribution- ShareAlike 3.0
Unported. *Aseba est open-source (GNU Lesser
General Public License). Le code source de Thymio
et de son environnement de programmation est
disponible sous une licence LGPL
Points forts *robuste *évolutif *prise en main rapide *possibilité
d'ajouter des éléments LEGO *possibilité de
dessiner (trou intégré) *open source
Points faibles *moteurs bruyants *coque opaque *capteurs de
sons et de chocs hypersensibles
Usage sociétal *VGA (Véhicule Guidé Automatique) dans les
transports de matériaux pour les lignes
d’assemblage, les marchandises dans les
entrepôts, mais aussi les repas dans les restaurants
et les médicaments dans les hôpitaux.
(Autoguidage) *tondeuse à guidage périphérique à
programmation *aspirateur robot
Vitesse de déplacement plusieurs vitesses jusqu'à 14 cm/s
26
II. Présentation de Robot OZOBOT EVO :
1) Robot Ozobot Evo :
OZOBOT EVO est un robot miniature, le plus petit de sa catégorie (2,54 cm de
diamètre) qui roule et qui possède sous sa base des capteurs lui permettant de prendre
des informations de couleurs. Il peut se déplacer sur l’écran d’une tablette tactile, mais
aussi sur une simple feuille blanche sur laquelle des lignes aux crayons feutres ont été
dessinées.
Propulsé par deux micromoteurs, il se déplace le long de lignes tracées sur des
feuilles ou sur l'écran d'une tablette tactile (via un logiciel de dessin ou l’application
dédiée). Il est ainsi capable d'effectuer toutes sortes de trajets. Doté sous sa base des
capteurs de détection optique, il réagit également aux couleurs qu'il croise sur son
chemin. En utilisant certains codes de couleurs qui correspondent à son langage, il est
donc possible de lui faire réaliser différentes actions (mouvements de base, rotation,
accélération, clignotements variés...). Le robot va interpréter les séquences de
couleurs rencontrées et exécuter les instructions décodées. Il est également possible
de le programmer sur le site Ozoblockly en emboitant des blocs d’instruction puis en
chargeant le programme sur O via des flashs lumineux.
a) Recharger OZOBOT :
Le moteur des Ozobots est alimenté par une batterie. Si l’Ozobot clignote en rouge, la batterie
doit être rechargée au plus vite. Branchez le mini câble USB à un ordinateur ou à un chargeur
multiport et branchez l’Ozobot au câble. Quand la batterie est presque chargée complètement,
il commence à clignoter en vert. Il montrera une lumière verte continue quand la batterie sera
complètement chargée.
27
b) Mise en marche :
Les Ozobots ont un seul bouton, le bouton
marche/arrêt. Vous pouvez le trouver au
milieu sur le côté gauche des Ozobots, les
capteurs optiques étant à l'avant. Pour
éteindre, il suffit de ré-appuyer sur le
bouton.
28
- Si l’Ozobot clignote en vert c’est que le
calibrage est réussi, s’il clignote en rouge vous
devez recommencer.
d) Découvrir le matériel
Les capteurs :
- Capteurs optiques pour détecter des
lignes et des codes couleurs.
- Capteurs de proximité pour la détection
d'obstacles.
Figure 15: Les composants de Ozobot Evo 1
Actionneurs :
Roulant: 2 micromoteurs et une
transmission par friction.
Changement de couleurs: lumière
LED.
Haut-parleur
Connecteurs Liaison :
- USB pour le chargement uniquement.
- Transmission d'un programme ou calibration du robot par la lumière (sur écran de
tablette par exemple).
- Transmission d'un programme en BlueTooth.
Les capteurs situés sous le robot ne distinguent des lignes continues, ni trop
fines ni trop épaisses.
Les « leds» situées sous sa coque prennent la couleur de la ligne qu’il suit
(sauf noir, gris, marron, jaune clair).
29
2) Les différents langages de programmation du robot Thymio :
a) Programmation avec des codes de couleur
30
b) Programmation par blocs avec Ozoblockly
Ozobot peut également être programmé en ligne, sur ordinateur ou tablette, grâce au
langage Ozoblockly. On programme alors le robot avec des blocs de couleur qu’il faut
assembler (à la manière de Blockly et Scratch).
Le programme est ensuite transféré au robot par un système de signaux lumineux en
posant le robot directement sur l’écran de l’ordinateur ou de la tablette.
Il existe 4 niveaux de difficulté avec plus ou moins d’options et de blocs. Le niveau 1
convient aux élèves non lecteurs, les blocs sont identifiés par des dessins. Pour les
autres niveaux, les blocs contiennent les instructions en anglais.
Pour cela, vous devez aller sur l’éditeur Ozoblockly.
31
l’apprenant de réviser son anglais. Un nouveau type de bloc apparaît, la boucle.
Il permet de répéter des bouts de programme.
3ème niveau « Intermédiaire » : Ajoute 2 types de bloc : les blocs permettant
de se déplacer sur des lignes et les blocs de condition qui exécuteront des bouts
de programme en fonction de certaines conditions.
4ème niveau « Avancé » : Ce niveau introduit la notion de fonction et de
variable et complexifie les blocs conditions pouvant dans ce niveau accueillir
plusieurs conditions.
5ème niveau « Master » : une introduction au codage hybride et la possibilité
d'incorporer des éléments de programmation supplémentaires, tels que des
boucles, de la logique, des variables et des fonctions.
Télé versement
(NB : penser à régler la luminosité de votre écran au maximum)
- Cliquez rapidement sur le bouton.
- Posez le robot sur la marque blanche prévue à cet effet.
- Cliquez sur « Load Evo »
- Le programme se télé verse pendant tout le long de la télé versement, la led doit
clignoter en vert. (NB : Si elle clignote rouge cela signifie qu’il y a eu un problème et
vous devez recommencer la télé versement du programme).
- Une fois finie, double cliquez sur le bouton pour exécuter votre programme.
32
L’Ozobot est très sensible à la lumière. Il en résulte que :
tout changement de support papier ou de luminosité peut modifier sa vision des
couleurs. Le calibrage permet alors d’habituer le robot à la nouvelle situation
qui se présente à lui. Il est donc essentiel de réaliser cette étape sur chaque
nouvelle activité ou quand le comportement du robot devient étrange. Vous
trouverez la notice pour réaliser le calibrage à la quatrième page de ce
document.
Fabricant Ozobot
33
gabarits à la bonne largeur) * Des packs
d'activités, des autocollants (codes
couleurs pour déplacements) sont dans
la boite * Personnalisation possible des
robots * Tablette ou ordinateur
(optionnel)
Open Source / Propriétaire Propriétaire
34
III. Présentation de Robot seeedstudio jetbot smart car kit :
1) Robot seeedstudio jetbot smart car :
JetBot est un projet d'IA open source pour les fabricants, les étudiants et les
passionnés qui souhaitent apprendre l'IA et créer des applications amusantes. Il est
facile à installer et à utiliser, est compatible avec de nombreux accessoires populaires
et est livré avec plusieurs didacticiels interactifs qui vous montrent comment exploiter
la puissance de l'IA pour apprendre à JetBot à suivre des objets, à éviter les collisions
et plus encore. JetBot est également une excellente rampe de lancement pour créer
des projets d'IA entièrement nouveaux.
Le kit JetBot Smart Car est basé sur l'ordinateur NVIDIA Jetson Nano AI et comprend
le châssis complet du robot, les roues et les contrôleurs ainsi qu'une batterie et un
appareil photo 8MP. Il exécute Linux de bureau complet, inclut le SDK Jetpack pour
l'IA, la vision par ordinateur et plus encore. L'image JetBot inclut la prise en charge de
nombreux frameworks d'IA populaires tels que TensorFlow et PyTorch. JetBot est
construit à l'aide des bibliothèques Python simples de Jetson Nano et du matériel de
fabricant populaire.
Il s'agit d'un kit AI Robot basé sur le kit de développement Jetson Nano. Prend en
charge la reconnaissance faciale, le suivi des objets, le suivi automatique des lignes
ou l'évitement des collisions, etc.
Caractéristiques
Structure mécanique robuste
Caméra IMX219 8MP
Wi-Fi Intel double bande sans fil Ac 8265 W/Bt
Antenne bi-fréquence
Applications
Voiture intelligente
Projet de vision industrielle
35
2) L’ordinateur NVIDIA Jetson Nano
JETSON NANO DEV KIT fabriqué par Waveshare, basé sur les ordinateurs AI Jetson
Nano et Jetson Xavier NX, fournissant presque les mêmes IO, taille et épaisseur que
le kit de développement Jetson Nano (B01), plus pratique pour mettre à niveau le
module principal. En utilisant la puissance du module central, il est qualifié pour des
domaines tels que la classification d'images, la détection d'objets, la segmentation, le
traitement de la parole, etc., et peut être utilisé dans toutes sortes de projets d'IA.
36
37
Conclusion
38
Chapitre 2: Mise en œuvre et application
Introduction
39
I. Les missions réalisées avec le robot Thymio:
1) Suivi une ligne avec des sons
Le principe est de faire suivre à Thymio une piste au sol avec un seul des deux
capteurs, et utiliser l'autre capteur pour lire une information (une note musicale). La
note musicale est faite en fonction de combien foncé est le dessin. Mais attention, la
mesure se fait en infrarouge, donc "foncée" peut-être différent de ce qu'on voit. Ceci
donne une sorte d'effet imprévisible à ce qu'on dessine.
Figure 23: code pour suivre une ligne avec des sons
Les deux blocs de code pour les boutons permettent de lancer ou stopper le robot
avec les boutons "avant" et le bouton du centre.
2) Thymio dessinateur
Le robot Thymio II dispose d'un trou central qui permet de placer un feutre, par
exemple, pour faire des dessins. Il y a différents moyens de décider quoi dessiner.
Une façon simple est de télécommander le robot (par la télécommande ou le
clappement de main) pour lui faire dessiner ce que vous désirez. L'autre façon est
de le programmer. Dans ce rapport on présente quelques exemples de programmes
avec les dessins correspondants.
40
41
Figure 24: les programme de dessins
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = 100
motor.right.target = 90
end
if itera==4 then
motor.left.target = -100
motor.right.target = -70
end
if itera==7 then
itera = 0
end
42
Timer (minuterie)
3) Accélération de Thymio
Ce programme nous avons utilisé le mode d'édition avancé, ce mode
Fournis des fonctionnalités additionnelles.
Les blocs utilisés: capteurs de distance au sol, État, couleur du haut, moteurs.
4) Initiation au mémoire
Aussi dans ce programme nous avons utilisé le mode d'édition avancé.
Les blocs utilisés: capteurs de distance au sol, État, couleur du haut, moteurs.
43
5) Thymio émet des sons avec les capteurs
Figure 30: Programme pour répéter les sonsenregistrés Figure 29: suivi une ligne noire
44
1) En mode suiveur de ligne
Ozobot Evo peut se déplacer sur l’écran d’une tablette tactile, mais aussi sur une
simple feuille blanche sur laquelle des lignes aux crayons feutres ont été dessinées.
Il réagit également aux couleurs qu'il croise sur son chemin. En utilisant certains codes
de couleurs qui correspondent à son langage, il est donc possible de lui faire réaliser
différentes actions (mouvements de base, rotation, accélération, clignotements
variés...).
Quelques exemples de programmation avec des codes de couleur :
Figure 33: suivi une ligne avec changement de vitesse Figure 32: Guider Ozobot Evo
45
2) En mode programmation
La programmation de robot Ozobot Evo se fait sous forme de bloc via OzoBlockly une
interface en ligne basé sur Blockly (une librairie développée par Google pour
rapprocher les jeunes à la programmation, semblable à Scratch), pour ordinateurs ou
tablettes.
46
On a utilisé dans ce programme le 2ème niveau de l’interface en ligne ozoblockly.
Blocs utilisés :
Mouvement, boucles, effets de lumière.
Ozobot Evo trace une forme carrée et fait briller une lumière verte en se déplaçant tout
droit et une lumière rouge en tournant à droite.
Blocs utilisés :
Mouvement, effets de lumière, boucles
Pour résumé Ozobot Evo fait maintenant un tour de victoire, saluant les fans et
célébrant en cours de route.
47
Le code utilisé est le suivant:
48
Figure 40: la carte pour le code éviter le rouge
49
Figure 42: La carte du code
Blocs utilisés :
Mouvement, Navigation par ligne, Effets de lumière, Boucles, Logique,
Mathématiques, Variables
50
Figure 44: d’animation couleur
Il y a aussi 3 petites sections qui se répète (1ère :3 fois, 2ème :5 fois, 3ème :4 fois) et
qui contient : effets lumineux et synchronisation.
On a utilisé dans ce programme le 4ème niveau de l’interface en ligne Ozoblockly.
51
Figure 45: changer de couleur et parler
Lorsque vous exécutez ce long programme, le robot Ozobot Evo parle (il dit les noms
de couleur et des nombres), clignote avec des couleurs. Ce programme est répété une
fois et finalement le robot fait un tour sur lui et s'éteint.
Ozobot Evo est un robot miniature avec des lumières, du son, des capteurs et des
roues. Il est conçu pour apprendre à coder. Evo peut être contrôlé avec un joystick (in-
app) ou programmé avec OzoBlockly. Comme son prédécesseur, Evo peut être
programmé sans l'application mobile.
Avec l'application, vous pouvez également conduire Evo avec le mode Drive, jouer à
des jeux interactifs et gagner des points d'expérience pour débloquer des
fonctionnalités supplémentaires. Vous pouvez contrôler plusieurs Evos simultanément
depuis l'application, mais un seul utilisateur peut être connecté à un robot individuel à
la fois. Les utilisateurs ont besoin d'un compte Evo pour accéder à toutes les
fonctionnalités de l'application. Là C'est également une fonctionnalité sociale vous
permettant de vous connecter et de discuter avec des amis.
52
Figure 46: L'application Evo par Ozobot
III. Les tâches réalisées avec le robot seeedstudio jetbot smart car
kit:
1) Assemblage du kit d'IA JetBot
Notre première tâche que nous avons réalisée est la construction du JetBot smart car
kit. Le kit Jetbot contient le matériel suivant :
53
Figure 48: moteur
Insérez chaque moteur dans le châssis et fixez chaque moteur avec 2x vis
M3x25mm.
Installez les roues en caoutchouc sur les moyeux, installez la roue sur
chaque moteur et fixez-les en position à l'aide des vis auto taraudeuses
fournies avec le kit.
Assemblez les antennes, l'antenne était connectée à la carte sans fil par
défaut. Traversez l'antenne à travers le grand trou rond, puis assemblez.
54
Montez le support de la caméra sur la boîte métallique, fixez la caméra sur le
support, n'oubliez pas le panneau acrylique.
- Fixez la caméra au support de caméra à l'aide de 4 vis auto taraudeuses
- Fixez le support de caméra au châssis avec 4x vis auto taraudeuses
- Insérez l'autre extrémité du câble ruban dans le kit de développement
Jetson Nano
- Placez le câble ruban contre le dissipateur de chaleur pour organiser
55
Définissez des entretoises sur la carte d'extension jetbot pour assembler le kit de
développement jetson nano.
Dévissez les vis des roues omnidirectionnelles, puis fixez les roues au panneau
inférieur en métal.
56
Figure 55: Fixez la planche Jetson Nano
57
Figure 57: Fixez le module WiFi
Monter la batterie
Le câblage :
58
Étape 1. Branchez le panneau d'affichage dans l'en-tête 20x2 de Jetson Nano.
Étape 2. Branchez l'OLED de 0,91 pouce dans ce tableau d'affichage.
- Le câblage du moteur
Le câblage du moteur à courant continu est simple, il suffit de câbler comme l'image
suivante, le fil noir est connecté à la borne intérieure correspondante, le fil rouge du
moteur gauche est connecté à la borne la plus à gauche, et le fil rouge du moteur droit
est connecté à la borne la plus à droite.
59
Figure 62: Le câblage complet
2) Configuration du logiciel
La configuration de JetBot ce fait de deux manières soit avec l’utilisation de
l’image de la carte SD ou l’utilisation du conteneur Docker. Nous avons essayé
de configurer JetBot à l’aide de cartes SD JetBot prédéfinie.
Étape 1 - Téléchargez l'image de carte SD JetBot préconstruite
Téléchargez l'image de la carte SD JetBot prédéfinie à partir du tableau ci-
dessous. Assurez-vous de sélectionner la version qui correspond au Jetson que vous
utilisez
Plateforme Version Jet Pack Version JetBot Télécharger
Jetson Nano 2 Go 4.5 0.4.3 jetbot-043_nano-
2gb-jp45.zip
Jetson Nano (4 4.5 0.4.3 jetbot-043_nano-
Go) 4gb-jp45.zip
60
3. Allumez le Jetson Nano en connectant le chargeur micro USB (pour Jetson Nano
(4 Go)) ou USB-C (pour Jetson Nano 2 Go) au port
Étape 4 - Connectez JetBot au Wi-Fi
Une fois que votre robot est connecté au WiFi, vous n'avez plus besoin d'avoir le robot
connecté par un moniteur. Vous pouvez vous connecter au robot à partir du navigateur
Web de votre ordinateur portable en procédant comme suit
61
Figure 63:Démarrez Jetson Nano
Maintenant que vous avez terminé de configurer votre JetBot, vous êtes prêt à
exécuter les programmes pour faire des missions.
Noter
62
7. Ouvrir et suivre le live_demo.ipynbcahier
3) Les diagrammes
a) Diagramme de cas d’utilisation
63
b) Diagramme de définition de bloc « Thymio »
64
Conclusion
65
Conclusion Générale et perspectives
66
Références
https://www.robot-advance.com/art-thymio-1194.htm
https://www.thymio.org/products/programming-with-thymio-suite/program-thymio-
aseba/
http://wiki.thymio.org/fr:thymioapi
https://play.inaf.it/fr/on-programme-ozobot/
http://www.acanthoceras.fr/ozobot/
https://ozobot.com/create/color-codes
https://ozoblockly.com/editor?lang=en&robot=evo&mode=5
https://play.google.com/store/apps/details?id=org.mobsya.ThymioSuite
https://atelier-canope-
19.canoprof.fr/eleve/Formation%20initiale%20et%20continue/Robotique/Decouverte_
thymio/activities/presentation_thymio.xhtml
http://wiki.thymio.org/fr:thymioexplorer
http://wiki.thymio.org/fr:thymio
http://sti.ac-bordeaux.fr/techno/coder/thymio/rglage_des_capteurs.html
https://www.my-etechno.com/ozobot/344-ozobot-evo-blanc-cristal.html
https://prim61.discip.ac-caen.fr/Ozobot-814
https://www.waveshare.com/wiki/JetBot_AI_Kit
https://github.com/NVIDIA-AI-IOT/jetbot/wiki/examples
https://www.waveshare.com/wiki/JETSON-NANO-DEV-KIT
https://www.manualslib.com/manual/2068883/Seeed-Jetbot-Smart-
Car.html?page=5#manual
67
Annexe
var black
var white
timer.period[0] = 50
call leds.prox.v(0,0)
onevent button.forward
if button.forward == 1 then
running = 1
call leds.temperature(0, 0)
white=0
black=1000
end
onevent button.center
if button.center == 1 then
running = 0
motor.left.target = 0
motor.right.target = 0
end
onevent prox
if running == 1 then
if prox.ground.delta[0]> white then
white=prox.ground.delta[0]
end
if prox.ground.delta[0]< black then
black=prox.ground.delta[0]
end
intensityDiff = prox.ground.delta[1]-525
if abs(intensityDiff) < 170 then
motor.left.target = 115+intensityDiff/8
motor.right.target = 115-intensityDiff/8
else
motor.left.target = intensityDiff/4
motor.right.target = -intensityDiff/4
end
if prox.ground.delta[0]<(white-50) then
call math.muldiv(freq, prox.ground.delta[0] - black, 200,
white-black)
call sound.freq(freq+200, 0)
else
call sound.freq(freq+200, -1)
end
end
68
Code2 : Thymio émet des sons avec les capteurs
onevent prox
if acc[1]>0 then
if prox.horizontal[0]>4000 then
call sound.play(1)
call leds.top(32, 32, 32)
end
if prox.horizontal[1]>4000 then
call sound.play(2)
call leds.top(32, 0, 0)
end
if prox.horizontal[2]>4000 then
call sound.play(3)
call leds.top(0, 32, 0)
end
if prox.horizontal[3]>4000 then
call sound.play(4)
call leds.top(0, 0, 32)
end
else
if prox.horizontal[0]>4000 then
call sound.play(6)
call leds.top(32, 32, 32)
end
if prox.horizontal[1]>4000 then
call sound.play(7)
call leds.top(32, 0, 0)
end
if prox.horizontal[2]>4000 then
call sound.play(8)
call leds.top(0, 32, 0)
end
if prox.horizontal[3]>4000 then
call sound.play(9)
call leds.top(0, 0, 32)
end
end
Code3 : Dessin 1
var itera = 0
timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = 230
motor.right.target = -120
end
if itera==4 then
motor.left.target = 80
motor.right.target = 80
end
if itera==7 then
itera = 0
end
69
Code 4 : Dessin 2
var itera = 0
timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = 100
motor.right.target = 90
end
if itera==4 then
motor.left.target = -100
motor.right.target = -70
end
if itera==7 then
itera = 0
end
Code5 : Dessin 3
var itera = 0
var speed = 30
timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = 230
motor.right.target = -140
end
if itera==4 then
motor.left.target = speed
motor.right.target = speed
speed = speed + 2
end
if itera==7 then
itera = 0
end
Code6 : Dessinn 4
var itera = 0
var speed = 20
timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = 140
motor.right.target = -140
end
if itera==4 then
motor.left.target = speed
motor.right.target = speed
speed = speed + 2
end
if itera==7 then
itera = 0
70
end
Code 7 : Dessin 5
var itera = 0
var speed = 256
timer.period[0] = 1000 # 1000ms = 1s
onevent timer0
itera = itera + 1
if itera==1 then
motor.left.target = speed
motor.right.target = speed
end
if itera==4 then
motor.left.target = -speed
motor.right.target = -speed
end
if itera==6 then
motor.left.target = -40
motor.right.target = 40
speed = speed - (speed / 10)
end
if itera==7 then
itera = 0
end
Code 8 : Dessin 6
var parti # parti ou pas
timer.period[0]=100 # 100ms
call leds.top(0, 0, 32) # bleu
71