梁佩
EV3機(jī)器人在使用過(guò)程中時(shí)常會(huì)出現(xiàn)死機(jī)的情況,讓人措手不及。為什么機(jī)器人會(huì)死機(jī)?應(yīng)采取怎樣的措施應(yīng)對(duì)?
通過(guò)研究與分析,再結(jié)合個(gè)人經(jīng)驗(yàn),我將EV3機(jī)器人死機(jī)的情況分為機(jī)器人無(wú)法運(yùn)行、機(jī)器人在運(yùn)行過(guò)程中停止以及在下載程序時(shí)死機(jī)三大情況,分別分析了機(jī)器人在不同情況下出現(xiàn)死機(jī)的原因,并提出解決方案。
一、機(jī)器人無(wú)法運(yùn)行
第一步:檢查各個(gè)馬達(dá)是否被零件或其他物體卡死。若是,則取出物體;若否,則進(jìn)行第二步。
第二步:檢查連接主機(jī)與各個(gè)馬達(dá)、傳感器、陀螺儀的數(shù)據(jù)線是否松動(dòng)、老化或接觸不良。若是,則更換數(shù)據(jù)線;若否,則進(jìn)行第三步。
原因:在復(fù)雜的打包程序中,常常設(shè)有陀螺儀、傳感器、馬達(dá)的檢測(cè)與復(fù)位指令,如果機(jī)器人運(yùn)行前沒(méi)有檢測(cè)到它們,就不會(huì)繼續(xù)運(yùn)行。所以,即使機(jī)器人的啟動(dòng)與陀螺儀或傳感器無(wú)關(guān),數(shù)據(jù)線的松動(dòng)、老化或接觸不良導(dǎo)致其與機(jī)器人斷開連接,機(jī)器人也無(wú)法啟動(dòng)。
第三步:檢查程序是否錯(cuò)誤。若是,則修改程序;若否,則進(jìn)行第四步。
第四步:檢查主機(jī)、馬達(dá)、陀螺儀、傳感器等硬件是否損壞。
二、機(jī)器人在運(yùn)行過(guò)程中停止
機(jī)器人在運(yùn)行過(guò)程中突然停止的情況,往往是由A、D馬達(dá)(中型馬達(dá))死機(jī)引起的。若是B、C馬達(dá)(大型馬達(dá))出現(xiàn)故障,機(jī)器人會(huì)出現(xiàn)亂運(yùn)行的現(xiàn)象。這種情況往往是數(shù)據(jù)線松動(dòng)引起的。
以下分析均建立在B、C馬達(dá)(大型馬達(dá))無(wú)故障的情況下(圖1中標(biāo)注的是A、D馬達(dá),即中型馬達(dá))。
第一步:拆除主機(jī)上的策略物并使主機(jī)離開地面。
若馬達(dá)可繼續(xù)運(yùn)行,那么機(jī)器人停止的原因很可能是A、D馬達(dá)沒(méi)有完成程序中的指定度數(shù)或圈數(shù),機(jī)器人無(wú)法執(zhí)行后面的程序而導(dǎo)致死機(jī)。
這種情況出現(xiàn)的本質(zhì)原因與A、D馬達(dá)的初始位置有關(guān)。當(dāng)A、D馬達(dá)上策略物初始位置的角度比程序中指定的角度大時(shí),A、D馬達(dá)無(wú)法到位,此時(shí)機(jī)器人不會(huì)死機(jī),但無(wú)法完成指定任務(wù)。A、D馬達(dá)上策略物初始位置的角度比程序指定的角度小時(shí),A、D馬達(dá)因沒(méi)有轉(zhuǎn)完指定的角度就會(huì)卡死。
例如程序中A、D馬達(dá)應(yīng)完成的角度(圈數(shù))為180°(0.5圈),如果A、D馬達(dá)上策略物的初始位置與賽臺(tái)水平面的角度為190°,機(jī)器人運(yùn)行到此段程序時(shí)不會(huì)卡死,但無(wú)法完成指定任務(wù);如果A、D馬達(dá)上的策略物的初始位置與賽臺(tái)水平面的角度為170°時(shí),機(jī)器人運(yùn)行到此段程序時(shí)就會(huì)卡死,無(wú)法完成后面的程序。此時(shí)的解決方案有以下三種。
1.在主機(jī)上制作一個(gè)裝置,以保證A、D馬達(dá)的初始位置每次都在同一位置。這個(gè)方法能很大程度上保證A、D馬達(dá)不會(huì)卡死。但也有可能是人為原因?qū)е乱欢ǖ氖÷省?/p>
2.將程序中A、D馬達(dá)的指令由度數(shù)或圈數(shù)改為時(shí)間(如圖2)。這樣無(wú)論A、D馬達(dá)的初始位置如何,只要時(shí)間一到,A、D馬達(dá)立即停止,機(jī)器人則繼續(xù)運(yùn)行。當(dāng)然,為了保證任務(wù)能夠完成,A、D馬達(dá)的運(yùn)行時(shí)間應(yīng)比剛好能完成的時(shí)間長(zhǎng)0.3 s 至0.5s。這種方法偶爾也會(huì)導(dǎo)致機(jī)器人突然死機(jī)。
3.將程序中的中型電機(jī)模塊替換為未校準(zhǔn)電機(jī)(如圖3),未校準(zhǔn)電機(jī)中的功率為A、D馬達(dá)的運(yùn)行功率,等待模塊的時(shí)間是A、D馬達(dá)運(yùn)行的時(shí)間。這種方案比第二種更穩(wěn)定,幾乎能完全保證A、D馬達(dá)在運(yùn)行過(guò)程中不會(huì)卡死。
若馬達(dá)不能繼續(xù)運(yùn)行,則進(jìn)行第二步。
第二步:檢查程序是否錯(cuò)誤。若是,則修改程序;若否,則進(jìn)行第三步。
第三步:常見的程序錯(cuò)誤有如下兩種。
1.程序中插入了不應(yīng)有的等待模塊。
2.程序模塊之間的序列線連接錯(cuò)誤。
三、下載程序時(shí)死機(jī)
主機(jī)完全死機(jī),程序塊按鈕無(wú)法控制主機(jī)時(shí),解決方法有如下三種。
1.若下載固件時(shí)發(fā)生死機(jī)。
①連接EV3主機(jī)與計(jì)算機(jī)間的USB線。
②同時(shí)按下EV3主機(jī)左上方的取消鍵、輸入鍵以及向右鍵。
③當(dāng)EV3主機(jī)重新啟動(dòng)后,先放開取消鍵。
④當(dāng)EV3主機(jī)屏幕顯示“Updating”時(shí),放開其他兩個(gè)按鍵。
⑤點(diǎn)擊計(jì)算機(jī)EV3軟件的Firmware Download。
2.若是一般狀況下死機(jī),無(wú)法操作按鍵(這種方式不會(huì)刪除EV3主機(jī)內(nèi)的檔案)。
①先確認(rèn)EV3主機(jī)是開機(jī)狀態(tài)。
②同時(shí)按住EV3主機(jī)左上方的取消鍵、輸入鍵以及向左鍵。
③待EV3主機(jī)屏幕無(wú)顯示時(shí),先放開取消鍵。
④當(dāng)EV3主機(jī)屏幕顯示“Starting”時(shí),放開其他兩個(gè)按鍵。
3.直接拔出電池強(qiáng)行關(guān)機(jī),重新開機(jī)。這種方法雖然簡(jiǎn)單直接,但由于主機(jī)的設(shè)計(jì)不同,拆除某些主機(jī)電板十分麻煩,而且強(qiáng)行拆除電板會(huì)使主機(jī)內(nèi)的程序被清空。
在以上方案中,分析的大部分是常規(guī)的情況,仍有許多問(wèn)題未被發(fā)掘??傊?,應(yīng)對(duì)諸如此類的突發(fā)狀況時(shí),應(yīng)保持清醒的邏輯思維,逐一排查,直到找到真正的原因,切忌條理不清、邏輯混亂。(指導(dǎo)老師:諶躍飛)endprint
發(fā)明與創(chuàng)新·中學(xué)生2017年12期