Monitor seriale inadeguato

Ciao a tutti (e buon 2015!)

Non riesco proprio piu' a sopportare le assurde limitazioni del serial monitor di Arduino..
Poter osservare 2 diverse variabili e' gia' un macello.. figurarsi se si vogliono tenere sott'occhio dieci o venti variabili...

Ho visto che esistono altri monitor seriali (anch'essi davvero poco amichevoli).

Ma e' possibile che non esista un monitor seriale nel quale posso, specificando le coordinate X e Y, appiccicare tutto il testo e tutte le variabili desiderate?

Che so, una roba del genere:

text 10,10,"ciao mondo"
text 50,10," blah"
text 200,150,"valore variabile = "+var
text 200,170,"valore variabile 2 = "+var2
text 200,190,"valore variabile 3 = "+var3

Potresti usare un emolatore di un terminale per esempio un VT100. con delle sequenza escape puoi settare la posizione del cursore vedi http://ascii-table.com/ansi-escape-sequences-vt-100.php
MA é un casino e devi programmare Tu la visualizzazione del testo. Usa la macro F():
Ciao Uwe

uwefed:
Potresti usare un emolatore di un terminale per esempio un VT100. con delle sequenza escape puoi settare la posizione del cursore vedi http://ascii-table.com/ansi-escape-sequences-vt-100.php
MA é un casino e devi programmare Tu la visualizzazione del testo. Usa la macro F():
Ciao Uwe

:o mmmmmmmm
Scusa l'ignoranza.. cos'e' la macro F()? libreria per gestire il testo con il monitor seriale standard?

é una makro che evita che il testo da stampare venga copiato un RAM.
esempio

Serial.print(F("testo"));

Ciao UWe

Forse non conosci questa semplice funzione di tabulazione:

  Serial.println(F("Var1\tVar2\tVar3"));
  Serial.print(Var1);
  Serial.print("\t");
  Serial.print(Var2);
  Serial.print("\t");
  Serial.print(Var3);

mmm grazie ragazzi ma non riesco proprio ad ottenere nulla di decente..

@cyberhs:

con la tua formattazione ottengo, in un'unica stringa:

10 20 30Var1 Var2 Var3

ma un modo per fare apparire in un unica stringa questo? :

Var1 = 10 Var2 = 20 Var3 = 30

proprio non riesco ad ottenerlo

mm ce l'ho fatta ::slight_smile: meglio di niente!

 Serial.print(F("Var1= "));
 Serial.print(Var1);
 
 Serial.print(F(" Var2= "));
 Serial.print(Var2);
 
 Serial.print(F(" Var3= "));
 Serial.print(Var3);
 
 Serial.println("");

Veramente dovresti ottenere qualcosa di simile a questo:

Var1 Var2 Var3
10 20 30

cyberhs:
Veramente dovresti ottenere qualcosa di simile a questo:

Var1 Var2 Var3
10 20 30

mmmm ti confermo:
10 20 30Var1 Var2 Var3

con scorrimento automatico

Ho capito: l'ultima istruzione del mio listato deve essere un Serial.println(...);

cyberhs:
Ho capito: l'ultima istruzione del mio listato deve essere un Serial.println(...);

Si ora funziona, grazie cyberhs.

Ciao,

Se vuoi un alternativa puoi scrivere un piccolo programmino in Processing, che serve anche per fare programmi di grafica, che leggendo i dati sulla porta usb che arrivano da arduno li mostra a monitor esattamente come vuoi tu, usando XeY colori , font vari etc....

Diego1979:
Ciao,

Se vuoi un alternativa puoi scrivere un piccolo programmino in Processing, che serve anche per fare programmi di grafica, che leggendo i dati sulla porta usb che arrivano da arduno li mostra a monitor esattamente come vuoi tu, usando XeY colori , font vari etc....

Ciao Diego, hai qualche programma di processing da consigliarmi? programmarlo io boh, non saprei da dove iniziare..

Per processing devi per forza progettare tu il tuo programma, a seconda delle necessità che hai.

aldoz:
Non riesco proprio piu' a sopportare le assurde limitazioni del serial monitor di Arduino..

Una soluzione per ottenere quello che desideri, e non solo per Arduino, è Megunolink, puoi scaricare una trial per 7 giorni in modo da valutare se ti va bene, poi lo compri per 30$, io lo uso spesso ed è comodissimo.
C'è anche un versione lite (free) solo per Arduino, però è limitato al solo plotting dei dati senza poter visualizzare campi fissi e/o interagire con il programma.

Allora ragazzi ho puntato sia "PROCESSING 2.2.1" sia quello consigliato da astrobeed.

Mi confermate che entrambi sono due programmi processing, e che entrambi permettono di leggere le variabili di Arduino e getirle graficamente con interfacce grafiche configurabili, tabelle, grafici e gingilletti vari?

E ulteriore domanda, possono questi 2 programmi gestire grafica 3D per visualizzare dati e valori dello sketch Arduino?

aldoz:
Mi confermate che entrambi sono due programmi processing, e che entrambi permettono di leggere le variabili di Arduino e getirle graficamente con interfacce grafiche configurabili, tabelle, grafici e gingilletti vari?

Stai facendo un sacco di confusione, Processing è un IDE di programmazione per Java, praticamente identico all'IDE di Arduino, da solo non fa nulla, devi scriverti un tuo applicativo e la cosa non è semplice se non conosci Java.
Megunolink è una GUI configurabile, entro certi limiti, che ti consente di visualizzare dati provenienti da Arduino, ma anche da altri micro, tramite porta seriale oppure LAN con protocollo UDP, non richiede scrittura di codice specifico, salvo il setup dell'interfaccia e l'inserimento nello sketch di Arduino la relativa libreria e le righe di codice per inviare i dati.
Su youtube ci sono vari video che illustrano quello che puoi fare con Megunliunk, ti consiglio di guardarli oltre a provare la trial 7 giorni.
Se è meglio usare Processing o Megunolink dipende solo dalle tue esigenze e dalla tua capacità di scrivere codice in Java, con Processing puoi fare quello che ti pare, inclusa la grafica 3D, però devi scrivere molto codice, studiare l'ambiente di lavoro, cercare le necessarie librerie e capirle, con Megunolink sei produttivo subito, basta una lettura veloce al manuale, non devi scrivere codice, non devi imparare nulla, ci sono un sacco di esempi pronti all'uso, per contro Megunolink, nella versione pro, è a pagamento, poco però è un costo, Processing non costa nulla.

astrobeed:
Stai facendo un sacco di confusione, Processing è un IDE di programmazione per Java, praticamente identico all'IDE di Arduino, da solo non fa nulla, devi scriverti un tuo applicativo e la cosa non è semplice se non conosci Java.
Megunolink è una GUI configurabile, entro certi limiti, che ti consente di visualizzare dati provenienti da Arduino, ma anche da altri micro, tramite porta seriale oppure LAN con protocollo UDP, non richiede scrittura di codice specifico, salvo il setup dell'interfaccia e l'inserimento nello sketch di Arduino la relativa libreria e le righe di codice per inviare i dati.
Su youtube ci sono vari video che illustrano quello che puoi fare con Megunliunk, ti consiglio di guardarli oltre a provare la trial 7 giorni.
Se è meglio usare Processing o Megunolink dipende solo dalle tue esigenze e dalla tua capacità di scrivere codice in Java, con Processing puoi fare quello che ti pare, inclusa la grafica 3D, però devi scrivere molto codice, studiare l'ambiente di lavoro, cercare le necessarie librerie e capirle, con Megunolink sei produttivo subito, basta una lettura veloce al manuale, non devi scrivere codice, non devi imparare nulla, ci sono un sacco di esempi pronti all'uso, per contro Megunolink, nella versione pro, è a pagamento, poco però è un costo, Processing non costa nulla.

Ok ho capito perfettamente ora. Diciamo che la grossa differenza tra i 2 e' che in Megunliunk e' tutto pronto (anche se anche su Processing ci sono molti esempi gia' pronti in cui penso bisogna solo configurare la connessione)

Comunque Megunliunk e' molto interessante, sopratutto, per quanto mi riguarda, i grafici XY che presumo mostrino l'andamento grafico del valore di una variabile.
Davvero tutto molto affascinante!
Ora, siccome non sono riuscito a far nulla mi guardo qualche tutorial a riguardo!
Grazie Astrobeed!

Ah ultima domanda:
Da entrambi posso anche dare degli input ad Arduino giusto?

mmm sto vedendo che ci sono problemi con la mia versione di Arduino IDE 1.5.6.. Megunliunk l'upload monitor non me lo puo' installare.. a questo punto perdo una caratteristica fondamentale?..

aldoz:
(anche se anche su Processing ci sono molti esempi gia' pronti in cui penso bisogna solo configurare la connessione)

Si ci sono vari esempi, però dovrai sempre scriverti da zero la tua applicazione specifica, Processing è un ambiente di programmazione, non è una GUI configurabile, come MegunoLink, pronta all'uso.

Comunque Megunliunk e' molto interessante, sopratutto, per quanto mi riguarda, i grafici XY che presumo mostrino l'andamento grafico del valore di una variabile.

Si puoi plottare l'andamento di una, o più, variabile e vedere graficamente come questa varia.

Davvero tutto molto affascinante!
Ora, siccome non sono riuscito a far nulla mi guardo qualche tutorial a riguardo!

Da entrambi posso anche dare degli input ad Arduino giusto?

Si, rimane sempre in piedi il discorso che con Processing devi scrivere tutto il relativo codice, cosa che può richiedere moltissime ore di lavoro anche per chi è già esperto con Java, se poi non conosci Java prima devi imparare questo linguaggio di programmazione, cosa che può richiedere da settimane a mesi di tempo.