Surprise Me!

Hippodrome simple avec Pygmy Forth

2024-12-10 9 Dailymotion

Pour avoir un déplacement satisfaisant avec une bonne précision et le moins possible d'à-coups, il faut modifier les primitives python qui correspondent aux déplacement et au rotations. On va prter la fréquence à 0,01 seconde.<br />Il faut aussi modifier quelques primitive PygmyForth.<br />Deux nouvelles primitive python sont installées : MotorAvGl.fth, pour marche avant du moteur gauche, et MotorAvDw.fth, pour marche avant du moteur droit.<br /><br /><br />Exemple de modifications des primitives python.<br />CODE MOTORAV <br /> import RPi.GPIO as GPIO<br /> from time import sleep<br /> GPIO.setmode(GPIO.BOARD)<br /> GPIO.setwarnings(False)<br /><br /> GPIO.setup(11, GPIO.OUT)<br /> GPIO.setup(13, GPIO.OUT)<br /> GPIO.setup(7, GPIO.OUT)<br /> GPIO.setup(8, GPIO.OUT)<br /> GPIO.setup(10, GPIO.OUT)<br /> GPIO.setup(12, GPIO.OUT)<br /><br /> pw0=GPIO.PWM(7,100)<br /> pw1=GPIO.PWM(12,100)<br /> pw0.start(0)<br /> pw1.start(0)<br /><br /> GPIO.output(11, True)<br /> GPIO.output(13, False)<br /> pw0.ChangeDutyCycle(70)<br /> GPIO.output(7, True)<br /> GPIO.output(8, True)<br /> GPIO.output(10, False)<br /> pw1.ChangeDutyCycle(70)<br /> GPIO.output(12, True)<br /> sleep(.01)#la fréquence est de 0,01 seconde<br /> GPIO.output(7, False)<br /> pgl.stop()<br /> GPIO.cleanup()<br />END-CODE<br /><br />( applications )<br />( hippodrome ) <br />: turnd 5 FOR MOTORAVGL NEXT ; ( on compte 5 boucles )<br />: turng 5 FOR MOTORAVDW NEXT ; ( on compte 5 boucles )<br />: LFSL ( -- ) BEGIN INITLF1 INITLF2 AND 0= IF MOTORAV ( utilise cette primitive qui donne un déplacement en ligne droite régulier )<br />THEN ( fin du branchement conditionnel )<br />INITLF2 1 = IF turnd ( si le deuxième capteur lit un, petit coup à droite )<br />THEN ( fin du branchement conditionnel )<br />INITLF1 1 = IF turng ( si le premier capteur lit un, petit coup à gauche )<br />THEN ( fin du branchement conditionnel )<br />AGAIN ( la boucle repart )<br />; ( fin de code )<br />: Z LFSL ; ( raccourci )<br />

Buy Now on CodeCanyon