Washing Machine Open sources

Una macchina da lavare open sources, nessuno ci aveva pensato prima di me. Invece c'è stato chi ha pensato ad una macchina da lavare per i paesi meno sviluppati, tuttavia non è elettrica.

Ho dentro alcune schede ed ho preso di mira una LB2000 montata su una philco da 6Kg. Il micro originale è un renesas, l'ho dissaldato per comandare triac e rele tramite arduino o meglio uno standalone basato sul 328, anche se tra ingressi ed uscite farei meglio a puntare sul 644 che ho dentro.

La scheda display 20x4 e la tastiera (Master) sarà collegata alla micro montato sulla scheda LB2000.

La scheda display/tastiera è la parte più facile del progetto ed è a buon punto. Ho 9 programmi in array di struttura messi in flash, ed avrdude mi dice che ho occupato:
avrdude: reading on-chip flash data:
avrdude: verifying ...
avrdude: 16614 bytes of flash verified

Il display mostra i dati presi da una struttura in ram che viene riempita dai dati prelevati dalla flash, quindi poi questa struttura la posso scrivere in EEprom così da permettere la creazione personalizzata dei programmi di lavaggio. Cioè salvando in EEPROM il programma selezionato aggiungo un programma lavaggio personalizzabile dall'utente.

Ora devo cominciare a pensare ad interfacciare le due schede, ma sorge un problema legato al fatto che la scheda originale ha un polo di rete connesso in comune con GND del micro. Durante lo sviluppo non è comodo avere la 220v a portata di mani, mentre per la realizzazione finale il problema forse non sussiste. Fondamentalmente il problema è il costo dei fotoaccopiatori visto che sono almeno 5 per le uscite (pilotano triac) ed un paio per gli ingressi sensori che lavorano a tensione di rete.

Che strada prendo?
rischio limitando il costo
oppure rischio solo nella board LB2000 e metto sotto opto la seriale?
Oppure tutto isolato dalla rete.

Altra cosa. Una volta connesse le schede dialogano tra loro, ed io non posso debbugare allora avevo pensato alla ISP, ma c'è un convertirore da ISP a usb in vendita?

Un ultima cosa, avete suggerimenti, es riguardo alla casa domotica si potrebbe connettere un wireless su ISP per gestire i consumi, es anziche fare lavorare la resistenza alla massima potenza di 2000 W, se necessario l'impianto domotico potrebbe fare richiesta di riduzione consumi a 1000W, certo allungherebbe la durata della lavaggio ma eviterebbe il distacco del contatore, comodo per chi fa tanti lavaggi giornalieri.

Ciao.

Una macchina da lavare open sources, nessuno ci aveva pensato prima di me

dici? :roll_eyes:

In internet c'è qualche link interessante al riguardo, anche con analisi approfondite su quanto open source debba/possa essere una lavatrice(tecnologia, materiali, elettronica, pure detersivi ... :D).

EDIT

Un ultima cosa, avete suggerimenti, es riguardo alla casa domotica si potrebbe connettere un wireless su ISP per gestire i consumi, es anziche fare lavorare la resistenza alla massima potenza di 2000 W, se necessario l'impianto domotico potrebbe fare richiesta di riduzione consumi a 1000W, certo allungherebbe la durata della lavaggio ma eviterebbe il distacco del contatore, comodo per chi fa tanti lavaggi giornalieri.

questa è una cosa da approfondire!
Nella domotica (del futuro, anche se mi sembra che qualcosa esista già) si parla proprio di elettrodomestici intelligenti, che in base a delle priorità si disattivano se si stanno raggiungendo i limiti consentiti di consumo.

In internet c'è qualche link interessante al riguardo, anche con analisi approfondite su quanto open source debba/possa essere una lavatrice(tecnologia, materiali, elettronica, pure detersivi ... smiley-grin).

Infatti ho scritto: Invece c'è stato chi ha pensato ad una macchina da lavare per i paesi meno sviluppati, tuttavia non è elettrica.

Però se hai il link fresco possiamo vedere cosa si trova in rete.

Nella domotica (del futuro, anche se mi sembra che qualcosa esista già) si parla proprio di elettrodomestici intelligenti, che in base a delle priorità si disattivano se si stanno raggiungendo i limiti consentiti di consumo.

