歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 如何用 Linux 來煮咖啡(轉帖)

如何用 Linux 來煮咖啡(轉帖)

日期:2017/3/6 15:29:11   编辑:關於Unix
作者寫得很精辟! http://www.redflag-linux.com/source/HOWTO/minihowto/coffee-miniHowto/Coffee.html#toc1 COFFEE-HOWTO --如何用 Linux 來煮咖啡 作者:Georgatos Photis [email protected] 譯者:CC [email protected] v0.5, 15 January 1998 翻譯日期: 作者寫得很精辟!
http://www.redflag-linux.com/source/HOWTO/minihowto/coffee-miniHowto/Coffee.html#toc1


COFFEE-HOWTO --如何用 Linux 來煮咖啡

作者:Georgatos Photis < [email protected]>
譯者:CC < [email protected]>

v0.5, 15 January 1998 翻譯日期:5 June 2000
我聽過關於軟件最讓人迷惑的評論是它能不能用來煮咖啡,不過,Linux 確實能做到這一點,而且煮出來的咖啡美味可口!

在很長一段時期,人類很想知道怎樣才能讓電腦來煮咖啡..... 人們 要咖啡來保持清醒,這樣才能長時間坐在電腦前面。因為每個人都知道在晚上編程會更好。

最主要的問題是怎樣用電腦來控制咖啡機,然後才能用軟件來控制。這通常意味著 一個 ON/OFF 開關被用來控制咖啡機電源。

1. 選單

  • 1.1 French
  • 1.2 Nescaffe
  • 1.3 frappe
  • 1.4 freddo
  • 1.5 cappuccino (待續)
  • 1.6 espresso

2. 電路

  • 2.1 從電腦提取0-5V電源
  • 2.2 用繼電器電路控制
  • 2.3 用雙向晶閘管電路控制 #1
  • 2.4 用雙向晶閘管電路控制 #2

3. 軟件

  • 3.1 軟件
  • 3.2 設備驅動程序
  • 3.3 通過 Internet 連接

4. 用量過多的征狀

5. 功能擴展

6. 參考

7. 其他

  • 7.1 序文
  • 7.2 作者自述及文檔維護
  • 7.3 版權
  • 7.4 光榮榜


1. 選單

1.1 French

由於不 要很多照料,這種咖啡在程序員中很流行,就象現在很多的商業軟件一 樣。它絕佳的口味使眾多的程序員在編寫令人難以置信的軟件時激發了靈感。而這些 軟件都是在一天中的頭幾個小時寫的,舉個例子,由於偏愛這種咖啡,Windows 就 是在凌晨5:00寫的!效果絕對保證!

1.2 Nescaffe

Nescaffe 是一種比較濃烈的咖啡,由咖啡、糖、少量水混合在熱水裡調制而成。 通常 1 湯匙咖啡和 1 湯匙糖,再加一點點水混合在一起。其間,還要保證水是沸騰 的,一旦水足夠熱,就把它們倒入,再加點牛奶味道可能更好一點。 盡管你能用一些比咖啡機更簡單的東西來煮,我已經看到過這種方案好多次了......

1.3 frappe

這是上面提到過的咖啡的一種流行變種。 實№上,它不用咖啡機,反而 要一個冰箱來獲得冷水和冰塊。

1.4 freddo

這個比較難,看一下 Coffee-Faq (參考)

1.5 cappuccino (待續)

1.6 espresso (待續)



2. 電路

總的圖解如下:

--------- 0-5V  --------- ~220V   ----------------
| PC |===>===|電子回路|========| 咖啡機 |
--------- --------- ----------------

我們的想法是從電腦輸出一個控制電壓,然後通過繼電器或者雙向晶閘管電路驅動被電隔離的電子回路。

你必須選擇一個繼電器電路,如果你有一個大的咖啡機(功率大於200 W ),你還可以用一個雙向晶閘管電路。

所有列出的電路都至少被測試過一次,不過使用者自己承擔所有的後果。 如果你對電子學一點沒經驗,你不應嘗試這些,要不然,你會有一個糟糕的結局...

對 220V 電壓的操作應該非常小心,而且還應用上一根合適的保險絲。

2.1 從電腦提取0-5V電源

下面是一個從電腦並口提取0-5V電源的例子:

      公 DB-25           -----    針腳 10 - ACK(應答)
連 接 器 | | 針腳 9 - D7
後 視 圖 | | 針腳 2 - D0
v v v 針腳 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 /
\______________________________________________________/

針腳 1 濾波 (反邏輯)

針腳 2-9 是數據總線的信號,通過一個 OUTB 命令發信給並口的門闩線路。

針腳 10 是應答信號( ACK ),由你控制,所以你可以產生一個中斷信號給 CPU 。

針腳 18-25 被短路了,都是地線 ( GND ) 。

詳細地說明如下:

<=發送   DB25    Cent   信號          寄存
=>接收 pin pin 定義 器位 功能注釋
------ ---- ---- -------- --- -----------------------------
=> 1 1 -濾波 C0- 設置低位脈沖 > 0.5us 發送
=> 2 2 數據線0 D0 設置最小有效數據
=> 3 3 數據線1 D1 ...
=> 4 4 數據線2 D2 ...
=> 5 5 數據線3 D3 ...
=> 6 6 數據線4 D4 ...
=> 7 7 數據線5 D5 ...
=> 8 8 數據線6 D6 ...
=> 9 9 數據線7 D7 設置最大有效數據
<= 10 10 -應答 S6+ IRQ 接受應答後,低位脈沖 5us
<= 11 11 +忙 S7- 忙/出錯/斷線時高位
<= 12 12 +無紙 S5+ 無紙時高位
<= 13 13 +已選擇 S4+ 已選擇打印機時高位
=> 14 14 -自動注入 C1- 低位時自動注入一行
<= 15 32 -錯誤 S3+ 錯誤/斷線/無紙時低位
=> 16 31 -初始化 C2+ 設置低位脈沖 > 50us 初始化
=> 17 36 -選擇 C3- 設置低位選擇打印機
== 18-25 19-30, 地線

2.2 用繼電器電路控制

最簡單的電路如下:

                             Vcc
|
+------+
| __|__
繼電器 /^\ 二極管 1N4002
線圈 /---\
| |
+------+
|
| /
4.7K B |/ C
並口數據腳>-\/\/\/\/---| NPN 三極管: BC547A or 2N2222A
|\ E
| V
|
並口地線 >--------------+
|
接地
Vcc 的選擇應同所選繼電器型號的電壓一樣( 通常是 5V 或者是 12V )。很明顯,繼電器的規格應該由咖啡機的功率決定。

酒保們通常傾向於在三極管之後再放置繼電器,然後用發射極( E 腳 ) 代替集電極( C 腳 )連接繼電器,這是一個錯誤的經歷,因為三極管被錯誤的偏置了,結果是得到了一杯糟糕的咖啡 :-)。二極管 1N4002 對保護三極管避免被從繼電器流出的電流燒壞很有幫助,如果你不用它,三極管很可能會變黑,發臭,且被燒壞。

2.3 用雙向晶閘管電路控制 #1

如果你只想要一個簡單的電路,你可以選用摩托羅拉的 MOC301[012] 雙向晶閘管驅動器,它跟通常用的 SC141D 雙向晶閘管一起搭配使用。這種電路有個優點就是它不 要額外的電源供給。

以下是為非感應負荷設計的電路:

        270     1 +-------+ 6    180
+5v -VAVAVA-----+ +----VAVAVA-----+-------------- Line Hot
2 | MOC | |
TTL in ---------+ 3012 +nc VA SC141D
| | 4 / |
nc+ +------------/ |
+-------+ +----\/\/\/---- Line Neutral
LOAD

如果你正在使用 220V 電壓,MOC3021 可能更好。 感性負載應該和旁路電容相連,查閱 摩托羅拉應用手冊 AN-780. 咖啡機一般是非感性負載(就象馬達一樣),但誰知道你的會是什麼樣的.....

2.4 用雙向晶閘管電路控制 #2

+5VDC
| 180 180 2.2k
+---/\/\/\----+-----+ +----/\/\/-+--/\/\/\---+-------> 120V
| 1| |6 | | Hot
| +=====+ | | MT1
| | MC | 雙向晶閘| +-+
| | 3032| 管驅動器| G | | 雙向晶閘管
| +=====+ | /| |
\ 2| |4 | / +-+
2N3904 |----+ | | | | MT2
/ | +--------- | -------+ |
V \ | | |
| / | \ |
| \ 43 .01u --- 10k / |
| / 500V --- \ |
| | | / |
+------+ | | | Neutral
| +--------+--+---o o--> 120V
/ load
>-/\/\--| 2N3904
\
V
|
---
///


你應該以 220V 的標准調整電阻值。

電路詳解:

MC3032 是光隔離雙向晶閘管驅動器。 180 歐姆的電阻設定了光隔離器裡面的發光二極管的電流。如果 要,你可以調整這個電阻從而得到一個合理的電流。(比如 15 mA)。

