Topic permanente di programmazione newbie

igor97: beh allora aspetto con ansia il lavoro finito :grin: :grin:

Per completarlo al 100% ci vorrà un pochino di tempo, non credo prima della fine della prossima settimana, però già domani dovrei avere la prima beta release della libreria per Arduino anche se con funzionalità minimali.

astrobeed:

igor97: beh allora aspetto con ansia il lavoro finito :grin: :grin:

Per completarlo al 100% ci vorrà un pochino di tempo, non credo prima della fine della prossima settimana, però già domani dovrei avere la prima beta release della libreria per Arduino anche se con funzionalità minimali.

Astro, sei un grande e lo dico da tempi NON sospetti ;) Sto continuando col mio lavoro spero entro domani di portarlo a termine; mi serve aiuto su una cosa che ho chiesto qualche post fa prima che iniziasse una delle solite ridicole polemiche a cui sono costretto ad assistere spesso sul Forum, e che spero sia definitivamente chiusa; se la recuperi, ma vale per tutti, mi farebbe piacere trovare una soluzione.

astro sto' facendo dei test su un 8x2 i2c. insieme all'autore della libreria liquidcristal i2c stiamo adattando un nuovo controller.

visto che la liquidcristal i2c e' compatibile con i comandi della liquidcristal originale, si puo' usare questo tuo vlcd con i2c ?

e' difficile aggiungerci la geometria 2x8

grazie, sei sempre il piu' grande :)

Testato: astro sto' facendo dei test su un 8x2 i2c. insieme all'autore della libreria liquidcristal i2c stiamo adattando un nuovo controller.

visto che la liquidcristal i2c e' compatibile con i comandi della liquidcristal originale, si puo' usare questo tuo vlcd con i2c ?

e' difficile aggiungerci la geometria 2x8

grazie, sei sempre il piu' grande :)

Test, se è quello del polacco tienimi aggiornato, ne ho preso uno tempo fa per usi futuri, ma quando sarà non saprei come usarlo. Grazie.

Testato: visto che la liquidcristal i2c e' compatibile con i comandi della liquidcristal originale, si puo' usare questo tuo vlcd con i2c ?

Se usa gli stessi metodi della liquidcrystal alla fine non cambia nulla a parte l'include e il setup.

e' difficile aggiungerci la geometria 2x8

No, consideralo già fatto.

ottimo,

x menny, yes proprio quello

riesco a scrivere gia' sul lcd in modo diretto, senza librerie, ho spedito il tutto all'autore della libreria i2c e gli interessa aggiungere il supporto. attualmente non c'e' nulla di arduinistico per quel controller. sul playgroud c'e' una libreria che dice "dovrebbe essere compatibile", l'ho testata e non lo e', ho aggiornato della cosa l'autore ma lui non e' interessato per ora a modifiche, poi fortunatamente ho trovato disponibilita' nell'altro programatore, quello della i2c.

logicamente sara' tutto open, sto' preparando anche un po' di documentazione perche' su quel coso non si trova nulla.

se ti serve in anticipo qualche dritta sono comunque a disposizione

No, grazie, per ora ho il problema opposto. Bene, buone notizie XD Il firmware è terminato, sono molto soddisfatto, non ho risolto la questione del menu "rieseguibile" ma visto che nessuno mi ha dato risposta, pazienza. Ora faccio qualche prova con l'AstroDisplay :grin: poi a nanna. Domani ultimo passaggio: implementazione della funzione "ERASE" per la cancellazione totale del micro. Poi finalmente inizio l'articolo XD A domani ;)

@ Astro: test sul Virtual LCD Display: il campo di attivazione non ha alcun effetto sull'MCP2200, devo resettare manualmente il 328P Appena parte vedo su ogni riga uno 0, le scritte scorrono velocissimamente ma poi ritornano tutt'e quattro a 0 (o 8 non capisco bene) Manca un campo per inviare i comandi, p.es. quando devo scrivere i valori dei fuse o scegliere una voce da menu, mi serve, almeno nel primo caso la possibilità di editare (p.es. se sbaglio carattere del fuse). Si possono implementare queste cose? Ma forse snaturano il progetto, allora dovrei vedere ciò che scrivo nelle 4 righe, non posso editare al buio, mi sa che devo fare un po' di prove col display vero, se no va a finire che dico stronzate. A domani. :)

scusa ma il vlcd si comporta come un lcd vero e basta. Cioe se devi scrivere qualcosa avrai una tastiera o un tastierino sul progetto vero. Se devi selezionare un campo avrai un pulsante vero sul progetto.

menniti: @ Astro: test sul Virtual LCD Display: il campo di attivazione non ha alcun effetto sull'MCP2200, devo resettare manualmente il 328P

In effetti il software è pensato per attivare esplicitamente DTR, devo aggiungere pure RTS.

Appena parte vedo su ogni riga uno 0, le scritte scorrono velocissimamente ma poi ritornano tutt'e quattro a 0 (o 8 non capisco bene) Manca un campo per inviare i comandi, p.es. quando devo scrivere i valori dei fuse o scegliere una voce da menu, mi serve, almeno nel primo caso la possibilità di editare (p.es. se sbaglio carattere del fuse).

