[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gulliver] Microcontroleurs PIC


From launay <pierre dot launay at ac-rennes dot fr>
Subject Re: [gulliver] Microcontroleurs PIC
Date Wed, 01 Mar 2006 21:12:09 +0100

David MENTRE a écrit :

Bonjour Pierre,

Le 22/02/06, launay<pierre dot launay at ac-rennes dot fr> a écrit :


Pour les spécialistes de python :
la documentation http://pyserial.sourceforge.net/
m'indique qu'avec ser.inWaiting() j'ai le nombres d'octets reçus en
attente (j'ai testé).
Je voudrais l'utiliser dans une boucle mainloop() de tkinter ou autre,
pour une interface graphique.

Comment faire pour associer un évenement (event ou bind) si
ser.inWaiting() est différent de 0 ?



Cela me semble plus une question relative à tkinter que pyserial.


D'après ce que j'ai pu lire sur le web[1], le plus simple serait que
tu enregistres un callback qui se déclenche sur timeout (après qu'un
certain temps ce soit écoulé). Quelque chose du style (en partant de
l'exemple du web) :

   class App:
       def __init__(self, master):
           self.master = master
           self.poll() # start polling

       def poll(self):
           if ser.inWaiting () >= 5:
                # at least one xx yy LF
                # do serial port processing
           self.master.after(100, self.poll)

Après, il faut faire un polling suffisament régulier pour traiter tes
événements.



L'objectif on reçoit 5 caractères ASCII xx yy LF (fin de ligne) et on
trace une courbe en X Y
La courbe se fait au fur et à mesure de la réception.



En espérant que ça aide, Amicalement, d.

[1] http://www.pythonware.com/library/tkinter/introduction/x9507-alarm-handlers-and-other.htm

---- Liste gulliver ----
Se désinscrire, mailto:gulliver-unsubscribe at listes dot gulliver dot eu dot org
GULLIVER,       http://gulliver.eu.org/



Merci David,
Tes indications m'ont permis à partir de polling et des évenements sur le temps de trouver sur le web , une application qui gère les E/S asynchrones:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/82965
J'ai modifié les sources et je ne travaille qu'avec une boucle mainloop et un thread (processus léger), j'ai pu supprimer la boucle avec le temps (after).
Dans la boucle mainloop j'ai mis des boutons pour la gestion et un canvas pour le graphique, ça marche.


Sinon j'ai refait et amélioré la carte programmateur sur Kicad logiciel de schéma et typon GPL (pour linux et windows).
Suivant le hardware libre présenté au congrès Hispalinux de 2003 :
http://www.iearobotics.com/personal/juan/publicaciones/art4/pres-hardware-libre.sxi
La carte programmateur est LLL, schéma libre, typon libre et gerber libre.
(auparavant elle était totalement propriétaire et sous windows).
De plus les composants ne sont pas libres évidemment mais standard, multi-sources plusieurs fabricants possibles, ce qui ne sera pas le cas de la carte PIC.


J'ai prévu de refaire la carte PIC16F877 sous Kicad quand elle aura été entièrement validée.

Actuellement je commence une doc sur installation et utilisation du compilateur C SDCC et du programmateur PKP sous GNU-linux distribution Ubuntu 5.10 pour les élèves.

Si vous souhaitez travailler avec des PICs n'hésitez pas à me contacter.

Pierre Launay