Topic: pyserial x arduino su win98  (Letto 1405 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline treuser

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
pyserial x arduino su win98
« il: Agosto 03, 2014, 17:24 »
Buongiorno.  :) Mi sono appena iscritto per cercare di risolvere un problema con pyserial.
ne approfitto per presentarmi: non sono un programmatore esperto ma mi diverto con diversi linguaggi da + di 20 anni. Son partito da turbopascal e arrivato a python passando attraverso poco c, delphi, visualbasic, php, javascript e processing. Tuttavia non ho una preparazione rigoroso per gli aspetti piu tecnici dell ijnformatica.

Da 2 anni mi interesso anche di elettronica grazie a "arduino" e ho scoperto che e possibile far interagire questa scheda con un pc attraverso la porta seriale (usb) per acquisire segnali o comandare attuatori elettrici.
python e pyserial sono perfetti per sperimentare grazie all interprete da linea di comando, e con python 3.3 su Vista (ebbene si) tutto funziona.
il mio obiettivo pero e creare un interfaccia con python 2.5 su una macchina win98.
Per far questo ho programmato il microcontrollore in modo che ogni secondo lampeggi un led e spedisca un byte di controllo(0xca) sulla porta seriale COM3.
Quando creo l oggetto ser=serial.Serial('COM3',9600) il programma mi segnala "invalid handle". Sembra che questo sia dovuto al fatto che hComPort e' =0 (tipo long) ma non riesco a capire come venga assegnata questa variabile.
Con python 3.3 e Vista invece e' di tipo int e !=0.
Ho provato a inserire flag e # in serialwin32.py: bypassando la routine _reconfigureport il codice termina sempre con un errore "clearcommerror failed" ma mi lascia la COM3 aperta.
A questo punto interrogo la seriale con isOpen e faccio anche un flush e tutto sembra a postp.
Pero' quando provo a leggere il mio byte mi da' l'errore "attempting to use a port that is not open".

Ho le seguenti domande:
cosa fa' pyserial passo-passo quando apre una seriale?
xche' hComPort restituisce un invalid handle con python 2.5?
A cosa serve reconfigurePort?
avete notizie di problemi simili nell'uso di pyserial su un vecchio computer con win98?

Ringrazio in anticipo chi puo' aiutarmi a fare un po' di chiarezza.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.851
  • Punti reputazione: 9
    • Mostra profilo
Re: pyserial x arduino su win98
« Risposta #1 il: Agosto 06, 2014, 09:20 »
uhm, mi sa che i maghi di arduino & c adesso sono tutti in vacanza... non ho la più pallida idea di come aiutarti, però intanto uppo, e poi chissà.
Certo che qui andiamo un po' nell'esoterico, mi sa... "win98" mi fa pensare a un computer parecchio vecchiotto... e "parecchio vecchiotto" mi fa pensare a usb 1.0... e chissà se le specifiche proprio in quel punto lì sono compatibili o no... ma ripeto, sto sparando a caso, magari è una cosa banalissima invece.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: pyserial x arduino su win98
« Risposta #2 il: Agosto 06, 2014, 22:48 »
Ma buttare a mare Windows 98 e sostituirlo con un qualunque linux leggerotto (e non troppo recente) che, almeno, ti fa girare software vecchio di, per dire 5 anni, invece che di 16? Nota, la mia questione non e' Windows vs. Linux. E' che per dire, FreeDOS mi pare supporti versioni ancora piu' vecchie di Python.

Ma insomma, davvero, c'e' tanto di meglio di windows 98. Praticamente ogni cosa ormai...

Esattamente di che PC stiamo parlando?

Offline treuser

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re: pyserial x arduino su win98
« Risposta #3 il: Agosto 13, 2014, 18:48 »
Ok. C'e' davvero tanto meglio e in 15 anni o giu' d li' si sono fatti progressi... ma a far funzionare un sistema gia' stabile sono capaci tutti ;)
Intendiamoci: apprezzo linux e lo uso volentieri, ma a questa macchina sono affezionato.
Con qualche accorgimento e un po' di pazienza anche win 98 da' soddisfazioni.

Se non sbaglio la macchina e'un pentium del 2001, 4?, con 256 mb di ram.
ha un usb 2.0, con cui collego l'arduino. Il sistema lo riconosce come COM3 xche lo vedo in gestione dispositivi.
info aggiuntiva: grazie a uno degli accorgimenti di cui sopra il sistema autoriconosce i dispositivi generici collegati alla porta usb (come le chiavette ecc.)
Quindi aldila' dell' hardware, mi sembra che il problema stia nell'esecuzione di pyserial su win98.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.851
  • Punti reputazione: 9
    • Mostra profilo
Re: pyserial x arduino su win98
« Risposta #4 il: Agosto 13, 2014, 21:28 »
> Con qualche accorgimento e un po' di pazienza anche win 98 da' soddisfazioni.
Ehm... vorrei davvero chiederti quali, ma ho paura della risposta. Capirei (molto a stento) se avessi detto "win xp" o un'architettura basata su NT, ma francamente un'architettura basata su win3 fa davvero piangere, e da almeno 10 anni ormai.
Comunque...

