Open ArdBir Mega :controller alternativo per cloni Braumeister(Brauduino branch)

Allora, bisogna però che provi a buttarlo su e mi dici se il menu ha cambiato atteggiamento.
adesso ti sposti nei menu di setup e principale con i bottoni prev e next e con il bottone down confermi la selezione , mentre con l'up praticamenta fai annulla.
fammi sapere come si comporta .

_16x2___Brauduino2__Ita__106.ino (26 KB)

Ok non riesco a fartelo nel immediato che sto riassemblando il tutto per una pesante modifica alla Shcield
Appena finisco di saldare tutto metto su il tuo ino e provo intanto pasos il link al sito birraio magari qualcuno che ha gia fatto puo provare :smiley:

Bhe c'è solo da testare come funziona l'utilizzo nuovo del menu.
Non è urgente, preferisco che lo fai tu ,ma se vuoi farlo fare a qualcun altro vedi.
Così siamo svincolati da avere una funzionalità legata ad un singolo bottone.
Stamani vedo se riesco a mettere la scelta del file , contavo di gestire una cartella di nome RECIPES nella SD e leggere file con estenzione .BRF
Il formato nome dei file deve essere DOS 8.3 .
Per il contenuto poi lo vediamo, gestirli in formato testo è più facile lato pc, ma poi vanno parsificati e interpretati dal micro, che ha meno risorse.
Quindi direi che il file è in formato binario , con lo schema della eeprom proprio come è ora, e ci faremo carico sul PC di creare questi file in maniera appropriata.

P.S. io ho usato _16x2___Brauduino2__Ita__106 come base di partenza, ho visto che comunque tenta di fare l'inizializzazione della SD, qual'è il risultato? la inizializza correttamente o da errore?

Hanno provato e mi dicono che non va io ho finito di montare la 07B ma su questa per via di un errore non posso testare la parte SD :frowning:

Domani mi dovrebbe arrivare Arduino e almeno la parte LCD te la posso provare poi vedro di incidere la versione 10 beta
che dovrebbe avere anche un I2C in caso si volesse mettere più arduino in cluster e intanto ci si puo connettere anche un Modulino RTC
questa se ho tempo spero di inciderla Tra Domenica e Lunedi :smiley:

saviothecnic:
Hanno provato e mi dicono che non va io ho finito di montare la 07B ma su questa per via di un errore non posso testare la parte SD :frowning:

Era ovvio che non funzionasse, per questo è meglio se ce la testiamo internos, almeno si capisce meglio dove sta il problema.
Dire semplicemente 'non funziona' non aiuta :smiley:

EDIT:
Vedo se riesco a mettere su una breadboard che calca quest'hardware e vedere cosa succede.
Per ora siamo a 25 su 32k di flash, considerando che tutte le stringhe sono state salvate in ram invece che in flash (che non è cosa buona e giusta) c'è da considerare che queste vadano spostate, diminuendo ancora lo spazio disponibile.

Mi spiace non poter testare io direttamente subbito :frowning: è capitato che sto senza Arduino che un amico di forum che aveva fretta mi ha chiesto la prima versione
che ho realizzato e gli ho spedito il tutto quidni adesso sto apsettando che mi arrivi ma credo sia questione di giorni
Perla tua paura sulla memoria non si puo aumentare la memoria in qualche modo ????
Altrimenti se non si riesce lo migfriamo su Arduino DUE o due Uno R3 in cluster tramice I2C ?????

No, ho visto il codice, non è molto ottimizzato, si può ottimizzare e fare molto meglio una volta che fa quello che deve fare.
Però in tutti i casi se pensi che per esigenze si debba poter andare oltre a queste funzionalità devi mettere in conto di cambiare piattaforma.
Se decidi di cambiare piattaforma lascia perdere arduino 2 et similia e orientati direttamente su prodotti linux embedded.
Per questo genere di controlli è molto più versatile e facile da programmare / estendere.

niki77:
No, ho visto il codice, non è molto ottimizzato, si può ottimizzare e fare molto meglio una volta che fa quello che deve fare.

A Ok ottimo spero non sia una cosa complessa questa ottimizzazione :smiley:

niki77:
Però in tutti i casi se pensi che per esigenze si debba poter andare oltre a queste funzionalità devi mettere in conto di cambiare piattaforma.
Se decidi di cambiare piattaforma lascia perdere arduino 2 et similia e orientati direttamente su prodotti linux embedded

Be io non ci capisco molto ma Arduino mi piace perche vedo che un po tutti ci sanno mettere mano e trovi moduli sonde compatibili ovunque
Spero che si riesca a fare il tutto con un solo Arduino Uno R3 o al max due connessi in Cluster I2C

Arduino giè è capitato nella mia strtada e lo scono ed uso nei Multirotori con il soft MultiWii dove con il Nano V 3.0
che ha lo stesso processore di questo ATmega 328p fanno belle cose
Solo per quello con il GPS son dovuti andare con il modello superiore che monta AtMega 2560 se non erro e da ignorante
credo che questo controllo anche con supporto SD e Log RTC sia ben aldisotto di quello che fa il MultiWii quindi sono fiducioso che ce la possa fare senza upgradare piattaforma :smiley:

