大姚
作為人工智能應(yīng)用領(lǐng)域中重要的一個方面,智能家居已經(jīng)越來越受到人們的關(guān)注。人們常常會想象各種“未來之家”的場景:走進(jìn)房間,燈光自動打開,電視自動播放,空調(diào)自動調(diào)節(jié)……我們相信這些智能設(shè)備在不久的將來都不再只是夢想,它們正在逐步成為現(xiàn)實。現(xiàn)在一些智能產(chǎn)品的實現(xiàn)也變得越來越簡單,我們甚至可以自己動手制作一些簡單的智能產(chǎn)品了,比如本期介紹的手勢控制燈。
Arduino控制器,GP2D120X紅外距離傳感器,RGB LED燈條,電源適配器,杜邦線,連接端子2套,25cm長的有機玻璃棒和有機玻璃固定板。
GP2D120X紅外距離傳感器可提供約30cm的精確距離探測,當(dāng)然也可以測得更遠(yuǎn)一點的距離,只是精度會變低。但是由于手勢燈對距離精度的要求不高,我們可采用它進(jìn)行50cm的測距。
該傳感器一般用于機器人的測距、避障以及路徑規(guī)劃,是機器視覺及其應(yīng)用領(lǐng)域的不錯選擇,而且它還能很好地兼容Arduino(Uno、Mega、Due等)控制器。其工作電壓為4.5—5.5V,輸出模擬信號,一共有三個接口,分別是紅色的5V電源端、黑色的接地端和橙色信號端。
手勢控制燈采用RGB LED燈條。該燈條是軟性燈條,一面是發(fā)光的LED線陣顆粒,一面附有3M雙面膠,可固定于底板。
燈條長50cm,共有72個LED芯片。燈條的兩頭,一頭是信號輸入端,一頭是信號輸出端。輸入端有3個接線端,分別是紅色的5V電源端、白色的接地端和藍(lán)色的信號輸入端。
電源適配器,12V直流輸出,輸出電流1A。如果沒有12V直流電源,則可以采用7—12V直流電源,它們都可以給Arduino Uno控制器供電。
1. 將兩塊有機玻璃固定板用熱熔膠連接在一起,構(gòu)成50cm長的固定板,以匹配LED燈條的長度。再將LED燈條的背面雙面膠撕除,粘貼到有機玻璃固定板上。接著用熱熔膠將兩根有機玻璃棒固定在LED燈條的上方。
2. 找一個硬紙板盒子,用美工刀在盒子上面開兩個方孔(10mm×5mm),用于通過紅外距離傳感器和LED燈條的接線端。同時在盒子的側(cè)面開一個小圓孔,用于走適配器的電線,給Arduino控制器供電。
3. 用3根杜邦線分別連接Arduino控制器與紅外距離傳感器的接線端,具體連接方式見下圖:紅外距離傳感器紅色和黑色線分別接Arduino控制器的5V電源端和接地端,橙色線連接Arduino 控制器的模擬信號A1輸入端。
4. 與LED燈條相連:將Arduino控制板的5V電源端、接地端和6號數(shù)字口分別連接到LED燈條的5V電源端、地線端和信號接入端。用LED燈條的信號輸入端的細(xì)線連接Arduino控制器的6號PWM輸出端。
5. 插上電源適配器,對Arduino控制器進(jìn)行供電,至此硬件連接部分全部完畢。要讓手勢控制燈正常工作,還需要給Arduino控制器下載控制程序。
6. 為了下載控制程序,先要通過D口USB線(藍(lán)色數(shù)據(jù)線)連接電腦和Arduino 控制器,下載Adafruit_NeoPixel Library庫文件(下載地址:https://learn.adafruit.com/adafruit- neopixel- uberguide/arduino- library- installation),將其解壓縮在C:\Program Files (x86)\Arduino\libraries。
7. 運行Arduino,打開GestureControl
LightingV3.ino文件(下載地址:https://pan.baidu.com/s/17M- yd0RC-fzkVvE0a83Onw)。打開菜單欄中“工具”選項,點擊“板卡”選項,選擇Arduino控制器的型號(這里是Arduino Uno)。
8. 選擇Arduino控制器與電腦的連接端口。為了判斷是否連接正確,可以通過插拔USB線,查看COM口。插上Arduino與電腦時,新增的COM口即為Arduino的通信端口。
9. 點擊“文件”下面的“下載”,將程序上傳到Arduino控制器,上傳成功后即可脫離電腦運行。
當(dāng)接通電源后,程序會開啟紅外距離傳感器探測,關(guān)閉LED燈條上的所有LED。
本程序采用間隔50ms探測紅外距離傳感器的數(shù)據(jù),見程序第9行:int delaytime = 50。
當(dāng)紅外距離傳感器的上方有遮擋,且遮擋的距離小于500mm時(見第25行),就會點亮遮擋相應(yīng)高度內(nèi)的LED顆粒。
不同的遮擋高度點亮不同顆數(shù)的LED,點亮LED的顆數(shù)根據(jù)500mm對應(yīng)72顆燈珠依次推算得到。當(dāng)遮擋物上下移動時,點亮的LED顆數(shù)也會隨之變化。
當(dāng)遮擋物從一定高度(500mm以內(nèi))抽離時,紅外距離傳感器的數(shù)據(jù)就會從當(dāng)前距離一下子變到500mm以上,那么此時的點亮LED顆粒將在此前的高度。