Per molto tempo l'umanità si è chiesta come un computer possa fare il caffè... Le persone hanno bisogno di caffè per restare sveglie e stare di fronte ad un computer per molto tempo. Tutti sanno che è molto meglio scrivere codice durante la notte...
Il problema principale è come poter controllare la macchine del caffè con il computer, in modo da utilizzare il software per pilotarla. Queste generalmente significa un interruttore ACCESO/SPENTO implementato su un circuito che controlla l'alimentazione della macchina da caffè.
Caffè molto popolare fra i programmatori poiché non necessita di molta cura, come tutto il software commerciale. Il suo gusto eccitante ha ispirato migliaia di programmatori a scrivere software incredibile, ovviamente scritto sempre nelle prime ore del giorno. Windows per esempio è stato scritto alle cinque del mattino, grazie a questo caffè! I risultati sono garantiti.
Nescafè è un caffè molto forte, fatto mescolando acqua calda con una mistura di caffè e zucchero. Solitamente si prendono un cucchiaio di caffè e uno di zucchero con pochissima acqua, per miscelarli. Nel frattempo la vostra acqua dovrebbe già bollire. Non appena l'acqua è calda a sufficienza mescolare tutti assieme e possibilmente aggiungete del latte. Altrimenti potete usare qualcosa di più semplice di una macchina per caffè per scaldare l'acqua, l'ho visto fare tantissime volte...
Variante popolare del caffè appena menzionato. Attualmente non necessita di una macchina da caffè, ma di un congelatore per avere acqua fredda e cubetti di ghiaccio.
Questo è molto difficile da fare, leggete le Coffee FAQ ( trovate le istruzioni delle bibliografia )
Il diagramma generale può essere una cosa di questo tipo:
--------- 0-5V ---------- ~220V ---------------------
| PC |===>===|Circuito|========| Macchina da caffè |
--------- ---------- ---------------------
Il concetto è quello di prendere il voltaggio di controllo da computer, che guida un circuito elettronico isolato con un Relè o un Triac.
Dovete optare per un circuito Relè se avete una grande macchina da caffè ( con un consumo maggiore di 200 Watt ), altrimenti potete semplicemente usarne uno basato sul Triac.
Tutti i circuiti presentati sono stati sperimentati almeno una volta, ma i risultati che otterrete saranno TUTTI DI VOSTRA RESPONSABILITÀ. Se non avete esperienze con l'elettronica NON DOVETE provare ad usarli, altrimenti potete ottenere dei risultati veramente dannosi.
Dovete stare molto attenti mentre sperimentate utilizzando la corrente elettrica a 220V, e bisogna anche stare attenti a scegliere il fusibile giusto.
Ecco un piccolo esempio di come ottenere un voltaggio 0-5V dalla porta parallela del computer.
Vista posteriore ----- Pin 10 - ACK
Connettore DB-25 | | Pin 9 - D7
Maschio | | Pin 2 - D0
v v v Pin 1 -
~Strobe
____________________________________________________________
/ \
\ 13 12 11 10 9 8 7 6 5 4 3 2 1 /
\ /
\ 25 24 23 22 21 20 19 18 17 16 15 14 /
\______________________________________________________/
Pin 1 è lo Strobe (logica inversa)
Pins 2-9 portano i segnali del bus di dati, esattamente come è scritto nella documentazione della porta parallela
Pin 10 è il acknowledge signal (ACK), controllato da voi, in modo da poter produrre un interrupt nella CPU.
Pins 18-25 sono corto-circuitati e rappresentano la massa (GND).
In dettaglio:
<= in DB25 Cent Name of Reg
=> out pin pin Signal Bit Function Notes
------ ---- ---- -------- --- -----------------------------
=> 1 1 -Strobe C0- Set Low pulse >0.5 us to send
=> 2 2 Data 0 D0 Set to least significant data
=> 3 3 Data 1 D1 ...
=> 4 4 Data 2 D2 ...
=> 5 5 Data 3 D3 ...
=> 6 6 Data 4 D4 ...
=> 7 7 Data 5 D5 ...
=> 8 8 Data 6 D6 ...
=> 9 9 Data 7 D7 Set to most significant data
<= 10 10 -Ack S6+ IRQ Low Pulse ~ 5 uS, after accept
<= 11 11 +Busy S7- High for Busy/Offline/Error
<= 12 12 +PaperEnd S5+ High for out of paper
<= 13 13 +SelectIn S4+ High for printer selected
=> 14 14 -AutoFd C1- Set Low to autofeed one line
<= 15 32 -Error S3+ Low for Error/Offline/PaperEnd
=> 16 31 -Init C2+ Set Low pulse > 50uS to init
=> 17 36 -Select C3- Set Low to select printer
== 18-25 19-30, Ground
Il circuito più semplice che qualcuno possa costruire è:
Vcc
|
+------+
| __|__
Relay /^\ Diode 1N4002
Coil /---\
| |
+------+
|
| /
4.7K B |/ C
parallel port >-\/\/\/\/---| NPN Transistor: BC547A or 2N2222A
data pi |\ E
| V
|
parallel port >--------------+
ground pin |
Ground
Collegate il Vcc allo stesso voltaggio del tipo di relè ( solitamente 5 o 12V). Ovviamente le specifiche del relè devono essere adatte alla vostra macchina da caffè.
I baristi, solitamente, hanno la tendenza di mettere il relè DOPO il transistor, al pin emettitore (E) invece che al collettore (C). Questa è praticamente un disastro poiché il transistor può generare un caffè molto, ma molto cattivo. Il diodo 1N4002 è molto utile per proteggere il transistor dalla tensione del relè. Se non lo utilizzate il transistor diventerà scuro e molto odoroso..
Se desiderate un circuito molto semplice, potete usare il driver triac MOC301[012] della Motorola, assieme ad un TRIAC multi-funzione come il SC141D. Questo metodo porta il vantaggio che non necessita di alimentazione supplementare.
Per un carico non-induttivo usate questa circuiteria
270 1 +-------+ 6 180
+5v -VAVAVA-----+ +----VAVAVA-----+-------------- Line Hot
2 | MOC | |
TTL in ---------+ 3012 +nc VA SC141D
| | 4 / |
nc+ +------------/ |
+-------+ +----\/\/\/---- Line Neutral
LOAD
Se state utilizzando una tensione di 220V, è preferibile un 3021. Carichi induttivi devono essere utilizzati assieme a dei condensatori di bypass. Fate riferimento al documento Motorola Application Note AN-780. Le macchine da caffè usano per lo più cariche resistive e non induttive (come un motore), ma chissà come è la vostra...
+5VDC
| 180 180 2.2k
+---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V
| 1| |6 | | Hot
| +=====+ | | MT1
| | MC | TRIAC | +-+
| | 3032| Driver | G | | TRIAC
| +=====+ | /| |
\ 2| |4 | / +-+
2N3904 |----+ | | | | MT2
/ | +--------- | -------+ |
V \ | | |
| / | \ |
| \ 43 .01u --- 10k / |
| / 500V --- \ |
| | | / |
+------+ | | | Neutral
| +--------+--+---o o--> 120V
/ load
>-/\/\--| 2N3904
\
V
|
---
///
Dovete cambiare le resistenza per utilizzare una tensione di 220V.
Descrizione del circuito:
Il MC3032 è un driver TRIAC optoisolatore. La resistenza di 180 Ohm imposta la corrente per il LED dentro l'optoisolatore. Cambiate il valore di questa resistenza - se necessario - per ottenere una corrente accettabile (es. 15 mA).
Da notare che non potete testare questo circuito senza un carico di tensione. Il TRIAC non cambierà a meno che non sia connesso con una sorgente di voltaggio AC, quindi non potete testarlo per un semplice switch senza applicare AC e un carico.
Dovete create un file eseguibile che esegue queste operazioni:
Sarebbe molto bello avere questo programma setuid, in modo che tutti possano bere il caffè!
Leggete qua: kernel hacker's guide, implementate un driver di periferica (può restare in user space, credo). Per favore compilatelo come un modulo, in modo che non dobbiate compilare il kernel ad ogni aggiornamento. Quindi scrivete:
echo cappuccino >/dev/coffee
E avrete una calda tazza di caffè pronta in 1 minuto. Ricordatevi di assegnare i giusti permessi a /dev/coffee, a seconda se solo root può bersi il caffè o meno.
Il vantaggio di questo metodo è che supporta il feedback dalla macchina da caffè utilizzando l'ACK della porta parallela, quindi macchine da caffè intelligenti possono produrre un interrupt.
Ecco i compiti per casa.
Se avete implementato il programma C ( leggete sopra ), dovete soltanto scrivere un semplice programma CGI che accende e spegne la macchina da caffè. Potete anche scrivere qualche pagina web carina, dove spiegate come fare il caffè, e mettetela in un server web apache...
Queste sono le nostre idee:
Questo documento è stato scritto inizialmente in Greco, risultato di un piccolo dibattito sulla mailing list linux-greek-users, sul fatto che Linux possa fare il caffè o meno. Cīè stato un articolo sul nostro bellissimo giornale online su Linux chiamato "magaz": http://www.linux.gr/magaz. Ricordatevi, questo magaz è in greco.
Il mio nome è Georgatos Photis, studente al dipartimento di Ingegneria Informatica di Patras. Solitamente, sono molto occupato con la documentazione in greco e la manutenzione di pagine web, ma posso accettare aggiornamenti per questo HOWTO.
Il mitico copyright che accompagna tutto ciò che è con linux... Per trovarlo, dovete leggerli tutti e contare quale è il più utilizzato. Altrimenti.. No, non potete copiare questo documento.