Le robot arroseur

Introduction

Voici mon projet de travail de maturité au gymnase intercantonal de la Broye. Nous devions exploiter le THYMIO II afin de le rendre utile dans la vie de tous les jours.
J'ai décidé de l'utiliser comme arroseur de plantes.

projet.jpg

Construction

On peut voir ici deux roues autour desquelles les fils de pêche s'enroulent.
roues.jpg

Bras de levier

Ceci est le mécanisme permettant au verre de verser l'eau dans le vase.
verre-1.jpgverre-2.jpg
verre-4.jpgverre-3.jpg

Supports

Détails de construction:
support-1.jpg
support-2.jpgSupports de construction: boîte de démonstration en bois, colonne plastique et plante
support-3.jpgsupport-4.jpg

Utilisation des différents supports, capteurs et actuateurs du THYMIO II

Tous les éléments encadrés en rouge sur cette image, sont les fonctionnalités que j'ai utilisé.
thymio.png

Codage

Voici ma ligne de code.

var start= 1 
var arrosage= 1
var son= 1

mic.threshold= 250 
# seuil sonore

onevent mic 
# utilisé pour le démarrage du robot

if mic.intensity> 250 and start== 1 
then

motor.left.target= -500 
# montée du robot
call leds.top (0,32,0) 
# lumière verte
call sound.play(1)
# musique du début
start= 0 
# le clappement de mains ne fonctionne pas durant tout le processus
son= 1

end

onevent prox 

when prox.ground.reflected[0]< 300 and prox.ground.reflected [1]< 
300 and start== 0 
# repérage de la ligne noire 
do

timer.period[0]= 7000 
# timer pendant 7 secondes
motor.left.target= 0
# arrêt de la montée du robot
motor.right.target= 350 
# début de l'arrosage
call leds.top (0,0,32) 
# lumière bleu

end

if prox.horizontal[6]> 3500 and arrosage== 0 
# capteur arrière droit
then

motor.right.target= 0
motor.left.target= 500 
# descente du robot
arrosage= 1 
# prox.horizontal[6] est inactif
call leds.top (0,32,0) 
# lumière verte

end

if prox.horizontal[2]> 1950 and son==1
then

call sound.play(2)
# musique de fin
son= 0
# la musique ne se fait plus "appeler"

end

if prox.horizontal[2]> 2000 and arrosage== 1 
# capteur central avant
then

timer.period[1]= 10000
#* remonte pendant 10 secondes afin que le capteur central capte moins que 2000 et que le morceau soit terminé *#
motor.left.target= -50
# remonte gentiment
motor.right.target= 0
call leds.top (32,0,0) 
# lumière rouge

end

onevent timer0
# lance l'évènement à chaque passage à zéro du timer 

motor.right.target= -300 
# l'arrosoir revient après les 7 secondes écoulées 
timer.period[0]= 0
# met le timer à zéro 
arrosage= 0 
# comme ça, prox.horizontal[6] fonctionne qu'à partir de ce moment
call leds.top (0,32,32)

onevent timer1
# suite au timer, le robot est prêt à redémarrer 

motor.left.target= 0
motor.right.target= 0
call leds.top (32,32,0)
timer.period[1]= 0
start= 1 
# robot à l'arrêt, prêt à démarrer

Explication du fonctionnement

  • Le robot démarre par un clappement de mains. Il s'élève comme un ascenseur à l'aide de fils de pêche fixé à un support de démonstration en bois.
  • Le bras de levier, sur lequel est fixé le verre rempli d'eau, s'active à la ligne noire.
  • Dès que l'eau est versée, le bras de levier revient à son point d'origine et le robot redescend gentiment à son point de départ.
  • Le robot détecte le sol et s'arrête.

Film

Après la construction du mécanisme et l'écrit du codage, j'ai réalisé une vidéo mettant mon robot à l'action. Je vous laisse observer le résultat.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License