周穎怡
(嶺南師范學(xué)院,廣東 湛江 524048)
由于人口結(jié)構(gòu)、家庭、社會(huì)結(jié)構(gòu)的變化,空巢青年、老年群體人數(shù)正在逐漸增多,為了尋求精神的寄托,人們開(kāi)始需要更豐富的精神生活,電子寵物應(yīng)運(yùn)而生[1]。電子寵物可以實(shí)現(xiàn)陪伴、緩解壓力等功能,具有巨大的發(fā)展?jié)摿2]。
本課題采用EV3機(jī)器人作為搭載電子寵物的基本套件,EV3機(jī)器人擁有獨(dú)立開(kāi)放的編程程序,它的功能強(qiáng)大,通過(guò)機(jī)械部件與編程的組合,能夠完成多種機(jī)械動(dòng)作[3];配備編程軟件以及使用手冊(cè),讓廣大用戶能夠根據(jù)自身的需要來(lái)改變程序,以實(shí)現(xiàn)更多功能,親身體驗(yàn)編程的樂(lè)趣,培養(yǎng)用戶的科學(xué)素養(yǎng)[4]。
本課題設(shè)計(jì)的EV3寵物機(jī)器人是指以EV3機(jī)器人為搭建主體的電子寵物狗“小白”,寵物的身體由各類積木、電動(dòng)機(jī)、傳感器以及主控制器組成,在編程軟件上完成程序編寫(xiě)并導(dǎo)入到主控制器,則可實(shí)現(xiàn)預(yù)設(shè)功能[5]。該電子寵物的主要功能包括:能夠完成基本動(dòng)作,如發(fā)聲、揮手等,并且能夠?qū)崿F(xiàn)人寵互動(dòng),對(duì)使用者的指令實(shí)現(xiàn)實(shí)時(shí)響應(yīng)。
EV3機(jī)器人核心套件如下:
1)“智能磚頭”——EV3程序塊。EV3機(jī)器人的特點(diǎn)之一就是它擁有一個(gè)“大腦”一般的主控制器[6]。以往使用者在編程完成后,往往需要將程序從計(jì)算機(jī)下載到機(jī)器人,而在配備了主控制器之后,使用者不僅可以將程序儲(chǔ)存在上面,還可以直接通過(guò)主控制器完成編程,從而快速檢驗(yàn)程序有效性。
2)各類傳感器,包括超聲波傳感器、紅外傳感器、陀螺儀傳感器、顏色傳感器、聲音傳感器以及觸動(dòng)傳感器等等。如果說(shuō)主控制器是EV3機(jī)器人的“大腦”,那么這些傳感器就相當(dāng)于機(jī)器人的“五官”,高精度的傳感器能夠幫助機(jī)器人感受周圍的環(huán)境,并根據(jù)預(yù)設(shè)做出響應(yīng)[7]。
3)各類積木和電機(jī),即EV3機(jī)器人的“軀干”和“四肢”。通過(guò)改變不同積木之間的搭配,能夠組合出多種多樣的機(jī)器人模型,電機(jī)為機(jī)器人的行動(dòng)提供動(dòng)力[8]。
4)配備了搭建手冊(cè)和編程軟件EST。EV3機(jī)器人采用圖形化編程,將不同的模塊進(jìn)行合理組合,則可以實(shí)現(xiàn)指定動(dòng)作,如前進(jìn)、后退、轉(zhuǎn)彎等,配合不同傳感器能接收不同的信號(hào),實(shí)現(xiàn)更高級(jí)的動(dòng)作[9]。
電子寵物“小白”的頭部由主程序塊構(gòu)成,主屏幕能夠顯示它的表情,兩只“耳朵”讓它看起來(lái)更加生動(dòng)形象,超聲波傳感器、顏色傳感器位于“下巴”處。“小白”的軀干部分由中型電機(jī)、聲音傳感器、觸碰傳感器以及各種積木構(gòu)成,尾部用金屬圓球模擬小狗的“尾巴”。電子寵物“小白”的正視圖如圖1所示,側(cè)視圖如圖2所示。

圖1 “小白”正視圖

圖2 “小白”側(cè)視圖
“小白”的軀干有一個(gè)中型電機(jī),連接的是主程序塊的A端口。中型電機(jī)帶動(dòng)蝸輪轉(zhuǎn)動(dòng),通過(guò)蝸輪蝸桿傳動(dòng),可以實(shí)現(xiàn)上下點(diǎn)頭的動(dòng)作。
“小白”的后肢有兩個(gè)大型電機(jī),連接的分別是主程序塊的B端口和D端口。大型電機(jī)帶動(dòng)齒輪轉(zhuǎn)動(dòng),通過(guò)齒輪之間相互嚙合傳動(dòng),使得輪胎轉(zhuǎn)動(dòng),實(shí)現(xiàn)移動(dòng)。
“小白”身上有4個(gè)傳感器,分別是超聲波傳感器、聲音傳感器、顏色傳感器及觸動(dòng)傳感器。聲音傳感器連接的是主程序塊的1端口,超聲波傳感器連接的是主程序塊的2端口,顏色傳感器連接的是主程序塊的3端口,觸動(dòng)傳感器連接的是主程序塊的4端口。
當(dāng)聲音傳感器檢測(cè)環(huán)境聲音達(dá)到50 dB以上時(shí),主程序塊屏幕將會(huì)出現(xiàn)“EST”字樣;當(dāng)超聲波傳感器感應(yīng)到前方20 cm以內(nèi)有物體時(shí),主程序塊屏幕將會(huì)出現(xiàn)“EST”字樣;當(dāng)顏色傳感器感應(yīng)到物體顏色為紅色時(shí),主程序屏幕塊將會(huì)出現(xiàn)“EST”字樣;當(dāng)觸碰傳感器受到擠壓時(shí),主程序屏幕塊將會(huì)出現(xiàn)“EST”字樣。
“小白”能夠?qū)κ褂谜叩拿钭龀龇磻?yīng),當(dāng)使用者喊出“小白”的名字或者拍掌呼喚“小白”時(shí),它會(huì)緩緩向使用者走來(lái),同時(shí)抬起頭“看著”使用者。利用切換模塊,將模式設(shè)置為聲音傳感器。設(shè)定閾值,當(dāng)聲音傳感器檢測(cè)到周圍環(huán)境聲音達(dá)到40 dB以上時(shí),中型電機(jī)以20%的功率逆時(shí)針轉(zhuǎn)動(dòng)3 600°,通過(guò)蝸輪蝸桿傳動(dòng),“小白”做出抬頭的動(dòng)作;兩個(gè)大型電機(jī)同時(shí)以20%的功率轉(zhuǎn)動(dòng)一圈,“小白”向使用者走來(lái);同時(shí),主程序塊屏幕顯示表情“仰視”。當(dāng)周圍環(huán)境聲音低于或等于40 dB時(shí),“小白”無(wú)動(dòng)作。最后使用一個(gè)無(wú)限制循環(huán)模塊將該程序包含在內(nèi),讓該程序能夠在“小白”啟動(dòng)時(shí)一直運(yùn)行。
“小白”在不同的情境下會(huì)顯示不同的表情,配合發(fā)聲功能,可以表現(xiàn)出“小白”的情緒狀態(tài)。當(dāng)“小白”閑置時(shí),每5 s會(huì)轉(zhuǎn)換一次表情并顯示在主程序塊屏幕上。程序如圖3所示。

