View previous topic :: View next topic |
Author |
Message |
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4810 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Wed Nov 27, 2013 6:04 am Post subject: [arduino] confltti sulla porta seriale |
|
|
sto cominciando a giocare con arduino.
ho sistemato le cose per lavorare da terminale con scons.
quando voglio leggere la porta seriale, uso miniterm.py (dev-python/pyserial).
a volte però, ho bisogno di effettuare un semplice cat /dev/arduino o di redirigere il flusso di miniterm.py verso una pipe di bash.
in questi casi, incontro degli inceppi non facilmente riproducibili.
a volte le cose funzionano benissimo, altre volte l'ouput langue, altre ancora il cat restituisce un ouput vuoto.
resettare arduino ricaricando lo sketch non sempre giova.
sospetto che la cosa dipenda da demoni non identificati che si affollano sulla porta seriale di arduino a mia insaputa.
come posso fare a controllare il fenomeno e arginarlo? _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 524
|
Posted: Thu Nov 28, 2013 6:30 pm Post subject: Re: [arduino] confltti sulla porta seriale |
|
|
Quando ci giocavo io (poi ho comprato raspberry e beaglebone e ho lasciato perdere) ho notato che usare una porta USB3 o un hub ogni tanto crea casini, quindi prova ad attaccarlo direttamente a una porta USB2.
Altra cosa importante, /dev/ttyUSB* (o era ttyACM?) non è detto che abbia settato il baudrate corretto e quindi potrebbe non stamparti nulla, mi pare si possa sistemare con stty. Per il tuo programma in pipe invece non ne ho proprio idea.
Per quanto riguarda eventuali altri demoni la cosa mi risulterebbe strana, perché se ci fosse già qualcun altro sulla porta seriale dovresti ottenere un bel "device busy" o qualcosa di simile. Se la apri e chiudi ogni lettura, invece potrebbe essere plausibile. Però a parte il servizio del modem di NetworkManager non so chi potrebbe andarla a toccare. _________________ Linux registered user 461710 |
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4810 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Fri Nov 29, 2013 4:28 pm Post subject: Re: [arduino] confltti sulla porta seriale |
|
|
pierino_89 wrote: | mi pare si possa sistemare con stty |
si. qualche volta riesco a riprendere il controllo con stty, ma non è un workaround sicuro.
a volte non c'è proprio verso. addirittura devo ributtare la macchina che sembra windows.
non ricevo mai, però, dei "device busy". _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 524
|
Posted: Fri Nov 29, 2013 5:01 pm Post subject: |
|
|
In un progetto ho un lettore RFID usb, che mi crea una seriale ttyACM0 a 9600 baud/s, che se non ricordo male è lo stesso settaggio di Arduino.
A me interessa solo leggere i codici che stampa, riga per riga, quindi ho un programmino che legge un pugno di caratteri e lo sputa su stdout (e fa un flush del buffer subito dopo). In pipe ti giuro che funziona. Vedi se può fare al caso tuo.
https://github.com/pierinz/citofonoweb/blob/rewriteC/serial_read.c
(è l'ultimo arrivato del progetto quindi è fatto abbastanza al volo, ma dovrebbe garantire le funzionalità minime) _________________ Linux registered user 461710 |
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4810 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Thu Dec 05, 2013 8:50 pm Post subject: |
|
|
alla fine, credo di avere risolto che, nel mio caso, serve questa riga di stty:
Code: |
stty -F /dev/arduino 1:0:1cb2:80:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
|
molte delle soluzioni che si trovano in internet, funzionano solo in certi casi.
se si accede alla seriale con programmi diversi, infatti, può accadere che uno di essi lasci la seriale in uno stato non utilizzabile agli altri programmi e non ripristinabile con una riga di stty imperfetta.
quella che ho postato sopra sembra piuttosto efficace.
la faccio attivare con una regola di udev e ho aggiunto nel sistema un comando apposito per ripristinare la configurazione all'occorrenza.
non ne sono certo del tutto, ma adesso ho la sensazione di avere trovato una configurazione stabile. _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
|