這個彩蛋能呈現出1658萬種色彩,更絕的是你可以用隨便一個電視,DVD,或者錄像機的遙控器來遙控它。
這個項目基于一個蛋殼里的RGB全色LED,隨機變色的來源是一個Atmel的ATtiny85單片機,用一塊Arduino板燒寫的程序。單片機通過一個接收頭和外面的遙控器通信,這個晶體管對紅外遙控用的波長和載波頻率特別敏感。
材料和工具
1個ATtiny85或者ATtiny45單片機1個共陽極RGB LED ,3個1/4W的220歐姆電阻,1個紅外接收頭,3個或者4個1.4V紐扣電池。
我用的紅外接收頭是從一個壽命到頭的錄像機前面板上拆下來的。如果其他的部件是郵購的話,搭車買一個更劃算。但是幾乎所有的部件手邊都有或者能從舊機器上拆到,這個我也不想例外。
電阻是給LED限流的,180歐到560歐的都隨意,但是記得弄三個一樣的。
如果你能找到的RGB LED是共陰極的話,不用說應該將共同的引腳連到地線上。我想代碼應該也能工作,但是會得到和共陽極LED不同的結果。
最后我給這個電路準備了4個紐扣電池供電,加起來5.4V。過去我通常用3V的電壓給ATtiny85和RGB LED供電(比如說CR2032鋰電池),但是紅外接收頭至少要求5V供電才能工作,所以沒辦法了。
我用的代碼和電路來自MIT high/low博客,在那里我學到了怎么用Arduino板給ATtiny燒寫程序。我用的是ATtiny系列而不是板上的ATmega328,因為ATtiny系列的體積要小不少,所以才方便放進蛋里。這個芯片業比較便宜,用來做一次性的制作也不會心疼。
我把編程板和萬能板組合在一起用,這樣比較省事。但是你也可以全部用面包板和插線搞定。下面是來自MIT的教程,告訴你下載安裝程序之后如何將ArduinoISP 的程序加進Arduino IDE.工程并下載到單片機里。
1.將Arduino板連接電腦,然后在示例菜單中打開ArduinoISP sketch;
2.在面包板上或者ISP板上將ATtiny芯片連接到Arduino板;
3.在Arduino IDE里打開一個新窗口,將彩蛋的程序粘貼進去;
4.保存程序;
5.從IDE軟件的菜單里,選擇Tools》Board》“Attiny85(w/Arduino as ISP)”;
6.下載燒寫程序到ATtiny里。
電路
把ATtiny和其他的電路零件插到面包板上并且供給5V的電源,注意芯片的引腳編號,不要接錯了。注意實體芯片上的引腳號和編程時的IO口編號不一樣,看好電路圖。在面包板上搭好電路之后記得仔細檢查,這樣才能正確下載程序,并讓它以你希望的方式工作。
這個電路會對遙控器上的點擊做出反應,它使用接收頭探測38KHz的紅外光脈沖。這是紅外遙控的編碼標準,并且大大增加了系統的靈敏度,使它能夠透過蛋殼感應到外界的遙控器。
我們并不真的要讀出這些脈沖里編碼的信息,所有的脈沖對電路來說都像是發令槍砰的一聲,然后就開始變色。紅外接收頭靠電池供電,然后將探測到的38KHz信號從OUT引腳輸出。當這個引腳和連接的ATtiny引腳處于低電平時什么都不會發生,但是當OUT引腳輸出高電平時,ATtiny就會隨機決定LED的顏色。
焊接組裝
有時候這種做法被稱為折騰死甲蟲,因為需要把Attiny翻過來,然后在懸空的引腳上焊接。需要非常認真,確定在焊正確的腳位:芯片翻過來以后引腳的位置和正放著時剛好相反。
不要匆忙,耐心慢慢來。這些部件都怕熱,不要焊太久。最后都焊好以后,終于可以松一口氣了!
蛋殼制作
找一個白色的雞蛋,背刺它,不斷搖動把里面的蛋液甩出來——找個水池做這活。然后用剪刀小心地把洞口擴大一些。
為了讓整個電路有個底座,我把一小段銅管焊在一分錢上,然后把電池用膠帶纏好塞進管里。
按下遙控器
把蛋殼套在電路上,然后就可以把彩蛋放在電視機旁看熱鬧了。稍等一會兒之后它的顏色就會變得難以預料。
-
單片機
+關注
關注
6039文章
44583瀏覽量
636575 -
RGB
+關注
關注
4文章
799瀏覽量
58582 -
紅外遙控
+關注
關注
22文章
347瀏覽量
45647
發布評論請先 登錄
相關推薦
評論