Non è che manca un comando, mancano tutti i comandi allo stato attuale :) Senza la libreria vLcd,che è in fase di scrittura, il programma si limita a visualizzare tutto quello che arriva sulla seriale su tutte quattro le righe. Eppure ero stato molto chiaro sul fatto che deve essere utilizzato abbinato alla libreria vLcd che emula al 100% la liquidcrystal e permette di utilizzare un programma scritto per andare su un display lcd senza modificare nemmeno una riga salvo l'include della libreria e quella per l'inizializzazione. In pratica non dovrai mandare nulla sulla seriale, ci pensa la libreria utilizzando un apposito protocollo, dovrai solo scrivere sul display.

Sì, hai perfettamente ragione, concedimi il beneficio delle attenuanti specifiche, ieri praticamente sono stato dalle 7 di mattina ad oltre mezzanotte su quel benedetto firmware :sweat_smile: in compenso l'ho finito; oggi cerco di introdurre l'erase e così avrò finito la prima parte e posso iniziare a buttare giù l'articolo. L'RTS ovviamente avrà una sua buona utilità su vLCD.

menniti: Sì, hai perfettamente ragione, concedimi il beneficio delle attenuanti specifiche,

:D

ieri praticamente sono stato dalle 7 di mattina ad oltre mezzanotte su quel benedetto firmware :sweat_smile: in compenso l'ho finito; oggi cerco di introdurre l'erase e così avrò finito la prima parte e posso iniziare a buttare giù l'articolo. L'RTS ovviamente avrà una sua buona utilità su vLCD.

Ottimo, in tarda mattinata arriva la versione del software per PC con il supporto della geometria 8x2 e l'attivazione del RTS, nel pomeriggio la release, molto alpha, 0.1 della libreria, avrà solo un paio di funzioni di base attive, giusto per fare le prime prove, e tutte le altre già definite ma inattive.

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

-- cut --

Ho pensato di metterlo in una routine ma poi dovrei fare un menu per accedere al menu?

Il menù dovrebbe essere sempre una funzione, e i sottomenù altre funzioni, in modo che li puoi richiamare quando ti pare. Per fare le cose fatte bene la prima cosa da inviare è la sequenza di caratteri che cancella lo schermo del terminale, e qui scatta il problema perché a seconda del tipo di emulazione cambia cosa inviare, tocca scoprire se il serial monitor prevede un comando di erase, p.e. con Hyperterminal di windows per cancellare lo schermo va inviato prima 0x27, è l'escape, e poi i caratteri "[2J" .

Bravo Astro, appena pubblichi faccio alcune prove di test se vuoi. Menni, ero anch'io nelle tue condizioni, programmavo anch'io , fino a dieci anni fa, con i linguaggi che hai citato, ma adesso mi è tornata la voglia e piano piano sto reimparando con IDE Arduino e Processing. Non mollare ...., sono in attesa della tua "opera" :astonished:

Aggiornato il software per pc, scaricabile qui, con due nuove geometrie, 2x8 e 2x40 (rara ma esiste), e il controllo forzato di RTS, questo serve solo a Michele per il momento, l'ho verificato sia su una com hardware reale che su un FTDI e un MCP2200. Da notare che il reset di Arduino quando si apre una comunicazione seriale io l'ho sempre ritenuto più una scocciatura, anzi un bug dovuto a come funziona l'autoreset, piuttosto che una cosa utile, infatti sto valutando se inserire un comando per disattivare il reset.

amario57: appena pubblichi faccio alcune prove di test se vuoi.

Certamente, quando si sviluppa del software i beta tester non bastano mai, è grazie a loro che si trovano tutti i bug e si riesce a migliorare il prodotto :)

@astro perchè per la cancellazione non fai una funzioncina che scrive tanti spazi quanta la geometria del display, così aggiri il problema della specificità (soluzione porchereccia alla BB :D )

BrainBooster: @astro perchè per la cancellazione non fai una funzioncina che scrive tanti spazi quanta la geometria del display, così aggiri il problema della specificità

Mi sta che stiamo facendo confusione tra il serial monitor e il display lcd, reale o virtuale che sia, attualmente Michele manda un menù sul serial monitor e ha alcuni problemi di gestione, ed è per questa cosa che gli ho consigliato di cancellarlo prima di inviare un nuovo menù, è da verificare se è possibile farlo perché il serial monitore non è una vera emulazione terminale. Per quanto riguarda il display LCD già esiste un apposito comando per cancellarlo, "lcd.clear()". Per vedere tutti i comandi e le funzionalità previste per i display LCD dalla liquidcrystal fate riferimento al suo reference, la libreria vLcd avrà gli stessi comandi e funzionerà allo stesso modo con la differenza che il display è virtuale sullo schermo del pc e l'impegno della seriale hardware, solo Tx, quindi volendo è possibile usare Rx per ricevere da un device esterno, per inviare i vari comandi tramite USB.

Pensavo fosse riferito all'lcd reale.. sorry :) edit: menniti ma usi un lcd seriale vero? o ricordo male

BrainBooster: edit: menniti ma usi un lcd seriale vero? o ricordo male

Mi sa tanto di si perché ha tutti i pin impegnati, infatti il suo è un caso particolare e come gestire il display reale dipende molto dal produttore/modello, non esiste uno standard ben definito.