Coffee pl


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 3
Coffee pl (2)
coffee pl 5
coffee pl 7
coffee pl 2
coffee pl 6
Coffee pl (3)
coffee pl 1
TI 99 08 19 B M pl(1)
bootdisk howto pl 8
BORODO STRESZCZENIE antastic pl
notatek pl sily wewnetrzne i odksztalcenia w stanie granicznym
WSM 10 52 pl(1)
amd102 io pl09
PPP HOWTO pl 6 (2)

więcej podobnych podstron