Étape 3: Programmer le Robot
< ! DOCTYPE aesl-source >
< réseau >
<!--la liste des événements mondiaux-->
<!--liste de constantes-->
<!--montrer Mots-clés état-->
< indicateur Mots-clés = « true » / >
<!--nœud thymio-II-->
< nom du nœud = « thymio-II » > var temp
var rc5_speed_l
var rc5_speed_t
var vmin =-600
var vmax = 600
var led_pulse
Timer.period[0]=20
void setmotor
Appelez math.min (rc5_speed_t, rc5_speed_t, vmax)
Appelez math.max (rc5_speed_t, rc5_speed_t, vmin)
Appelez math.min (rc5_speed_l, rc5_speed_l, vmax)
Appelez math.max (rc5_speed_l, rc5_speed_l, vmin)
Motor.Left.Target = rc5_speed_l + rc5_speed_t
Motor.Right.Target = rc5_speed_l - rc5_speed_t
OnEvent button.left
Si button.left==1 alors
rc5_speed_t = -200
fin
callsub setmotor
OnEvent button.right
Si button.right==1 alors
rc5_speed_t = 200
fin
callsub setmotor
OnEvent button.center
Si button.center==1 alors
rc5_speed_t = 0
rc5_speed_l = 0
fin
callsub setmotor
OnEvent button.backward
Si button.backward==1 alors
Si rc5_speed_t! = 0 then
rc5_speed_t = 0
d’autre
rc5_speed_l = rc5_speed_l-200
fin
fin
callsub setmotor
OnEvent button.forward
Si button.forward==1 alors
Si rc5_speed_t! = 0 then
rc5_speed_t = 0
d’autre
rc5_speed_l = rc5_speed_l + 200
fin
fin
callsub setmotor
OnEvent boutons
Lorsque button.backward==1 et button.forward==1 faire
rc5_speed_l = 0
fin
Lorsque button.right==1 et button.left==1 faire
rc5_speed_t = 0
fin
callsub setmotor
OnEvent timer0
Impulsion de couleur #Body
led_pulse = led_pulse + 1
Si led_pulse > 0 then
Appelez leds.top (led_pulse, 0, led_pulse)
Si led_pulse > 40 alors
led_pulse = -64
fin
d’autre
Temp =-led_pulse/2
Appelez leds.top (temp, 0, temp)
fin
OnEvent rc5
Si rc5.command! = 0 then
Si rc5.command == 2 puis
Si rc5_speed_t! = 0 then
rc5_speed_t = 0
d’autre
rc5_speed_l = rc5_speed_l + 200
fin
else if rc5.command == 4 puis
rc5_speed_t = -200
else if rc5.command == 8 puis
Si rc5_speed_t! = 0 then
rc5_speed_t = 0
d’autre
rc5_speed_l = rc5_speed_l-200
fin
else if rc5.command == 6 puis
rc5_speed_t = 200
else if rc5.command == 5 puis
rc5_speed_t = 0
rc5_speed_l = 0
fin
RC5.Command = 0
fin
OnEvent prox
appel sound.system(-1)
appel leds.temperature(0,0)
appel leds.top(0,0,0)
appel leds.circle(0,0,0,0,0,0,0,0)
Si prox.horizontal[2] > 3000 et rc5_speed_l > 0 then
rc5_speed_l = 0
fin
Si prox.horizontal[0] > 1500 et prox.horizontal[6] & lt ; 1000 et rc5_speed_l > 0 then rc5_speed_t = 300
fin
Si prox.horizontal[6] > 1500 et prox.horizontal[0] & lt ; 1000 et rc5_speed_l > 0 then rc5_speed_t = -300
fin < / nœud >
< / réseau >