周穎怡
(嶺南師范學(xué)院,廣東 湛江 524048)
由于人口結(jié)構(gòu)、家庭、社會結(jié)構(gòu)的變化,空巢青年、老年群體人數(shù)正在逐漸增多,為了尋求精神的寄托,人們開始需要更豐富的精神生活,電子寵物應(yīng)運而生[1]。電子寵物可以實現(xiàn)陪伴、緩解壓力等功能,具有巨大的發(fā)展?jié)摿2]。
本課題采用EV3機(jī)器人作為搭載電子寵物的基本套件,EV3機(jī)器人擁有獨立開放的編程程序,它的功能強(qiáng)大,通過機(jī)械部件與編程的組合,能夠完成多種機(jī)械動作[3];配備編程軟件以及使用手冊,讓廣大用戶能夠根據(jù)自身的需要來改變程序,以實現(xiàn)更多功能,親身體驗編程的樂趣,培養(yǎng)用戶的科學(xué)素養(yǎng)[4]。
本課題設(shè)計的EV3寵物機(jī)器人是指以EV3機(jī)器人為搭建主體的電子寵物狗“小白”,寵物的身體由各類積木、電動機(jī)、傳感器以及主控制器組成,在編程軟件上完成程序編寫并導(dǎo)入到主控制器,則可實現(xiàn)預(yù)設(shè)功能[5]。該電子寵物的主要功能包括:能夠完成基本動作,如發(fā)聲、揮手等,并且能夠?qū)崿F(xiàn)人寵互動,對使用者的指令實現(xiàn)實時響應(yīng)。
EV3機(jī)器人核心套件如下:
1)“智能磚頭”——EV3程序塊。EV3機(jī)器人的特點之一就是它擁有一個“大腦”一般的主控制器[6]。以往使用者在編程完成后,往往需要將程序從計算機(jī)下載到機(jī)器人,而在配備了主控制器之后,使用者不僅可以將程序儲存在上面,還可以直接通過主控制器完成編程,從而快速檢驗程序有效性。
2)各類傳感器,包括超聲波傳感器、紅外傳感器、陀螺儀傳感器、顏色傳感器、聲音傳感器以及觸動傳感器等等。如果說主控制器是EV3機(jī)器人的“大腦”,那么這些傳感器就相當(dāng)于機(jī)器人的“五官”,高精度的傳感器能夠幫助機(jī)器人感受周圍的環(huán)境,并根據(jù)預(yù)設(shè)做出響應(yīng)[7]。
3)各類積木和電機(jī),即EV3機(jī)器人的“軀干”和“四肢”。通過改變不同積木之間的搭配,能夠組合出多種多樣的機(jī)器人模型,電機(jī)為機(jī)器人的行動提供動力[8]。
4)配備了搭建手冊和編程軟件EST。EV3機(jī)器人采用圖形化編程,將不同的模塊進(jìn)行合理組合,則可以實現(xiàn)指定動作,如前進(jìn)、后退、轉(zhuǎn)彎等,配合不同傳感器能接收不同的信號,實現(xiàn)更高級的動作[9]。
電子寵物“小白”的頭部由主程序塊構(gòu)成,主屏幕能夠顯示它的表情,兩只“耳朵”讓它看起來更加生動形象,超聲波傳感器、顏色傳感器位于“下巴”處?!靶“住钡能|干部分由中型電機(jī)、聲音傳感器、觸碰傳感器以及各種積木構(gòu)成,尾部用金屬圓球模擬小狗的“尾巴”。電子寵物“小白”的正視圖如圖1所示,側(cè)視圖如圖2所示。
圖1 “小白”正視圖
圖2 “小白”側(cè)視圖
“小白”的軀干有一個中型電機(jī),連接的是主程序塊的A端口。中型電機(jī)帶動蝸輪轉(zhuǎn)動,通過蝸輪蝸桿傳動,可以實現(xiàn)上下點頭的動作。
“小白”的后肢有兩個大型電機(jī),連接的分別是主程序塊的B端口和D端口。大型電機(jī)帶動齒輪轉(zhuǎn)動,通過齒輪之間相互嚙合傳動,使得輪胎轉(zhuǎn)動,實現(xiàn)移動。
“小白”身上有4個傳感器,分別是超聲波傳感器、聲音傳感器、顏色傳感器及觸動傳感器。聲音傳感器連接的是主程序塊的1端口,超聲波傳感器連接的是主程序塊的2端口,顏色傳感器連接的是主程序塊的3端口,觸動傳感器連接的是主程序塊的4端口。
當(dāng)聲音傳感器檢測環(huán)境聲音達(dá)到50 dB以上時,主程序塊屏幕將會出現(xiàn)“EST”字樣;當(dāng)超聲波傳感器感應(yīng)到前方20 cm以內(nèi)有物體時,主程序塊屏幕將會出現(xiàn)“EST”字樣;當(dāng)顏色傳感器感應(yīng)到物體顏色為紅色時,主程序屏幕塊將會出現(xiàn)“EST”字樣;當(dāng)觸碰傳感器受到擠壓時,主程序屏幕塊將會出現(xiàn)“EST”字樣。
“小白”能夠?qū)κ褂谜叩拿钭龀龇磻?yīng),當(dāng)使用者喊出“小白”的名字或者拍掌呼喚“小白”時,它會緩緩向使用者走來,同時抬起頭“看著”使用者。利用切換模塊,將模式設(shè)置為聲音傳感器。設(shè)定閾值,當(dāng)聲音傳感器檢測到周圍環(huán)境聲音達(dá)到40 dB以上時,中型電機(jī)以20%的功率逆時針轉(zhuǎn)動3 600°,通過蝸輪蝸桿傳動,“小白”做出抬頭的動作;兩個大型電機(jī)同時以20%的功率轉(zhuǎn)動一圈,“小白”向使用者走來;同時,主程序塊屏幕顯示表情“仰視”。當(dāng)周圍環(huán)境聲音低于或等于40 dB時,“小白”無動作。最后使用一個無限制循環(huán)模塊將該程序包含在內(nèi),讓該程序能夠在“小白”啟動時一直運行。
“小白”在不同的情境下會顯示不同的表情,配合發(fā)聲功能,可以表現(xiàn)出“小白”的情緒狀態(tài)。當(dāng)“小白”閑置時,每5 s會轉(zhuǎn)換一次表情并顯示在主程序塊屏幕上。程序如圖3所示。
圖3 顯示預(yù)設(shè)表情程序
“小白”能夠通過超聲波傳感器感應(yīng)到前方物體的存在,當(dāng)探測到該物體的存在時,“小白”能夠隨著物體的運動而運動,并與物體保持一定的距離。利用切換模塊,將模式設(shè)置為超聲波傳感器。設(shè)定閾值,當(dāng)超聲波傳感器探測到物體距離“小白”大于15 cm時,將此時探測到的距離的值設(shè)為a,利用數(shù)學(xué)模塊將a與15的差值乘以10,并將結(jié)果輸入為電機(jī)的功率值,使電機(jī)以該功率順時針運轉(zhuǎn),達(dá)到跟隨的效果;當(dāng)物體距離“小白”大于10 cm、小于15 cm時,電機(jī)關(guān)閉,“小白”保持靜止;當(dāng)物體距離“小白”小于10 cm時,將此時探測到的距離的值設(shè)為b,利用數(shù)學(xué)模塊將10與b的差值乘以-10,并將結(jié)果輸入為電機(jī)的功率值,使電機(jī)以該功率逆時針運轉(zhuǎn)。程序如圖4所示。
圖4 距離感應(yīng)程序
使用者可以通過按壓程序塊按鈕,手動調(diào)節(jié)“小白”頭部的角度。利用切換模塊,將輸入模式設(shè)為“程序塊按鈕——比較”,將動作狀態(tài)設(shè)為擠壓,當(dāng)程序塊上按鈕受到擠壓時,中型電機(jī)會以-100%的功率運轉(zhuǎn),“小白”做出抬頭的動作;當(dāng)程序塊下按鈕受到擠壓時,中型電機(jī)會以100%的功率運轉(zhuǎn),“小白”做出低頭的動作。使用者可以根據(jù)需要手動調(diào)節(jié)“小白”頭部的角度。程序如圖5所示。
圖5 手動調(diào)節(jié)頭部
“小白”配備了顏色傳感器,通過辨別物體的顏色,能夠分辨該物體是否為食物,并做出反應(yīng)。利用切換模塊,將模式設(shè)置為“顏色傳感器——比較”。若顏色傳感器探測物體顏色為紅色時,即該物體為“食物”,此時主程序塊顯示表情“熱愛的”,發(fā)出聲音“嘎吱”,同時,以50%的功率前后移動;若顏色傳感器探測到物體顏色不為紅色時,即物體不為“食物”,此時主程序塊顯示表情“傷心的”。
使用者擠壓“小白”身上的觸動傳感器時,“小白”會抬頭“望向”使用者,做出“瞇眼”的表情,并發(fā)出可愛的叫聲。利用切換模塊,將模式設(shè)置為觸動傳感器,并將動作狀態(tài)設(shè)為“擠壓”。當(dāng)觸動傳感器的按鈕受到擠壓時,主程序塊會顯示表情“瞇眼著”,發(fā)出聲音“啵嚶”,并且中型電機(jī)會以20%的功率逆時針旋轉(zhuǎn)3 600°。如果一段時間沒有進(jìn)行操作,“小白”會進(jìn)入睡眠狀態(tài)。
使用者通過擠壓“小白”身上的兩個觸動傳感器,通過不同的動作組合來遙控“小白”前進(jìn)、后退、左轉(zhuǎn)及右轉(zhuǎn)。利用切換模塊,將模式設(shè)置為觸動傳感器(端口為1,即1號觸動傳感器),并將動作狀態(tài)設(shè)為“擠壓”。同時嵌套兩個切換模塊,將模式設(shè)置為觸動傳感器(端口為2,即2號觸動傳感器)。當(dāng)1號觸動傳感器和2號觸動傳感器同時“松開”時,“小白”前進(jìn);當(dāng)1號觸動傳感器和2號觸動傳感器同時“擠壓”時,“小白”后退;當(dāng)1號觸動傳感器“擠壓”,同時2號觸動傳感器“松開”時,“小白”左轉(zhuǎn);當(dāng)1號觸動傳感器“松開”,同時2號觸動傳感器“擠壓”時,“小白”右轉(zhuǎn)。
使用者能夠用聲音讓“小白”前進(jìn),并且能夠通過改變聲音分貝的大小來改變“小白”前進(jìn)的速度[10]。利用切換模塊,將模式設(shè)置為聲音傳感器。當(dāng)檢測到聲音分貝大于20 dB時,利用聲音傳感器模塊測量出當(dāng)前聲音分貝值的大小,將聲音分貝測量值作為電機(jī)功率,從而達(dá)到聲控調(diào)速的效果[11]。考慮到直接將聲音分貝值作為電機(jī)功率,可能會導(dǎo)致電機(jī)功率過高、速度過快,所以在程序中加入了一個數(shù)學(xué)模塊,在讀取測量結(jié)果之后,將其設(shè)為數(shù)學(xué)模塊的a值,用a除以固定值2,再將結(jié)果作為電機(jī)功率。改良后的程序既避免了電機(jī)速度過快,又避免了輸出值為負(fù)數(shù)而導(dǎo)致電機(jī)反轉(zhuǎn)。程序如圖6所示。
圖6 聲控調(diào)速
使用者通過擠壓“小白”身上的觸動傳感器來控制“小白”前進(jìn),隨著使用者擠壓觸動傳感器次數(shù)的增多,電機(jī)功率隨之增高。程序說明:使用常量模塊,設(shè)置常量值為20,并將其導(dǎo)入變量模塊,作為變量1初始值。利用等待模塊,將模式設(shè)置為觸動傳感器,當(dāng)使用者擠壓一次觸動傳感器,變量模塊將變量1的值導(dǎo)入數(shù)學(xué)模塊中作為a值,加上固定值10,然后利用變量模塊讀取結(jié)果,并將結(jié)果導(dǎo)入電機(jī)功率。使用者每擠壓一次觸動傳感器,電機(jī)功率就會增加10%,最終電機(jī)功率達(dá)到100%,“小白”全速前進(jìn)。程序如圖7所示。
圖7 觸動調(diào)速
EV3機(jī)器人是一款教育機(jī)器人,越來越多的學(xué)校、教育機(jī)構(gòu)開始使用它作為教學(xué)工具,越來越多人看到了它的優(yōu)勢和潛力。本課題中的“小白”是基于EV3機(jī)器人的電子寵物,是對EV3機(jī)器人應(yīng)用的一次嘗試。雖然現(xiàn)今為止寵物狗“小白”的表現(xiàn)與人們的預(yù)期還無法相提并論,但在日后的研究中定會不斷發(fā)展進(jìn)步。