View Full Version : Programma "casalingo"
clockover
11-04-2007, 16:49
Salve a tutti! Premetto che mi spinge la curiosità prima di tutto, più che la pratica, anche perchè non sarei ancora in grado di creare qualcosa del genere!
Da qualche tempo rimurgino sul fatto che tutti gli elettrodomestici di casa sono dotati di chip e hanno un software per farli funzionare! Ma come sono scritti?? In che linguaggio!
Se io volessi collegare (non ridete faccio solo un esempio:D ) la mia lavatrice al computer, come potrei fare!
Come posso far interagire il mio computer con un semplice elettrodomestico!!
Ringrazio a tutti coloro che soddisferanno la mia curiosità!!
Da qualche tempo rimurgino sul fatto che tutti gli elettrodomestici di casa sono dotati di chip e hanno un software per farli funzionare! Ma come sono scritti?? In che linguaggio!
Se io volessi collegare (non ridete faccio solo un esempio:D ) la mia lavatrice al computer, come potrei fare!
Come posso far interagire il mio computer con un semplice elettrodomestico!!Nel campo dell'informatica e dell'elettronica (e credo che il discorso possa valere anche per altre discipline), ci si basa principalmente su standard, specifiche, protocolli, linguaggi, interfacce, ecc... ben chiari e precisi, che permettono di far interagire i vari componenti hardware/software.
Ciò vuol dire che se un dispositivo XYZ non ha le risorse hardware/software per comunicare in modo chiaro e preciso con altri dispositivi ..... allora non è possibile fare alcunché con tale dispositivo XYZ!!
Certo, sarebbe bello se la lavatrice che ho in casa potesse comunicare con un PC .... potrei programmarla pure io :p oltre a mia madre (visto che io la lavatrice non so usarla....), potrei stabilire quanto ha lavorato, magari quanto ha assorbito di corrente, ecc...
Ma questo presupporrebbe che la lavatrice sia progettata a livello hardware e software per "esporre" le sue funzionalità in modo chiaro, preciso e "standard" verso altri dispositivi.
Purtroppo non è (ancora) così. Sopratutto per quanto riguarda gli elettrodomestici, non c'è ancora questa "cultura", non ci sono standard e tecnologie che permettano, oggi come oggi, di far comunicare gli elettrodomestici tra di loro :D o con dei PC.
clockover
11-04-2007, 21:31
Grazie della risposta!! Anche se pensavo che ci fossero dei modi! Ora so che non è così semplice! Però sai com'è, a volte mi prendono delle fissazioni, e ho bisogno di sapere!:D
sottovento
12-04-2007, 03:00
<CUT>
Ciò vuol dire che se un dispositivo XYZ non ha le risorse hardware/software per comunicare in modo chiaro e preciso con altri dispositivi ..... allora non è possibile fare alcunché con tale dispositivo XYZ!!
<CUT>
Purtroppo non è (ancora) così. Sopratutto per quanto riguarda gli elettrodomestici, non c'è ancora questa "cultura", non ci sono standard e tecnologie che permettano, oggi come oggi, di far comunicare gli elettrodomestici tra di loro :D o con dei PC.
Beh, e' gia' cosi', magari non completamente, ma e' cosi'!
Prima di tutto: negli attuali elettrodomestici ci sono sei chip, dei microprocessori che possono essere a 4(si usano ancora) o 8 bit. Ultimamente ce ne sono anche di categoria superiore.
Perche' cosi' tanta potenza di calcolo in un elettrodomestico? Semplice: costa pochissimo! Costa sicuramente meno mettere un processore e sotto-utilizzarlo che non cablare una logica predefinita (che, oltretutto, e' anche piu' difficile da mantenere).
Come si programmano questi microprocessori?
Ci sono varie chances, come sempre:
- Assembler del processore in uso (metodo poco usato);
- C (Il C++ praticamente non esiste, non ancora). Spesso e' solo un sottoinsieme del C, un linguaggio che gli assomiglia;
- Linguaggi proprietari;
- Altro (immagino ma non ho mai visto);
Il problema piu' grande e' l'affidabilita'. Ogni azienda sviluppa dei sistemi e dei simulatori di test del software. Il software deve passare una marea di test prima di essere approvato, anche perche' i danni che un baco puo' causare sono notevoli.
Un altro problema importante e' la portabilita' del software, visto che e' spesso necessario, per motivi economici, cambiare processore. I processori in uso non hanno la potenza del pc che hai sulla scrivania, per cui e' necessario che la configurazione del software avvenga a livello di pre-processore (in effetti non e' necessaria alcuna configurazione runtime :D ). Java era nato per questo, no?
Per quanto riguarda la comunicazione: molti elettrodomestici sono ora in grado di comunicare.
Il sistema piu' utilizzato sono le onde convogliate (i.e. moduli il segnale attraverso la linea elettrica), altri usano il wireless.
Potrei fare i nomi degli elettrodomestici (per lo meno, quelli di cui sono sicuro poiche' montano il mio software) ma non mi sembra corretto...
Per quanto riguarda gli aspetti della "domotica": alcune aziende ti vendono un piccolo box che, sempre attraverso le onde convogliate, puo' comunicare con i tuoi elettrodomestici. Il box costa attorno ai 70 euro.
Dentro a questo box c'e' Linux ed un web server, che ti permette di esporre i dati degli elettrodomestici, anche su Internet. Sempre dette aziende hanno nei loro siti aziendali delle pagine web che ti permettono di contattare il tuo box (previo pagamento di canone, of course) e di effettuare alcune operazioni, quali accensione/spegnimento/regolazione.
Per inciso: puoi controllare anche un semplice interruttore di corrente, visto che la maggior parte dei nuovi dispositivi sono affacciati su bus di campo.
clockover
12-04-2007, 12:27
L'assembly è poco usato per il problema della portabilità allora!!
E Java? Non ha bisogno di una virtual machine per funzionare all'interno di un elettrodomestico?
sottovento
13-04-2007, 03:13
L'assembly è poco usato per il problema della portabilità allora!!
E Java? Non ha bisogno di una virtual machine per funzionare all'interno di un elettrodomestico?
Java era nato per questo tipo di applicazioni, poi si e' rivelato un ottimo linguaggio e molto piu' adatto per fare altro...
Personalmente non l'ho mai visto usare, pero' c'e' da dire che l'idea era buona: tutto quello che era scritto in Java non avresti dovuto portarlo.
Quindi in caso di migrazione c'era solo da portare le parti NON scritte in Java, le quali presumibilmente erano piuttosto ridotte e, soprattutto, circostaziate (non devi scandire tutte le applicazioni alla ricerca dei punti da cambiare. Sai gia' dove si deve cambiare).
La Virtual Machine puo' essere implementata facilmente in un processore anche poco potente. Questo si, l'ho visto: processori con a bordo una VM, ed anche di dimensione incredibilmente ridotta.
clockover
13-04-2007, 12:19
Grazie per le risposte, hanno senz'altro soffisfatto una piccola parte della mia curiosità!!:D
Andrò avanti con lo scoprire sempre di più!!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.