以ARM為核心的嵌入式體感遙控器的設(shè)計方案
3.3 軟件系統(tǒng)流程圖設(shè)計
軟件系統(tǒng)流程圖如圖4所示。體感遙控器經(jīng)上電初始化后,首先采集電池電壓,然后通過郵箱*App_ADMbox將采集得到的電量值發(fā)送給12864液晶顯示模塊進行顯示,若電量過低,則使標志位Flg_Buzzer置位,即通過蜂鳴器進行報警。并且,通過DMA把iNEMO慣性導(dǎo)航模塊的數(shù)據(jù)接收到USART1,判斷校驗位是否正確,若不正確則重新配置DMA,重新接收數(shù)據(jù);若正確則將接收到的數(shù)據(jù)轉(zhuǎn)化為控制指令,通過nRF24L01無線模塊發(fā)送給機器人。同時通過郵箱*App-LCDCmdMbox將指令發(fā)送給App_TaskLCD任務(wù),在12864液晶顯示模塊顯示當前發(fā)送的指令,并通過置位Flg_GreenLED點亮相應(yīng)LED,以表示STM32F103C8T6與iNEMO模塊通信正常;機器人本體接收到指令后,會給遙控器返回數(shù)據(jù)包,如果遙控器接收的數(shù)據(jù)錯誤標志位沒有置位,則說明遙控器與機器人本體通信正常,通過郵箱*App_LCDDataMbox將機器人的狀態(tài)信息發(fā)送給App_Tas kLCD任務(wù),在12864液晶顯示模塊上顯示機器人本體運動狀態(tài),同時通過置位Flg_BlueLED點亮相應(yīng)LED,以表示遙控器與機器人本體通信正常。App_TaskClock任務(wù)通過郵箱*App_LCDClockMbox向App_TaskLCD任務(wù)發(fā)送當前時間信息,并予以顯示。
體感遙控器 軟件系統(tǒng)開發(fā)環(huán)境為IAR EWARM5.4,mu ;C/OS-II版本為V2.86,STM32F103C8T6的調(diào)試工具為J-Link仿真器,STM32F103C8T6的固件庫版本為V2.0.3.
3.4 遙控器與機器人本體通信方案設(shè)計
本設(shè)計采用嚴格的“一問一答”形式,即每發(fā)送一條指令都需要機器人本體返回一幀數(shù)據(jù)包。遙控器發(fā)送一條指令后,等待機器人本體返回的數(shù)據(jù)包,只有獲得機器人本體返回的數(shù)據(jù)包后才可以繼續(xù)發(fā)送指令包。如果機器人本體接收到錯誤指令(經(jīng)校驗錯誤的指令),置位通信錯誤標志位,上傳數(shù)據(jù)包;同時,機器人本體報警,將機器人速度置0,接下來1 s內(nèi)下位機清除串口DMA,重新接收指令。如果遙控器收到的數(shù)據(jù)包中通信錯誤標志位置位,則重新配置nRF24L01無線模塊,重新發(fā)送指令。
4 性能測試
對本文所描述的嵌入式機器人體感遙控器進行了相應(yīng)的測試,測試環(huán)境分別為室內(nèi)走廊環(huán)境和室外環(huán)境,測試結(jié)果如表2所列。測試結(jié)果表明,在室內(nèi)走廊環(huán)境中,收發(fā)指令的正確率在95%以上;在室外環(huán)境中,由于環(huán)境中可能存在多種干擾,并且距離在20~30 m,正確率在90%以上。由于遙控器底層軟件具備一定容錯能力,90%以上的正確率完全滿足要求。
結(jié)語
本文討論了基于STM32F103C8T6的嵌入式服務(wù)機器人體感遙控器的設(shè)計方案,該方案對具體的硬件電路和軟件系統(tǒng)進行了詳細的介紹。經(jīng)過大量的實例證明,本體感遙控器具有操作簡便、可操作性強、通信可靠、穩(wěn)定性和人性化程度高等優(yōu)點,在實驗室服務(wù)機器人的實際應(yīng)用中取得了良好的效果。
紅外遙控器相關(guān)文章:紅外遙控器原理
評論