2011年11月29日 星期二

Arduino USB Business Card

USB Business Card

有人做這樣的生意,叫作 USB Business Card,中文稱作 USB 名片或是隨身碟名片:

image
▲ 圖片來源: http://www.andreonicards.com

USB Business Card 既是名片,又是一個隨身碟,所以很適合隨身攜帶又可以拿來儲存資料,把它當作禮品送給客戶,是一個很聰明的形象推銷工具。

image
▲ 圖片來源: http://www.andreonicards.com

Frank Zhao 用 ATtiny85 做了一個 USB Business Card。當卡片插到 USB 埠後,它會偵測 caps lock 有沒有被連續按下三次,一旦偵側到,它就會自動把 Frank 個人的聯絡資訊印到 text editor 的視窗上。底下有個示範影片:

Frank 做的這個東西雖然不是一個隨身碟,不過卻很有趣。底下我們就用 Arduino 來自製一個跟 Frank 一樣 USB Business Card。我們會用到 USBKeyboard Library,因此請參考 USBKeyboard Library 先把 library 安裝起來。

程式

底下就是這支 Arduino USB Business Card 的程式 (BizCard.pde):

這支程式的邏輯很簡單,它會不斷的檢查 Num Lock 的燈號狀態,假如發現燈號狀態不一樣,代表使用者按下了 Num Lock 鍵,如果發現使用者在兩秒鐘之內連續按下 3 次 Num Lock 鍵,就自動把我個人的聯絡資訊印到 text editor 的視窗上。

打開 Arduino IDE,把程式上傳到 Arduino 板子,然後把 Arduino 切到 DFU mode,用 FLIP 把 Arduino-keyboard-0.3.hex 燒錄到 atmega8u2 晶片上,重新插拔 Arduino 的電源,這樣 Arduino USB Business Card 就完成了。

示範影片

在兩秒內連續按 3 次 Num Lock 鍵,Arduino 會自動把我個人聯絡資訊印到 text editor 視窗上:

參考資料

14 意見:

芭蕉葉上聽雨聲 提到...

Frank Zhao 是按Caps Lock, 您的範例是按Num Lock,
這次我有詳細閱讀您的文章, 依樣畫葫蘆, 一下子就做出來了,
感謝您.
呵~~要送USB名片目前送不起, 不知還得等多久才能送出第一張.

芭蕉葉上聽雨聲 提到...

有2個問題:
1.ATtiny85國內有販售嗎?
2.您看過這個網頁嗎?http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4418988&bbs_page_no=1&search_mode=3&search_text=QQ373466062&bbs_id=9999

GCY 提到...

good!

coopermaa 提到...

我原本也是用 Caps Lock,不過用 Caps Lock 會有個問題,程式送出來的 keystroke 會受到 Caps Lock 的影響,按三次後假如 Caps Lock 是 enabled,那麼送出來的 keystroke 就會全部變成大寫。這個其實是小問題,為了不讓 keystroke 變成大寫,只要在送出聯絡資訊前再送個 Caps Lock 的 keystroke 把它切回小寫就好。不過,為了讓範例程式不要變得太複雜,所以我才改用 Num Lock。

coopermaa 提到...

哈,這 Arduino 版 USB 名片我也送不起啊,太昂貴了。
這只是好玩,真要做的話,還是得用小顆的 chip 把成本壓低,像 frank 用的 attiny85 就是一個不錯的選擇。

我也不曉得國內有沒販售 attiny85 耶。我通常都是到露天拍賣買。我同事是說也可以到 mouser 下訂單: http://tw.mouser.com

芭蕉葉上聽雨聲 提到...

露天拍賣找不到, 倒是http://tw.mouser.com這個網站有售,不過一顆要50元以上, 請問哪一顆才合用?

coopermaa 提到...

CPU 頻率 15,16,20 MHz 的都可以。
Attiny85 的好處是內部振盪頻率夠快,所以不用外加 Crystal

coopermaa 提到...

Frank 網站上有 ATTiny85 USB Biz Card 的電路圖:
http://frank.circleofcurrent.com/cache/usbbusinesscard_details.htm

看起來挺簡單的,只有 Attiny85, USB Connector 跟幾個電阻和電容而已。另外 Frank 也有做一個 USB Programming Adapter,也很容易,只有一個 Female USB Connector 跟 ISP 的 6-pin header。

coopermaa 提到...

如果要在麵包板上做的話,可以參考一下底下這篇:
http://happyrobotlabs.com/post/13290443412/attiny85-development-board-rev-a

coopermaa 提到...

Hi pizchen, 我剛去看了一下你給的 www.ourdev.cn 那個網頁,這個看起來應該是 ATtiny85 + MMC 的 Proteus 仿真。 
怎麼了嗎?你想用 Proteus 做 ATTiny85 仿真來玩 USB 嗎?

thx 提到...

http://www.blogjava.net/baicker/archive/2011/12/10/366009.html 他也是用ATTiny85 .

coopermaa 提到...

thx, 謝謝。請問一下,你是怎麼知道他用 ATTiny85 的啊? 是看照片嗎? 我看照片上有一顆小晶片是沒錯,可是鏡頭沒照到晶片型號,你是怎麼看出來的啊? 還是說這是你的 blog :)

thx 提到...

中國那網站是認識的人 是搞電子工程的XX
我的站是http://www.osslab.com.tw/
很感謝你的站 收穫不少.
我們手上有很多Arduino 實務方向應用的想法 有機會可聊聊

coopermaa 提到...

原來是認識的人。
謝謝,希望我的 blog 可以帶給路人收獲,這樣就有意義了。
請問一下,你們 OSSlab 是學校的實驗室嗎? 開放軟體實驗室,還真是有趣的名字。
哈,好啊。