Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Gestione linee seriali: come e con quale linguaggio?

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[11] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto Utenteangus » 27 gen 2011, 2:39

ecco un po' di codice, come promesso.
è un'implementazione MOLTO spartana di un terminale, usando la documentazione si riesce a fare molto meglio, inclusa la GUI.
Non dite che sono fissato, è in Python (usando pyserial che è comodissimo. inoltre ci sono già degli esempi inclusi molto più completi del mio)
Codice: Seleziona tutto
import time
import serial
p = serial.Serial(port='/dev/ttyS1')
p.open()
p.isOpen()
while 1 :
    input = raw_input("> ")
    r = ''
    p.write(input)
    time.sleep(1)
    while p.inWaiting() > 0:
        r += p.read(1)
    if r != '':
        print "> " + r

edit: non l'ho detto, ma l'esempio funziona su Linux e python 2.x, con quella che in Windows sarebbe la COM2, ma con poco sforzo si adatta a qualsiasi piattaforma e si possono inserire altre opzioni tipo la parità i bit di stop, ecc...
Altrettanto agilmente, al posto dell'input da tastiera si possono usare sequenze preimpostate, o costruirci sopra un'applicazione vera e propria.
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[12] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto UtenteTardoFreak » 27 gen 2011, 14:18

Ho provato ad installare ed usare RXTX ma non riesco a cavarci un ragno dal buco.
Phyton e' un linguaggio con interfaccia grafica?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[13] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto Utentexyz » 27 gen 2011, 14:59

TardoFreak ha scritto:Ho provato ad installare ed usare RXTX ma non riesco a cavarci un ragno dal buco.

Guarda i sorgenti di Arduino dell'interfaccia grafica, è scritta in Java e usa quel modulo per comunicare con la seriale.

TardoFreak ha scritto:Phyton e' un linguaggio con interfaccia grafica?

Il Python è un linguaggio di programmazione open source multi piattaforma con diversi moduli per i widget grafici. Di default viene distribuito il modulo "tkinter" il quale si basa sui widget TK (quelli usati dal TCL). Esistono altri moduli per altri widget:

http://docs.python.org/library/othergui.html
http://docs.python.org/faq/gui.html
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[14] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto UtenteTardoFreak » 27 gen 2011, 15:01

Scusa ma sto diventando matto. Dove trovo i sorgenti Java di arduino?
Come si chiama il file?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[15] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto Utenteangus » 27 gen 2011, 15:48

https://github.com/arduino/Arduino

Per il resto: se sei più abituato ad usare Java e ti trovi meglio, segui l'ottimo consiglio di xyz
altrimenti puoi sempre seguire il mio esempio.
Tra l'altro, da una rapida ricerca, vedo ora che alcuni hanno usato proprio Python per interagire con Arduino.

ciao!
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[16] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto UtenteTardoFreak » 27 gen 2011, 16:00

Ho installato RXTX, ho provato il serial demo che davano con javaxcomm sostituendo gli
Codice: Seleziona tutto
import javax.comm.*;

con
Codice: Seleziona tutto
import gnu.io.*;

Questa volta si compila, parte e ... funziona male. Nel senso che la scheda collegata alla seriale da' l' eco dei comandi (e vengono visualizzati i tasti man mano che li premo) ma ... non mi visualizza le risposte della scheda. ||O
Se prendo l' adattatore, ponticello RX con TX funziona bene, se tolgo il ponticello, giustamente, non riceve niente e non visualizza niente.
Se prendo l' adattatore, lo collego alla SCU (verificato il funzionamento con HyperTerminal) stranamente mi visualizza solo l' echo ma non gli altri caratteri che la scheda m' invia.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[17] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto Utenteangus » 27 gen 2011, 16:12

A questo punto, solo a livello di mia curiosità e visto che la cosa ti ruba 3min di orologio, potresti provare se quel codice che ho postato ti funziona come dovrebbe?
Io l'ho provato, ma chiaramente non ho la tua SCU attaccata...
Ah.. se scarichi python 3.x al posto del 2.x, sostituisci "raw_input" con "input"
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[18] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto UtenteTardoFreak » 27 gen 2011, 16:20

Lo sto scaricando (versione 3.1.2)
Devo cambiare anche
Codice: Seleziona tutto
p = serial.Serial(port='/dev/ttyS1')

in
Codice: Seleziona tutto
p = serial.Serial(port='COM4')


Giusto?

Edit: ho installato e chiamalo la shell. Come devo fare per caricarci il programma? :-M

Edit2: ho installato anche il pacchetto seriale ed ho provato ad inserire il programma linea per linea in questo modo:
Codice: Seleziona tutto
import time
import serial
p = serial.Serial(port='COM4')
p.open()

e qui si blocca perche' mi dice che non puo' aprire il dispositivo: accesso negato. ||O

Santa pazienza! :roll:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[19] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto Utenteangus » 27 gen 2011, 17:35

è un interprete, non un compilatore.. quindi fai una cosa tipo:
Codice: Seleziona tutto
python nometuofile.py

ricordati che ti serve anche pyserial

edit: scusa ho letto il tuo messaggio dopo, per la COM, credo dovresti usare qualcosa tipo
Codice: Seleziona tutto
\\.\COM4
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.490 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[20] Re: Gestione linee seriali: come e con quale linguaggio?

Messaggioda Foto UtenteTardoFreak » 27 gen 2011, 17:58

Ho provato (con il prompt di MS-DOS) in diversi modi con 'COM4','com4','COM4:','\\.\COM4' ma non va, mi da l' errore could not open port COM4 [erroor 5] Accesso negato. :(
Per essere sicuro l' ho anche provato con la versione 2.7 (con il suo pacchetto serial)

Prossimo giro chiamo un esorcista. :(
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

PrecedenteProssimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti