Jump to content
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
MaxN68

Automazione con Brauduino

Recommended Posts

Facciamo il punto della situazione.

Il Firmware BrauDuino ha oggettivamente dei problemi:
- PID 

- Pausa pompa che non si comporta in maniera uniforme

- Fase di bollitura con tempo non perfetto
- Fase di aggiunta luppoli che non si avvia o salta degli step.

Ai primi due problemi avevo messo mano e trovato soluzione, al terzo problema qualcuno ha posto soluzione introducendo un controllo di errore (CRC Version) che lo stesso autore del programma BrauDuino (Math0) ha citato, all'ultimo problema non avevamo trovato fino ad ora una soluzione, nemmeno lo stesso Mat0.

Poi abbiamo scovato un 3D sul forum australiano con una versione di un tale Mike Wilson che ha rivisto completamente alcune fasi, introducendo anche cose nuove.
L'abbiamo provata e funziona (tranne la pausa pompa che mantiene lo stesso illogico comportamento di prima ma so correggerlo).
Piccolo problema: usa i gradi Farhenheit.

Il lavoro che sto facendo assieme all'amico Sampei80 è quello di ritradurre tutto e testare modalità  per modalità .
Abbiamo incontrato alcune difficoltà  nel ripristinare le visualizzazioni (quelle nuove col countdown) per via di 2 ulteriori caratteri usati sull'LCD che segnalano il funzionamento della Resistenza e delle Pompa (si possono risparmiare i led a questo punto).

Al momento abbiamo tradotto tutto e reimpaginato la visualizzazione.
Da questo punto di vista la cotta Manuale sembra a posto (manca una parte funzionale su un'aggiunta fatta), la parte automatica è da finire.
Datemi tempo ancora qualche giorno per finire tutto quanto e poi passeremo a testare il tutto in maniera intensiva.
Anzi se qualcuno volesse farsi avanti per aiutarci nei test è il benvenuto

 

Modifiche introdotte:
- Countdown in durante le fasi automatiche in formato h:mm:ss  
- Linearizzazione della pausa pompa con tempi regolari DALL'INIZIO del raggiungimento degli step impostati

Modifiche da sviluppare:
- Contaminuti al raggiungimento del SetPoint nella fase Manuale

Altre modifiche in via di studio per versioni successive
- Parametri aggiuntivi riguardanti Pausa Pompa, temperatura di boil impostabili da menu
 

Share this post


Link to post
Share on other sites

Signori ci siamo!!!
Grazie all'amico sampei80 siamo arrivati ad una fase avanzata di test sulla traduzione del firmware di Stephen Mathison rivisto e corretto da Mike Wilson e relativa trasposizione da gradi Faherenheit a gradi Celsius.

La nuova versione rispetto alla vecchia introduce la correzione dell'errore di lettura della sonda data (crc version) e il controllo in manuale della potenza della resistenza nella fase del BOIL grazie ad un algoritmo PWM.
E' stato risolto il bug delle aggiunte di luppolo e ho modificato il comportamento della pausa pompa (adesso resetta ad ogni step e inizia la pausa dopo 10 minuti dal raggiungimento della temperatura di STEP).
Nel programma la pompa è settata OFF dalla rimozione del pipe a tutto il processo della bollitura (sul Braumeister originale si spegne a 80°C)
Inoltre ho inserito un CRONOMETRO che parte in automatico al raggiungimento della temperatura settata sia in modalità  MANUALE che in AUTOMATICA (in questo caso fa da COUNTDOWN).

Il software così confezionato dai test che abbiamo fatto (i necessari per poter risolvere tutto quello che ci capitava davanti agli occhi) sembra essere a posto.

 

Sono così passato a sistemare le ulteriori nuove idee necessarie per un corretto funzionamento delle varie tipologie di pentole che abbiamo costruito.
Ho già  pronta l'ossatura per tutti i nuovi settaggi di configurazione, mi manca di introdurre il codice per avere un'unica versione universale del software.

Mi sono divertito anche ad aggiungere una cosa simpatica per rendere omaggio a questa idea pienamente Open Source, ma questa sarà  una sorpresa che spero potrà  piacere.
A questo punto però servono dei test veri, simulazioni di cotte con veri step e quanto altro.
Fare tutto questo da solo o con l'aiuto dell'amico sampei80 inizia ad essere dispendioso ed oggettivamente lungo, chiedo quindi a chi volesse partecipare a questa fase di proporsi in modo che io possa indicare come reperire il firmware (non voglio divulgarlo finchè non siamo sicuri che sia davvero a posto).

Poi passerò a finire il nuovo software che prenderà  come numerazione 2.6.xx

Fatevi sotto :)
 

  • Like 1

Share this post


Link to post
Share on other sites

Massimo ovviamente IO ci sto ma devo attendere di finire il nuovo PCB spero questione di giorni :D

 

Le modifiche da te effettuate sono molto interessanti e valgono la pena essere provarle ed usarle 

Dato che sono più strutturali / funzionali rispetto a quello per lo più di sfizio della gestione ricette su sd e log

che sono state introdotte in BirraDuino

 

Dico che devo attendere di fare il nuovo PCB dato che su quello attuale che ha ingressi analogici

non posso provarlo a meno che riesci a mettere la modifica al interno del FW mofidifato da Niki

in quel caso posso caricare il modulo ingresso analogico e provare anche sull' attuale PCB.

 

E sicneramente se devo fare montare un nuovo pcb voglio evitare di realizzare la vecchia versione che non userei dopo vorrei evitare.

Edited by saviothecnic

Share this post


Link to post
Share on other sites

 

Fare tutto questo da solo o con l'aiuto dell'amico sampei80 inizia ad essere dispendioso ed oggettivamente lungo, chiedo quindi a chi volesse partecipare a questa fase di proporsi in modo che io possa indicare come reperire il firmware (non voglio divulgarlo finchè non siamo sicuri che sia davvero a posto).

Poi passerò a finire il nuovo software che prenderà  come numerazione 2.6.xx

Fatevi sotto :)
 

 

appena ricevuto la shield da Savio...mi manca solo display che ho ordinato

Appena arriva inizio a testare e simulare fornendo il mio contributo

 

Davide

 

PS suggerisco nuovamente di strutturare il progetto su surceforcge o similari in modo da gestire ciclo di sviluppo, test,aggiornamenti, versioning in maniera opportuna...lasciando sul forum la discussione su risultati, esperienze, richieste etc..

Share this post


Link to post
Share on other sites
Ormai sono alla stretta finale, non credo ne valga più la pena.


Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Alla fine dove svariati tentativi ho capito che era la porta DV della videocamera ad avere problemi :(
Mi sono fatto prestare una videocamera DV da un amico e finalmente vi posto il filmato del test che avevo fatto settimane fa.

Appena terminato il Nuovo PCB Mega 2560 univerale testero anche il FW di MaxN68

In questi test cerco anche di spiegare "una sorta di videotutorial all' uso"
un po come funziona il tutto se notate cappallete nella spegazione ditemelo che magari ho capito male come si usa  ;)

Grazie

http://www.youtube.com/watch?v=CTCQ82GG8Ug

Ecco il Video

http://youtu.be/CTCQ82GG8Ug

 

P.S non so cosa sia "surceforcge" ma se è un mezzo per condifivedere il codice e farlo crescere per me OK

Share this post


Link to post
Share on other sites

Facciamo un ulteriore punto della situazione dopo qualche altro test fatto.
Il firmware BETA sembra essere stabile e funzionante nella sua totalità .
Dobbiamo finire dei test di cotta simulata e passeremo questo in RELEASE CANDIDATE.

Sto nel frattempo portando avanti i test anche per la versione ALPHA e anche questo sembra essere stabile, quindi appena apriremo l'accesso alla RELEASE CANDIDATE per poterlo far provare a tutti e debuggare su un campione più ampio, passeremo anche a simulare con questa release che sarà  poi la versione finale che verrà  rilasciata.

Spero di poter riuscire a dichiarare chiuso questo progetto nella sua totalità  entro la fine del mese.

Share this post


Link to post
Share on other sites

Il mio LCD ha ben deciso di smettere di funzionare.
Quindi sono in mano vostra per quanto riguarda ogni tipo di test possibile e immaginabile finchè non riesco a risolvere il problema.
Dovrebbe essere il ribbon cable, ma non riesco a reperirlo da nessuna parte.
Ho cercato di arrangiarmi ma qualcosa non va.
L'unica cosa che sicuramente non manca è l'altissimo numero di bestemmie varie con un tasso di fantasia e composizione casuale con un numero di aggettivi non inferiore a 5.

Share this post


Link to post
Share on other sites

Azz :( Mi spiace MAX proprio qualche giorno fa sono arrivati gli LCD se è quello rotto te ne posso mandare Uno

Ma credo anche io sia più il flat

 

Dato che il PCB Universale Mega 2560 lo devo ancora testare ieri al volo proprio per poter testare questo FW

Ho fatto il BrauDuino Classico R2 cosi testo su un PCB Ufficiale

Anche se gli vorrei normalizzare tutti come Pin Oput

Pin 5 Pompa

Pin 6 Resistenza

Pin 8 Sonda

Pin 9 Buzzer

 

Inpressi Pulsanti A0 A1 A2 A3

 

IMG_20140120_183027.jpg

 

Appena finisco di montare tutto credo questione di poco sono pronto per i Test ;)

Share this post


Link to post
Share on other sites

ne ho 2 di lcd e nn ne funziona nessuno, o meglio la retroilluminazione va ma nn arrivano i dati (o arrivano male), quindi l'unica cosa è il flat, anche perchè componentistica elettronica in mezzo nn ce n'è

Share this post


Link to post
Share on other sites

Ho scartabocchiato nei cassetti presumo che ti servano questi

IMG_20140121_001935.jpg

 

 

IMG_20140121_001958.jpg

 

 

Io sto provando ora la sul PCB appena terminato Brauduino ma non va ho usato lo stesso pin out della ver PCB 14

 

Brauduino-lc.jpg

 

 

La R-BL sono andato a memoria ho messo 120 Ohm e il trimmer

// define pinout
// sensor and lcd
OneWire ds(8);
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

// push buttons
const char Button_prev = A0;
const char Button_nxt = A1;
const char Button_up = A2;
const char Button_dn = A3;

// outputs
const int Pump = 9;
const int Buzz = 10;
const int Heat = 11;

Ovviamnete provando con il FW 1.1.12 se mi dite che come config SF è tutto ok mi vedo un po il cablaggio.

Forse per la fretta o fatto qualche cavoltata :O

Share this post


Link to post
Share on other sites
Siamo alla versione 2.6

Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Ottimo appena ti do conferma che parte il mio brauduino la provo anche io :D

Senti ma visto i vari casini gli LCD e si risparmierebbe anche 4 PIN coltre che collegare il tutto con solo 4 fili

Se volessimo usare  il display in I2C ho un modulo tipo questo

 

http://www.ebay.it/itm/1pz-Convertitore-seriale-I2C-display-LCD-alfanumerico-HD44780-arduino-pic-shield-/330990391438?pt=Componenti_elettronici_attivi&hash=item4d1090908e

Cosa devo aggiungere ?

Proprio da quel Link vedo una libreria con esempio basterebbe aggiungere queste righe di codice  per gestirlo ?


[code]/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
//none
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address


/*-----( Declare Variables )-----*/
//none

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(20,4);         // initialize the lcd for 20 chars 4 lines and turn on backlight

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on [/code]

Grazie

Share this post


Link to post
Share on other sites
Non ne ho la più pallida idea.
Continuo a non conoscere il linguaggio ne' l'architettura di arduino

Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Ok io provo male che va non funziona :D

Cmq ho chiesto la stessa cosa anche sul fourm arduino magari cosi se funziona risolvi anche tu al volo dato che il TUO PCB è gia predisposto per I2C

Share this post


Link to post
Share on other sites
àˆ una cosa che si mangia? :)

Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Rendo pubblico il documento APPUNTI PER IL TEST in modo da spiegare un po' cosa sta succedendo e in che direzione stiamo lavorando

 

 

