Projet
Voici un exemple que j'ai fais dans le cadre de mon travail de maturité au GYB (Gymnase Intercantonal de la Broye). On devait trouver une utilisation pratique du Thymio II dans la vie courante.
Mon idée c'est qu'on pose le robot n'importe où dans une pièce, on frappe dans nos mains et le robot se déplace tout seul en évitant les obstacles jusqu'à ce qu'il trouve une ligne au sol et la suive jusqu'à un tour placée devant l'interrupteur.
Vidéo
Voici la vidéo que j'ai réalisée après avoir fait la construction en Lego et la tour en bois:
Le code
Voici le code
var a=0
onevent mic
onevent buttons
onevent prox
#pour arreter le programme
if button.backward==1 then
a=0
end
if a==0 then
motor.left.target=0
motor.right.target=0
call leds.circle(50,50,50,50,50,50,50,50)
call leds.top(0,0,0)
end
#démarre le robot au moindre bruit ou si on appuye sur le bouton devant
if button.forward==1 or mic.intensity> 50 and mic.intensity<100 then
a=1
call leds.circle(0,0,0,0,0,0,0,0)
end
if a==1 then
#va droit si il y rien devant lui
if prox.horizontal[0]==0 or prox.horizontal[4] ==0 then
motor.right.target=250
motor.left.target=250
call leds.top(0,0,0)
end
#si il y quelque chose à gauche, tourne à droite
if prox.horizontal[0]>0 or prox.horizontal[1]>0 then
motor.left.target=500
motor.right.target=-500
call leds.top(0,50,0)
end
#si il y a quelque chose à droite, tourne à gauche
if prox.horizontal[4]>0 or prox.horizontal[3]>0 then
motor.left.target=-500
motor.right.target=500
call leds.top(50,0,0)
end
#si il a quelque chose droit devant, recule et tourne à gauche
if prox.horizontal[2]>0 then
if prox.horizontal[2]>2000 then
motor.left.target=-500
motor.right.target=-500
else
motor.left.target=-500
motor.right.target=500
end
end
#pour pas que le robot tombe d'une marche d'escalier
if prox.ground.delta[0]<90 or prox.ground.delta[1]<90 then
a=0
end
#si trouve la ligne à gauche, tourne vers droite
if prox.ground.delta[0]>prox.ground.delta[1]+180 then
motor.left.target =250
motor.right.target=-250
call leds.top(250,0,250)
end
#si trouve la ligne à droite, tourne vers la gauche
if prox.ground.delta[1]> prox.ground.delta[0]+80 then
motor.left.target =-250
motor.right.target=250
call leds.top(0,250,250)
end
end
Construction
Les plans pour les pièces de la tour
La forme de la plate-forme est un carré (à la base) de 30 cm de côté dont j'ai enlevé des carrés de 4 cm de côté à chaque coin
Dans chaque coin, j'ai mis une pièce en métal
Au milieu, j'ai cloué deux pièces en bois, avec le trou vers le bas. C'est pour mettre une barre de métal afin de tenir la massette. Le diamètre du trou dépend du diamètre de la barre
J'ai scié la massette et percé un trou à travers pour passer la petite barre.
Les pieds sont simplement des barres de bois, de préférence rectangulaires car si ils sont ronds, c'est plus difficile à crocher la plate-forme
Voici la pièce de bois que le robot attrape pour tirer la ficelle. Au niveau du point, j'ai fixé un petit anneau de métal du même genre que celui sur la massette pour pouvoir attacher la ficelle.
La plate-forme est fixée aux pieds avec des clous, mais ne il ne faut pas trop les enfoncer, comme ça, on peut changer la hauteur de la plate-forme selon la hauteur des interrupteurs.
J'ai aussi cloué des planches entre les pieds afin de stabiliser l'ensemble. Elles font 30 cm de long (même largeur que la plate-forme). Il faut toutefois faire attention de ne pas les clouer trop haut, sinon la massette ne peux plus atteindre l'interrupteur.
Les image de la structure en Lego
J'ai utilisé des Legos Techniques pour faire la structure qui permet d'attraper le petit morceau de bois qui pend par la ficelle
Cette structure se fixe sur les deux places où on peut fixer une brique de Lego normal à l'arrière du Thymio et sur les côtés.
La structure avec les petits bonshommes Lego ne sert à rien, à part pour faire rigolo. Elle se fixe sur les deux emplacements où on peut fixer une brique de Lego à l'avant du Thymio.
Et pour finir, voici les deux structures placées sur le Thymio.