Go Down

Topic: La seriale fa le bizze (Read 735 times) previous topic - next topic

Salve a tutti, sto riscontrando uno strano comportamento della seriale sulla arduino 2009. In pratica ho uno sketch che riceve un carattere "a" terminata da \n e accende un led. Su Windows con il serial monitor e anche con putty tutto ok.
Su linux non c'é verso di farla andare: viene riconosciuta come /dev/ttyUSB0
quindi mando il comando  echo "a\n" > /dev/ttyUSB0 ma non succede niente anche se vedo la lucina rx di arduino che si accende.
Ho provato ad inviare il carattere da solo senza \n ma niente. Ho provato anche con python e pyserial ma niente.
Leggendo sui vari post ho trovato dei riferimenti al reset di arduino con la comunicazione seriale.
Ma perché con il serial monitor funziona e su linux no? Inoltre con python non dovrebbe avere problemi.
Qualche suggerimento?? Grazie
Freedomotic Open IoT Framework
http://www.freedomotic.com
We need your help. Please contact us for contributing

superlol

hai provato col serial monitor da linux?
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

dab77

magari è sbagliata la velocità nel serial monitor.

si col serial monitor funziona sia in win che linux con velocità 9600, con altre più elevate no
in altri modi non va
mi domandavo cosa abbia di particolare il serial monitor
Freedomotic Open IoT Framework
http://www.freedomotic.com
We need your help. Please contact us for contributing

MGuruDC

Se dal terminale di Linux dai semplicemente echo x > tty la velocità della seriale non è giusta e neanche il terminale  è impostato correttamente...
Prima devi dare questo:
Code: [Select]
stty -F /dev/ttyUSB0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Ciao
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132

MGuruDC

Altra cosa:
Se non apri prima il terminale in ascolto l'Arduino non comincia a comunicare...
Se non sei interessato a cosa dice puoi usare
Code: [Select]
tail -f /dev/ttyUSB0 &
Ciao
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132

ho provato con la lunghissima stringa per l'impostazione della porta ma niente, non succede niente
ora ricarico lo stesso sketch su arduino uno dove ho visto che la porta é riconosciuta come /dev/ttyACM0
Freedomotic Open IoT Framework
http://www.freedomotic.com
We need your help. Please contact us for contributing

MGuruDC

hai impostato nei comandi il dev  giusto?
Nel codice avevo messo /dev/ttyUSB0 solo come esempio...
Ciao
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132

sì ho messo /dev/ttyUSB0 per la 2009 e ho provato con /dev/ttyACM0 per la Uno
in entrambi i casi ho recuperato il device leggendo dmesg dopo il collegamento del dispositivo
purtroppo non funziona
Freedomotic Open IoT Framework
http://www.freedomotic.com
We need your help. Please contact us for contributing

leo72

Su Linux c'è un problema di gestione delle porte differente rispetto a Windows: ogni volta che apri la comunicazione verso una porta seriale, questa viene resettata.

Serial monitor: se ti riferisci al monitor dell'IDE, l'unica particolarità che ha è che tiene aperta la connessione fintanto che è aperto il terminale seriale (che poi è un emulatore). In questo modo non viene resettato l'Arduino ad ogni invio di comando.

Stessa cosa dovresti ottenerla con un terminale quale gtkterm: se apri la connessione, poi puoi comunicare tranquillamente con l'Arduino perché non viene resettato più fintanto che resta aperta la connessone.

MGuruDC


sì ho messo /dev/ttyUSB0 per la 2009 e ho provato con /dev/ttyACM0 per la Uno
in entrambi i casi ho recuperato il device leggendo dmesg dopo il collegamento del dispositivo
purtroppo non funziona


Ok ma ricorda che la porta non è sempre ttyUSB0 o ttyACM0, potrebbe essere ttyUSB1, 2, 3... 30000...
Ciao
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132

Go Up