林委鋒
“老師,機(jī)器人還可以做什么呢?” “嗯,大家平時(shí)在朋友圈里最喜歡做什么呢?對(duì)了,是點(diǎn)贊!今天就來做一個(gè)會(huì)點(diǎn)贊的機(jī)器人吧!”我們?cè)谏掀谧龅臋C(jī)器人小車上添加一雙“眼睛”、一只會(huì)動(dòng)的“手臂”和一張會(huì)說話的“嘴巴”。當(dāng)你接近這個(gè)機(jī)器人時(shí),它就會(huì)說“你好棒”,同時(shí)給你豎起一只“手臂”——為你點(diǎn)贊!
所需要的材料如圖1所示:超聲波傳感器和安裝固定支架、ISD1820錄放音模塊、輝盛SG90舵機(jī)、兩段PVC線槽。PVC線槽用來制作機(jī)器人的手臂,舵機(jī)的作用是讓機(jī)器人手臂能夠轉(zhuǎn)動(dòng)。舵機(jī),英文叫Servo,它是由直流電機(jī)、減速齒輪組、傳感器和控制電路組成的一套自動(dòng)控制系統(tǒng)。舵機(jī)和直流電機(jī)不同,舵機(jī)不能一圈圈轉(zhuǎn)動(dòng),只能在一定角度內(nèi)轉(zhuǎn)動(dòng)。它有一個(gè)最大轉(zhuǎn)動(dòng)角度,有的是180度,有的是360度。
在一段PVC線槽的一側(cè)開一個(gè)口,把舵機(jī)固定到線槽上,再把舵機(jī)的搖臂安裝固定到另一段PVC線槽上,把兩段線槽連接起來,就形成了一只簡(jiǎn)單的機(jī)器人手臂(如圖2)。把機(jī)器人的手臂和小車連接并固定好,再把超聲波傳感器安裝固定到小車的前方,最后把錄放音模塊安裝到小車合適的位置處,點(diǎn)贊?rùn)C(jī)器人就做好了。
各個(gè)模塊與Arduino板的連線如圖3所示,可分為兩個(gè)部分:電源線和信號(hào)控制線。Arduino板只有一個(gè)5V電源接口,這個(gè)接口電源供超聲波傳感器使用。另外再?gòu)碾姵睾幸鰞山M電源供舵機(jī)和錄放音模塊使用,引出的電源可以是3節(jié)電池或4節(jié)電池,對(duì)應(yīng)的電壓為4.5V或6V。要注意的是,舵機(jī)的引線有3根,默認(rèn)紅色和棕色是電源線,分別接電源的正、負(fù)極,另外一根黃色是信號(hào)線,接Arduino板的數(shù)字口12。ISD1820錄放音模塊的PL- E接11腳,超聲波傳感器的TRIG、ECHO分別接數(shù)字口2、3。
現(xiàn)在編一個(gè)程序讓機(jī)器人的手臂動(dòng)起來,如圖4所示。舵機(jī)轉(zhuǎn)動(dòng)指令Servo在ArduBlock的GENERIC Hardware模塊里。注意,該指令默認(rèn)提供的引腳數(shù)據(jù)不能用,上傳時(shí)會(huì)顯示出錯(cuò),需刪掉并換成用“變量/常量”模塊中的數(shù)字常量來替換。程序中舵機(jī)的轉(zhuǎn)動(dòng)角度為60度和180度,調(diào)整機(jī)器人手臂的起始位置,使得機(jī)器人手臂可以在水平和垂直方向上來回轉(zhuǎn)動(dòng),實(shí)現(xiàn)點(diǎn)贊的功能。
ISD1820錄放音模塊是一個(gè)簡(jiǎn)易的錄音、放音模塊,它可以錄制大約10秒鐘的聲音。打開電源,按住REC按鈕,對(duì)著模塊的MIC話筒說“你好棒”,聲音就被錄了下來,按PLAY- E鍵可試聽錄制的聲音。錄放音模塊上的P- E是一個(gè)觸發(fā)控制端,給該引腳發(fā)送高電平,可播放錄制的聲音,發(fā)送完后要把該引腳轉(zhuǎn)為低電平。
最后,完整的程序如圖5所示。程序先設(shè)定舵機(jī)轉(zhuǎn)動(dòng)角度為180度,讓機(jī)器人的手臂轉(zhuǎn)到水平位置處。然后超聲波傳感器每隔100毫秒檢測(cè)一次前面障礙物的距離。當(dāng)人與超聲波傳感器的距離小于10厘米時(shí),條件判斷指令如果/否則的值為真,執(zhí)行以下動(dòng)作:13腳輸出高電平,Arduino板上的13腳指示燈亮;12腳輸出高電平,錄放音模塊發(fā)出“你好棒”的聲音;舵機(jī)控制機(jī)器人的手臂轉(zhuǎn)動(dòng)豎起為你點(diǎn)贊?。ㄈ鐖D6)