作者寫得很精辟! http://www.redflag-linux.com/source/HOWTO/minihowto/coffee-miniHowto/Coffee.html#toc1 COFFEE-HOWTO --如何用 Linux 來煮咖啡 作者:Georgatos Photis gef@ceid.upatras.gr 譯者:CC ccemail@21cn.com v0.5, 15 January 1998 翻譯日期:
作者寫得很精辟!http://www.redflag-linux.com/source/HOWTO/minihowto/coffee-miniHowto/Coffee.html#toc1
COFFEE-HOWTO --如何用 Linux 來煮咖啡
作者:Georgatos Photis < gef@ceid.upatras.gr>
譯者:CC <clearcase/" target="_blank" >ccemail@21cn.com>v0.5, 15 January 1998 翻譯日期:5 June 2000
我聽過關(guān)于軟件最讓人迷惑的評論是它能不能用來煮咖啡,不過,Linux 確實(shí)能做到這一點(diǎn),而且煮出來的咖啡美味可口!
在很長一段時(shí)期,人類很想知道怎樣才能讓電腦來煮咖啡..... 人們 要咖啡來保持清醒,這樣才能長時(shí)間坐在電腦前面,
如何用 Linux 來煮咖啡(轉(zhuǎn)帖)Linux
。因?yàn)槊總(gè)人都知道在晚上編程會(huì)更好。最主要的問題是怎樣用電腦來控制咖啡機(jī),然后才能用軟件來控制。這通常意味著 一個(gè) ON/OFF 開關(guān)被用來控制咖啡機(jī)電源。
1. 選單
1.1 French
1.2 Nescaffe
1.3 frappe
1.4 freddo
1.5 cappuccino (待續(xù))
1.6 espresso
2. 電路
2.1 從電腦提取0-5V電源
2.2 用繼電器電路控制
2.3 用雙向晶閘管電路控制 #1
2.4 用雙向晶閘管電路控制 #2
3. 軟件
3.1 軟件
3.2 設(shè)備驅(qū)動(dòng)程序
3.3 通過 Internet 連接
4. 用量過多的征狀
5. 功能擴(kuò)展
6. 參考
7. 其他
7.1 序文
7.2 作者自述及文檔維護(hù)
7.3 版權(quán)
7.4 光榮榜
1. 選單
1.1 French
由于不 要很多照料,這種咖啡在程序員中很流行,就象現(xiàn)在很多的商業(yè)軟件一 樣。它絕佳的口味使眾多的程序員在編寫令人難以置信的軟件時(shí)激發(fā)了靈感。而這些 軟件都是在一天中的頭幾個(gè)小時(shí)寫的,舉個(gè)例子,由于偏愛這種咖啡,Windows就 是在凌晨5:00寫的!效果絕對保證!
1.2 Nescaffe
Nescaffe 是一種比較濃烈的咖啡,由咖啡、糖、少量水混合在熱水里調(diào)制而成。 通常 1 湯匙咖啡和 1 湯匙糖,再加一點(diǎn)點(diǎn)水混合在一起。其間,還要保證水是沸騰 的,一旦水足夠熱,就把它們倒入,再加點(diǎn)牛奶味道可能更好一點(diǎn)。 盡管你能用一些比咖啡機(jī)更簡單的東西來煮,我已經(jīng)看到過這種方案好多次了......
1.3 frappe
這是上面提到過的咖啡的一種流行變種。 實(shí)№上,它不用咖啡機(jī),反而 要一個(gè)冰箱來獲得冷水和冰塊。
1.4 freddo
這個(gè)比較難,看一下 Coffee-Faq (參考)
1.5 cappuccino (待續(xù))
1.6 espresso (待續(xù))
2. 電路
總的圖解如下:
--------- 0-5V --------- ~220V ----------------</p><p> | PC |===>===|電子回路|========| 咖啡機(jī) |</p><p> --------- --------- ----------------</p><p>
我們的想法是從電腦輸出一個(gè)控制電壓,然后通過繼電器或者雙向晶閘管電路驅(qū)動(dòng)被電隔離的電子回路。
你必須選擇一個(gè)繼電器電路,如果你有一個(gè)大的咖啡機(jī)(功率大于200 W ),你還可以用一個(gè)雙向晶閘管電路。
所有列出的電路都至少被測試過一次,不過使用者自己承擔(dān)所有的后果。 如果你對電子學(xué)一點(diǎn)沒經(jīng)驗(yàn),你不應(yīng)嘗試這些,要不然,你會(huì)有一個(gè)糟糕的結(jié)局...
對 220V 電壓的操作應(yīng)該非常小心,而且還應(yīng)用上一根合適的保險(xiǎn)絲。
2.1 從電腦提取0-5V電源
下面是一個(gè)從電腦并口提取0-5V電源的例子:
公 DB-25 ----- 針腳 10 - ACK(應(yīng)答)</p><p> 連 接 器 | | 針腳 9 - D7</p><p> 后 視 圖 | | 針腳 2 - D0</p><p> v v v 針腳 1 -濾波</p><p> ____________________________________________________________</p><p> / \</p><p> \ 13 12 11 10 9 8 7 6 5 4 3 2 1 /</p><p> \ /</p><p> \ 25 24 23 22 21 20 19 18 17 16 15 14 /</p><p> \______________________________________________________/</p><p>
針腳 1 濾波 (反邏輯)
針腳 2-9 是數(shù)據(jù)總線的信號(hào),通過一個(gè) OUTB 命令發(fā)信給并口的門閂線路。
針腳 10 是應(yīng)答信號(hào)( ACK ),由你控制,所以你可以產(chǎn)生一個(gè)中斷信號(hào)給 CPU 。
針腳 18-25 被短路了,都是地線 ( GND ) 。
詳細(xì)地說明如下:
<=發(fā)送 DB25 Cent 信號(hào) 寄存</p><p> =>接收 pin pin 定義 器位 功能注釋</p><p> ------ ---- ---- -------- --- -----------------------------</p><p> => 1 1 -濾波 C0- 設(shè)置低位脈沖 > 0.5us 發(fā)送</p><p> => 2 2 數(shù)據(jù)線0 D0 設(shè)置最小有效數(shù)據(jù)</p><p> => 3 3 數(shù)據(jù)線1 D1 ...</p><p> => 4 4 數(shù)據(jù)線2 D2 ...</p><p> => 5 5 數(shù)據(jù)線3 D3 ...</p><p> => 6 6 數(shù)據(jù)線4 D4 ...</p><p> => 7 7 數(shù)據(jù)線5 D5 ...</p><p> => 8 8 數(shù)據(jù)線6 D6 ...</p><p> => 9 9 數(shù)據(jù)線7 D7 設(shè)置最大有效數(shù)據(jù)</p><p> <= 10 10 -應(yīng)答 S6+ IRQ 接受應(yīng)答后,低位脈沖 5us</p><p> <= 11 11 +忙 S7- 忙/出錯(cuò)/斷線時(shí)高位</p><p> <= 12 12 +無紙 S5+ 無紙時(shí)高位</p><p> <= 13 13 +已選擇 S4+ 已選擇打印機(jī)時(shí)高位</p><p> => 14 14 -自動(dòng)注入 C1- 低位時(shí)自動(dòng)注入一行</p><p> <= 15 32 -錯(cuò)誤 S3+ 錯(cuò)誤/斷線/無紙時(shí)低位</p><p> => 16 31 -初始化 C2+ 設(shè)置低位脈沖 > 50us 初始化</p><p> => 17 36 -選擇 C3- 設(shè)置低位選擇打印機(jī)</p><p> == 18-25 19-30, 地線</p><p>
2.2 用繼電器電路控制
最簡單的電路如下:
Vcc</p><p> |</p><p> +------+</p><p> | __|__</p><p> 繼電器 /^\ 二極管 1N4002</p><p> 線圈 /---\</p><p> | |</p><p> +------+</p><p> |</p><p> | /</p><p> 4.7K B |/ C</p><p> 并口數(shù)據(jù)腳>-\/\/\/\/---| NPN 三極管: BC547A or 2N2222A</p><p> |\ E</p><p> | V</p><p> |</p><p> 并口地線 >--------------+</p><p> |</p><p> 接地</p><p>Vcc 的選擇應(yīng)同所選繼電器型號(hào)的電壓一樣( 通常是 5V 或者是 12V ),
電腦資料
《如何用 Linux 來煮咖啡(轉(zhuǎn)帖)Linux》(http://www.msguai.com)。很明顯,繼電器的規(guī)格應(yīng)該由咖啡機(jī)的功率決定。酒保們通常傾向于在三極管之后再放置繼電器,然后用發(fā)射極( E 腳 ) 代替集電極( C 腳 )連接繼電器,這是一個(gè)錯(cuò)誤的經(jīng)歷,因?yàn)槿龢O管被錯(cuò)誤的偏置了,結(jié)果是得到了一杯糟糕的咖啡 :-)。二極管 1N4002 對保護(hù)三極管避免被從繼電器流出的電流燒壞很有幫助,如果你不用它,三極管很可能會(huì)變黑,發(fā)臭,且被燒壞。
2.3 用雙向晶閘管電路控制 #1
如果你只想要一個(gè)簡單的電路,你可以選用摩托羅拉的 MOC301[012] 雙向晶閘管驅(qū)動(dòng)器,它跟通常用的 SC141D 雙向晶閘管一起搭配使用。這種電路有個(gè)優(yōu)點(diǎn)就是它不 要額外的電源供給。
以下是為非感應(yīng)負(fù)荷設(shè)計(jì)的電路:
270 1 +-------+ 6 180</p><p> +5v -VAVAVA-----+ +----VAVAVA-----+-------------- Line Hot</p><p> 2 | MOC | |</p><p> TTL in ---------+ 3012 +nc VA SC141D</p><p> | | 4 / |</p><p> nc+ +------------/ |</p><p> +-------+ +----\/\/\/---- Line Neutral</p><p> LOAD</p><p>
如果你正在使用 220V 電壓,MOC3021 可能更好。 感性負(fù)載應(yīng)該和旁路電容相連,查閱摩托羅拉應(yīng)用手冊 AN-780. 咖啡機(jī)一般是非感性負(fù)載(就象馬達(dá)一樣),但誰知道你的會(huì)是什么樣的.....
2.4 用雙向晶閘管電路控制 #2
+5VDC</p><p> | 180 180 2.2k</p><p> +---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V</p><p> | 1| |6 | | Hot</p><p> | +=====+ | | MT1</p><p> | | MC | 雙向晶閘| +-+</p><p> | | 3032| 管驅(qū)動(dòng)器| G | | 雙向晶閘管</p><p> | +=====+ | /| |</p><p> \ 2| |4 | / +-+</p><p> 2N3904 |----+ | | | | MT2</p><p> / | +--------- | -------+ |</p><p> V \ | | |</p><p> | / | \ |</p><p> | \ 43 .01u --- 10k / |</p><p> | / 500V --- \ |</p><p> | | | / |</p><p> +------+ | | | Neutral</p><p> | +--------+--+---o o--> 120V</p><p> / load</p><p> >-/\/\--| 2N3904</p><p> \</p><p> V</p><p> |</p><p> ---</p><p> ///</p><p> 你應(yīng)該以 220V 的標(biāo)準(zhǔn)調(diào)整電阻值。</p><p>
電路詳解:
MC3032 是光隔離雙向晶閘管驅(qū)動(dòng)器。 180 歐姆的電阻設(shè)定了光隔離器里面的發(fā)光二極管的電流。如果 要,你可以調(diào)整這個(gè)電阻從而得到一個(gè)合理的電流。(比如 15 mA)。
注意你不能在沒有負(fù)載的情況下測試電路。除非連上了交流電源,雙向晶閘管不會(huì)切換,所以你也不能在有交流電源和負(fù)載的情況下測試它的簡單切換,注意這個(gè) .01u 的電容要達(dá)到 500V 的耐壓。
3. 軟件
3.1 軟件
你必須得到一個(gè)有以下功能的可執(zhí)行程序:
通過ioperm命令,例如,ioperm ( BASE, range , 1),調(diào)用內(nèi)核,得到 I/O 地址空間的使用權(quán);
通過一個(gè)發(fā)送請求指令,例如,outb(1, BASE ),設(shè)定并口電壓為 0-5V
等待足夠的時(shí)間讓咖啡煮好,讓時(shí)間參數(shù)在命令行中被讀取是一件很好的事情
然后發(fā)送 out(0, BASE) 指令關(guān)掉咖啡機(jī)
在結(jié)束之前還應(yīng)歸還并口 I/O 地址的使用權(quán),ioperm(BASE,range,0)
改變 /dev/lp0 的基地址為 0x3bc ,/dev/lp1 為 0x378 ,/dev/lp2 為 0x278,范圍( range ) 為 8 。如果在這個(gè)程序中再使用 setuid 會(huì)更好,因?yàn)槊總(gè)用戶都可以用 Linux 煮咖啡了!
3.2 設(shè)備驅(qū)動(dòng)程序
參考 kernel hacker's guide, 安裝一個(gè)設(shè)備驅(qū)動(dòng)程序 (it could even be user space i think). 請以模塊(module)方式編譯,這樣以后每次更新的時(shí)候也用不著重新編譯內(nèi)核了。 然后打入:
echo cappuccino >/dev/coffee</p><p>
1 分鐘后你就會(huì)有一杯熱咖啡,注意 /dev/coffee 要設(shè)置合適的權(quán)限,具體看你是否只想讓超級用戶煮咖啡了。
這種方法有個(gè)優(yōu)點(diǎn)就是它能用并口的 ACK 針腳來實(shí)現(xiàn)從咖啡機(jī)的反 支持。所以一個(gè)智能的咖啡機(jī)有時(shí)還會(huì)中斷一下。
把它當(dāng)作課外作業(yè)
3.3 通過 Internet 連接
如果你已經(jīng)有了這個(gè) C 程序(如上),你只 寫一個(gè) CGI 腳本就可以開關(guān)咖啡機(jī)了。 你還 做幾個(gè)漂亮的網(wǎng)頁,解釋一下怎么煮咖啡,然后再把它掛到apache服務(wù)器上.....
4. 用量過多的征狀
興奮
焦急
失眠
心跳加速 或者 cardiac arhythmia
腸胃不好
煩亂不安
5. 功能擴(kuò)展
下面是我們的想法:
這兒提到的所有的軟硬件都可以被用來擴(kuò)充功能,所以它還能支持烤面包, beaf, applepies, 等等.
串集8臺(tái)咖啡機(jī),這會(huì)讓你能在一臺(tái)已經(jīng)啟動(dòng)了的時(shí)候還能喝到咖啡,當(dāng)然性能有點(diǎn)沖撞。
平行無線控制咖啡機(jī)將在以后發(fā)布。
如果你想讓它盡可能得自動(dòng)化,你還應(yīng)再加一些電路和檢測裝置,這樣你可以控制水流、溫度、咖啡品質(zhì)等等。
在不遠(yuǎn)的將來,我們還會(huì)加上 SNMP 功能。
115Kbps 的串口咖啡機(jī)
6. 參考
http://daisy.uwaterloo.ca/~alopez-o/caffaq.html 這是互聯(lián)網(wǎng)上的Coffee-FAQ
http://lonestar.texas.net/~andrew/f_pc_.htm 很多ASCII格式的電路。 有些是關(guān)于并口的。
http://shell.rmi.net/~hisys/parport.html 關(guān)于并口的,不管什么你想知道卻不敢問的東西都有
http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming 關(guān)于在 Linux 下 I/O 端口編程的。
http://www.redhat.com:8080/HyperNews/get/khg.html 怎樣編寫自己的設(shè)備驅(qū)動(dòng)程序,來吧!
http://www.hut.fi/Misc/Electronics/circuits/parallel_output.html Tomi Engdahl 的主頁,電子迷必看。
http://www.yahoo.com/Computers_and_Internet/Internet/ Entertainment/Interesting_Devices_Connected_to_the_Net/Coffee_Machines/ 咖啡機(jī)在線,不過沒有測試的。
http://www.cs.su.oz.au/~bob/coffee.html 這種咖啡機(jī)只提供 cappuccino 。應(yīng)該升級了!
http://einstein.et.tudelft.nl/~janssen/ 來自荷蘭的咖啡。
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.1 序文
此文檔最初是用希臘文寫的,來自希臘 Linux 用戶的一個(gè)關(guān)于 Linux 是否能 用來煮咖啡的討論話題。在我們漂亮的 Linux 在線雜志 magaz 上歸成文檔: http://www.linux.gr/magaz. 注意,雜志是希臘文的。
7.2 作者自述及文檔維護(hù)
我叫 Georgatos Photis, 估計(jì)在很長一段時(shí)期都是 Patras 大學(xué)計(jì)算機(jī)工程與信息學(xué)系的學(xué)生。通常我會(huì)因文檔和網(wǎng)頁的維護(hù)而變的很忙,不過關(guān)于這個(gè) HOWTO 的任何意見我都會(huì)處理,也不會(huì)讓你等得太焦急了。
7.3 版權(quán)
The casual copyright with everything you get with linux... To find it, you'll have to read all of them and count the most common. Otherwise, no, you can't copy it.
7.4 光榮榜
Christofer Colombus. 他真名叫 Cristobal Colon,是第一個(gè)把咖啡從美洲帶到歐洲的人(1492)。
Kostas Lialiambis 是一個(gè)敢說用 Linux 煮不了咖啡的人!
Panagiotis Vrionis, Yannakopoulos Haralambos, 給了我很多有趣滑稽的資料。
原文轉(zhuǎn)自:http://www.ltesting.net