• il y a 5 jours
( 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 1 FOR MOTORAVGL NEXT ; ( tourne à droite )
: turng 1 FOR MOTORAVDW NEXT ; ( tourne à gauche )
: Turn90dw 22 FOR MOTORAVGL NEXT ; ( tourne droite 90° )
: Turn90gl 22 FOR MOTORAVDW NEXT ; ( tourne gauche 90° )
: TurnPiGl Turn90gl Turn90gl ; ( tourne centré 180° à gauche )
: TurnPiDw Turn90dw Turn90dw ; ( tourne centré 180° à droite )

( 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 )