注意你不能在沒有負載的情況下測試電路。除非連上了交流電源,雙向晶閘管不會切換,所以你也不能在有交流電源和負載的情況下測試它的簡單切換,注意這個 .01u 的電容要達到 500V 的耐壓。



3. 軟件

3.1 軟件

你必須得到一個有以下功能的可執行程序:

  • 通過 ioperm 命令,例如,ioperm ( BASE, range , 1),調用內核,得到 I/O 地址空間的使用權;
  • 通過一個發送請求指令,例如, outb(1, BASE ) ,設定並口電壓為 0-5V
  • 等待足夠的時間讓咖啡煮好,讓時間參數在命令行中被讀取是一件很好的事情
  • 然後發送 out(0, BASE) 指令關掉咖啡機
  • 在結束之前還應歸還並口 I/O 地址的使用權, ioperm(BASE,range,0)
改變 /dev/lp0 的基地址為 0x3bc ,/dev/lp1 為 0x378 ,/dev/lp2 為 0x278,范圍( range ) 為 8 。

如果在這個程序中再使用 setuid 會更好,因為每個用戶都可以用 Linux 煮咖啡了!

3.2 設備驅動程序

參考 kernel hacker's guide, 安裝一個設備驅動程序 (it could even be user space i think). 請以模塊(module)方式編譯,這樣以後每次更新的時候也用不著重新編譯內核了。 然後打入:

echo cappuccino >/dev/coffee

1 分鐘後你就會有一杯熱咖啡,注意 /dev/coffee 要設置合適的權限,具體看你是否只想讓超級用戶煮咖啡了。

這種方法有個優點就是它能用並口的 ACK 針腳來實現從咖啡機的反 支持。所以一個智能的咖啡機有時還會中斷一下。

把它當作課外作業

3.3 通過 Internet 連接

如果你已經有了這個 C 程序(如上),你只 寫一個 CGI 腳本就可以開關咖啡機了。 你還 做幾個漂亮的網頁,解釋一下怎麼煮咖啡,然後再把它掛到 apache 服務器上.....

4. 用量過多的征狀

  • 興奮
  • 焦急
  • 失眠
  • 心跳加速 或者 cardiac arhythmia
  • 腸胃不好
  • 煩亂不安

5. 功能擴展

下面是我們的想法:

  • 這兒提到的所有的軟硬件都可以被用來擴充功能,所以它還能支持烤面包, beaf, applepies, 等等.
  • 串集8台咖啡機,這會讓你能在一台已經啟動了的時候還能喝到咖啡,當然性能有點沖撞。
  • 平行無線控制咖啡機將在以後發布。
  • 如果你想讓它盡可能得自動化,你還應再加一些電路和檢測裝置,這樣你可以控制水流、溫度、咖啡品質等等。
  • 在不遠的將來,我們還會加上 SNMP 功能。
  • 115Kbps 的串口咖啡機

6. 參考

  • http://daisy.uwaterloo.ca/~alopez-o/caffaq.html 這是互聯網上的Coffee-FAQ
  • http://lonestar.texas.net/~andrew/f_pc_.htm 很多ASCII格式的電路。 有些是關於並口的。
  • http://shell.rmi.net/~hisys/parport.html 關於並口的,不管什麼你想知道卻不敢問的東西都有
  • http://sunsite.unc.edu/LDP/HOWTO/mini/IO-Port-Programming 關於在 Linux 下 I/O 端口編程的。
  • http://www.redhat.com:8080/HyperNews/get/khg.html 怎樣編寫自己的設備驅動程序,來吧!
  • 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/ 咖啡機在線,不過沒有測試的。
  • http://www.cs.su.oz.au/~bob/coffee.html 這種咖啡機只提供 cappuccino 。應該升級了!
  • 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 用戶的一個關於 Linux 是否能 用來煮咖啡的討論話題。在我們漂亮的 Linux 在線雜志 magaz 上歸成文檔: http://www.linux.gr/magaz. 注意,雜志是希臘文的。

7.2 作者自述及文檔維護

我叫 Georgatos Photis, 估計在很長一段時期都是 Patras 大學計算機工程與信息學系的學生。通常我會因文檔和網頁的維護而變的很忙,不過關於這個 HOWTO 的任何意見我都會處理,也不會讓你等得太焦急了。

7.3 版權

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,是第一個把咖啡從美洲帶到歐洲的人(1492)。
  • Kostas Lialiambis 是一個敢說用 Linux 煮不了咖啡的人!
  • Panagiotis Vrionis, Yannakopoulos Haralambos, 給了我很多有趣滑稽的資料。

Copyright © Linux教程網 All Rights Reserved