Urbana Padova
Offline
Full Member
Karma: 0
Posts: 196
a piccoli passi.
|
 |
« Reply #15 on: April 07, 2010, 03:56:23 am » |
[cite]Tieni presente che con "s=serial.Serial(1)", cerchi i dati sulla seconda porta seriale. quindi, su linux /dev/ttyS1; e da quel che mi risulta, su windows, com1 (non sono sicurissimo di windows perchè non ho modo di provare) [cite] Il problema con windows è che devi sapere il driver della seriale virtuale come viene mappato. (Nel mio caso sono COM8 e COM9, ma uso 2 Arduini2k9). Potresti chiedere alla Classe Serial di dirti quali seriali vede. In genere è l'ultima e compare e scompare quando colleghi arduino .... quindi è facile da capire quale sia. Se non vuoi impelagarti con il codice, verifichi tramite l'ide quale porta COM compare e scompare quando colleghi Arduino  Ciao
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #16 on: April 07, 2010, 07:27:00 am » |
amici avete pienamente ragione sull'utilizzo di linux al posto di windows e mi prometto che vi passero appena avro' risolto il problema di usare 3 monitor con 2 schede video sotto linux dal quale attualmente sto postando.
Ma torniamo a noi....
la porta è la com3 come risulta dall'idle di arduino quando vado ad usare python dopo la linea finale di print s non mi stampa alcun valore eppure anche da pytho risulta la porta com3. Mah!
>>> import serial >>> s=serial.Serial(2) >>> print s Serial<id=0xaf0f90, open=True>(port='COM3', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0, dsrdtr=0) >>> while(2): line=s.readline() print line
|
|
|
|
|
Logged
|
|
|
|
|
Torino - Linux
Offline
God Member
Karma: 0
Posts: 522
Pigs on the wings!
|
 |
