Topic permanente di programmazione newbie

menniti:
Sììììììììììì, buonanotte :fearful: perdo un giorno per ogni variabile che sposto di un cm, figuriamoci se mi metto ad imparare la programmazione delle GUI; tanto per curiosità, con che si dovrebbe fare?

Mi è appena venuta un'idea simpatica, che ne dici di un display lcd virtuale sul pc, configurabile a piacere con varie geometrie, con il quale dialoghi tramite seriale, in modo trasparente, utilizzando gli stessi comandi della libreria LiquidCrystal ?

astrobeed:

menniti:
Sììììììììììì, buonanotte :fearful: perdo un giorno per ogni variabile che sposto di un cm, figuriamoci se mi metto ad imparare la programmazione delle GUI; tanto per curiosità, con che si dovrebbe fare?

Mi è appena venuta un'idea simpatica, che ne dici di un display lcd virtuale sul pc, configurabile a piacere con varie geometrie, con il quale dialoghi tramite seriale, in modo trasparente, utilizzando gli stessi comandi della libreria LiquidCrystal ?

Se fa quello che ho capito, sarebbe una manna scesa direttamente dalle alte sfere celesti; considerando la mia fatalgnuranza il micro del master in questi giorni lo avrò programmato 1000 volte; infatti ho il terrore di quando dovrò adeguare lo sketch all'LCD, anche se Leo mi ha dato delle dritte eccellenti so già che dovrò fare altre migliaia di programmazioni, ma mentre ora invio lo sketch e basta, poi mi toccherà ogni volta scollegare i due dispositivi e programmarli singolarmente :sweat_smile: :sweat_smile:
Invece questo LCD virtuale mi darebbe un duplice immenso vantaggio: quello di poter risolvere il problema (o almeno quello delle impostazioni video) senza usare inizialmente l'altra scheda, mi basterebbe poi scrivere solo il firmware per il display vero e sarei a posto; inoltre avrei la "stessa" interfaccia sia per la modalità PC che per quella stand-alone. Sarebbe bellissimo XD ma come si tramuta l'idea in realtà? :smiley:

@ Leo: a proposito, ormai ci siamo quasi :wink: quindi dovremo dare una "ripassata" alle nozioni sul colloquio micro-master<->micro-lcd; ho conservato un mezzo sketch, ma non mi ricordo più una beneamata :grin:

menniti:
@ Leo: a proposito, ormai ci siamo quasi :wink: quindi dovremo dare una "ripassata" alle nozioni sul colloquio micro-master<->micro-lcd; ho conservato un mezzo sketch, ma non mi ricordo più una beneamata :grin:

"Protocollo" è la parola magica :wink:
Sono a tua disposizione XD

leo72:

menniti:
@ Leo: a proposito, ormai ci siamo quasi :wink: quindi dovremo dare una "ripassata" alle nozioni sul colloquio micro-master<->micro-lcd; ho conservato un mezzo sketch, ma non mi ricordo più una beneamata :grin:

"Protocollo" è la parola magica :wink:
Sono a tua disposizione XD

Ah, pensavo fosse "SIN SALAMIN" :stuck_out_tongue:

Intanto che Astro mi spiega meglio questa sua bella idea continuo a sistemare il firmware, ci fosse un passaggio che non mi fa buttare sudori :sweat_smile:

menniti:
Sarebbe bellissimo XD ma come si tramuta l'idea in realtà? :smiley:

Ci vuole un santo, indovina quale :slight_smile: , che realizza la parte pc e la libreria per Arduino.

Testato:
COM75 ??
ci lavori parecchiocon le seriali :slight_smile:
cmq bravo per i risultati in cosi' breve tempo

Scusa non avevo visto prima :blush: in realtà sto pc appena gli avvicini qualcosa si eccita e crea una seriale, non so che czz succederà quando arriva a 128, perché poi nelle periferiche 2-3 ne vedo mica 75! Grazie per i complimenti, considerando che ho nozioni di programmazione ferme a GWBASIC, con ripresa su VB ma per complemento ad Access, effettivamente con la scusa sto imparando molte cose. Ma la verità è che sono stato agevolato dal fatto che sono partito da uno sketch originale da cui ho potuto tirare fuori diverse routine bell'e pronte, invece l'organizzazione faceva schifo, e questo mi ha consentito di metterci mano pesantemente per tirare fuori qualcosa di molto bello; naturalmente considerando la grossissima mano che mi stanno dando Astro e Leo. XD

astrobeed:

menniti:
Sarebbe bellissimo XD ma come si tramuta l'idea in realtà? :smiley:

Ci vuole un santo, indovina quale :slight_smile: , che realizza la parte pc e la libreria per Arduino.

