var status var direction if prox.horizontal[capteur_bas]<200 then motor.target[moteur_avance]=-200 status = status_bouge else status = status_arret end onevent button if status == status_arret then when buttons.binary[button_avance]==1 do status = status_ferme call sound.play(0) motor.target[moteur_porte]=-150 direction = 1 end end if status == status_arret then when buttons.binary[button_recule]==1 do status = status_ferme call sound.play(0) motor.target[moteur_porte]=-150 direction = -1 end end onevent prox if status == status_bouge then when prox.ground.reflected[0]>100 and prox.ground.reflected[1]>100 do motor.target[moteur_avance]=0 status = status_ouvre call sound.play(1) motor.target[moteur_porte]=150 end end if status == status_ouvre then when prox.horizontal[capteur_ouvert]>3900 do motor.target[moteur_porte]=0 status = status_arret end end if status == status_ferme then when prox.horizontal[capteur_ferme]>3900 do motor.target[moteur_porte]=0 status = status_bouge motor.target[moteur_avance]=direction * 400 end end