[AIUTO] Softwaristici avete un programma che manda caratteri su seriale?

Devo realizzare un bel programma - lato PC - per controllare delle uscite di un ATmega2560 e riceverne anche i suoi output.

Mi servirebbe, quindi, un programma in VB o anche C++ con disponibili i sorgenti cui proverei a modificare per adattare l'applicazione alla bisogna.

Basta che mandi dei caratteri con qualche pulsante, qualche lampadina software che si accende, e poi ci penso io a gestire il protocollo lato MCU.

Qualcuno ha già due righe scritte o nelle sue cartelle (o un Link) un programma del genere?

se scarichi Processing negli esempi hai gia' roba che scrive su seriale
Non so se lo conosci, l'IDE e' quella di arduino ed anche il concetto base di librerie, ecc, pero' sotto sotto usa java

Più che altro volevo un bel Form in stile VB, con dei bei pulsantoni e dei bei led che si accendono, senza dover disegnare tutto io "a mano" con Processing...

non disegni a mano, ci sono le librerie grafiche e posizioni i tuoi form ed i tuoi bei pulsanti

Hai da postare qualche pic di esempio di cosa appare a schermo?

piu' che immagine ti posto rpoprio un esempio funzionante ed interattivo :wink:
http://www.lagers.org.uk/g4p/ex-showcase/index.html

a destra cliccando sui nomi, non sul pallino, puoi testare tutte le funzionalita'

Mi fanno un pò cagare! Vedo se riesco a farmele piacere...

in grafica non brillano, ma calcola che puoi sempre sostituire le sole immagini, tenendo il codice superiore inalterato

se ti piace puoi usare la mia app per chrome http://www.dataino.it/help/document_tutorial.php?id=13

poi se ti serve qualche pulsate o altro lo posso sempre implemetare

ciao

Benvenuto sul forum dataino
Immaginavo che qualcuno cogliesse l'opportunità della api seriale di chrome
Bel lavoro, funziona su tutti i sistemi operativi ?
Su chrome per android ?

Ciao Grazie
per ora fuziona su PC appena ho un poco di tempo libero studierò android e la sua seriale /bluetooth
Su android ho fatto dei test con l'interfaccia web ma devo convertire alcune cose per il 'mobile'

Se vuoi invece usare VB, come chiedevi, basta inserire nel form un "Serial port".
Metti la porta com nelle proprietà, fai un open() sull'evento form load e puoi inviare tutto quello che ti pare.

Per aprire la porta metti al form load:

 SerialPort1.Open()

per scrivere:

SerialPort1.Write(cosadascrivere)

dove cosadascrivere è una stringa quindi all'inizio c'è:

Dim cosadascrivere As String

e da qualche parte:

cosadascrivere = "x"

metti al posto di "x" quello che vuoi scrivere
ovviamente il write lo associ al click sul bottone o dove occorre.

all'uscita quindi form close metti la chiusura:

SerialPort1.Close()

Paolo il tuo suggerimento è quello che cercavo, anche se volevo trovare già qualcosa di pronto. Non uso VB da almeno 6 anni, saresti disponibile a seguirmi passo passo in questo post?
Intanto che versione VB installo? La Express 2010 va bene? E la versione .NET che roba è?

Sompatica la versione "chromica"...

Installa la express che è gratis, io ho la 2012 ma è uscita la 2013 da poco (!).

Se ti serve qualche indicazione, a disposizione.

Ora installo la Express e poi torno qua ad angosciarti...

Paolo ma nel caso devo spedire una stringa, e non solo un singolo carattere, come mi devo comportare lato VB? E lato MCU?

Un solo carattere è una stringa di lunghezza 1.
Lato computer, basta che tu assembli la stringa con i caratteri che devi spedire, siano essi 1 oppure 10 oppure 50. Poi li mandi 1 ad 1.

Lato micro, ti metti in ascolto e ricevi dati non appena iniziano ad arrivare, salvandoli in un buffer: ricordati che di serie l'Arduino setta i buffer di RX e TX a 64 byte, quindi se spedisci un blocco di dati molto grosso e non lo recuperi in tempo, potresti perderti dei dati per strada.

come mi ha insegnato leo quel buffer puoi modificarlo nel file che gestisce la seriale nel core arduinico, pero' quella e' ram fissa che resta occupata, anche se vuota, quindi inizi in breve tempo a sbattere la testa con la ram.
Piu' o meno quanto pensi sia grande la stringa che vuoi inviare, e poi quella stringa viene analizzata e liberata, oppure ti serve tenerla ? (ad esempio se ti serve tenerla per visualizzarla su un lcd la cosa e' ancor piu' pericolosa, perche' magari durante l'invio hai ram a disposizione per contenerla, poi pian piano il rpogramma fa altre cose e si trova a corto di ram)
Di certo una stringa di 100 parole e' un conto, di mille e' un altro :slight_smile:

BaBBuino:
Paolo ma nel caso devo spedire una stringa, e non solo un singolo carattere, come mi devo comportare lato VB? E lato MCU?

Lato MCU ti hanno già risposto.
Lato VB, come ti dicevo:

SerialPort1.Write(cosadascrivere)

dove cosadascrivere è una stringa che può essere di 1 carattere o maggiore

C'è anche la Writeln se dovesse servire...

Ho qualche difficoltà perchè non mi funziona.

Ma non è che VB spedisce un carattere ASCII, mentre la MCU interpreta quel carattere come bit (o 2 byte)

Spedisco 15 da VB ed la MC riceve in realtà 2 byte 31HEX (carattere 1) e 35HEX (carattere 5)?