Sant'Astro dei Cieli XD XD XD davvero lo faresti? sarebbe davvero fantastico XD ovviamente tutti i test li farei io e finché non sarà pronto io mi completo il firmware "standard". Fammi sapere se ti ci metti sul serio XD

menniti:
Sant'Astro dei Cieli XD XD XD davvero lo faresti?

Ho già iniziato, tra non molto le prime preview :slight_smile:

astrobeed:

menniti:
Sant'Astro dei Cieli XD XD XD davvero lo faresti?

Ho già iniziato, tra non molto le prime preview :slight_smile:

azz allora finisci sicuro prima di me, qui ogni passo è una tragedia =(

menniti:
azz allora finisci sicuro prima di me, qui ogni passo è una tragedia =(

Ecco la prima preview :slight_smile:

preview1.jpg

Ma daaaai è bellissimo XD azz, certo che sono proprio pochi 20x4, visto che avevo ragione a pensare di dovermi "esercitare"?

Intanto vado avanti...... Ecco il prossimo problema:

Serial.begin(BAUD);
Serial.println("Scegli l'operazione:");
Serial.println("0: FINE");
Serial.println("1: Lettura fuse");
Serial.println("2: Ripristino fuse default");
Serial.println("3: Scrittura fuse personali");
Serial.println("4: Erase micro");
while(response == NULL) {

while (Serial.available() == 0); // aspetta un carattere
response = Serial.read(); // legge la risposta dell'utente
Serial.end(); // chiude la seriale altrimenti crea problemi nelle letture/scritture dei fuse

switch(response) {
case '0': //fine operazione
Serial.begin(BAUD);

Allo stato attuale eseguo una qualsiasi voce (in realtà per ora solo 0-1-2) e poi termino il programma, a regime mi richiederà di inserire un micro e avviare la procedura.
Ma mi sono reso conto che in alcuni casi potrebbe tornarmi molto utile rieseguire questo menu dopo aver fatto una scelta; p.es. scelgo di leggere i fuse attuali (voce di menu 1) e poi, una volta visti, decido di programmarli (voce 2) o di uscire (voce 0).
Si può fare qualcosa?
Ho pensato di metterlo in una routine ma poi dovrei fare un menu per accedere al menu?
:fearful:

legacy:
@menni
se vuoi ti faccio il porting su linux, con interfaccia testuale, cosi' viene un tool moto hackerso e ci regalano anche adesivi geek =P

legacy, parla italiano corrente, non ho capito una mazza di ciò che mi stai gentilmente proponendo :blush:

credo che la poposta si riferisca al lavoro di Astro, il che include una bella faccia tosta

il caro legacy flameman non si smentisce mai

io scrivo ai moderatori lettere per bannare gli utenti che ritengo giusto bannare, semplice e lineare
non mi serve girare attorno alle cose come e' tua abitudine

che e' sta storia del supporto per linux di uno sketch arduinico ?
lo sketch di menny funzionera' su arduino ide per linux x windows x chi vuoi tu, non serve nessun tuo intervento

astrobeed:

menniti:
azz allora finisci sicuro prima di me, qui ogni passo è una tragedia =(

Ecco la prima preview :slight_smile:

Ciao Astro, ma il prog l'hai fatto tu? come funziona? arduino controlla le matrici come se fosse un lcd reale? avevo già intenzione di farlo...

@Testato, ora mi conosci in quanto scrivo sul forum da un pezzo e non mi pare di aver mai dato inutili noie a nessuno.
detto questo non voglio prendere le difese di nessuno ma stavolta Legacy che bene o male è sempre stato contestato ha proposto di fare un lavoro che potrebbe venire utile all'intera comunità di smanettoni quali siamo noi, non ha senso vivere in questo clima, se vi siete rimbeccati in altri ambiti amen, ha proposto una cosa che ritengo utile, non bocciargliela a priori.
Detto questo, mi metto nei panni del moderatore al posto del Prof. se avete qualche questione risolvetela in privato senza portare via spazio all'interessante topic :slight_smile:

Prima release effettiva del programma, molto in beta e con ancora molte cose da sistemare, giusto per capire di cosa stiamo parlando e avere le prime impressioni e commenti sull'interfaccia.
L'eseguibile lo scaricate qui, non necessità di installazione e non richiede nessuna dipendenza esterna quali runtime, dll, active X, framework vari, a me piace scrivere il software in modo che sia il meno invasivo possibile :slight_smile:
Facendo riferimento all'immagine allegat:
Sulla schermata oltre alle righe del display c'è un check box che permette di attivare/disattivare la ricezione sulla seriale, con relativo reset di Arduino quando si apre la Vcom, un campo di selezione della porta com, all'avvio il programma cerca automaticamente tutte le seriali presenti, un tasto CFG che apre il box di configurazione della seriale, quattro tasti che permettono di scegliere la geometria del display.
Una volta lanciato il programma basta scegliere la Vcom di Arduino, eventualmente settare il baud rate, scegliere la geometria del display da emulare tra i valori disponibili, 2x16, 2x20, 4x16, 4x20, attivare la seriale vistando il relativo campo per iniziare a lavorare.
Attualmente il software tutto quello che riceve dalla seriale lo mette in fila sul display senza fare nessuna distinzione e nessuna separazione, le righe attive visualizzano tutte le stessa cosa, è solo per verificare che c'è la ricezione dei dati, il prossimo step è scrivere la libreria per Arduino, con lo stesso stile della Liquid Crystal, e implementare il protocollo di dialogo tra l'emulatore e Arduino.

Vdisp_Beta.JPG

astrobeed:
Prima release effettiva del programma, molto in beta e con ancora molte cose da sistemare, giusto per capire di cosa stiamo parlando e avere le prime impressioni e commenti sull'interfaccia.
L'eseguibile lo scaricate qui, non necessità di installazione e non richiede nessuna dipendenza esterna quali runtime, dll, active X, framework vari, a me piace scrivere il software in modo che sia il meno invasivo possibile :slight_smile:
Facendo riferimento all'immagine allegat:
Sulla schermata oltre alle righe del display c'è un check box che permette di attivare/disattivare la ricezione sulla seriale, con relativo reset di Arduino quando si apre la Vcom, un campo di selezione della porta com, all'avvio il programma cerca automaticamente tutte le seriali presenti, un tasto CFG che apre il box di configurazione della seriale, quattro tasti che permettono di scegliere la geometria del display.
Una volta lanciato il programma basta scegliere la Vcom di Arduino, eventualmente settare il baud rate, scegliere la geometria del display da emulare tra i valori disponibili, 2x16, 2x20, 4x16, 4x20, attivare la seriale vistando il relativo campo per iniziare a lavorare.
Attualmente il software tutto quello che riceve dalla seriale lo mette in fila sul display senza fare nessuna distinzione e nessuna separazione, le righe attive visualizzano tutte le stessa cosa, è solo per verificare che c'è la ricezione dei dati, il prossimo step è scrivere la libreria per Arduino, con lo stesso stile della Liquid Crystal, e implementare il protocollo di dialogo tra l'emulatore e Arduino.

Genialeeee!! ma il sorgente si puo avere?

EDIT: mi sa che c'è un errore, non trova il riferimento alla libreria BORLNDMM.dll
EDIT2: ok servono piu di qualche libreria per farlo funzionare

igor97:
Ciao Astro, ma il prog l'hai fatto tu? come funziona? arduino controlla le matrici come se fosse un lcd reale? avevo già intenzione di farlo...

Ovviamente la sto scrivendo io :slight_smile:
L'idea è di avere su Arduino una libreria aggiuntiva che implementa le stesse funzioni della liquidcrystal, cambierà solo il nome principale, che ti permette di visualizzare sul pc quello che normalmente mandi al display senza averlo fisicamente, ovvero un display virtuale che può far comodo sia in fase di sviluppo del software per verificare il funzionamento che come semplice GUI universale nei limiti imposti da un piccolo LCD da un massimo di 4 righe da 20 caratteri.
Non escludo di ampliarla in futuro con altre geometrie, p.e. 2x40 e 4x40, e altre funzionalità, dipende molto dall'interesse che ci sarà attorno, una volta pronta la versione 1.0 definitiva aprirò un topic dedicato.

astrobeed:

igor97:
Ciao Astro, ma il prog l'hai fatto tu? come funziona? arduino controlla le matrici come se fosse un lcd reale? avevo già intenzione di farlo...

Ovviamente la sto scrivendo io :slight_smile:
L'idea è di avere su Arduino una libreria aggiuntiva che implementa le stesse funzioni della liquidcrystal, cambierà solo il nome principale, che ti permette di visualizzare sul pc quello che normalmente mandi al display senza averlo fisicamente, ovvero un display virtuale che può far comodo sia in fase di sviluppo del software per verificare il funzionamento che come semplice GUI universale nei limiti imposti da un piccolo LCD da un massimo di 4 righe da 20 caratteri.
Non escludo di ampliarla in futuro con altre geometrie, p.e. 2x40 e 4x40, e altre funzionalità, dipende molto dall'interesse che ci sarà attorno, una volta pronta la versione 1.0 definitiva aprirò un topic dedicato.

:grin: una bellissima idea...
comunque per avviarlo ho dovuto scaricare 2 librerie: CC3260MT.DLL e borlndmm.dll