Più che disattivarsi, può anche ridurre gli assorbimenti istantanei, evitando così il distacco del contatore. Stessa cosa per lo scaldabagno elettrico. In base alla priorità lo scaldabagno può ridurre l'assorbimento a 500W e la lavatrice a 1200W, permettendo l'accensione del microonde per scaldarsi il latte o caffe, o fare altro. Di esempi concreti validi non me ne vengono, ma nel vecchio forum ricordo i problemi.

Un esempio di logica potrebbe essere la seguente.
Ogni utenza accetta delle richieste, queste possono essere accordate o rifiutate in automatico.
Richiesta: Riduci consumo di 500W?
Risposta: accordato ridotto consumo a 1000W.

Il motore della lavatrice assorbe la massima potenza solo in centrifuga, potenza che è ~500W o poco più.

Devo comprare da RS alcune cose, e non so ancora se mi servono dei fotoaccopiatori e quali. Ce ne sono con uscita TTL che potrebbero tornare comodi per l'interfaccia sensori. Altri mi servono per pilotare dei triac, almeno 5 di base più 1 se voglio l'inversione marcia cestello senza rele, più uno se voglio comandare la restistenza sotto triac.

Al momento mi limito all'essenziale, quindi inversione di marcia con rele, e restistenza on/off. Spero di trovare il materiale adatto entro oggi, perchè l'ordine ad rs è urgente.

Ciao.

(ecco secondo me il vero motivo per il quale nessuno ha mai proposto questo progetto)

Questo vale anche per l'impianto domotico, come pure per la lampadina che sono due giorni che ti dico di cambiare, per non parlare della immondizia, sei uscito lasciandomi l'immondizia dentro. E posso continuare, e ti dico che se non avessere qualcosa di banale su cui mugugnare direbbero di peggio.

Un progetto di questo richiede la soluzione a vari problemi che sono comuni in altri apparecchi, es:
Controllo di velocità motore AC tipo eccitazione serie, tramite parzializzazione di fase.
Acquisizione passagio per lo zero.
Controllo presenza tensione rete, tempo di autonomia in mancanza rete per operazioni di salvataggio.
Comando di rele, ed elettrovalvole e feedback.
Programmazione di una macchina a stati finiti sequenziali con stati esclusivi e non, stati di transito ecc.
Interfaccia comunicazione/protocolli, RTC, display, key pad o analog keys.

Stessa cosa per l'impianto di climatizzazione, qualcuno qui vuole realizzare un inverter, se ci riuscirà si potrebbe usare per pilotare una pompa di calore in Open sources, con capacità domotiche aprendo la strada alle future proposte commerciali.

Ciao.

Purtroppo non troveremo nel prossimo futuro elettrodomestici con uscite e ingressi per la domotica a protocolli standard o contatti standard.
Le morsettiere ci sono, apri lo sportellino e leggi "domotic IN, domotic OUT, tel IN, tel OUT, GSM1 GSM2 ecc", che figata ha anche la possibilità di essere collegata a un sistema domotico. Apri il manualetto in 800 lingue e trovi una figura di qui morsetti e sotto in neretto "riservati all'assistenza tecnica specializzata", nessuno schema e nessuna specifica.
Chiamiamo il centro assistenza e domandiamo come usare queste morsettiere, 20 minuti a spiegare e 8 assistenze su 10 ti dicono che non l'hanno mai usato, quelle che sanno qualcosa sono vaghi, ma non ti rispondono.
Chiamiamo la casa costruttrice, ci sarà un ufficio tecnico!! Ti rispondono facendoti il terzo grado e che loro parlano solo con gli installatori autorizzati. Difficile uscire da queste 2 porte chiuse.
Andiamo dove l'hai comprata avranno un catalogo dei componenti opzionali. Facciamo gli interessati, al titolare iniziano a luccicare gli occhi e si intravedono i dollari stampati nelle pupille, scopri con amarezza che comunicano solo con le loro centraline che costano un botto di soldi (tipo un gsm che lo accende 650,00 euro), non sono ne ingressi ne uscite pulite.
Tu spieghi che hai già un impianto domotico nella villa a 3 piani (che non è vero) e che è assurda sta cosa, ma nulla ci dispiace ma è così.
Ho provato con diverse case di elettrodomestici più avanzati e rispondono tutti così, non hai la possibilità di usare questi morsetti per un tuo impianto pronto ad essere connesso. Gli impianti di condizionamento sono uguali, hanno le loro centraline per i comandi remoti e analisi di stato.

