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