APPUNTI PER IL TEST DELLE VERSIONI

 
VERSIONE BETA
Modalita' MANUALE
Ci sono poche cose da testare nel funzionamento di questa modalita'. Vediamole.
- Corretto funzionamento dei tasti UP e DOWN per gli incrementi/decrementi temperatura
- Corretto funzionamento del tasto di comando POMPA
- Corretto funzionamento del tasto di comando RESISTENZA
- Corretto funzionamento del PID
- Corretto funzionamento del CONTAMINUTI
- Corretto funzionamento dell'azzeramento del contaminuti 
  (si azzera quando agendo sul tasto UP si corregge la temperatura di pi˘ di 2°C in un'unica pressione)
- Corretto funzionamento dell'algoritmo PWM in fase di BOLLITURA
 
Modalita' AUTOMATICA
Le cose da testare in questa modalita' sono un po' piu' complesse.
Iniziamo col vedere che ho tolto per mio sfizio i nomi delle fasi cosà come erano nell'originale 
(FASE 1, FASE 2, FASE 3, ECC) per introdurre dei nomi ben specifici.
Questa cosa implica l'uso del settaggio a 7 fasi (vorrei metterla di DEFAULT non modificabile, per saltare 
una fase e' sufficiente settare a 0 minuti il tempo di sosta (introdurro’ il reset a 0°C con un tasto)).
 
In questa fase ci sta da verificare in maniera approfondita:
- Corretto funzionamento del PID
- Corretto funzionamento del COUNTDOWN (negli utlimi 5 secondi avverte acusticamente)
- Corretto funzionamento della pausa pompa (ciclo di funzionamento 8 minuti, pausa 2. 
  E' previsto un limite di funzionamento all'interno di una perdita di 1∞C di temperatura, se viene superato
  il limite sia la pompa che la resistenza ripartono).
  In fase di bollitura la pompa à‹ SPENTA. (Nel Braumeister originale stacca a 80∞C).
- Corretto funzionamento dell'algoritmo PWM in fase di BOLLITURA (settata a 98∞C)
- Corretto funzionamento dell'algoritmo dell'aggiunta LUPPOLO
 
 
In entrambe le modalita' verificare se ci sono errori di visualizzazione su LCD (sfarfallii, sporcature di 
caratteri della schermata precedente, scritte errate e/o incomprensibili).
 
 
 
 
VERSIONE ALPHA
In questa versione à‹ funzionante tutto il secondo menu' di configurazione unita'.
Quindi i vari parametri agiscono direttamente sui vari algoritmi di controllo in base ai valori immessi.
 
 
Una nota particolare va dedicata alla configurazione del SENSORE.
SENSORE INTERNO: Si intende il sensore che misura all'interno della pentola
  Nella fase di BOIL, la pompa sara’ attiva fino al raggiungimento di una temperatura pari a 4∞C 
in meno il punto settato come BOIL.
 
SENSORE ESTERNO: Si intende il sensore che misura esternamente alla pentola (Es: Circuito di ricorcolo)
Nella fase di BOIL, la pompa sara’ attiva fino al raggiungimento del punto settato come BOIL.
 
 
NB: Il settaggio a SENSORE ESTERNO esclude il rest della pompa nella fase di boil in quanto sarebbe impossibile 
il regolare controllo della temperatura stessa.
 
 
 
 
Buon lavoro a tutti quanti

Questo è quanto ho scritto non + tardi di ieri.

Oggi abbiamo fatto passi in avanti.
Ho fatto dei test intenzionato a mettere in crisi il sistema sui limiti delle varabili e ci sono riuscito potendo così correggere problemi seri di logica di funzionamento.
Da questo punto di vista la versione più stabile a questo punto è la versione ALPHA (ho abbandonato la BETA sperando venisse testata dagli altri in tempi brevi), ma a questo punto conviene soffermarci all'ALPHA.

Aspetto i vostri test per poterla dichiarare RELEASE CANDIDATE e poi in seguito renderla una versione ufficiale.
E prendermi una meritata pausa.

Share this post


Link to post
Share on other sites

Ok sistemato sono pronto mi puoi mandare il FW solo che fine sett non ci sono quindi questa set solo test a banco

 

 

IMG_20140121_195906.jpg

 

Dopo provo anche se va in I2C ;)

Share this post


Link to post
Share on other sites

Ottimo appena ti do conferma che parte il mio brauduino la provo anche io :D

Senti ma visto i vari casini gli LCD e si risparmierebbe anche 4 PIN coltre che collegare il tutto con solo 4 fili
Se volessimo usare il display in I2C ho un modulo tipo questo

http://www.ebay.it/itm/1pz-Convertitore-seriale-I2C-display-LCD-alfanumerico-HD44780-arduino-pic-shield-/330990391438?pt=Componenti_elettronici_attivi&hash=item4d1090908e
Cosa devo aggiungere ?

Grazie



Miiiii siete davvero incorreggibili...neppure il tempo di fermare le bocce e già  un altra variazione e modifica..
Ho appena ordinato LCD seriale e...zac..ecco che spunta LCD I2C..

Per la cronaca le modifiche non sono complicate...date un occhio al playground arduino al paragrafo I2C

http://playground.arduino.cc/Code/LCD'> http://playground.arduino.cc/Code/LCD

E ci sono librerie che supportano sia seriale che I2C

https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Davide

Inviato dal mio Nexus 7 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Davide io in mezza giornata ho inciso forato e montato il PCB BrauDuino su nel post

 

Ma se devo mettere due righe di codice mi passa mezza settimana solo per capire cosa fare :P

 

Se te la senti visto che dici che non è complkicato e magari mi aggiungi al FW di MaxN68 il supporto I2C LCD

IO lo provo volentieri da quello che ho capito non si fa come ho suggerito IO :O

 

Grazie

Share this post


Link to post
Share on other sites

Ora finiamo quello che abbiamo, testiamolo per bene.
Io nei prossimi giorni mi metterò a tavolino per capire ogni punto critico da verificare nel funzionamento visto che di possibilità  di configurazione ne ho inserite parecchie.

Per quello che ho testato finora mi sono soffermato ai punti critici delle vecchie versioni che erano:
Logica della pausa pompa
Modalità  di tenuta della pausa pompa (sul tempo e sul delta della temperatura)
Criticità  della pausa pompa nelle sovrapposizione con gli step
Funzionamento della fase di Boil
Aggiunte luppolo

Una volta giunti in fondo, se sarà  opportuno modificare qualcosa, ne discuteremo in uno spazio apposito (Sourceforge) in modo da poter pianificare il tutto e fare un vero e proprio gruppo di lavoro.

Share this post


Link to post
Share on other sites

Davide io in mezza giornata ho inciso forato e montato il PCB BrauDuino su nel post

 

Ma se devo mettere due righe di codice mi passa mezza settimana solo per capire cosa fare :P

 

Se te la senti visto che dici che non è complkicato e magari mi aggiungi al FW di MaxN68 il supporto I2C LCD

IO lo provo volentieri da quello che ho capito non si fa come ho suggerito IO :o

 

Grazie

 

cazzarola mi e' appena arrivato LCD seriale che ho ordinato proprio per non usare quello I2C che avevo in casa perche' non volevo mettermi a pasticciare il codice e mi chiedi di tornare indietro... :fool:

%255BUNSET%255D.jpg

 

Non ho neppure dato un occhio al codice e aspettavo il display ...fammici giocare un attimo e orientare e poi provo..anche io sono un dilettante del SW.. ;)

 

Come dice Papazian..relax have an home brew (via I2C) :good:

 

IMG_20120608_142212.jpg

Share this post


Link to post
Share on other sites
Savio smettila di voler aggiungere, togliere, modificare cosr

Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Savio smettila di voler aggiungere, togliere, modificare cosr

Inviato dal mio GT-N7100 utilizzando Tapatalk

 

dai che se non ci fosse Savio bisognerebbe inventarlo..un po' un vulcano e incontenibile ma un grande motore per tutti i progetti  :good:

 

un piccolo esempio di uso delle librerie I2C per il display (lo sketch legge la temperatura dal sensore dalla e la visualizza)

Una volta definito il tipo di display e inizializzato direi non cambia nulla nella scrittura con la lcd.print()

 

Davide

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27,16,2);  

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
  
   lcd.init();                      // initialize the lcd 
   lcd.backlight();
   lcd.print("Temperature is: ");
}

void loop()
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  //Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  //Serial.println("DONE");
  
  lcd.setCursor(1, 1);
  lcd.print(sensors.getTempCByIndex(0));  
}

Share this post


Link to post
Share on other sites
Avete avuto modo di provare qualcosa di quello che per ora c'è?

Inviato dal mio GT-N7100 utilizzando Tapatalk

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...