• avant-hier
Lorsque le robot détecte un obstacle il fait un demi-tour vers la gauche, dans le cas d'un aller-retour le réglage doit être adapté selon le cas. Il est difficile de changer le réglage quand une action s'effectue et souvent le robot ne suis plus le programme et ne suit plus la ligne comme cela se passe dans cette vidéo.
( primitives Python )
" MotorAV.fth" LOAD ( marche avant )
" MotorAR.fth" LOAD ( marche arrière )
" MotorStop.fth" LOAD ( arrêt )
" MotorAvGl.fth" LOAD ( marche avant roue de droite )
" MotorAvDw.fth" LOAD ( marche avant roue de gauche )
" initlf1.fth" LOAD ( capteur du centre droit )
" initlf2.fth" LOAD ( capteur du centre gauche )
" SurfC.fth" LOAD ( capteur de surface central )

( primitives Pygmy Forth )
: turnd 5 FOR MOTORAVGL NEXT ; ( tourne à droite )
: turng 5 FOR MOTORAVDW NEXT ; ( tourne à gauche )
: Turn90dw 44 FOR MOTORAVGL NEXT ; ( tourne droite 90° )
: Turn90gl 44 FOR MOTORAVDW NEXT ; ( tourne gauche 90° )
: TurnPiGl Turn90gl Turn90gl ; ( tourne centré 180° à gauche )

( application )
: STCM ( -- ) BEGIN ( début de boucle )
INITLF1 INITLF2 AND 0= IF MOTORAV ( si les deux capteurs lisent 0 aller droit )
THEN ( fin du branchement conditionnel )
INITLF2 1 = IF turnd ( si le deuxième capteur lit 1 tourner à droite )
THEN ( fin du branchement conditionnel )
INITLF1 1 = IF turng ( si le premier capteur lit 1 tourner à gauche )
THEN ( fin du branchement conditionnel )
SURFC 1 = IF CturnGLpi MOTORSTOP ( si le capteur de surface central lit 1 demi-tour de 180° )
THEN ( fin du branchement conditionnel )
AGAIN ( la boucle continue )
; ( fin du code )

: Z STCM ; ( raccourci )