File: Coffee

package info (click to toggle)
doc-linux-it 2000.01-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 8,136 kB
  • ctags: 19
  • sloc: perl: 249; makefile: 50; sh: 42
file content (528 lines) | stat: -rw-r--r-- 16,014 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
  COFFEE-HOWTO
  di Georgatos Photis, <gef@ceid.upatras.gr>
  v0.5, 15 Gennaio 1998

  L'osservazione sul software pi noiosa che abbia mai sentito dire  se
  questa o quella cosa possano fare il caff. Linux FA il caff. Ed 
  anche buono!  Traduzione italiana a cura di Christopher Gabriel,
  cgabriel@pluto.linux.it

  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.


  1.  Menu

  1.1.  Alla francese

  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.


  1.2.  Nescaf

  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...


  1.3.  frappe

  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.



  1.4.  freddo

  Questo  molto difficile da fare, leggete le Coffee FAQ ( trovate le
  istruzioni delle bibliografia )


  1.5.  cappuccino (ancora da scrivere)

  1.6.  (ancora da scrivere) espresso



  2.  Circuito Elettronico

  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.


  2.1.  Pilotare il voltaggio 0-5V dal computer

  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





  2.2.  Controllare attraverso un rel

  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..



  2.3.  Controllo attraverso un TRIAC #1

  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...


  2.4.  Controllo attraverso un TRIAC #2



























  +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.


  3.  Software



  3.1.  Software

  Dovete create un file eseguibile che esegue queste operazioni:

    Ottiene i permessi di I/O chiamandoli dal kernel, con il comando
     ioperm: es. ioperm( BASE, range, 1);

    Esegue una istruzione di richiesta in uscita, per impostare il
     voltaggio 0.5V sulla porta parallela, es. outb(1, BASE );

    Aspetta il tempo necessario alla preparazione del caff. Sarebbe
     bello se questo intervallo di tempo fosse mostrato nella linea di
     comando.

    Quindi deve spegnere la macchina del caff : outb( 0, BASE );

    Prima di terminare deve restituire la porta parallela con una
     istruzione tipo ioperm( BASE, range, 0);

     Cambiate BASE = 0x3bc per /dev/lp0, 0x378 per /dev/lp1, e 0x278 per
     /dev/lp2, range=8.


  Sarebbe molto bello avere questo programma setuid, in modo che tutti
  possano bere il caff!


  3.2.  Driver di periferica


  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.


  3.3.  Connessione via Internet.

  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...


  4.  Sintomi da overdose


    eccitazione

    nervosismo

    insonnia

    tachicardia o aritmia cardiaca

    disturbi gastro-intestinali

    allucinazioni


  5.  Espansioni

  Queste sono le nostre idee:

    Tutto l'hardware e il software descritto in questo documento pu
     essere espanso fino a supportare il tostapane, la bistecchiera, il
     forno a microonde etc..
    Creare un Cluster con 8 macchine da caff. Questo vi permette di
     avere del caff anche se una macchina si spegne. Ovviamente ci
     sarano cambiamenti nelle performance

    La prossima release includer come mettere macchine da caff in
     parallelo.

    Se desiderate la massima automazione avete bisogno di molti altri
     circuiti e sensori, in modo da poter controllare il flusso
     dell'acqua, la temperatura, la quantit di caff etc..

    Verranno in futuro implementate feature per la gestione via SNMP.

    Macchina da caff seriale a 115Kbps.


  6.  Riferimenti


    http://daisy.uwaterloo.ca/~alopez-o/caffaq.html Questa  la Coffee-
     FAQ di Internet

    http://lonestar.texas.net/~andrew/f_pc_.htm Tantissimi circuiti in
     ASCII. Alcuni di questi sono per la porta parallela.

    http://shell.rmi.net/~hisys/parport.html Tutto quello che avreste
     voluto sapere sulla porta parallela e non avete mai osato chiedere.

    http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming
     Programmazione della porte di I/O per il popolare sistema operativo
     Linux.

    http://www.redhat.com:8080/HyperNews/get/khg.html Come scrivere
     driver per periferiche. Avanti, fatelo anche voi!

    http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html La
     pagina web di Tomi Engdahl  un *must* per chiunque si interessi di
     elettronica.

    http://www.yahoo.com/Computers_and_Internet/Internet/
     Entertainment/Interesting_Devices_Connected_to_the_Net/Coffee_Machines/
     Macchine da caff online. Sfortunamente non ci sono prove.

    http://www.cs.su.oz.au/~bob/coffee.html Questa macchinad a caff
     offre solo cappuccino. E` da aggiornare!!

    http://einstein.et.tudelft.nl/~janssen/ Caff caldo dall'Olanda.

    http://circe.chinalake.navy.mil/cgi-bin/spion/snapit.cgi

    http://www.cl.cam.ac.uk/coffee/coffee.html

    http://www.menet.umn.edu/coffeecam/


  7.  etc

  7.1.  prefazione

  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.


  7.2.  Autore

  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.


  7.3.  Copyright

  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.


  7.4.  Collaboratori


    Christofer Colombus. Il suo vero nome  Cristobal Colon. E' stato
     il primo a portare il caff dall'America, che lui scopr per primo
     ( tra gli Europei ) nel 1492.

    Kostas Lialiambis  colui che si  lamentato sul fatto che non pu
     fare caff con Linux.

    Panagiotis Vrionis, Yannakopoulos Haralambos hanno contribuito
     nelle note umoristiche.