Ciao Savio,

Non ti ho abbandonato, ci sto lavorando.
Ieri sera ho messo su una breadboard per fare qualche prova.
In realtà è emerso che in effetti quel codice è inefficiente un bel pò, ci sono tante stringhe.
Sto lavorando per gestire diversamente il menù, che è proprio il principale incriminato di dispendio delle risorse.
Ho problemi quando collego i pulsanti sulle linee analogiche, mi si riavvia in loop l'arduino.... e se invece li scollego fisicamente , non si riavvia....Misteri banziani :smiley:

niki77:
Ciao Savio,Non ti ho abbandonato, ci sto lavorando

Tranquillo non ho mai pensato e dubitato :smiley:

niki77:
Ieri sera ho messo su una breadboard per fare qualche prova.
In realtà è emerso che in effetti quel codice è inefficiente un bel pò, ci sono tante stringhe.
Sto lavorando per gestire diversamente il menù, che è proprio il principale incriminato di dispendio delle risorse.
Ho problemi quando collego i pulsanti sulle linee analogiche, mi si riavvia in loop l'arduino.... e se invece li scollego fisicamente , non si riavvia....Misteri banziani :smiley:

Ok anche noi stiamo andando avanti con i Test adesso è uscita una nuova versione di PCB si è levato il Relè da sopra il PCB
per evitare che qualcuno va a mettere le 230V direttamente sul PCB e fa casini anche se poi molti come me usano pompe a 12V
Ti allego la nuova versione del PCB che spero di incideree montare fine sett cosi anche tu sai che PinOut usare nel firmware

Lavorate alla grande a quanto vedo.
Io progetterei anche un altro pcb coi relè, in maniera tale che puoi tenerlo lontano dalla logica ma non lasci libera interpretazione ai meno esperti.
Quando avrete una versione un pò più consolidata me lo farò anch'io!
Per il pinout non importa, per come ho intenzione di sviluppare io sarà un file di definizioni a parte, così come per le stringhe, in maniera tale da rendere facile anche una eventuale localizzazione.

Questa potrebbe essere la release 1.0 , sempre se Savio non ci vuole anche quì il beccuccio per il caffè. XD

Le due uscite pompa e riscaldatore le ho messe sui pin col pwm in hw così se serve si puo scaricare il micro dal lavoro di generarlo via sw.

Si credo che siamo finalmente arrivati alla definitiva domani vedo di inciderla sperando che sia esante da Bug
Rimpiango il relè ma condifivo pienamente la decisione al max metto due SSR per quello che costano

http://www.ebay.it/itm/290631646547?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

http://www.ebay.it/itm/Solid-State-Relay-SSR-10DD-10A-5-60VDC-3-32VDC-/350754617064?pt=LH_DefaultDomain_0&hash=item51aa9ab6e8

Io invece dissento da quell'allineamento.

Invece di usare i transistor avreste potuto usare degli optoisolatori, l'isolamento galvanico delle sezioni non fa mai propriamente schifo.

Lato FW:

Ho giocato un pò con quel progetto che mi hai dato e ho implementato la lettura della SD.
Ho dovuto fare un certo magheggio per evitare di sprecare risorse e ottenere cmq il funzionamento che mi ero prefissato.
Ora manca solo di implementare la mera e propria lettura, scrittura dati su SD, ma questo non mi spaventa.

Quello che mi fa girare le balls è che con l'ambiente di arduino si sviluppa veramente male, non c'è alcun tipo di refactoring e ausilio alla scrittura del codice.
Non mi sono permesso di portare il progetto su eclipse, perchè immagino che avrei messo in difficoltà tutti gli altri che poi lo avessero voluto prendere e/o compilare, ma così è veramente una agonia.

Adesso mi sono messo ad ottimizzare tutte le stringhe per risparmiare un pò di ram, ma non ho capito perchè ora non parte più .... mmha

Se ne riparla stasera . :wink:

niki77:
Io invece dissento da quell'allineamento.
Invece di usare i transistor avreste potuto usare degli optoisolatori, l'isolamento galvanico delle sezioni non fa mai propriamente schifo.

Be si è partiti nel risbrogliare un PCB che era nato doppia faccia e quindi difficilmente fattibile dalla massa in casa
quindi non si è progettato nulla da 0 e nel risbrogliarlo abbiamo cercato di migliroarlo un po aggiungendo supporto lettore scrittore SD connettore I2C ecc ecc
be anche la dritta di optoisolare non è male ma rispetto alle schede delle cnc che vengono connesse al pc qui oltre arduino non ci sono molte periferiche delicate all' esterno.

niki77:
Lato FW:
Ho giocato un pò con quel progetto che mi hai dato e ho implementato la lettura della SD.
Se ne riparla stasera . :wink:

Ok io ho pronto finito un PCB versione 05 se vuoi che faccio qualche prova pero li non ho lettore SD posso verificare solo i Menu
e ho inciso adesso devo forare e saldare la versione 11S a meno che non esca una ver 12 con gli HCPL2531 per mantenere una buona velocita del PWM :smiley:

Savio il PWM non ha grequenzw così elevate da aver bisogno di un fotoaccopiatore così beloce, uno per uso henerale è sufficiente.

Mettendo dei fotoaccopiatori per avere una separazione galvanica vera bisogna prevedere una seconda libea di alimentazione, così come è ora uscite open-collector basta collegare un SSR od un relè a secodo dell'esigenza due fili connessi punto-punto, ed ottieni comunque l'isolamento galvanico tra carico e logica.

Però questo è un discorso di HW in una sezione SW non molto in topic.

Niki che formato di Lcd prevedi usare?

Danielxan:
Savio il PWM non ha grequenzw così elevate da aver bisogno di un fotoaccopiatore così beloce, uno per uso henerale è sufficiente.

Si questo è vero ma a livello commerciale costano quasi uguali rispetto hai 4N35 classici
e poi questo era già doppio e lo avevo già dentro per uso sulle cnc per questo l'avevo proposto in caso si voleva implementarlo :smiley:

Danielxan:
Mettendo dei fotoaccopiatori per avere una separazione galvanica vera bisogna prevedere una seconda libea di alimentazione, così come è ora uscite open-collector basta collegare un SSR od un relè a secodo dell'esigenza due fili connessi punto-punto, ed ottieni comunque l'isolamento galvanico tra carico e logica.
Però questo è un discorso di HW in una sezione SW non molto in topic.

Si ha pienamente ragione poi diventa troppo complesso il circuito condivido già gli SSR e Relè sono ottimi disacoppiatori Lasciamo cosi :smiley:
Io sono anche per un resume della ver 5 che per la sua semplicità ha una ragione d'esistere :smiley:
Ora basta OT HW :stuck_out_tongue:

Danielxan:
Niki che formato di Lcd prevedi usare?

Ottima domanda io ho dentro per provare il 16x2 e un 40x2 e in arrivo un 20x4
Ma forse se vui fare come i menu di Multiwii dal config si potra selezzionare il menu a seconda del display montato esatto ?

Eccomi qua :grin:
@Savio
Mi sono già scusato sull'altro forum per il ritardo ma ero un po' preso. Come ti ho detto qui sei in buone mani.

@Danielxan
Piacere di conoscerti, ho visto i tuoi lavori, mirabolanti.

@Niki
Non posso che quotarti, ho dato solo ora un occhio al sorgente e secondo me la cosa migliore è praticamente rifarlo :smiley:
Se sei d'accordo io userei le librerie di Leo (Leos) per gestire in background la resistenza di riscaldamento.
Ho visto un uso spropositato della Eeprom, anche questa è da ottimizzare. Visto che si utilizza la libreria SD ed occupa un botto bisognerà ottimizzare anche tutte le variabili di testo facendo lo store sulla flash (usando PROGMEM).

Se posso contribuire, io sono qui. :grin:
Buon lavoro

Danielxan:
Niki che formato di Lcd prevedi usare?

Io adesso sto testando il 16x2 .
Si potrebbe pensare anche di gestire in fase di compilazione 2 profili, 16x2 o 16x4 , il punto è che avendo visto esattamente come vanno le cose.... insomma c'è da fare i salti mortali per farsi bastare ram e flash così com'è , figurati a gestire il doppio delle stringhe per un 16x4 !

Se sei d'accordo io userei le librerie di Leo (Leos) per gestire in background la resistenza di riscaldamento.

La resistenza in background è il problema minore, e poi sinceramente no penso che sia necessario usare uno schedulatore per gestirla.

Ho visto un uso spropositato della Eeprom, anche questa è da ottimizzare. Visto che si utilizza la libreria SD ed occupa un botto bisognerà ottimizzare anche tutte le variabili di testo facendo lo store sulla flash (usando PROGMEM).

Il punto è che se metti tutto su flash non ci sta più il programma :smiley:

E' una coperta un pò corta direi, se la tiri da una parte ti scopri dall'altra!

Ci sono tante alternative per risolvere questo problema, la prima in classifica è lasciar perdere arduino e usare roba più seria ! :smiley:

La seconda può essere di bilanciare l'uso delle stringhe tra ram e flash e cercare di fare in modo che si tenga tutto in piedi (a mo di castello di carte)
La terza , più elaborata, ma non so in termini di performance quanto possa impattare, consiste nel leggere le stringhe al momento che servono direttamente da SD. In questo modo si utilizzerebbe solo un buffer 32 byte per le stringhe e quello che serve alla libreria per leggere la SD.
In questo modo il profilificare di stringhe non impatterebbe ne sulla flash ne sulla ram, che praticamente si ricicla ad ogni lettura.

EDIT : @savio

saviothecnic:
ci stava anche un foglio exchel che mi pare dava la mappatura della eprom se non erro o qualcosa di simile

Se riesci a rimediarlo non sarebbe per niente male

niki77:
...la prima in classifica è lasciar perdere arduino e usare roba più seria ! :smiley:

Dopo dovranno cambiare nome al progetto :grin: