邱奕盛 謝作如
在街頭常常會(huì)看到各種激光射燈,用各種色彩斑斕的投影來吸引游客。在溫州中學(xué)的人工智能實(shí)驗(yàn)室建好后,筆者也想在門口裝一個(gè)激光射燈,每到晚上向走廊地板投射出實(shí)驗(yàn)室的LOGO,肯定能吸引很多好奇的學(xué)生。但是,如果激光射燈不能和學(xué)生們交互,總覺得配不上“智能”這個(gè)說法。因此,筆者希望做一個(gè)可以與用戶互動(dòng)的激光射燈作品。
這個(gè)激光射燈作品的互動(dòng)功能其實(shí)也簡(jiǎn)單:當(dāng)用戶走入照射范圍時(shí),激光LOGO就轉(zhuǎn)動(dòng)起來,在沒有人的時(shí)候則保持靜止。之所以這么簡(jiǎn)單,是因?yàn)槭袌?chǎng)能買到的激光射燈圖案都是固定的,做不到動(dòng)態(tài)更換,那唯一能“動(dòng)”的就只有旋轉(zhuǎn)了。但是遺憾的是,市場(chǎng)上連“能感知用戶是否經(jīng)過”的激光射燈也買不到。在權(quán)衡再三后,筆者買了一個(gè)帶遙控功能的激光射燈來改造。
● 實(shí)現(xiàn)激光射燈感知功能的可行性分析
因?yàn)檫@個(gè)激光射燈是長(zhǎng)期工作的,基于穩(wěn)定性考慮,筆者不希望破壞原有的激光射燈結(jié)構(gòu)。在購買射燈前,筆者已經(jīng)想好了兩種改造方案。
方案一:使用激光射燈的自帶旋轉(zhuǎn)功能,做一個(gè)小模塊,模擬遙控器發(fā)送“旋轉(zhuǎn)”指令。
方案二:將激光射燈裝在旋轉(zhuǎn)底座上,通過控制安裝在底座上的旋轉(zhuǎn)裝置實(shí)現(xiàn)。
當(dāng)激光射燈買到后,筆者卻很遺憾地發(fā)現(xiàn),其自帶的遙控器使用的不是常見的紅外模塊。拆開遙控器外殼,發(fā)現(xiàn)其內(nèi)部的信號(hào)發(fā)生芯片是HS2245PT,它產(chǎn)生的不是紅外信號(hào),而是類似汽車遙控的300MHz到450MHz信號(hào),模擬這個(gè)遙控信號(hào)不僅需要特殊的信號(hào)發(fā)射器,還要用專用工具分析信號(hào),難度太高,于是第一種方案宣告失敗。筆者掂了掂激光射燈的重量,將近一公斤,如果底座安裝不牢固的話,隨時(shí)有墜落的風(fēng)險(xiǎn),方案二也只能放棄。
當(dāng)然,還有第三種方案,那就是將激光射燈的遙控器改造為旋轉(zhuǎn)開關(guān)。從電子電路的角度來看,按鈕按下,就相當(dāng)于將兩個(gè)原本斷開的線路接通,以此改變電壓值,帶來信號(hào)的變化,從而產(chǎn)生控制信號(hào)。那么,只要想辦法將兩個(gè)線路用可編程控制的“開關(guān)”接通與斷開就行了,而這個(gè)“開關(guān)”可以用實(shí)驗(yàn)室中唾手可得的繼電器(如圖1)來擔(dān)任。綜合分析一下,這是目前看來最可行、最便捷的方案了。
● 激光射燈的改造過程
1.拆解遙控器,增加繼電器
將遙控器拆開一看,內(nèi)部其實(shí)很簡(jiǎn)單,由一個(gè)電路主板、一個(gè)電池電源和四個(gè)按鈕組成。因此,只需要在按鈕電路旁,焊接上繼電器,繼電器的信號(hào)由Arduino控制即可。
遙控器上一共有四個(gè)按鈕,分別表示開燈、關(guān)燈、旋轉(zhuǎn)、靜止。只需要改造后兩個(gè),因此筆者將對(duì)應(yīng)按鈕的線路用導(dǎo)線焊接引出,分別接到兩個(gè)繼電器上。由于焊接不能保證完全牢固,筆者又用熱熔膠在焊點(diǎn)上加固。
筆者采用DFRobot的PinPong board mini這款小型的Arduino主板,這樣可以進(jìn)一步減小控制器的整體體積。原本的兩節(jié)7號(hào)供電電池,也可以利用Arduino板載的3.3V替代統(tǒng)一供電,這就進(jìn)一步減小了裝置的體積(如圖2)。
2.制作感知“人”就發(fā)射信號(hào)的智能作品
為了實(shí)現(xiàn)感知“人”的存在,筆者對(duì)比了數(shù)字人體紅外熱釋電運(yùn)動(dòng)傳感器、紅外數(shù)字避障傳感器和超聲波測(cè)距傳感器,其中紅外熱釋電傳感器的感應(yīng)角度有110度,感應(yīng)范圍太廣,沒辦法將范圍限制在LOGO照射區(qū)域。實(shí)驗(yàn)室里現(xiàn)有的紅外避障傳感器感應(yīng)距離最大只有80cm,達(dá)不到需求。因此,筆者選擇了感應(yīng)角度小、感應(yīng)距離長(zhǎng)的超聲波測(cè)距模塊。
這個(gè)感知“人”就發(fā)射信號(hào)的智能作品工作原理如上頁圖3所示。
為了固定超聲波傳感器,筆者在紙板盒上外開一個(gè)穿線的孔,將超聲波傳感器露在盒子外面,其他器件裝在里面(如上頁圖4)。
通過Mind+對(duì)其編程,當(dāng)有人經(jīng)過的時(shí)候,就讓LOGO旋轉(zhuǎn)5秒,沒有人時(shí),就不旋轉(zhuǎn)。以Arduino代碼形式燒錄。代碼很簡(jiǎn)單,如圖5所示。
● 激光射燈的安裝
1.位置調(diào)整
激光射燈的亮度很強(qiáng),如果用戶與光源直視,強(qiáng)光會(huì)對(duì)肉眼造成傷害,考慮到這一點(diǎn),筆者將射燈的照射角度調(diào)整為比較小的傾角(如圖6),這樣,除非走得很近,否則光線不會(huì)直接射入眼睛。另外,筆者把燈裝在走廊的側(cè)面,減小了與行走方向一致造成直視光源的可能性。
2.定時(shí)開啟
由于射燈只需要在天黑后開啟,那么改造后的遙控器智能作品同樣只需要晚上開啟,筆者利用一個(gè)米家智能插座Wi-Fi板,設(shè)置了兩個(gè)自定義智能場(chǎng)景(如圖7),其中一個(gè)是傍晚開燈,另一個(gè)是深夜關(guān)燈,以達(dá)到節(jié)能的效果。
經(jīng)過上述步驟,已經(jīng)完成了激光射燈裝置的改造和部署。經(jīng)過測(cè)試,效果還是挺不錯(cuò)的,第一天點(diǎn)亮,就吸引了好多學(xué)生來圍觀,效果如圖8所示。
● 更多的想法
這次筆者選擇的主控板是最簡(jiǎn)單的Arduino,如果想實(shí)現(xiàn)無線控制,只要將Arduino換成掌控板、行空板或者虛谷號(hào)等即可。筆者下一步想增加更加酷炫的“智能”,如在某款迷你電腦上加一個(gè)攝像頭,通過計(jì)算機(jī)視覺的方法,實(shí)現(xiàn)目標(biāo)檢測(cè)、目標(biāo)分類、目標(biāo)追蹤、姿勢(shì)檢測(cè)等。例如,如果檢測(cè)到的是穿校服的學(xué)生,激光射燈就轉(zhuǎn),如果檢測(cè)到的學(xué)生沒有穿校服,激光射燈就不轉(zhuǎn)??傊猛娴南敕ㄍΧ啵戎鴮W(xué)生們?nèi)?shí)現(xiàn)。