Coffee HOWTO
Georgatos Photis gef@ceid.upatras.gr
v0.5, 15 Stycznia 1998
WWeerrssjjaa ppoollsskkaa:: LLeesszzeekk UUrrbbaańńsskkii ttyyggrryyss@@ffiiddoonneett..oorrgg..ppll
v1.0, 4 Sierpnia 1998
Jedna z najbardziej zastanawiających uwag o oprogramowaniu, które
kiedykolwiek słyszałem - czy ten lub inny program może zrobić kawę.
Linux POTRAFI ją zrobić. I smakuje doskonale! Od długiego czasu
ludzkość zastanawia się, czy komputery potrawią robić kawę... Ludzie
potrzebują kawy, żeby obudzić się i nie zasypiać przed komputerem
przez długi czas. Każdy wie, że najlepsze programy pisze się w nocy...
Głównym problemem jest kontrolowanie ekspresu do kawy komputerem, tak
żeby można było sterować go programowo. Ogólnie oznacza to implemen
tację przełącznika WŁ/WYŁ w obwodzie kontrolującym zasilanie ekspresu
do kawy. Ten dokument został napisany w standardzie ISO-8859-2.
______________________________________________________________________
Spis treści
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. Układ elektroniczny
2.1 Napięcie kontrolujące 0-5V z komputera
2.2 Kontrolowanie za pomocą przekaźnika
2.3 Kontrolowanie triakiem - sposób 1
2.4 Kontrolowanie triakiem - sposób 2
3. Oprogramowanie
3.1 Program obsługi
3.2 Sterownik
3.3 Łączenie się z Internetem
4. Oznaki przedawkowania
5. Rozszerzenia
6. Odnośniki
7. Inne
7.1 Wstęp
7.2 Autorstwo i nadzór
7.3 Prawa autorskie
7.4 Dodatkowi autorzy
8. Od tłumacza
______________________________________________________________________
11.. MMeennuu
11..11.. KKaawwaa ffrraannccuusskkaa
Popularna kawa wśród programistów, ponieważ nie wymaga długiego
przygotowania i nadzoru, tak jak programy komercyjne. Jej doskonały
smak zainspirował tysiące programistów do napisania wyśmienitych
programów, napisanych w pierwszych godzinach dnia. Windowsy na
przykład zostały napisane o 5:00 rano, dzięki tej kawie. Wynik
gwarantowany.
11..22.. NNeessccaaffffee
Nescaffe jest dosyć mocną kawą, gotowaną przez nalewanie gorącej wody
do mieszaniny kawy, cukru i wody. Zazwyczaj powinno się brać jedną
łyżkę kawy i jedną łyżkę cukru, oraz trochę wody w celu zmieszania. W
tym czasie powinna zagotować się gorąca woda. Wtedy zmieszaj ją z
resztą - możesz dodać mleka. Chociaż możesz używać czegoś prostszego
niż ekspres do kawy do zagotowania wody, wiele razy widziałem powyższą
procedurę.
11..33.. FFrraappppee
Popularna wersja powyższej kawy. Właściwie nie jest potrzebny ekspres
do kawy, a lodówka do otrzymania zimnej wody i kostek lodu.
11..44.. FFrreeddddoo
Trudny przepis. Przeczytaj coffe-faq (zobacz odnośniki)
11..55.. CCaappppuucciinnoo ((ddoo ddooddaanniiaa))
11..66.. EEsspprreessssoo ((ddoo ddooddaanniiaa))
22.. UUkkłłaadd eelleekkttrroonniicczznnyy
Ogólny schemat wygląda tak:
--------- 0-5V --------- ~220V -----------------
| PC |===>===| Obwód |========|Ekspres do kawy|
--------- --------- -----------------
Celem jest wzięcie napięcia kontrolującego z komputera, które będzie
napędzać elektrycznie odizolowany układ z przekaźnikiem lub triakiem.
Jeżeli twój ekspres do kawy jest duży (więcej niż 200W), musisz wybrać
przekaźnik, a jeśli nie, wystarczy triak.
Wszystkie układy tu przedstawione zostały przetestowane raz albo
więcej, ale TY ODPOWIADASZ ZA SKUTKI UŻYWANIA. Jeżeli nie masz
doświadczenia z elektroniką, NIE baw się z tym, inaczej może ci coś
nie wyjść...
Powinieneś być bardzo ostrożny przy eksperymentach z 220V - można
używać odpowiedniego bezpiecznika.
22..11.. NNaappiięęcciiee kkoonnttrroolluujjąąccee 00--55VV zz kkoommppuutteerraa
Oto prosty przykład pobrania napięcia 0-5V z portu równoległego
komputera.
Widok od tyłu
Męskie złącze ----- 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 sygnały SZYNY DANYCH (DATA BUS), dokładnie to, co zostało
wpisane do (hmm ,,klamek''??? (latches) - przyp. tłum.) komendą OUTB.
Pin 10 to sygnał potwierdzenia (ACK) sterowany przez ciebie, tak żebyć
mógł wyprodukować przerwanie.
Piny 18-25 są zwarte i jest to uziemienie (GND).
Dokładniej:
<= we pin Główny Nazwa
=> wy DB25 pin sygnału Bit Uwagi
-------- ---- ------ ------- --- -----------------------
=> 1 1 -Strobe C0- Ustaw niskie napięcie >0.5us do wysył.
=> 2 2 Dane 0 D0 Ustaw na pierwsze znaczące 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 znaczące dane
<= 10 10 -Ack S6+IRQ Niskie napięcie ~ 5uS, po zaakcept.
<= 11 11 +Busy S7- 1 Dla Zajęte/Offline/Błąd
<= 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 Błędu/Offline/Końca papieru
=> 16 31 -Init C2+ Ustaw niskie napięcie > 50uS do inicjalizacji
=> 17 36 -Select C3- Ustaw na 0 do wybrania drukarki
<==>18-25 19-30 GND
22..22.. KKoonnttrroolloowwaanniiee zzaa ppoommooccąą pprrzzeekkaaźźnniikkaa
Najprostszy możliwy do zbudowania układ to:
Vcc
|
+---------+
| __|__
Przekaźnik /^\ Dioda 1N4002
| /---\
| |
+---------+
|
| /
4.7K B|/ C
port równoległy >-\/\/\/\/-| Tranzystor NPN: BD547A lub 2N2222A
|\ E
| V
|
pin GND portu równ. >--------+
|
Uziemienie
Połącz Vcc z napięciem równym napięciu przekaźnika (zazwyczaj 5 lub
12V). Oczywiście parametry przekaźnika powinny być poprawne dla
twojego ekspresu.
Barmani często umieszczają przekaźnik ZA tranzystorem, na emiterze (E)
zamiast na kolektorze (C). Nie jest to dobre, ponieważ obciąża
tranzystor i może być powodem zrobienia złej kawy :-). Dioda 1N4002
jest potrzebna do ochrony tranzystora przed napięciami przekaźnika.
Jeśli jej nie użyjesz, tranzystor stanie się ciemniejszy i zacznie
dymić...
22..33.. KKoonnttrroolloowwaanniiee ttrriiaakkiieemm -- ssppoossóóbb 11
Jeżeli potrzebujesz prostego obwodu, użyj sterownika triaków Motoroli
- MOC301[012], razem z triakiem ogólnego zastosowania, takim jak SC
141D. Metoda ta ma zaletę - nie musisz stosować dodatkowego źródła
zasilania.
Dla nieindukcyjnych ładunków:
270 1 +-------+ 6 180
+5v -VAVAVA-----+ +----VAVAVA-----+-------------- Linia gorąca
2 | MOC | |
TTL in ---------+ 3012 +nc VA SC141D
| | 4 / |
nc+ +------------/ |
+-------+ +----\/\/\/---- Line Neutralna
OBCIĄŻENIE
Jeżel będziesz pracował z napięciem 220V, wybierz 3021. Do obciążeń
indukcyjnych powinny być stosowane kondensatory obejściowe, 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
obciążeniami opornościowymi, a nie indukcyjnymi (jak silniki), ale kto
wie, jaki jest twój...
22..44.. KKoonnttrroolloowwaanniiee ttrriiaakkiieemm -- ssppoossóóbb 22
+5VDC
| 180 180 2.2k
+---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V
| 1| |6 | | Gorąca
| +=====+ | | MT1
| | MC | Sterown.| +-+
| | 3032| triaków | 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 napięcie dla diody LED w optoizolatorze. Zmień wartość
rezystora, jeśli to potrzebne, żeby uzyskać poprawny prąd (np. 15mA).
Zauważ, że nie możesz testować tego układu bez obciążenia. Triak nie
przełączy się, jeżeli nie będzie podłączony do źródła napięcia
zmiennego, nie możesz więc testować go bez użycia napięcia AC i
obciążenia. Zauważ napisz ,,500V'' na obudowie kondensatora .01.
33.. OOpprrooggrraammoowwaanniiee
33..11.. PPrrooggrraamm oobbssłłuuggii
Będziesz musiał napisać program wykonujący następujące czynności:
Zdobywa uprawnienia do używania przestrzeni adresowej I/O, przez
odwołanie do jądra komendą iiooppeerrmm, np. _i_o_p_e_r_m_(_P_O_D_S_T_A_W_A_, _z_a_k_r_e_s_, _1_)_;
Wykonuje instrukcję ustawiającą napięcie 0-5V w porcie równoległym,
np. _o_u_t_b_(_1_, _P_O_D_S_T_A_W_A_)_;
Czeka, aż kawa będzie gotowa. Byłoby nieźle, jeżeli mógłby odczytać
ten czas z linii komend.
Wyłącza wtedy ekspres: _o_u_t_b_(_0_, _P_O_D_S_T_A_W_A_)_;
Przed końcem, 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 byłoby dać programowi prawa setuid, żeby każdy mógł pić kawę!
(UWAGA: _n_i_e ustawiaj tych praw w ,,usieciowionym'' komputerze, grozi
to pożarem itd. wywołanym przez nieuprawnionych użytkowników! - przyp.
tłum.)
33..22.. SStteerroowwnniikk
Przeczytaj Kernel Hacker's Guide i zaimplementuj sterownik (sądzę, że
może on być stosowany w trybie użytkownika). Skompiluj go jako moduł,
żebyś nie musiał kompilować jądra przy każdym uaktualnieniu. Napisz:
echo cappucino > /dev/coffee
Uzyskasz filiżankę gorącej kawy w minutę. Pamiętaj, żeby dać
prawidłowe prawa dostępu do /dev/coffee, zależnie od tego, czy chcesz,
żeby kawę robił tylko root, czy nie.
Zaletą tej metody jest obsługa sprzężenia zwrotnego z ekspresu do kawy
przez użycie ACK portu równoległego tak, żeby ,,mądre'' ekspresy mogły
tworzyć przerwanie.
Zrób to jako pracę domową.
33..33.. ŁŁąącczzeenniiee ssiięę zz IInntteerrnneetteemm
(zalecam implementację tej technologii tylko w sieci LAN, z powodu
bezpieczeństwa - przyp. tłum.)
Jeżeli napisałeś program w C (objaśnienia powyżej), wystarczy zrobić
prosty skrypt CGI włączający i wyłączający ekspres do kawy. Powinieneś
napisać kilka ładnych stron WWW wyjaśniających jak zrobić kawę i
umieścić je na serwerze WWW AAppaacchhee...
44.. OOzznnaakkii pprrzzeeddaawwkkoowwaanniiaa
podniecenie
nerwowość
bezsenność
częstoskurcz lub arytmia serca
zaburzenia żołądkowe
niepokój, pobudzenie
55.. RRoozzsszzeerrzzeenniiaa
Oto nasze pomysły:
Opisany tutaj sprzęt i oprogramowanie może zostać rozszerzone do
obsługi grzanek, wołowiny, jabłecznika itp.
Zestaw ośmiu ekspresów. To pozwoli ci przyrządzić kawę nawet wtedy,
gdy jeden jest już w użyciu. Będzie to oczywiście mieć wpływ na
wydajność. (może RAIC - Redundant Array of Independent Coffee-
machines :-))))) - przyp. tłum.)
Ekspres do kawy o równoległym wektorze będzie w przyszłym wydaniu.
Jeżeli będzie ci potrzebna maksymalna automatyzacja, wymagane będą
dodatkowe układy i czujniki, żebyś mógł kontrolować poziom wody,
temperaturę i jakość kawy.
W bliskiej przyszłości zaimplementujemy obsługę SNMP.
Szeregowy ekspres do kawy na 115Kbps.
66.. OOddnnoośśnniikkii
http://daisy.uwaterloo.ca/~alopez-o/caffaq.html Internet Coffee-FAQ
http://lonestar.texas.net/~andrew/f_pc.htm Wiele układów w ASCII.
Niektóre z nich są przeznaczone dla portu równoległego.
http://shell.rmi.net/~hisys/parport.html Wszystko, co chcielibyście
się dowiedzieć o porcie równoległym, ale boicie się zapytać.
http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming
Programowanie portów I/O w systemie Linux.
http://www.redhat.com:8080/HyperNews/get/khg.html Jak napisać
własne sterowniki urządzeń. Zrób to!
http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html
Strona Tomi'ego Engdahl'a jest KONIECZNA do zobaczenia przez
każdego lubiącego 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 testów.
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/ Gorąca 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/
77.. IInnnnee
77..11.. WWssttęępp
Ten dokument był pierwotnie napisany w języku helleńskim (greckim),
ewoluując z małej debaty na liście greckich użytkowników Linuxa, czy
Linux potrafi zrobić kawę, czy nie. Był on artykułem w naszym pięknym
magazynie Linuxowym ,,magaz'': http://www.linux.gr/magaz. Pamiętaj,
że jest on napisany po grecku.
77..22.. AAuuttoorrssttwwoo ii nnaaddzzóórr
Nazywam się Georgatos Photis i jestem (jeszcze-nadal może przez długi
czas) studentem wydziału Inżynierii Komputerowej i Informatyki na
Uniwersytecie Patras. Jestem zazwyczaj dosyć zajęty grecką
dokumentacją i stronami WWW, ale mogę przyjmować dodatki do tego
HOWTO, jeżeli nie będziesz niecierpliwy.
77..33.. PPrraawwaa aauuttoorrsskkiiee
Standardowe prawa autorskie wszystkiego od Linuxa... Przeczytaj
wszystkie i wybierz najważniejsze. Inaczej nie możesz kopiować tego
dokumentu.
77..44.. DDooddaattkkoowwii aauuttoorrzzyy
Krzysztof Kolumb Jego prawdziwe imię to Cristobal Colon. On jako
pierwszy przywiózł kawę z Ameryki, która została odkryta przez
niego (dla Europejczyków) w roku 1492.
Kostas Lialiambis był pierwszym, który odważył się powiedzieć, że
nie może zrobić kawy za pomocą jego maszyny Linuxowej!
Panagiotis Vrionis i Yannakopoulos Haralambos podrzucili mi
interesujące i humorystyczne uwagi.
88.. OOdd ttłłuummaacczzaa
Jeżeli znajdziesz jakieś błędy, daj mi znać. :-)
Wyszukiwarka
Podobne podstrony:
coffee pl 3Coffee pl (2)coffee pl 5coffee pl 7coffee pl 2coffee pl 6Coffee pl (3)coffee pl 1TI 99 08 19 B M pl(1)bootdisk howto pl 8BORODO STRESZCZENIE antastic plnotatek pl sily wewnetrzne i odksztalcenia w stanie granicznymWSM 10 52 pl(1)amd102 io pl09PPP HOWTO pl 6 (2)więcej podobnych podstron