  Coffee HOWTO
  Georgatos Photis gef@ceid.upatras.gr
  v0.5, 15 Stycznia 1998
  WWeerrssjjaa ppoollsskkaa:: LLeesszzeekk UUrrbbaasskkii ttyyggrryyss@@ffiiddoonneett..oorrgg..ppll
  v1.0, 4 Sierpnia 1998


  Jedna z najbardziej zastanawiajcych uwag o oprogramowaniu, ktre
  kiedykolwiek syszaem - czy ten lub inny program moe zrobi kaw. Linux
  POTRAFI j zrobi.  I smakuje doskonale!  Od dugiego czasu ludzko zas-
  tanawia si, czy komputery potrawi robi kaw...  Ludzie potrzebuj kawy,
  eby obudzi si i nie zasypia przed komputerem przez dugi czas. Kady
  wie, e najlepsze programy pisze si w nocy...  Gwnym problemem jest
  kontrolowanie ekspresu do kawy komputerem, tak eby mona byo sterowa go
  programowo. Oglnie oznacza to implementacj przecznika W/WY w obwodzie
  kontrolujcym zasilanie ekspresu do kawy.  Ten dokument zosta napisany
  w standardzie ISO-8859-2.
  ______________________________________________________________________

  Spis treci


  1. Menu

     1.1 Kawa francuska
     1.2 Nescaffe
     1.3 Frappe
     1.4 Freddo
     1.5 Cappucino (do dodania)
     1.6 Espresso (do dodania)

  2. Ukad elektroniczny

     2.1 Napicie kontrolujce 0-5V z komputera
     2.2 Kontrolowanie za pomoc przekanika
     2.3 Kontrolowanie triakiem - sposb 1
     2.4 Kontrolowanie triakiem - sposb 2

  3. Oprogramowanie

     3.1 Program obsugi
     3.2 Sterownik
     3.3 czenie si z Internetem

  4. Oznaki przedawkowania

  5. Rozszerzenia

  6. Odnoniki

  7. Inne

     7.1 Wstp
     7.2 Autorstwo i nadzr
     7.3 Prawa autorskie
     7.4 Dodatkowi autorzy

  8. Od tumacza



  ______________________________________________________________________




  11..  MMeennuu



  11..11..  KKaawwaa ffrraannccuusskkaa


  Popularna kawa wrd programistw, poniewa nie wymaga dugiego
  przygotowania i nadzoru, tak jak programy komercyjne. Jej doskonay
  smak zainspirowa tysice programistw do napisania wymienitych programw,
  napisanych w pierwszych godzinach dnia. Windowsy na przykad zostay
  napisane o 5:00 rano, dziki tej kawie. Wynik gwarantowany.


  11..22..  NNeessccaaffffee


  Nescaffe jest dosy mocn kaw, gotowan przez nalewanie gorcej wody do
  mieszaniny kawy, cukru i wody. Zazwyczaj powinno si bra jedn yk kawy i
  jedn yk cukru, oraz troch wody w celu zmieszania. W tym czasie powinna
  zagotowa si gorca woda. Wtedy zmieszaj j z reszt - moesz doda mleka.
  Chocia moesz uywa czego prostszego ni ekspres do kawy do zagotowania
  wody, wiele razy widziaem powysz procedur.


  11..33..  FFrraappppee


  Popularna wersja powyszej kawy. Waciwie nie jest potrzebny ekspres do
  kawy, a lodwka do otrzymania zimnej wody i kostek lodu.


  11..44..  FFrreeddddoo


  Trudny przepis. Przeczytaj coffe-faq (zobacz odnoniki)


  11..55..  CCaappppuucciinnoo ((ddoo ddooddaanniiaa))



  11..66..  EEsspprreessssoo ((ddoo ddooddaanniiaa))



  22..  UUkkaadd eelleekkttrroonniicczznnyy


  Oglny schemat wyglda tak:



       --------- 0-5V  --------- ~220V  -----------------
       |  PC   |===>===| Obwd |========|Ekspres do kawy|
       ---------       ---------        -----------------




  Celem jest wzicie napicia kontrolujcego z komputera, ktre bdzie napdza
  elektrycznie odizolowany ukad z przekanikiem lub triakiem. Jeeli twj
  ekspres do kawy jest duy (wicej ni 200W), musisz wybra przekanik, a
  jeli nie, wystarczy triak.


  Wszystkie ukady tu przedstawione zostay przetestowane raz albo wicej,
  ale TY ODPOWIADASZ ZA SKUTKI UYWANIA. Jeeli nie masz dowiadczenia z
  elektronik, NIE baw si z tym, inaczej moe ci co nie wyj...

  Powiniene by bardzo ostrony przy eksperymentach z 220V - mona uywa
  odpowiedniego bezpiecznika.


  22..11..  NNaappiicciiee kkoonnttrroolluujjccee 00--55VV zz kkoommppuutteerraa


  Oto prosty przykad pobrania napicia 0-5V z portu rwnolegego komputera.



          Widok od tyu
          Mskie zcze   -----    Pin 10 - ACK
          DB25            |   |    Pin  9 - D7
                          |   |                           Pin 2 - D0
       ~Strobe            v   v                           v   Pin 1 -
           _________________________________________________________
          /                                                         \
          \  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 to ,,Strobe'' (logika odwrotna)

  Piny 2-9 to sygnay SZYNY DANYCH (DATA BUS), dokadnie to, co zostao
  wpisane do (hmm ,,klamek''??? (latches) - przyp. tum.) komend OUTB.

  Pin 10 to sygna potwierdzenia (ACK) sterowany przez ciebie, tak eby mg
  wyprodukowa przerwanie.

  Piny 18-25 s zwarte i jest to uziemienie (GND).

  Dokadniej:

























  <= we  pin    Gwny  Nazwa
  => wy  DB25   pin     sygnau   Bit  Uwagi
  --------  ----   ------  -------   ---   -----------------------
  =>      1       1     -Strobe   C0-   Ustaw niskie napicie >0.5us do wysy.
  =>      2       2     Dane 0    D0    Ustaw na pierwsze znaczce dane
  =>      3       3     Dane 1    D1    ...
  =>      4       4     Dane 2    D2    ...
  =>      5       5     Dane 3    D3    ...
  =>      6       6     Dane 4    D4    ...
  =>      7       7     Dane 5    D5    ...
  =>      8       8     Dane 6    D6    ...
  =>      9       9     Dane 7    D7    Ustaw na ostanie znaczce dane
  <=     10      10     -Ack      S6+IRQ Niskie napicie ~ 5uS, po zaakcept.
  <=     11      11     +Busy     S7-   1 Dla Zajte/Offline/Bd
  <=     12      12     +PaperEnd S5+   1 Dla braku papieru
  <=     13      13     +SelectIn S4+   1 Dla wybranej drukarki
  =>     14      14     -AutoFd   C1-   Ustaw na 0 dla LF
  <=     15      32     -Error    S3+   0 dla Bdu/Offline/Koca papieru
  =>     16      31     -Init     C2+   Ustaw niskie napicie > 50uS do inicjalizacji
  =>     17      36     -Select   C3-   Ustaw na 0 do wybrania drukarki
  <==>18-25   19-30  GND





  22..22..  KKoonnttrroolloowwaanniiee zzaa ppoommoocc pprrzzeekkaanniikkaa


  Najprostszy moliwy do zbudowania ukad to:



                                        Vcc
                                         |
                                    +---------+
                                    |       __|__
                               Przekanik    /^\  Dioda 1N4002
                                    |       /---\
                                    |         |
                                    +---------+
                                    |
                                  | /
                          4.7K   B|/ C
       port rwnolegy >-\/\/\/\/-|       Tranzystor NPN: BD547A lub 2N2222A
                                  |\  E
                                  | V
                                    |
       pin GND portu rwn. >--------+
                                    |
                                Uziemienie




  Pocz Vcc z napiciem rwnym napiciu przekanika (zazwyczaj 5 lub 12V).
  Oczywicie parametry przekanika powinny by poprawne dla twojego
  ekspresu.

  Barmani czsto umieszczaj przekanik ZA tranzystorem, na emiterze (E)
  zamiast na kolektorze (C). Nie jest to dobre, poniewa obcia tranzystor
  i moe by powodem zrobienia zej kawy :-). Dioda 1N4002 jest potrzebna
  do ochrony tranzystora przed napiciami przekanika. Jeli jej nie
  uyjesz, tranzystor stanie si ciemniejszy i zacznie dymi...


  22..33..  KKoonnttrroolloowwaanniiee ttrriiaakkiieemm -- ssppoossbb 11


  Jeeli potrzebujesz prostego obwodu, uyj sterownika triakw Motoroli -
  MOC301[012], razem z triakiem oglnego zastosowania, takim jak SC 141D.
  Metoda ta ma zalet - nie musisz stosowa dodatkowego rda zasilania.

  Dla nieindukcyjnych adunkw:



               270     1 +-------+ 6    180
         +5v -VAVAVA-----+       +----VAVAVA-----+-------------- Linia gorca
                       2 |  MOC  |               |
         TTL in ---------+ 3012  +nc            VA  SC141D
                         |       | 4           / |
                       nc+       +------------/  |
                         +-------+               +----\/\/\/---- Line Neutralna
                                                    OBCIENIE




  Jeel bdziesz pracowa z napiciem 220V, wybierz 3021. Do obcie
  indukcyjnych powinny by stosowane kondensatory obejciowe, zobacz
  ,,_M_o_t_o_r_o_l_a _A_p_p_l_i_c_a_t_i_o_n _N_o_t_e _A_N_-_7_8_0. Ekspresy do kawy s raczej
  obcieniami opornociowymi, a nie indukcyjnymi (jak silniki), ale kto
  wie, jaki jest twj...


  22..44..  KKoonnttrroolloowwaanniiee ttrriiaakkiieemm -- ssppoossbb 22




       +5VDC
       |    180                      180            2.2k
       +---/\/\/\----+-----+   +----/\/\/-+--/\/\/\---+-------> 120V
                     |    1|   |6         |           |         Gorca
                     |    +=====+         |           | MT1
                     |    | MC  | Sterown.|          +-+
                     |    | 3032| triakw |        G | | TRIAK
                     |    +=====+         |         /| |
                     \    2|   |4         |        / +-+
              2N3904  |----+   |          |        |  | MT2
                     /     |   +--------- | -------+  |
                    V      \              |        |  |
                    |      /              |        \  |
                    |      \ 43    .01u  ---   10k /  |
                    |      /       500V  ---       \  |
                    |      |              |        /  |
                    +------+              |        |  |            Neutralna
                    |                     +--------+--+---o    o--> 120V
                    /                                      load
        >-/\/\--|  2N3904
                    \
                     V
                     |
                    ---
                   ///




  Powiniene zmieni rezystory na odpowiednie dla 220V.

  Opis obwodu:

  MC2032 jest optoizolacyjnym sterownikiem triaka. 180-omowy rezystor
  zapewnia napicie dla diody LED w optoizolatorze. Zmie warto rezystora,
  jeli to potrzebne, eby uzyska poprawny prd (np. 15mA).

  Zauwa, e nie moesz testowa tego ukadu bez obcienia. Triak nie przeczy
  si, jeeli nie bdzie podczony do rda napicia zmiennego, nie moesz wic
  testowa go bez uycia napicia AC i obcienia. Zauwa napisz ,,500V'' na
  obudowie kondensatora .01.


  33..  OOpprrooggrraammoowwaanniiee



  33..11..  PPrrooggrraamm oobbssuuggii


  Bdziesz musia napisa program wykonujcy nastpujce czynnoci:


  +o  Zdobywa uprawnienia do uywania przestrzeni adresowej I/O, przez
     odwoanie do jdra komend iiooppeerrmm, np. _i_o_p_e_r_m_(_P_O_D_S_T_A_W_A_, _z_a_k_r_e_s_, _1_)_;

  +o  Wykonuje instrukcj ustawiajc napicie 0-5V w porcie rwnolegym, np.
     _o_u_t_b_(_1_, _P_O_D_S_T_A_W_A_)_;

  +o  Czeka, a kawa bdzie gotowa. Byoby niele, jeeli mgby odczyta ten
     czas z linii komend.

  +o  Wycza wtedy ekspres: _o_u_t_b_(_0_, _P_O_D_S_T_A_W_A_)_;

  +o  Przed kocem, powinien odda port - _i_o_p_e_r_m_(_P_O_D_S_T_A_W_A_, _z_a_k_r_e_s_, _0_)_;

  Zmie PODSTAW na 0x3bc dla /dev/lp0, 0x378 dla /dev/lp1 i 0x278 dla
  /dev/lp2, _z_a_k_r_e_s na 8.

  Dobrze byoby da programowi prawa setuid, eby kady mg pi kaw!  (UWAGA:
  _n_i_e ustawiaj tych praw w ,,usieciowionym'' komputerze, grozi to poarem
  itd. wywoanym przez nieuprawnionych uytkownikw! - przyp. tum.)


  33..22..  SStteerroowwnniikk


  Przeczytaj Kernel Hacker's Guide i zaimplementuj sterownik (sdz, e moe
  on by stosowany w trybie uytkownika). Skompiluj go jako modu, eby nie
  musia kompilowa jdra przy kadym uaktualnieniu. Napisz:



       echo cappucino > /dev/coffee




  Uzyskasz filiank gorcej kawy w minut. Pamitaj, eby da prawidowe prawa
  dostpu do /dev/coffee, zalenie od tego, czy chcesz, eby kaw robi tylko
  root, czy nie.

  Zalet tej metody jest obsuga sprzenia zwrotnego z ekspresu do kawy
  przez uycie ACK portu rwnolegego tak, eby ,,mdre'' ekspresy mogy
  tworzy przerwanie.


  Zrb to jako prac domow.


  33..33..  cczzeenniiee ssii zz IInntteerrnneetteemm


  (zalecam implementacj tej technologii tylko w sieci LAN, z powodu
  bezpieczestwa - przyp. tum.)

  Jeeli napisae program w C (objanienia powyej), wystarczy zrobi prosty
  skrypt CGI wczajcy i wyczajcy ekspres do kawy. Powiniene napisa kilka
  adnych stron WWW wyjaniajcych jak zrobi kaw i umieci je na serwerze
  WWW AAppaacchhee...


  44..  OOzznnaakkii pprrzzeeddaawwkkoowwaanniiaa



  +o  podniecenie

  +o  nerwowo

  +o  bezsenno

  +o  czstoskurcz lub arytmia serca

  +o  zaburzenia odkowe

  +o  niepokj, pobudzenie


  55..  RRoozzsszzeerrzzeenniiaa


  Oto nasze pomysy:


  +o  Opisany tutaj sprzt i oprogramowanie moe zosta rozszerzone do
     obsugi grzanek, woowiny, jabecznika itp.

  +o  Zestaw omiu ekspresw. To pozwoli ci przyrzdzi kaw nawet wtedy, gdy
     jeden jest ju w uyciu. Bdzie to oczywicie mie wpyw na wydajno. (moe
     RAIC - Redundant Array of Independent Coffee-machines :-))))) -
     przyp. tum.)

  +o  Ekspres do kawy o rwnolegym wektorze bdzie w przyszym wydaniu.

  +o  Jeeli bdzie ci potrzebna maksymalna automatyzacja, wymagane bd
     dodatkowe ukady i czujniki, eby mg kontrolowa poziom wody,
     temperatur i jako kawy.

  +o  W bliskiej przyszoci zaimplementujemy obsug SNMP.

  +o  Szeregowy ekspres do kawy na 115Kbps.


  66..  OOddnnoonniikkii



  +o  http://daisy.uwaterloo.ca/~alopez-o/caffaq.html Internet Coffee-FAQ

  +o  http://lonestar.texas.net/~andrew/f_pc.htm Wiele ukadw w ASCII.
     Niektre z nich s przeznaczone dla portu rwnolegego.

  +o  http://shell.rmi.net/~hisys/parport.html Wszystko, co chcielibycie
     si dowiedzie o porcie rwnolegym, ale boicie si zapyta.

  +o  http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming
     Programowanie portw I/O w systemie Linux.

  +o  http://www.redhat.com:8080/HyperNews/get/khg.html Jak napisa wasne
     sterowniki urzdze. Zrb to!

  +o  http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html
     Strona Tomi'ego Engdahl'a jest KONIECZNA do zobaczenia przez kadego
     lubicego elektronik.

  +o  http://www.yahoo.com/Computers_and_Internet/Internet/Entertainment/Interesting_Devices_Connected_to_the_Net/Coffee_Machines/
     Ekspresy do kawy on-line. Niestety, nie ma testw.

  +o  http://www.cs.su.oz.au/~bob/coffee.html Ten ekspres do kawy robi
     tylko cappucino. Powinien by rozszerzony!

  +o  http://einstein.et.tudelft.nl/~janssen/ Gorca kawa z Holandii.

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

  +o  http://www.cl.cam.ac.uk/coffee/coffee.html

  +o  http://www.menet.umn.edu/coffeecam/


  77..  IInnnnee



  77..11..  WWssttpp


  Ten dokument by pierwotnie napisany w jzyku helleskim (greckim),
  ewoluujc z maej debaty na licie greckich uytkownikw Linuxa, czy Linux
  potrafi zrobi kaw, czy nie. By on artykuem w naszym piknym magazynie
  Linuxowym ,,magaz'': http://www.linux.gr/magaz.  Pamitaj, e jest on
  napisany po grecku.


  77..22..  AAuuttoorrssttwwoo ii nnaaddzzrr


  Nazywam si Georgatos Photis i jestem (jeszcze-nadal moe przez dugi
  czas) studentem wydziau Inynierii Komputerowej i Informatyki na
  Uniwersytecie Patras. Jestem zazwyczaj dosy zajty greck dokumentacj i
  stronami WWW, ale mog przyjmowa dodatki do tego HOWTO, jeeli nie
  bdziesz niecierpliwy.


  77..33..  PPrraawwaa aauuttoorrsskkiiee


  Standardowe prawa autorskie wszystkiego od Linuxa... Przeczytaj
  wszystkie i wybierz najwaniejsze. Inaczej nie moesz kopiowa tego
  dokumentu.


  77..44..  DDooddaattkkoowwii aauuttoorrzzyy



  +o  Krzysztof Kolumb Jego prawdziwe imi to Cristobal Colon. On jako
     pierwszy przywiz kaw z Ameryki, ktra zostaa odkryta przez niego
     (dla Europejczykw) w roku 1492.

  +o  Kostas Lialiambis by pierwszym, ktry odway si powiedzie, e nie moe
     zrobi kawy za pomoc jego maszyny Linuxowej!

  +o  Panagiotis Vrionis i Yannakopoulos Haralambos podrzucili mi
     interesujce i humorystyczne uwagi.


  88..  OOdd ttuummaacczzaa


  Jeeli znajdziesz jakie bdy, daj mi zna. :-)





















































