0% ont trouvé ce document utile (0 vote)
24 vues1 page

Interfaces Homme-Machine et Robots

Transféré par

Najah Abidi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues1 page

Interfaces Homme-Machine et Robots

Transféré par

Najah Abidi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

NSI Première Interface Homme-Machine lien docShare

Nous allons nous intéresser aux interfaces Homme-Machine (IHM). Une IHM permet à un utilisateur
d'interagir avec une machine, la souris et le clavier sont des exemples d'IHM, mais il en existe bien
d'autres (par exemple les écrans tactiles des smartphones). Par "machine", on entend bien
évidemment "ordinateur", comme dans le cas du duo clavier-souris, mais pas seulement. En effet, les
"machines" peuvent aussi être des objets connectés, des systèmes embarqués ou encore des robots.
Nous allons justement nous intéresser ici à cette dernière catégorie : les robots.

Qu'est-ce qu'un robot ?

Le mot robot a été utilisé pour la première fois par l’écrivain tchécoslovaque Karel Čapek dans sa pièce
de théâtre "Rossum's Universal Robots" en 1920, il a pour origine le mot russe "rabota" qui signifie
travail, corvée. La notion de robot a été ensuite développée par l'écrivain américano-russe Isaac
Asimov dans son recueil de nouvelles "Les Robots" (1950).

Pour simplifier à l'extrême, un robot est constitué de 2 choses :

des actionneurs qui lui permettent d'effectuer des actions (se déplacer, saisir des choses, faire de
la soudure...)
des capteurs qui lui permettent de "connaitre" son environnement (détecteurs d'obstacles,
capteur de température...)

Au niveau IHM, il est possible d'interagir avec le robot avec une simple télécommande : l'opérateur
donne des ordres au robot par l'intermédiaire de cette télécommande ("aller à gauche", "avancer de 3
mètres", "prendre un objet avec une pince"...), par exemple, les robots qui interviennent dans des
milieux dangereux (centrale nucléaire) sont télécommandés à distance par des opérateurs.

robot destiné aux interventions dans les centrales nucléaires

opérateur robot

Il est aussi possible d'interagir avec un robot non pas directement, mais en le programmant afin de lui
donner une certaine autonomie. La programmation consiste à donner au robot la marche à suivre en
fonction des situations rencontrées : "si le capteur X détecte quelque chose alors arrête les moteurs".

Nous allons nous initier à ce genre de programmation à l'aide du robot Thymio

Le robot Thymio

Thymio possède des capteurs : des capteurs de proximité (détection des obstacles), un
accéléromètre (permet de détecter l'inclinaison du robot), un capteur de température, un micro,
mais aussi des boutons qui seront aussi considérés comme des capteurs.
Thymio possède des actionneurs : 2 moteurs indépendants entrainent chacun une roue du robot.
Même si ce ne sont pas à proprement parler des actionneurs, on trouvera aussi dans Thymio des
LED de couleurs et un petit haut-parleur capable de jouer des sons.
Thymio possède un microprocesseur qui peut être programmé, il joue, en quelque sorte, le rôle
de chef d'orchestre.

À faire vous-même 1
Afin de mieux faire connaissance avec Thymio, visionnez la vidéo ci-dessous

Introduction au robot Thymio (1/4) Thymio et ses …


Partager

Regarder sur

Le lycée ne possédant pas assez de Thymio, nous allons utiliser dans un premier temps un simulateur
de robot nommé Webots. Webots est un logiciel libre et gratuit, il simule énormément de robots, du
plus simple au plus complexe, nous allons l'utiliser pour simuler Thymio.

À faire vous-même 2
Voici une vidéo qui va vous permettre de configurer le simulateur webots et d'écrire votre premier
programme pour Thymio. Visionnez cette vidéo, configurez le simulateur et écrivez votre premier
programme pour Thymio. Testez votre programme avec le simulateur.

thymio studio 1
Partager

Regarder sur

Voici le programme proposé dans la vidéo :

onevent buttons

if [Link]==1 then
[Link]=300
[Link]=300
end

if [Link]==1 then
[Link]=0
[Link]=0
end

if [Link]==1 then
[Link]=-300
[Link]=-300
end

Il faut bien comprendre que nous avons ici affaire à ce que l'on appelle de la programmation
événementielle alors que d'habitude nous utilisons plutôt la programmation séquentielle. Notre
programme va simplement définir les actions à effectuer en fonction des événements (dans le cas d'un
robot, les événements seront souvent liés aux informations obtenues grâce aux capteurs). Notre
programme sera donc une succession de "onevent" (voir la première ligne) que l'on pourrait traduire
par "quand l'événement au lieu". Dans le cas qui nous intéresse ici nous avons un "onevent buttons"
que l'on peut interpréter par "exécute le code ci-dessous en cas d'appui sur un bouton". À chaque fois
que l'utilisateur appuiera sur un des boutons situés sur le dessus du robot, le code situé sous le
"onevent" sera exécuté. Étudions une partie de ce code :

if [Link]==1 then
[Link]=300
[Link]=300
end

Le code est très simple à comprendre : si le bouton qui a été pressé est le bouton "avant"
("[Link]==1"), alors mettre les moteurs des roues (droite et gauche) en fonctionnement à la
vitesse 300.

Le reste du code est aussi facile à comprendre : si c'est le bouton "central" qui est pressé, les 2
moteurs sont arrêtés, si le bouton "arrière" est pressé les moteurs sont mis en marche, mais en sens
inverse (-300).

Il faut bien comprendre qu'à chaque fois qu'un bouton est pressé (et seulement quand un bouton est
pressé), ce code est entièrement exécuté. Il n'est pas nécessaire de maintenir le bouton pour que le
robot avance, en effet, un appui sur le bouton "avant" mettra les moteurs en fonctionnement. Tant
qu'un nouvel événement "bouton pressé" n'aura pas été déclenché, les moteurs continueront à
fonctionner, puisqu'en l'absence d'événement le programme ne fait strictement rien (à part surveiller
la survenue d'éventuels événements).

Il est aussi possible d'utiliser d'autres événements, par exemple, la frappe dans les mains ou encore la
(petite) tape sur le robot :

frappe dans les mains : "onevent mic" ("mic" comme micro)


tape sur le robot : "onevent tap"

Il est possible d'allumer des LEDs. Thymio possède plusieurs séries de LEDs mais dans le simulateur
seules certaines LEDs sont visibles.

Par exemple, la ligne :

call [Link](255,0,0)

permet d'allumer une LED située en bas et à droite en rouge.

Les 3 nombres situés entre parenthèses correspondent aux canaux Rouge, Vert et Bleu. La valeur de
chaque canal est comprise entre 0 et 255. Pour éteindre une LED il suffit de mettre les 3 canaux à
zéro.

À faire vous-même 3
Étudiez, saisissez et testez le programme ci-dessous à l'aide du simulateur :

onevent mic
call [Link](0,255,0)
call [Link](0,255,0)
onenvent tap
call [Link](0,0,0)
call [Link](0,0,0)

Il est possible d'utiliser des variables :

var i = 600
...
...
if i < 400 then
i = i+1
call [Link](0,255,0)
end

Il est nécessaire d'utiliser le mot-clé "var" pour déclarer une variable ("var" doit être utilisé
uniquement au moment de la déclaration d'une variable)

À faire vous-même 4
Visionnez la vidéo suivante et analysez le comportement du robot présent dans cette vidéo

thymio2
Partager

Regarder sur

Programmez Thymio afin qu'il reproduise ce comportement dans une simulation avec Webots.

Comme déjà dit plus haut Thymio possède des capteurs de proximité. Il est évidemment possible
d'utiliser ces capteurs de proximité pour déclencher des événements. Quand un capteur de proximité
détecte quelque chose cela un événement "prox", on aura donc dans notre programme un "onevent
prox".

À faire vous-même 5
Visionnez la vidéo suivante et essayez de répéter les opérations présentées dans cette vidéo dans le
simulateur Webots.

thymio studio 2
Partager

Regarder sur

Voici le programme proposé dans la vidéo :

onevent buttons

if [Link]==1 then
[Link]=300
[Link]=300
end

if [Link]==1 then
[Link]=0
[Link]=0
end

if [Link]==1 then
[Link]=-300
[Link]=-300
end

onevent prox

if [Link][2]>10 then
[Link]=0
[Link]=0
end

Seule nouveauté, le code qui suit "onevent prox" :

if [Link][2]>10 then
[Link]=0
[Link]=0
end

"[Link]" correspond aux capteurs de proximité situés sur l'avant du robot. Il y a 5 capteurs de
proximité situés sur l'avant, numéroté de 0 à 4. "[Link][2]" correspond au 3e capteur (le
capteur situé au centre). Quand "[Link][X]" (X correspond à n° du capteur) est égal à 0, cela
signifie que le capteur ne détecte rien. Plus "[Link][X]" est grand et plus l'objet détecté est
proche.

Voici quelques liens qui vous permettront d'approfondir le sujet :

un pdf qui résume pas mal de choses en une seule page : pdf
la documentation du langage : doc
documentation sur la programmation des capteurs et des actionneurs de Thymio : capteurs et
actionneurs

Auteur : David Roche

Vous aimerez peut-être aussi