Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« on: July 14, 2011, 12:38:37 pm » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Riva del Garda, TN / Forlì
Offline
Edison Member
Karma: 7
Posts: 2075
Il piu' modesto al mondo
|
 |
« Reply #1 on: July 14, 2011, 01:19:45 pm » |
hai provato col serial monitor da linux?
|
|
|
|
|
Logged
|
|
|
|
|
Rome
Offline
God Member
Karma: 1
Posts: 564
La mia prima bromografata!!
|
 |
« Reply #2 on: July 14, 2011, 02:05:51 pm » |
magari è sbagliata la velocità nel serial monitor.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #3 on: July 15, 2011, 01:21:44 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Roma / Benevento
Offline
Full Member
Karma: 0
Posts: 183
Guardava al futuro con l'inguaribile ottimismo di un dodo...
|
 |
« Reply #4 on: July 15, 2011, 02:58:17 am » |
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: stty -F /dev/ttyUSB0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts Ciao
|
|
|
|
|
Logged
|
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132
|
|
|
|
Roma / Benevento
Offline
Full Member
Karma: 0
Posts: 183
Guardava al futuro con l'inguaribile ottimismo di un dodo...
|
 |
« Reply #5 on: July 15, 2011, 03:06:52 am » |
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 tail -f /dev/ttyUSB0 & Ciao
|
|
|
|
|
Logged
|
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #6 on: July 15, 2011, 03:49:03 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Roma / Benevento
Offline
Full Member
Karma: 0
Posts: 183
Guardava al futuro con l'inguaribile ottimismo di un dodo...
|
 |
« Reply #7 on: July 15, 2011, 04:52:03 am » |
hai impostato nei comandi il dev giusto? Nel codice avevo messo /dev/ttyUSB0 solo come esempio... Ciao
|
|
|
|
|
Logged
|
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #8 on: July 15, 2011, 05:18:24 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16449
Don't know what I do
|
 |
« Reply #9 on: July 15, 2011, 04:43:53 pm » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Roma / Benevento
Offline
Full Member
Karma: 0
Posts: 183
Guardava al futuro con l'inguaribile ottimismo di un dodo...
|
 |
« Reply #10 on: July 16, 2011, 08:01:16 am » |
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
|
|
|
|
|
Logged
|
Linux User #503422 | Linux Machine #414597-8 | Ubuntu User #30132
|
|
|
|
|