圖3 顯示預(yù)設(shè)表情程序
“小白”能夠通過(guò)超聲波傳感器感應(yīng)到前方物體的存在,當(dāng)探測(cè)到該物體的存在時(shí),“小白”能夠隨著物體的運(yùn)動(dòng)而運(yùn)動(dòng),并與物體保持一定的距離。利用切換模塊,將模式設(shè)置為超聲波傳感器。設(shè)定閾值,當(dāng)超聲波傳感器探測(cè)到物體距離“小白”大于15 cm時(shí),將此時(shí)探測(cè)到的距離的值設(shè)為a,利用數(shù)學(xué)模塊將a與15的差值乘以10,并將結(jié)果輸入為電機(jī)的功率值,使電機(jī)以該功率順時(shí)針運(yùn)轉(zhuǎn),達(dá)到跟隨的效果;當(dāng)物體距離“小白”大于10 cm、小于15 cm時(shí),電機(jī)關(guān)閉,“小白”保持靜止;當(dāng)物體距離“小白”小于10 cm時(shí),將此時(shí)探測(cè)到的距離的值設(shè)為b,利用數(shù)學(xué)模塊將10與b的差值乘以-10,并將結(jié)果輸入為電機(jī)的功率值,使電機(jī)以該功率逆時(shí)針運(yùn)轉(zhuǎn)。程序如圖4所示。

圖4 距離感應(yīng)程序
使用者可以通過(guò)按壓程序塊按鈕,手動(dòng)調(diào)節(jié)“小白”頭部的角度。利用切換模塊,將輸入模式設(shè)為“程序塊按鈕——比較”,將動(dòng)作狀態(tài)設(shè)為擠壓,當(dāng)程序塊上按鈕受到擠壓時(shí),中型電機(jī)會(huì)以-100%的功率運(yùn)轉(zhuǎn),“小白”做出抬頭的動(dòng)作;當(dāng)程序塊下按鈕受到擠壓時(shí),中型電機(jī)會(huì)以100%的功率運(yùn)轉(zhuǎn),“小白”做出低頭的動(dòng)作。使用者可以根據(jù)需要手動(dòng)調(diào)節(jié)“小白”頭部的角度。程序如圖5所示。

圖5 手動(dòng)調(diào)節(jié)頭部
“小白”配備了顏色傳感器,通過(guò)辨別物體的顏色,能夠分辨該物體是否為食物,并做出反應(yīng)。利用切換模塊,將模式設(shè)置為“顏色傳感器——比較”。若顏色傳感器探測(cè)物體顏色為紅色時(shí),即該物體為“食物”,此時(shí)主程序塊顯示表情“熱愛(ài)的”,發(fā)出聲音“嘎吱”,同時(shí),以50%的功率前后移動(dòng);若顏色傳感器探測(cè)到物體顏色不為紅色時(shí),即物體不為“食物”,此時(shí)主程序塊顯示表情“傷心的”。
使用者擠壓“小白”身上的觸動(dòng)傳感器時(shí),“小白”會(huì)抬頭“望向”使用者,做出“瞇眼”的表情,并發(fā)出可愛(ài)的叫聲。利用切換模塊,將模式設(shè)置為觸動(dòng)傳感器,并將動(dòng)作狀態(tài)設(shè)為“擠壓”。當(dāng)觸動(dòng)傳感器的按鈕受到擠壓時(shí),主程序塊會(huì)顯示表情“瞇眼著”,發(fā)出聲音“啵嚶”,并且中型電機(jī)會(huì)以20%的功率逆時(shí)針旋轉(zhuǎn)3 600°。如果一段時(shí)間沒(méi)有進(jìn)行操作,“小白”會(huì)進(jìn)入睡眠狀態(tài)。
使用者通過(guò)擠壓“小白”身上的兩個(gè)觸動(dòng)傳感器,通過(guò)不同的動(dòng)作組合來(lái)遙控“小白”前進(jìn)、后退、左轉(zhuǎn)及右轉(zhuǎn)。利用切換模塊,將模式設(shè)置為觸動(dòng)傳感器(端口為1,即1號(hào)觸動(dòng)傳感器),并將動(dòng)作狀態(tài)設(shè)為“擠壓”。同時(shí)嵌套兩個(gè)切換模塊,將模式設(shè)置為觸動(dòng)傳感器(端口為2,即2號(hào)觸動(dòng)傳感器)。當(dāng)1號(hào)觸動(dòng)傳感器和2號(hào)觸動(dòng)傳感器同時(shí)“松開(kāi)”時(shí),“小白”前進(jìn);當(dāng)1號(hào)觸動(dòng)傳感器和2號(hào)觸動(dòng)傳感器同時(shí)“擠壓”時(shí),“小白”后退;當(dāng)1號(hào)觸動(dòng)傳感器“擠壓”,同時(shí)2號(hào)觸動(dòng)傳感器“松開(kāi)”時(shí),“小白”左轉(zhuǎn);當(dāng)1號(hào)觸動(dòng)傳感器“松開(kāi)”,同時(shí)2號(hào)觸動(dòng)傳感器“擠壓”時(shí),“小白”右轉(zhuǎn)。
使用者能夠用聲音讓“小白”前進(jìn),并且能夠通過(guò)改變聲音分貝的大小來(lái)改變“小白”前進(jìn)的速度[10]。利用切換模塊,將模式設(shè)置為聲音傳感器。當(dāng)檢測(cè)到聲音分貝大于20 dB時(shí),利用聲音傳感器模塊測(cè)量出當(dāng)前聲音分貝值的大小,將聲音分貝測(cè)量值作為電機(jī)功率,從而達(dá)到聲控調(diào)速的效果[11]。考慮到直接將聲音分貝值作為電機(jī)功率,可能會(huì)導(dǎo)致電機(jī)功率過(guò)高、速度過(guò)快,所以在程序中加入了一個(gè)數(shù)學(xué)模塊,在讀取測(cè)量結(jié)果之后,將其設(shè)為數(shù)學(xué)模塊的a值,用a除以固定值2,再將結(jié)果作為電機(jī)功率。改良后的程序既避免了電機(jī)速度過(guò)快,又避免了輸出值為負(fù)數(shù)而導(dǎo)致電機(jī)反轉(zhuǎn)。程序如圖6所示。

圖6 聲控調(diào)速
使用者通過(guò)擠壓“小白”身上的觸動(dòng)傳感器來(lái)控制“小白”前進(jìn),隨著使用者擠壓觸動(dòng)傳感器次數(shù)的增多,電機(jī)功率隨之增高。程序說(shuō)明:使用常量模塊,設(shè)置常量值為20,并將其導(dǎo)入變量模塊,作為變量1初始值。利用等待模塊,將模式設(shè)置為觸動(dòng)傳感器,當(dāng)使用者擠壓一次觸動(dòng)傳感器,變量模塊將變量1的值導(dǎo)入數(shù)學(xué)模塊中作為a值,加上固定值10,然后利用變量模塊讀取結(jié)果,并將結(jié)果導(dǎo)入電機(jī)功率。使用者每擠壓一次觸動(dòng)傳感器,電機(jī)功率就會(huì)增加10%,最終電機(jī)功率達(dá)到100%,“小白”全速前進(jìn)。程序如圖7所示。

圖7 觸動(dòng)調(diào)速
EV3機(jī)器人是一款教育機(jī)器人,越來(lái)越多的學(xué)校、教育機(jī)構(gòu)開(kāi)始使用它作為教學(xué)工具,越來(lái)越多人看到了它的優(yōu)勢(shì)和潛力。本課題中的“小白”是基于EV3機(jī)器人的電子寵物,是對(duì)EV3機(jī)器人應(yīng)用的一次嘗試。雖然現(xiàn)今為止寵物狗“小白”的表現(xiàn)與人們的預(yù)期還無(wú)法相提并論,但在日后的研究中定會(huì)不斷發(fā)展進(jìn)步。