Astuce diagramme ?

marc59

New Member
Bonjour, prof de techno je bricole des projets pour les élèves avec du picaxe depuis 2 ans. J'ai commencé par le microrobot de chez a4 et aussi la carte CHI035A (18m2) pour faire fonctionner des maquettes d'alarmes ou de portails motorisés. Avec les élèves nous sommes obligé d'utiliser les diagrammes.

Comment faire clignoter une del en même temps qu'un cycle d'ouverture et de fermeture d'un portail. Si j'utilise des wait dans le cycle d'ouverture et fermeture du portail, la del est figée pendant un temps et ne clignote plus. J'ai trouvé une solution en faisant des boucles et du comptage pour ne pas figer le diagramme, mais c'est un peu compliqué pour les élèves.

Y a t'il une solution simple ?

merci
 

MGU

Senior Member
Bonjour,
solution la plus simple :utiliser des leds clignotantes
Autre solution: faire deux programmes en temps partagé, avec un programme pour la led.

MM
 

PieM

Senior Member
Bonjour et bienvenue,

Au niveau E.N. il est souhaitable d'utiliser le pseudo multitâche du 18M2. La tâche principale gérant le portail, et une autre la led. Voit le manuel 1 page 62. Je crois qu'il y a une doc la dessus avec le flowchart chez A4...
Sinon utiliser le timer, ou les interruptions, mais c'est plus compliqué peut être pour des élèves.!
 

marc59

New Member
Merci beaucoup pour vos réponses rapides.

"Au niveau E.N. il est souhaitable d'utiliser le pseudo multitâche du 18M2"

EN ? mutitâche ? Je vais voir sur le manuel. Au fait quel manuel ?

Pour la led clignotante, la par contre, c'est trop facile :)

"faire deux programmes en temps partagé"

Je ne connais pas, c'est surement la solution du manuel !

Bon bonne soirée, je vais potasser ça demain.

Encore merci
 

MGU

Senior Member
Source d'inspiration;
Essayez ce programme, "en vrai", la simulation ne fonctionne pas:
La diode clignote toutes les 20 secondes pendant 10 s

Code:
start0:
do
	bit0=1
	wait 10
	bit0=0
	wait 10	
loop

start1:
do
	if bit0=1 then	
			HIGH C.0
			pause 500
			low C.0
			pause 500
		else low C.0
	endif
loop
MM
 
Last edited:

PieM

Senior Member
EN ? mutitâche ? Je vais voir sur le manuel. Au fait quel manuel ?
Ben EN pour Education Nationale ....
quel manuel ? je l'ai dit , le 1.

en complément du programme de MGU: voir simulation de deux leds qui clignotent chacune à leur rythme.

Code:
#simtask all
#Picaxe 14M2

start0:
do
	High C.1
	pause 800
	Low C.1
	pause 800	
loop

start1:
do
	HIGH C.0
	pause 100
	low C.0
	pause 100
	
loop
 

fuse

Senior Member
Bonjour Marc59,
Pour le multitache avec organigramme, il faut utiliser Logicator ( ou maintenant PE6) et prendre un Picaxe de nouvelle génération (vérifier si ils sont tous compatibles avec le multitache mais c'est le cas du 18M2).
Donc avec Logicator, il est possible de prendre plusieurs "start" (ou "début" en francais). Il sera donc très facile de résoudre votre problème.
Les tests sont réalisables en mode simulation...
 

BESQUEUT

Senior Member
la simulation ne fonctionne pas:
En fait, la simulation ne marche pas si mal que ça, mais l'instruction WAIT est bloquante...
Il suffit de la remplacer par une boucle d'attente et on peut simuler le multi-tâches :
Code:
#picaxe 08M2
#simtask all


start0:
do
	bit0=1-bit0
	gosub Attendre
loop



start1:
do
	if bit0=1 then	
		toggle C.0
	endif
loop



Attendre:
	for b1=1 to 40
	next b1
	return
Edit :
J'ai appris quelque chose ce matin :
J'ai toujours cru que le simulateur ne savait pas gérer les attentes (WAIT et PAUSE)
En fait, il semble que la simulation du WAIT soit buggée, alors que la simulation de PAUSE marche correctement !

==> donc, il suffit de remplacer WAIT 10 par PAUSE 10000 et tout va bien !
 
Last edited:

BESQUEUT

Senior Member
Petite précision sur la notion de "pseudo" multitâche...

Au niveau E.N. il est souhaitable d'utiliser le pseudo multitâche du 18M2.
On utilise le terme "pseudo" pour signaler que le PICAXE n'est pas complètement multitâches : certaines commandes ne peuvent être exécutées en parallèle.

Autant il est possible d'expliquer le principe du multi-tâches à des élèves,
autant il serait vain de vouloir exploiter ce principe par exemple pour communiquer sur plusieurs ports série en même temps...
 

PieM

Senior Member
@ Fuse

J'ai essayé le mode multitâche diagramme sous PE6; je pensais qu'il fallait préciser pour la simulation une directive #simtask all comme pour le basic.
En fait c'est inutile et la simu se passe très bien.
J'ai découvert aussi que l'instruction WAIT acceptait des fractions de secondes: elle est donc l'instruction Attendre de Logicator, mais non le Wait du manuel !

mon petit diagramme : View attachment multicligne.plf

Par contre , écrit sous PE6, il plante Logicator ! La compatibilité descendante n'est pas assurée semble t-il. (Ce qui est courant)
 

MGU

Senior Member
Bonjour,

La simulation du code #5 fonctionne effectivement en remplaçant wait par pause. Je ne vois vraiment pas l’intérêt de wait
Je corrige donc :

Code:
#simtask all
#Picaxe 14M2

start0:
do
	bit0=1
	pause 10000
	bit0=0
	pause 10000
loop

start1:
do
	if bit0=1 then	
			HIGH C.0
			pause 500
			low C.0
			pause 500
		else low C.0
	endif
loop
 

marc59

New Member
Source d'inspiration;
Essayez ce programme, "en vrai", la simulation ne fonctionne pas:
La diode clignote toutes les 20 secondes pendant 10 s

Code:
start0:
do
	bit0=1
	wait 10
	bit0=0
	wait 10	
loop

start1:
do
	if bit0=1 then	
			HIGH C.0
			pause 500
			low C.0
			pause 500
		else low C.0
	endif
loop
MM
Avec les élève de 4éme (13 ans), je ne peux pas utiliser le pg basic.

Je vais tester logicator

encore merci
 

fuse

Senior Member
Bonjour,

La version 370 de Logicator est maintenant libre et dispose ainsi de toutes les commandes. Perso, je trouve ce logiciel tout à fait adapté pour le collège, la prise en main est rapide et le mode simulation (à ne pas confondre avec ''exécuter le diagramme'') est un plus indispensable si vous ne disposez pas d'une maquette Picaxe par ilot...
 
Top