Quindi viva la tecnologia che rende la vita più facile e ti fa risparmiare :slight_smile:

ciao

MauroTec:
Altra cosa. Una volta connesse le schede dialogano tra loro, ed io non posso debbugare allora avevo pensato alla ISP, ma c'è un convertirore da ISP a usb in vendita?

Ma perché complicarsi la vita? :slight_smile:
Se la comunicazione è in seriale usa softserial o meglio softeasytransfer.
Inizializza due pin qualsiasi per la trasmissione ed usa un normalissimo convertitore usb seriale (che probabilmente già possiedi) per il debug :slight_smile:

Scusa DanielaES....
ma... che diavoleria è quella libreria ? (softeasytransfer)
usare una semplicissima e banalissima seriale no ? O.o non capisco perchè complicarsi la vita :slight_smile:

pablos71:
Quindi viva la tecnologia che rende la vita più facile e ti fa risparmiare :slight_smile:

Non farò pubblicità gratuita, però la mia lavatrice ha una porta USB, device di tipo HID dati, tramite la quale posso programmarla a piacere in remoto e/o interagire con la stessa mentre funziona, detto in altri termini è possibile collegarla ad un impianto domotico e, volendo, farla partire a piacere tramite connessione internet, c'è pure l'app pronta per Android :smiley:
Anche il prossimo forno a microonde che acquisterò ha l'app per Android, la domotica è già una realtà da qualche anno, però è ancora abbastanza costosa.

ratto93:
Scusa DanielaES....
ma... che diavoleria è quella libreria ? (softeasytransfer)
usare una semplicissima e banalissima seriale no ? O.o non capisco perchè complicarsi la vita :slight_smile:

Softeasytransfer si basa su softserial.
Usare una banalissima seriale ti occupa i pin 0 ed 1, impedendo il debug via pc.
Con la softserial puoi prendere due pin qualsiasi (e.g. 9 e 10 ) e trasformarli in pin per comunicazione seriale tx e rx.
Primo vantaggio: i pin 0 ed 1 rimangono liberi e puoi fare il debug anche quando le schede stanno comunicando.
Nel caso di Mauro, si evita di dover cercare un convertitore ISP USB :slight_smile:

softeasytransfer ha poi un ulteriore vantaggio.
Se usi una normalissima seriale devi occuparti di ricostruire a manina i byte dei dati che mandi.
Fin quando è una variabile si può fare, ma alla lunga stanca.
La lib in questione, previa dichiarazione delle variabili, ricostruisce tutto per conto suo.
Semplificando di molto il lavoro, mantenendo il codice pulito ecc.
Inoltre implementa un checksum quindi hai anche un piccolo controllo sull'integrità dei dati inviati.

Secondo me quella lib è una genialata.
Hanno fatto il porting anche per la I2C, anche se non è ancora stabile.

Mi accodo a legacy...
Conosco la SoftwareSerial e la NewSoftwareSerial ma con queste due senza perdere molto tempo ho subito i dati che voglio :smiley: poi siam tutti liberi di far ciò che vogliamo fortunatamente :slight_smile:

legacy:
Una banalissima seriale hw ha uno shift register che si gestisce lui le tempistiche giuste per tener u la comunicazione asincrona mentre nella softuart devi tenere impegnati inutilmente i timer e gli interrupt per cercare di fare altrettanto. Inutile spreco di risorse, immensa riduzione del margine di stabilita' del software che gira nel micro, aumento esponenziale della probabilita' che tutto smetta di funzionare e che tu non sappia nemmeno dove sbattera la testa, aumento lineare della possibilita' di driftare in frequenza perche' gli errori se la comunicazione asincrona della seriale ammette un minimo di drift attorno alla frequenza nominale (1/9600bps p.e.) a patto che questo sia contenuto entro una tolleranza nel caso della softserial e' anche probabile che quell'errore sia funzione integrale crescente col risultato che prima o poi satura.

