Home Forum MICROCONTROLLORI Quale linguaggio per leggere da seriale?

Questo argomento contiene 8 risposte, ha 6 partecipanti, ed è stato aggiornato da  telegiangi61 3 anni, 2 mesi fa.

Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #58361

    gfucka
    Membro

    Ciao a tutti, volevo chiedere il vostro aiuto.
    Vorrei realizzare un progetto con arduino che mi consenta di leggere un tag rfid e mi invii il codice univoco del tag al pc (fino a qui ci sono arrivato) adesso da pc vorrei leggere questo codice e visualizzare informazioni diverse in base appunto al codice letto.
    Vorrei però usare (lato pc) un linguaggio che mi constenta in modo veloce di realizzare GUI tipo Vb.NET o il Visual C++ o ancora il C#.
    Potreste consigliarmi quale tra questi linguaggi o anche altri che non ho citato è il più indicato per andare a leggere il dato inviato da arduino sulla seriale??
    Capisco bene che potrei farlo con tutti i linguaggi in quanto credo che ognuno abbia una libreria o delle funzioni che mi consentano di leggere la seriale,m a cercavo quello più adatto e che mi permettesse di farlo nel modo più veloce possibile, ad es. se ci sono delle librerie già pronte per interfacciare tale linguaggio con arduino ecc…

    Vi ringrazio per l’aiuto
    ….aspetto risposte…..:-)

    #70205

    Emanuele
    Keymaster

    Interfacciarsi con la porta seriale è possibile grazie ai vari driver, librerie o funzioni, richiamabili appunto dal linguaggio scelto. Penso ormai ognuno di quelli che hai citato abbia tale possibilità.

    Addirittura per una rapida lettura della seriale puoi usare Hyperterminal (o Minicom sotto Linux).

    Dipende tutto quindi dal linguaggio che conosci meglio, scegli quello!

    vedi anche:

    http://it.emcelettronica.com/comunicazione-seriale-c

    e

    http://it.emcelettronica.com/comunicazione-con-porta-seriale-excel-vba

    e

    http://it.emcelettronica.com/scheda-rel%C3%A8-con-connessione-ethernet-premio-qualit%C3%A0

    #70206

    gfucka
    Membro

    Grazie per la risposta tempestiva.
    Stavo pensando di utilizzare e il c++ con le librerie qt per la parte grafica in modo da rendere l’applicazione os-indipendent.
    Cosa ne pensi? Sapresti indicarmi qualche esempio in c++ di come andare a leggere dati dalla seriale?
    Grazie ancora siete una risorsa unica!

    #70219

    Fabrizio87
    Membro

    Prima di tutto è necessario tenere in conto che la seriale è gestita diversamente tra i due sistemi operativo Windows e linux,

    se vuoi fare un applicativo multipiattaforma, è necessario che scrivi un codice comune per l’interfaccia grafica ad esempio come dici tu usando Qt, è dopo ti devi scrivere due gestionali di seriali diversa uno che ogni sistema operativo che vuoi incrementare.

    Se vuoi scrivere esclusivamente per il sistema Microsoft e posso consigliare di usare visual studio express dove la seriale è facilissima da gestire visto che è già tutto è pronto da utilizzare c’è perfino l’icona fatta apposta,

    Sennò avrei un’altra possibilità da confonderti un po’ più complessa da implementare ma in questo caso sarebbe già prevista per girare su qualsiasi sistema operativo, sarebbe da usare il linguaggio Python usando la libreria http://pyserial.sourceforge.net/ che molti piattaforma di questa.
    ma per interfaccia grafica dopo ti devi ottenere usando comunque sia Qt.

    Comunque sia buon coraggio che una cosa difficile da gestire l’interfaccia seriale su un computer.
    Io personalmente ciò rinunciato ed uso sui miei progetti un’interfaccia Ethernet così da avere compatibilità con tutti i sistemi operativi senza nessun problema, e non sono limitato ad usare computer posso usare anche dispositivi come smar phone

    #70228

    stefano88
    Membro

    Allora guarda se vuoi una applicazione multipiattaforma ascolta tranquillamente Fabrizio, altrimenti ti posso consigliare(anche se detesto questo linguaggio) il Visual C#, diciamo che per gestire il seriale va più che bene ed esiste un sito che spiega in dettaglio come usare la porta seriale con arduino, semplicemente ti basta caricare, tramite l’ IDE, lo Standard Firmata e poi sei apposto perché non hai più bisogno dell’IDE e leggi tutti i dati tramite Visual C#, non è nulla di complesso, è abbastanza semplice come procedimento.
    Il sito di cui ti parlavo, ancora non l’ho trovato, non appena l’ho trovo lo scrivo. Comunque un’altra via che puoi fare è scrivere il firmware su IDE mandando tutti i dati che vuoi sulla seriale, ad esempio con i comandi Serial.Begin ecc… dopo di ché leggi i dati da C#. Comunque se hai bisogno per delucidazioni io ci sono e ti spiego quello che non capisci. Spero solo di trovare quel sito di cui parlavo

    #70234

    gfucka
    Membro

    Grazie mille per l’aiuto, si in realtà avevo pensato al C# però ero indeciso anche perchè non trovavo nulla in giro, se riesci a trovare quel sito mi sarebbe davvero di grande aiuto!
    Con c++ invece sai se è possibile fareuna comunicazione con la seriale in modo non complicatissimo?
    Ah ci tenevo a precisare una cosa io parlo di seriale ma in realtà devo usare la usb di arduino però da quanto ho capito dal pc è vista come seriale!Spero di non sbagliarmi!
    Aspetto tue notizie allora e grazie ancora a te e a tutti quanti!

    #70236
    Luca Giuliodori
    Luca Giuliodori
    Partecipante

    Ciao gfucka,

    non conosco bene il codice di Arduino ma è molto probabile che la seriale venga vista come seriale, rientra nella classe CDC del protocollo USB e serve proprio a simulare una porta seriale o parallela per far si che i PC senza queste porte, la possano simulare (oramai tutti i nuovi PC non hanno più ne seriale ne parallela ma si trovano in commercio dei brigde che realizzano proprio questa virtualizzazione).

    Tutti i linguaggi che hai citato hanno la libreria per la gestione della RS232 o alla peggio puoi sempre usare le API di windows (parlo di windows perchè dai linguaggi di programmazione che hai citato ho l’impressione che intendi implementarlo per windows).

    Come dice Emanuele io ti consiglio di verificare la correttezza dei dati ricevuti con HyperTerminal, giusto per fare un promo debug (solitamente le COM virtualizzare hanno numeri di porta alti, del tipo COM17; per vedere quale è la tua che hai collegato puoi andare su gestione dispositivi del tuo sistema operativo).
    Se vuoi utilizzare un linguaggio con cui riesci ad implementare con semplicità il tuo software, io ti consiglio di usare VB.NET: con poche righe di codice riesci a ricevere i dati che stai inviando e visualizzarli in una GUI, anche questa realizzabile con poche righe di codice.
    Io ti consiglio anche di valutare il Java: anche con questo linguaggio riesci ad implementare la tua GUI e la ricezione da seriale con poche righe di codice, con il vantaggio però di avere un programmino multipiattaforma (la gestione delle COM è la stessa anche su altri sistemi operativi).

    Chiaramente con poche righe di codice non riuscirai ad ottenere una GUI dal design innovativo e con grandi funzioni ma sicuramente, una volta che hai testato il suo funzionamento, con i linguaggi che ti ho consigliato hai tutte le potenzialità per poter rendere più accattivante la tua interfaccia utente.

    Facci sapere.

    #70237

    Fabrizio87
    Membro

    ti consiglio di leggere questi due siti parlano della programmazione C, che alla C++

    http://www.ontrak.net/c.htm

    http://electrosofts.com/serial/

    #70240

    telegiangi61
    Membro

    ti posso dare il link di un programmino molto pratico in sostituzione all’Hyperterminal
    che ho usato spesso per progetti Microchip dove dovevo verificare cosa passava realmente sulla seriale.

    http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm

    Poi per windows ti consiglio VB Express, che e’ molto semplice da utilizzare.

Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.