  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as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 zastanawia 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 implemen
  tacj 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ka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icciiee kkoonnttrroolluujjc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an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sb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sb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suuggii


  Bdziesz musia napisa program wykonujcy nastpujce czynnoci:


    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_)_;

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

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

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

    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



    podniecenie

    nerwowo

    bezsenno

    czstoskurcz lub arytmia serca

    zaburzenia odkowe

    niepokj, pobudzenie


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


  Oto nasze pomysy:


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

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

    Ekspres do kawy o rwnolegym wektorze bdzie w przyszym wydaniu.

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

    W bliskiej przyszoci zaimplementujemy obsug SNMP.

    Szeregowy ekspres do kawy na 115Kbps.


  66..  OOddnnoonniikkii



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


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

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

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

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

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

    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.

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

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

    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7..  IInnnnee



  77..11..  WWssttp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zr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



    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.

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

    Panagiotis Vrionis i Yannakopoulos Haralambos podrzucili mi
     interesujce i humorystyczne uwagi.


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


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















