« Reply #17 on: April 07, 2010, 09:45:31 am » |
@Pelletta, ti prego, no flame. Sebbene anche io prediliga Linux anche windows è un ottimo sistema operativo. Con i propri pregi e difetti.
@Luka, tieni conto che la stessa considerazione vale per windows.Se tu scrivi s=serial.Serial(1) stai dicendo di aprire le comunicazioni con la COM1. Il tuo IDE dialoga con questa? Se si allora non comprendo altrimenti basta modificare il numerino. Prova e facci sapere: il codice è esatto se riprendi il primo sketch indicato nella pagina che hai linkato.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #18 on: April 08, 2010, 03:04:38 am » |
Luka, tieni conto che la stessa considerazione vale per windows.Se tu scrivi s=serial.Serial(1) stai dicendo di aprire le comunicazioni con la COM1. Il tuo IDE dialoga con questa? Se si allora non comprendo altrimenti basta modificare il numerino. Prova e facci sapere: il codice è esatto se riprendi il primo sketch indicato nella pagina che hai linkato.
ma infatti ho inserito il 2 in quanto mi riconosce la com3 come riporta la stampa in python: Serial<id=0xaf0f90, open=True>(port='COM3' o mi sto confondendo?
|
|
|
|
|
Logged
|
|
|
|
|
Torino - Linux
Offline
God Member
Karma: 0
Posts: 522
Pigs on the wings!
|
 |
« Reply #19 on: April 08, 2010, 04:25:28 am » |
direi che va bene. A quel ptuno il tuo codice python dovrebbe essere: import serial s=serial.Serial(2) while(1): line=s.readline() print line
Una domanda importante: ovviamente dal IDE di Arduino leggi l'output dalla scheda correttamente vero??? : 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #20 on: April 08, 2010, 06:49:42 am » |
bhè la porta è settata correttamente e gli sketch vengono tutti caricati.
Ma non dovrei cambiare anche while(1) in while(2)?
|
|
|
|
|
Logged
|
|
|
|
|
Milano, Italy
Offline
Faraday Member
Karma: 10
Posts: 3080
Sideralis Arduino!
|
 |
« Reply #21 on: April 08, 2010, 07:41:39 am » |
No, while(1) e' un escamotage, che significa "fallo sempre". 1 in C significa True, e finche' vero e' vero il loop continuera'. Si esce dal loop con la chiamata break F
|
|
|
|
« Last Edit: April 08, 2010, 07:42:50 am by federico »
|
Logged
|
|
|
|
|
Torino - Linux
Offline
God Member
Karma: 0
Posts: 522
Pigs on the wings!
|
 |
« Reply #22 on: April 08, 2010, 07:46:17 am » |
No, non devi. Questo perchè while(1) è un ciclo "infinito" Ma quindi fammi capire e dimmi se corrisponde tutto alle azioni che fai: - Avvii l'IDE Arduino
- Imposti la porta e la scheda
- Carichi lo sketch correttamente
- Dall'IDE apri il "Serial Monitor"
- Sul serial monitor leggi correttamente l'output
- A questo punto chiudi il serial monitor
- Avvii il programmino in python
Tutto corretto? Segui questi passaggi. Eventualmete cambia l'istruzione s=serial.Serial(2) in s=serial.Serial(3) e rilancialo. Mi dici che errori ottieni esattamente?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #23 on: April 08, 2010, 08:20:26 am » |
il processo è quello che hai postato tu, attualmente non ho arduino sottomano appena posso smanetto. L'errore è che python si blocca e non mi stampa nessun valore dalla seriale
|
|
|
|
|
Logged
|
|
|
|
|
Castelletto Sopra Ticino, IT
Offline
Full Member
Karma: 0
Posts: 169
Yes we can!
|
 |
« Reply #24 on: April 08, 2010, 09:44:54 am » |
L'errore è che python si blocca e non mi stampa nessun valore dalla seriale Strano che si blocchi senza dare nessuna indicazione di errore. Ma da risorse del sistema di wondows con che device vedi la porta seriale? COM3?
|
|
|
|
|
Logged
|
|
|
|
|
Urbana Padova
Offline
Full Member
Karma: 0
Posts: 196
a piccoli passi.
|
 |
« Reply #25 on: April 08, 2010, 10:31:10 am » |
s=serial.Serial(1)
Mi viene solo un dubbio ... sicuri che sia "dammi la prima" e non "dammi la seriale con indice 1". Credevo fosse un'array di Serial, quindi la seriale di indice 1... La prima dovrebbe avere l'indice a 0.... Non so se con Pyton le cose cambino ... non conosco il linguaggio. Solo una curiosità. Altra curiosità. La velocità è la stessa in entrambe le seriali, vero? Non è che arduino lavori a 9600 e pyton a 120000?
|
|
|
|
« Last Edit: April 08, 2010, 10:32:32 am by Stilgar »
|
Logged
|
|
|
|
|
Torino - Linux
Offline
God Member
Karma: 0
Posts: 522
Pigs on the wings!
|
 |
« Reply #26 on: April 08, 2010, 11:34:34 am » |
Ciao Stilgar, effettivamente il motivo per il quale ho scritto a Luka di modificare l'indice è proprio perchè non so bene se vuole l'indice o il numero della COM.
Per quanto riguarda la velocità, se si omette python lavora a 9600 altrimenti bisogna specificarlo: questo è motivo per il quale ho chiesto a luka di psotare esattamente lo sketch che ha utilizzato.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #27 on: May 31, 2010, 03:59:34 pm » |
Arieccomi, tornato a casa in toscana torno a smanettare.
nel serial monitor mi restituisce questo: serial monitor [][][][][][][][][]<-quadrati
chiudo il serial monitor ed inserisco il codice in python 2.5 e non succede niente, o meglio il cursore è sotto le >>> senza fare niente
mah!
|
|
|
|
« Last Edit: May 31, 2010, 04:00:11 pm by ArdLuka »
|
Logged
|
|
|
|
|
Milano, Italy
Offline
Faraday Member
Karma: 10
Posts: 3080
Sideralis Arduino!
|
 |
« Reply #28 on: May 31, 2010, 04:52:26 pm » |
Hai verificato con attenzione che la velocita' di lettura sia identica a quella di scrittura, sulla seriale? F
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 35
Arduino rocks
|
 |
« Reply #29 on: May 31, 2010, 05:53:43 pm » |
sempre dal serial monitor?
|
|
|
|
|
Logged
|
|
|
|
|
|