李 棚 ,孔 健 ,項莉萍
(1.六安職業(yè)技術學院 信息與電子工程學院,安徽 六安237100;2.合肥幼兒師范高等??茖W校 學前教育系,安徽 合肥230011)
智能車創(chuàng)客教育平臺是一款涉及到電子、機械、工程、軟件等技術的復合型平臺,該平臺在教育領域擁有十分巨大的教育價值,在培養(yǎng)學生分析能力、創(chuàng)造能力和實踐能力等方面具有重要的現(xiàn)實意義[1].隨著科技的進步,國內(nèi)市場推出了眾多的科技教育平臺,這些平臺逐漸進入到學校實驗室、培訓機構(gòu)和部分家庭,提高了對智能控制技術的認知度和認可度[2].由于涉及到商業(yè)利益的存在,各大公司開發(fā)的教育平臺,存在封裝嚴密、開放性不足,結(jié)構(gòu)獨特、通用性不足,價格昂貴、親民性不足[3-4].筆者借助開源軟件及硬件,構(gòu)建智能車創(chuàng)客教育平臺,以友好的界面、開放的接口、優(yōu)質(zhì)延續(xù)性、親民的價格,服務于中國青少年創(chuàng)客教育.
采用Arduino板作為智能車的控制核心,藍牙模塊通過串口實現(xiàn)信息的傳輸,通過電機控制模塊實現(xiàn)對電機的控制,控制Led燈模擬車燈和控制蜂鳴器鳴叫模擬車輛的鳴笛(見圖1).Arduino板是由米蘭交互設計學院David C和Massimo B設計,于2005年推出基于開放原始代碼的Simple I/O平臺.該平臺的硬件采用AVR單片機制作開源的、通用的開發(fā)板,經(jīng)過多年的積累,已經(jīng)實現(xiàn)多版本、多系列、多應用的公共平臺(見圖2)[5].軟件采用 Arduino IDE編譯器,該編譯器具有類似 Java、C語言的開發(fā)環(huán)境,可以快速使用Arduino語言與Flash、Processing、Android等軟件完成互動作品設計.
圖1 智能車硬件平臺結(jié)構(gòu)圖
圖2 MX1508電機驅(qū)動模塊
硬件平臺的關鍵點在于對智能車電機的驅(qū)動,采用MX1508(SOP-16)四通道雙路有刷直流馬達驅(qū)動芯片.該芯片的IC電路內(nèi)部集成了兩通道的H橋驅(qū)動電路,具備從2 V到9.6 V較寬的工作電壓,最大持續(xù)輸出電流達到0.8 A,最大峰值輸出電流達到1.5 A.最大持續(xù)輸出電流達到1.5 A,最大峰值輸出電流達到2 A,能夠滿足2驅(qū)動或4驅(qū)動智能車的多個方向變速運動.
為了降低青少年學習編程技術的入門難度,平臺采用Arduino Block編程軟件和App Inventor 2編程軟件.這兩種編程軟件,都采用圖形化、模塊化編程,通過搭積木的形式實現(xiàn)軟件程序的編寫[6-7].青少年可以通過智能車創(chuàng)客教育平臺提供的學習輔導資料,快速的學習硬件控制程序開發(fā)、App應用開發(fā),將自己的創(chuàng)意變成現(xiàn)實(見圖3).
圖3 智能車創(chuàng)客教育平臺系統(tǒng)框圖
采用智能車創(chuàng)客教育平臺,通過圖形化編程軟件編寫相關的App控制界面和下位機驅(qū)動程序,在智能車平臺上實語音控制、加速度控制、按鍵控制,共3種控制模式,實現(xiàn)車燈、鳴笛、停止、前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、速度,共8種狀態(tài)的切換.
程序設計采用3位數(shù)的數(shù)據(jù)結(jié)構(gòu)進行車輛狀態(tài)控制,百位為功能狀態(tài),1為運動功能,2為速度功能,3為車輛輔助功能.個位為狀態(tài)參數(shù),在運動功能條件下,0為停止狀態(tài),1為前進狀態(tài),2為后退狀態(tài),3為左轉(zhuǎn)狀態(tài),4為右轉(zhuǎn)狀態(tài);在速度功能下,10~99是速度控制參數(shù);在車輛輔助功能下,1位車燈控制狀態(tài),2位鳴笛控制狀態(tài)(見圖4).
圖4 智能車控制平臺軟件流程圖
下位機接收到串口數(shù)據(jù)后,便通過對該數(shù)據(jù)的取模和求商獲得百位和個位的參數(shù),根據(jù)相應的功能參數(shù)和狀態(tài)參數(shù),實現(xiàn)相應的控制模式.圖5為串口數(shù)據(jù)的讀取與解析.
圖5 智能車平臺及Arduino Block串口數(shù)據(jù)數(shù)據(jù)處理流程
Arduino Block軟件采用模塊化結(jié)構(gòu),將串口數(shù)據(jù)的讀取進行模塊化,只需要設置一個Num_serial變量,便可以將串口數(shù)據(jù)讀入到變量中.通過給模擬量賦值模塊,將串口Num_serial數(shù)據(jù)對100進行除法運算,獲得百位的數(shù)字,賦值給Functio變量,作為智能車功能控制判斷依據(jù).將串口Num_serial數(shù)據(jù)對100進行求余運算,獲得后兩位數(shù)據(jù),將后兩位數(shù)據(jù)賦值給Parameter變量,作為智能車運動狀態(tài)的判讀依據(jù).
手機與智能車進行通信時,安卓程序首先要進行藍牙連接,在藍牙連接的基礎上進行后續(xù)控制.其中,姿態(tài)控制與觸摸控制及語音控制為互鎖狀態(tài)的,即一旦姿態(tài)控制起作用的時候,語音識別和觸摸控制將失效,程序流程見圖6.
圖6 智能車安卓控制程序流程圖
姿態(tài)控制根據(jù)手機獲取的X,Y,Z三坐標的值進行車輛運行狀態(tài)控制,為了減小控制誤差,將檢測數(shù)據(jù)放大10倍.當X方向數(shù)據(jù)在-20~+20之間時,為靜止狀態(tài),向串口發(fā)送100數(shù)據(jù),實現(xiàn)車輛的停止控制;當X方向數(shù)據(jù)大于20時,為左傾狀態(tài),向串口發(fā)送103數(shù)據(jù),實現(xiàn)車輛左轉(zhuǎn);當X方向數(shù)據(jù)小于-20時,為右傾狀態(tài),向串口發(fā)送104數(shù)據(jù),實現(xiàn)車輛的右轉(zhuǎn);當Y方向數(shù)據(jù)大于20時,為后仰狀態(tài),向串口發(fā)送102數(shù)據(jù),實現(xiàn)車輛的后退;當Y方向數(shù)據(jù)小于-20時,為前仰狀態(tài),向串口發(fā)送101數(shù)據(jù),實現(xiàn)車輛的前進.手機的語音識別借助第三方插件,進行語音識別,將識別的語音轉(zhuǎn)換成相關數(shù)據(jù),其中識別出來的“向前”轉(zhuǎn)換為“101”,“向后”轉(zhuǎn)換為“102”,“左轉(zhuǎn)”轉(zhuǎn)換為“103”,“右轉(zhuǎn)”轉(zhuǎn)換為“104”,然后,將相應的數(shù)據(jù)通過串口發(fā)送出去,實現(xiàn)對車輛狀態(tài)的控制.
圖7 App Inventor 2編寫界面及藍牙連接程序
采用App Inventor 2軟件編寫前臺操作界面和后臺操作程序(見圖7).通過拖動模塊及按鈕創(chuàng)建控制界面,使用程序模塊疊加實現(xiàn)控制程序的編寫.編寫藍牙連接程序時,控制界面上只需要一個“連接”按鈕,當該按鈕被點擊后,根據(jù)按鈕上顯示文本進行藍牙設備的狀態(tài)切換.當顯示為“連接”時,讓藍牙客戶端連接設備的參數(shù)地址為“選擇設備的選中項”,同時按鈕顯示字符為“斷開”;當顯示為“斷開”時點擊按鈕,調(diào)用 “藍牙客戶端斷開已連接設備”模塊,完成藍牙的斷開,同時按鈕顯示字符為“連接”.
智能車創(chuàng)客教育平臺可以作為青少年創(chuàng)客教育的綜合實訓平臺,該平臺滿足模塊化Arduino Block軟件、App Inventor 2軟件的編程教學,通過這兩種模塊化的語言學習能夠降低控制語言的難度,增強青少年學習樂趣,掌握從移動端到控制端的創(chuàng)客類編程技術.該創(chuàng)客教育平臺的軟硬件均具有開源性,能夠作為后續(xù)高級編程語言學習的平臺,價格適中,更能滿足廣泛的群體需求,進而全面普及青少年創(chuàng)客教育.
[1]葛艷紅.基于物聯(lián)網(wǎng)的教育機器人關鍵技術研究[D].武漢:武漢理工大學,2013:1.
[2]張劍平,王益.機器人教育:現(xiàn)狀、問題與推進策略[J].中國電化教育,2006(12):65-68.
[3]沈聰.基于創(chuàng)客教育理念的機器人教學模式初探[J].中國信息技術教育,2017(7):111-112.
[4]郭瀚成.淺析機器人與創(chuàng)客教育[J].中國信息技術教育,2017(2):106-108.
[5]胡洪鈞,肖順根.Arduino 教學實驗箱設計與實驗項目開發(fā)[J].新鄉(xiāng)學院學報,2017,34(3):70-73.
[6]田志穎.基于Android的移動學習軟件設計與實現(xiàn)[D].曲阜:曲阜師范大學,2016.
[7]高成英.項目教學法應用于《App Inventor程序設計》教學[J].教育,2015(29):23-27.