![]() |
Apprentissage de la programmation en
P_LOGO
|
![]() |
Pour commander des MEC ou des MEC simples (Modules électroniques de commande), il faut faire apparaître des zones qui puissent passer du clair au foncé, zones sur lesquelles on scotche les photorésistences.
Le plus souvent, on demande à la tortue (cachée, pour ne pas agir sur les photorésistences) de se déplacer au milieu de la zone (FPOS), de tracer un cercle autour d’elle (CERCLE) et de remplir ce cercle (REMPLIS) avec la couleur noire ou la couleur blanche (FCC). Le programme peut ressembler à ceci :
POUR ZONE :HORIZ :VERTIC
; place la tortue à un certain endroit de l’écran
LC FPOS LISTE :HORIZ :VERTIC
; dessine un cercle
CERCLE 20
; remplis le cercle
REMPLIS
FIN
;procédure qui permet de commander la marche et le sens d’un moteur grâce à deux zones colorée sur l’écran.
POUR MOTEUR :NUM :MARCH :SENS
; cache la tortue (important)
CT
; définit la couleur de la zone pour la photoréstence du sens du moteur
FCC SI ZEROè :SENS [0] [15]
; place et affiche la zone
ZONE DIFF PROD 80 :NUM 220 0
; définit la couleur de la zone pour la photoréstence de la marche/halte du moteur
FCC SI ZEROè :MARCH [0] [15]
; place et affiche la zone
CARREP DIFF PROD 80 :NUM 220 70
FIN
Ça fonctionne évidemment très bien, mais ce n’est pas très rapide à l’exécution, la tortue devant effectuer plusieurs opérations consécutives.
Voici une autre manière de réaliser une commande de moteur par un MEC, en utilisant les multitortues et les formes. Il suffit de placer une tortue à l’emplacement de chaque zone, de leur faire prendre la forme d’un cercle plein, puis de les faire apparaître et disparaître.
Pour commencer, il faut créer la forme ronde. (Cette étape sera plus largement expliquée dans la partie " LOGO : Les lutins et autres farfadets. ")
POUR TORTUERONDE
VE VIDEFORMES
CT CERCLE 20 REMPLIS
; crée une nouvelle forme de tortue à partir du dessin à l’écran
CREEFORME "ROND
FIN
Ensuite, il faut placer les différentes tortues et métamorphoser les tortues en ronds, voici un exemple avec quatre zones.
POUR PLACETORTUES
VE
; place chacune des tortues
FTORTUE 0 LC FPOS [-100 100]
FTORTUE 1 LC FPOS [-100 0]
FTORTUE 2 LC FPOS [100 100]
FTORTUE 3 LC FPOS [100 100]
; fixe la forme "rond à toutes les tortues et colorie en gris.
FTORTUE [0 1 2 3] FFORME "ROND MT
FIN
TORTUERONDE
PLACETORTUES
Quand cela est fait, on peut astucieusement scotcher les photorésistences et régler leur sensibilité autour de leur seuil de transition (clignotement) avec la couleur grise. On est sûr ensuite que le blanc et le noir commanderont bien un état ou l’autre.
POUR REGLAGE
FTORTUE [0 1 2 3]
FCC 7 MT
ATTENDS 5
FCC 15 CT
FIN
Ensuite, pour déterminer la couleur d’une zone, il suffit de s’adresser à telle ou telle tortue et de lui demander de se cacher ou de se montrer. Par exemple :
POUR MARCHEAVANT
FTORTUE 0 CT
FTORTUE 1 MT
FIN
POUR MARCHEARRIERE
FTORTUE [0 1] MT
FIN
POUR ARRET
FTORTUE 1 CT
FIN
Ces procédures, outre qu’elles sont très simples, sont très rapides lors de l’exécution.
Si on veut reprendre l’exemple précédent pour commander un moteur, on aura :
; nouvelle procédure qui permet de commander la marche et le sens d’un moteur grâce à deux zones colorée sur l’écran.
POUR MOTEUR :NUM :MARCH :SENS
; s’adresse à la tortue correspondant à la photorésistence du moteur
FTORTUE PROD :NUM 2
; cache ou montre la tortue
SI ZEROè :SENS [CT] [MT]
; de même pour la photorésistence de marche/halte du moteur
FTORTUE SOMME PROD :NUM 2 1
SI ZEROè :MARCH [CT] [MT]
FIN
L’avantage, c’est que l’exécution est extrêmement rapide, même sur un ordinateur un peu poussif. On contrôle alors bien les mouvements du robot. Alors, peut-on plus simple è
Que c'est beau, le LOGO !
|
|