Creazione interfaccia grafica per visualizzare dati con arduino e phyton

Salve a tutti,sono nuovo nel forum, Mi chiamo Matteo e sono uno studente
Sto costruendo per conto mio una centralina per la casa che in base alla temperatura e all umidità attiva alcuni rele, ho dotato la mia scheda arduino di una keypad lcd shield che mi indica i valori e mi da la possibilita tramite i bottoni o di visualizzarne altri o di creare un menu.
Quest ultima cosa e un po che ci sto provando ma non ho mai trovato guide su come creare un menu dove poi cambiare valori come lo soglie di temperatura per le quali scatta il relè anche perche ho paura che la gestione del menu del display mi intoppi l esecuzione del programma!
Allora ho pensato di getire il tutto creando un interfaccia in phyton nella quale posso inserire i valori in dei campi di testo e modificarli in tempo reale senza ricaricare il codice!
Ora i problemi sono 2:
1 non conosco il phyton, so solo un po di c++ ma posso studiarlo volendo.
2 non ho la benche minima idea di come interfacciare i dati della porta seriale di arduino con il programma in phyton e poi dire al programma di cambiare le soglie su arduino. :astonished:
(Non devo farlo per forza con il phyton ma avevo sentito che è ottimo per queste cose)
Qualcuno di voi puo linkarmi guide o darmi delle dritte o infarinature sono perso :sweat_smile:
Potrei anche rivalutare il discorso dell LCD Keypad ma a patto che non mi intoppi troppo il codice!

P.s.
Buon 2015 :slight_smile:

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

loraxen:
Salve a tutti,sono nuovo nel forum, Mi chiamo Matteo e sono uno studente
Sto costruendo per conto mio una centralina per la casa che in base alla temperatura e all umidità attiva alcuni rele, ho dotato la mia scheda arduino di una keypad lcd shield che mi indica i valori e mi da la possibilita tramite i bottoni o di visualizzarne altri o di creare un menu.
Quest ultima cosa e un po che ci sto provando ma non ho mai trovato guide su come creare un menu dove poi cambiare valori come lo soglie di temperatura per le quali scatta il relè anche perche ho paura che la gestione del menu del display mi intoppi l esecuzione del programma!
Allora ho pensato di getire il tutto creando un interfaccia in phyton nella quale posso inserire i valori in dei campi di testo e modificarli in tempo reale senza ricaricare il codice!
Ora i problemi sono 2:
1 non conosco il phyton, so solo un po di c++ ma posso studiarlo volendo.
2 non ho la benche minima idea di come interfacciare i dati della porta seriale di arduino con il programma in phyton e poi dire al programma di cambiare le soglie su arduino. :astonished:
(Non devo farlo per forza con il phyton ma avevo sentito che è ottimo per queste cose)
Qualcuno di voi puo linkarmi guide o darmi delle dritte o infarinature sono perso :sweat_smile:
Potrei anche rivalutare il discorso dell LCD Keypad ma a patto che non mi intoppi troppo il codice!

P.s.
Buon 2015 :slight_smile:

Secondo me questo fa al caso tuo.

Il Python è ottimo ma se non lo conosci, non puoi pensare di realizzare rapidamente una interfaccia grafica.
Se conosci il C, prova con la versione free di Visual Studio.

Per il display LCD, guarda in Megatopic, c'è un sistema per creare menu.

Altrimenti puoi sempre provare con un touch screen. Ma anche in questo caso dovrai imparare tante cose.

Qui trovi degli esempi di interfacciamento tra Python e Arduino con interfaccia grafica in QT4

Potresti tenere in conto anche processing, ci sono molti esempi per quanto riguarda la comunicazione di arduino.
Ad esempio se vuoi inserire da processing la soglia di temperatura per cui i relè scattano, basterà usare un codice come questo per inviare la soglia (o il carattere, nel caso dell'esempio) e mandarla ad arduino.
Su arduino avrai un codice che memorizzerà in una variabile il valore ricevuto e si comporterà di conseguenza :slight_smile:

quoto anche io processing, interfaccia ed esempi sono molto ben implementati e devo dire che la possibilità di basare tutti i programmi su java non è da poco.
Python ti permette (o almeno così si dice) di fare velocemente il programma che hai in mente, peccato che devi saper programmare in python, poi personalmente non lo trovo adatto all'apprendimento.
A giusto ! con processing puoi fare il porting di un applicazione da mac,windows, linux tutto da menu il che è una manna agli inizi :wink:

processing ha questo grande vantaggio di compilare l'interfaccia gia' per tutte le principali macchine, windows 32, windows 64, linux, mac
inizialmente compilava anche per android, quindi in un solo codice avevi anche la app android, ora non so se c'e' ancora questa funzione
e poi l'ide e' uguale a quella di arduino, arduino l'ha copiata da processing, e quindi i concetti, i menu', l'uso delle librerie, e' uguale ed aiuta molto il rpimo approccio

si si puo fare le interfacce, grafiche con python ovviamente e non è nemmeno cosi difficile (io le faccio per le mie cosine), ma oltre a consocere bene python, devi studiarti bene le libreire grafiche, per esempio QT o wxwitget (io uso le qt) e qui è il problema, perche son librerie molto incasinate e lo studio di esse puo prenderti molto tempo.
Ma ti garantisco che da molta soddisfazione.

per la seriale ,specie se usi python dalla 3.4 in su basta "pip3.4 install pyserial", e ti installa la libreria per la seriale.

Ovviamente poi dovari "inventarti" un protocollo di comunicazione, che può essere più o meno complesso.

Martinix:
ma oltre a consocere bene python, devi studiarti bene le libreire grafiche, per esempio QT o wxwitget

C'è anche Vpython che ho visto utilizzare per le GUI sebbene è una libreria per il 3D.
Piccola nota, anche Python è multi piattaforma, basta installare sul proprio S.O. il relativo interprete, praticamente di serie su tutte le distro Linux, credo pure su MAC OS, per windows va installato.

in quanto linguaggio interpretato, giusto.
ma con python e quindi obbligatorio l'open source ?

Testato:
ma con python e quindi obbligatorio l'open source ?

Per Python esiste obfuscator che rende illeggibile il sorgente agli esseri umani.
Esistono anche modi per avere un eseguibile che integra sia l'interprete che il codice, comunque sono mezzi facilmente aggirabili, non è certo un problema risalire al sorgente originale :slight_smile:

Grazie a tutti per le risposte e i consigli, ma riguardo l lcd con il menu io volevo utilizzare l lcd keypad shield, invece, il processing e difficile? o è molto astratto?

Processing è nello stile arduino, leggi un po il reference e parti con qualche libreria grafica.
Io al primo colpo ho fatto una gui per un progettino bluetooth, ce la puoi fare :slight_smile:

Ho provato ad usare processing ma quando mando in esecuzione l esempio simple read senza nessun arduino o altro attaccato al pc mi da un errore ArrayIndexOutOfBoundException=0
E mi indica la riga 22 dove e scritto " String portName = Serial.list()[0]; "
Cosa faccio T.T ?

Puoi provare a dare un'occhiata anche al mio progetto. Qui trovi un video di esempio: Ardulink RGBController - YouTube

Ardulink