Non ho le competenze per poter disquisire su questi concetti :slight_smile:
Secondo me dovresti affrontare il discorso con il creatore della softserial (l'easytransfer non fa altro che ricostruire le var, si appoggia totalmente a quella lib).
Sul non usarla... boh, softwserial è stata inclusa anche nell'IDE 1.0, un minimo di funzionalità deve pur averla :wink:

legacy:
Mah, si puo' anche usare cosi' come si possono toccare i bit del GPIO per fare i2c, il fatto e' che non e' il modo corretto di fare le cose, o meglio se lo fai introduci necessariamente delle problematiche che prima o poi si faranno sentire. Io te l'ho detto solo perche' tu pensavi che ci fossero solo vantaggi, invece ci sono anche molti svantaggi, basta saperlo e ci si regola.

Chiacchierando con l'autore di softeasytransfer mi ha spiegato che la sua libreria si basa totalmente su softserial. Tutta la parte della comunicazione seriale è gestita quindi da quest'ultima lib.
Al mio attuale livello di conoscenze non mi pongo minimamente il problema di analizzare i difetti di una libreria ( softserial ) inclusa ufficialmente nel nuovo IDE.
Sicuramente avrà molti difetti, ma io la prendo per buona così com'è :smiley:

Il consiglio per mauro può essere
"se hai bisogno dei pin seriali per il debug... usa softserial ed inizializza due pin qualsiasi! "
Poi se uno vuole ricostruirsi a manina i dati inviati, oppure usare una piccola lib che automatizza solo quella specifica parte del processo... beh, ad ognuno il suo.

Per come mi è stata spiegata softeasytransfer dall'autore... questa non ha assolutamente problematiche, a parte quelle che possiede softserial, su cui si appoggia per tutto.
Se volete c'è anche easytransfer, che si occupa di ricomporre i dati sulla seriale hardware :slight_smile:

La famiglia EASY da quanto ho capito non si occupa della comunicazione in se.
Ogni eventuale problematica in tal senso risiede quindi nelle librerie che invece se ne occupano.

Domanda: ma quale versione di SoftSerial usa?
Perché la SoftwareSerial inclusa nell'IDE fino alla versione 0023 soffriva del bug di bloccare il codice perché non usava gli interrupt mentre la versione inclusa nell'IDE 1.0 mi pare sia stata riscritta basando la libreria sulla NewSoftSerial, quindi usando gli interrupt.

Allora non è che non voglio usare a priori quella lib, e che al momento trovo molto più efficiente sviluppare con il supporto di una libreria tradizionale che mi permette di sfruttare tutte le potenzialità del linguaggio C. Ogni modulo ha le sue variabili statiche non visibili negli altri moduli, quelle condivise sono extern, io mi sento ingessato senza la possibilità di sviluppo modulare.

Se non avessi scelta sarei costretto ad implementare una seriale di digital pin, con tutti i problemi che comporta, dal momento che ancora non mi sono arreso cerco una soluzione efficiente prima di complicarmi la vita.

Il punto di vista di Daniela è diverso dal mio, lei usa la lib citata, io non posso a meno di implementarla e c'è da vedere se l'uso attuale che faccio dei timer mi porta qualche problema, quindi per me significa complicarsi la vita (dipende da che punto guardi il mondo tutto dipende).

Probabilmente sullo slave usero il 644 che ha due seriali quindi il problema si risolve semplice, però questo mi costringe a gettarmi immediatamente sullo studio del 644 ed io prima vorrei implementare il tutto con il 328.

Nota che anche se in giro non c'è una ISP to usb la si può sempre implementare con un 8U2, anziche prendere il flusso da USART lo si prende da ISP, oppure un 168 con FDTI. Se c'è qualcosa di pronto lo acquisto diversamente.... bo si vedrà.

In verità l'interfaccia ISP to USB, serve anche per il collegamento con il software sul PC, ora non pensate solo alla lavatrice mi riferisco in generale, torna sempre comodo avere un'alternativa per collegare il PC. Poi se considerate che non uso bootloader (perchè ho l'avrisp mkii) quindi il modo di sviluppare non rigido, ognuno si inventa il proprio modo a seconda del progetto.

Per via sperimentale il display/tastiera comunica con il pc sul quale c'è un programmino in Python che simula lo slave. Quando mettero mano allo slave farò un programmino che simula il master. Però appena li collego insieme che succede? booo.

Ciao.

La morosa gia' mi fa danni se e' li sul poto accanto alla lavatrice, ti immagini i danni che potrebbe combinare se dovesse telecomandarla da iPad o iPhone o altro smartphone dal suo camerino tra una sfilata e l'altra o da via Montenapoleone dove praticamente ha trasferito la sua residenza ? brrrr, non oso nemmeno pensarci.

mmmm... chissa se esiste la possibilità di rottamarla e prenderne una nuova, sicuramente lei non sarà daccordo. :stuck_out_tongue:

A parte gli scherzi, l'idea non è quella di comandarla a distanza, per questo concordo con "Dai e' roba per nerd di utilita' vera io ne vedo poca quasi zero". Diversa è la gestione automatizzata da impianto domotico, in quanto sa che la lavatrice deve accenderla la sera alle ore tot per risparmiare sulla bolletta, ma non troppo tardi perchè poi fa casino e devi dormire. Alla fine capita che l'oriario coincide con il rientro in casa, doccia, phon, cena ecc.

Con questo non voglio dire che la sto realizzando con questo obbiettivo e solo per impiegarla nell'impianto domotico che non posseggo, ma visto che ci sono una volta funzionante, introdurre l'iterfaccia verso l'impianto domotico è una tentazione, ci vuol poco il più è fatto.

Certo che un motivo che ha spinto i produttori a fornire funzioni domotiche ci deve essere. Non è economico perchè il gioco non vale la candela, quindi io penso che l'hanno fatto perchè era li a portata di mano e fanno esperienza per il futuro. Tuttavia non si sono mossi per standardizzare il protocollo e non ha alcun senso implementare una simile interfaccia.

Pensa pensa che mi è arrivata notizia che i pezzi di ricambio di alcune lavatrici sono codificati, perfino la pompa deve essere quella è no quella compatibile della concorrenza. La stessa cosa che avviene con le Auto, se monti fari e centraline non originali su una AUDI"O", questa lo memorizza nel computer di bordo e quando vai in assistenza loro lo vedono e ti sparano 1800 € per rimettere le cose a posto.

Comunque io di lavatrici con predisposizione domotiche non ne conosco, in tutte le lavatrici nel retro c'è una presa diagnostica, per il service che serve per riprogammare la flash e accedere alla eeprom esterna. Se nelle nuove lavatrici questa presa offre anche funzioni domotiche io non lo so, mi fido di quello che dite.

Astro perchè non mi dici marca e modello della tua lavatrice, hai paura che ti dica che è una ciofeca.
Astro è tipo da AEG limited edition (carrarmato da combattimento).
Oppure Bosh, miele ecc.

Però se astro aprisse una LG, capirebbe perchè le preferisco.
(vai che rincorriamo tutti LG che sta scappando)
Allora dai dobbiamo fare una lavatrice senza spazzole come la .., si ma la cinghia gliela lasciamo, e quindi vai di inverter che prende fuoco.
Dobbiamo fare la pesatura e bilanciamento del carico come quella della .., cosi facciamo la 11KG a 1400 giri in dimensioni standard.
Dai facciamo il lavaggio a vapore come quella della .., ecc.

Tutti a rincorrere.

Nota: Quanto espresso qui è solo un parere personale non tecnicamente motivato, e non ha valore alcuno.

Ciao.

leo72:
Domanda: ma quale versione di SoftSerial usa?
Perché la SoftwareSerial inclusa nell'IDE fino alla versione 0023 soffriva del bug di bloccare il codice perché non usava gli interrupt mentre la versione inclusa nell'IDE 1.0 mi pare sia stata riscritta basando la libreria sulla NewSoftSerial, quindi usando gli interrupt.

Su IDE 22 / 23 infatti usa la NewSoftSerial :slight_smile: