林委鋒



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