>  mi sembra che il problema stia nell'esecuzione di pyserial su win98.
Davvero? Sì beh può darsi... ma d'altra parte devi capire che Usb 2.0 è uscito solo nel 2000, quindi 2 anni dopo win98, e anche un anno dopo win98SE (che è del 1999). Il che vuol dire, da un lato, che tu nel 2001 hai acquistato una macchina di buon livello, bravo, visto che già aveva una scheda usb2. Ma dall'altro, il driver che governa la tua scheda usb non può essere un driver windows standard... quindi sarà sicuramente un driver proprietario del costruttore della scheda, appiccicato su win98SE... niente di male, per carità. Ma dovresti sapere come funziona dentro quel driver, per essere sicuro.
Poi tutto è complicato dal fatto che stiamo pur sempre parlando di 13 anni fa... magari il costrutture di quella scheda usb, l'assemblatore di quel pc, non esistono manco più. E a quel tempo internet non era ancora ubiquo come adesso, quindi buona fortuna a cercare le informazioni molto specifiche che ti servono... Paradossalmente, in tutto questo stack la cosa più facile da capire è proprio pyserial... almeno il codice è online, e puoi sempre leggertelo... ma per tutto il resto, la vedo lunga.

Ora, si sa, l'estate è tempo di ozi e di strane ossessioni... c'è chi si mette a comprare la settimana enigmistica, per dire. Se vuoi dedicare l'estate a venire a capo di questo problema, hai tutta la mia simpatia. Io penso che farò qualche maratona di Battlestar Galactica.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: pyserial x arduino su win98
« Risposta #5 il: Agosto 14, 2014, 12:41 »
Ok. C'e' davvero tanto meglio e in 15 anni o giu' d li' si sono fatti progressi... ma a far funzionare un sistema gia' stabile sono capaci tutti ;)
Intendiamoci: apprezzo linux e lo uso volentieri, ma a questa macchina sono affezionato.
Con qualche accorgimento e un po' di pazienza anche win 98 da' soddisfazioni.

Sei conscio che usando Python 2.5 usi un linguaggio *molto* vecchio, ti perdi i notevoli miglioramenti... e verosimilmente ti condanni ad usare versioni *vecchie* di pyserial, per le quali non ci saranno i bug fix, etc etc etc?

Mi sembra un esercizio di cocciuto masochismo. Fai pure, ma fai da solo, temo.

Offline marcomg

  • python habilis
  • **
  • Post: 77
  • Punti reputazione: 0
    • Mostra profilo
Re: pyserial x arduino su win98
« Risposta #6 il: Agosto 21, 2014, 09:39 »
Ma installa debian (o qualsiasi distro_linux tale che distro_linux != "*buntu") con una interfaccia grafica molto leggera (anche solo un WM come fluxbox). È nuovo, è più veloce, è meglio!

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: pyserial x arduino su win98
« Risposta #7 il: Agosto 21, 2014, 10:38 »
Ma installa debian (o qualsiasi distro_linux tale che distro_linux != "*buntu") con una interfaccia grafica molto leggera (anche solo un WM come fluxbox). È nuovo, è più veloce, è meglio!

Se è per quello, anche le "distr*buntu" possono montare interfacce grafiche leggere.

Offline Max74

  • python neanderthalensis
  • ****
  • Post: 383
  • Punti reputazione: 0
    • Mostra profilo
Re: pyserial x arduino su win98
« Risposta #8 il: Agosto 21, 2014, 13:23 »
Ma installa debian (o qualsiasi distro_linux tale che distro_linux != "*buntu") con una interfaccia grafica molto leggera (anche solo un WM come fluxbox). È nuovo, è più veloce, è meglio!

Se è per quello, anche le "distr*buntu" possono montare interfacce grafiche leggere.

C'è un problema sulle distribuzioni ubuntu, che la compatibilità con i vecchi pc non è che sia poi così perfetta e l'interfaccia grafica è l'ultimo dei problemi. Soprattutto a causa del kernel 3.2 precompilato, il supporto ai vecchi processori è praticamente inesistente. Nella migliore delle ipotesi il processore funzionerà al 100% per tutto il tempo. Allora se bisogna ricompilare il kernel a mano, con il serio rischio di dover fare più volte il lavoro, tanto vale installare Debian con un Kernel ottimizzato 486 o meglio ancora con il 2,6. Purtroppo ho sperimentato che i problemi di lubuntu dal 12 in poi sui vecchi pc sono troppi. Per inciso, per l'uso richiesto dall'OP (che credo che sia inchiodato al win98) io installerei il tiny core linux, leggero come la piuma, altamente configurabile, aggiornato, supportato.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: pyserial x arduino su win98
« Risposta #9 il: Agosto 21, 2014, 14:14 »
C'è un problema sulle distribuzioni ubuntu, che la compatibilità con i vecchi pc non è che sia poi così perfetta e l'interfaccia grafica è l'ultimo dei problemi.

Pensavo appunto ti riferissi solo all'interfaccia grafica.

Per inciso, per l'uso richiesto dall'OP (che credo che sia inchiodato al win98) io installerei il tiny core linux, leggero come la piuma, altamente configurabile, aggiornato, supportato.

+1