Coffee HOWTO
Coffee HOWTO
Georgatos Photis
gef@ceid.upatras.gr
v0.5, 15 Stycznia 1998
Wersja polska: Leszek Urbański
tygrys@fidonet.org.pl
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 implementację
przełącznika WŁ/WYŁ w obwodzie kontrolującym zasilanie ekspresu do kawy.
Ten dokument został napisany w standardzie ISO-8859-2.
1. Menu
1.1 Kawa francuska
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.
1.2 Nescaffe
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ę.
1.3 Frappe
Popularna wersja powyższej kawy. Właściwie nie jest potrzebny ekspres do kawy,
a lodówka do otrzymania zimnej wody i kostek lodu.
1.4 Freddo
Trudny przepis. Przeczytaj coffe-faq (zobacz odnośniki)
1.5 Cappucino (do dodania)
1.6 Espresso (do dodania)
2. Układ elektroniczny
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.
2.1 Napięcie kontrolujące 0-5V z komputera
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
2.2 Kontrolowanie za pomocą przekaźnika
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ć...
2.3 Kontrolowanie triakiem - sposób 1
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 ,,Motorola
Application Note AN-780. Ekspresy do kawy są raczej obciążeniami
opornościowymi, a nie indukcyjnymi (jak silniki), ale kto wie, jaki jest
twój...
2.4 Kontrolowanie triakiem - sposób 2
+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.
3. Oprogramowanie
3.1 Program obsługi
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ą ioperm, np. ioperm(PODSTAWA, zakres, 1);
Wykonuje instrukcję ustawiającą napięcie 0-5V w porcie równoległym,
np. outb(1, PODSTAWA);
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: outb(0, PODSTAWA);
Przed końcem, powinien oddać port - ioperm(PODSTAWA, zakres, 0);
Zmień PODSTAWĘ na 0x3bc dla /dev/lp0, 0x378 dla /dev/lp1 i 0x278 dla /dev/lp2,
zakres na 8.
Dobrze byłoby dać programowi prawa setuid, żeby każdy mógł pić kawę!
(UWAGA: nie ustawiaj tych praw w ,,usieciowionym'' komputerze, grozi
to pożarem itd. wywołanym przez nieuprawnionych użytkowników! - przyp. tłum.)
3.2 Sterownik
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ą.
3.3 Łączenie się z Internetem
(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
Apache...
4. Oznaki przedawkowania
podniecenie
nerwowość
bezsenność
częstoskurcz lub arytmia serca
zaburzenia żołądkowe
niepokój, pobudzenie
5. Rozszerzenia
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.
6. Odnośniki
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/
7. Inne
7.1 Wstęp
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.
7.2 Autorstwo i nadzór
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.
7.3 Prawa autorskie
Standardowe prawa autorskie wszystkiego od Linuxa... Przeczytaj wszystkie
i wybierz najważniejsze. Inaczej nie możesz kopiować tego dokumentu.
7.4 Dodatkowi autorzy
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.
8. Od tłumacza
Jeżeli znajdziesz jakieś błędy, daj mi znać. :-)
Wyszukiwarka
Podobne podstrony:
coffee pl 3coffee pl 5coffee pl 7coffee pl 2coffee pl 6Coffee plCoffee 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