<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 以ARM為核心的嵌入式體感遙控器設計

以ARM為核心的嵌入式體感遙控器設計

作者: 時(shí)間:2013-07-22 來(lái)源:網(wǎng)絡(luò ) 收藏

3 軟件系統設計
的軟件系統設計基于實(shí)時(shí)嵌入式操作系統;,借助于;內核的多任務(wù)管理和優(yōu)秀的實(shí)時(shí)性能,大大簡(jiǎn)化了軟件系統設計,并且可以保證系統響應的實(shí)時(shí)性。
3.1 任務(wù)分配與實(shí)現
在任務(wù)規劃的過(guò)程中,采用分層次和模塊化的思想將整個(gè)系統任務(wù)進(jìn)行劃分。首先,我們必須對系統整體的控制任務(wù)有清楚地了解,具體任務(wù)劃分如表1所列。

本文引用地址:http://dyxdggzs.com/article/147997.htm

d.JPG


表1中除OSTaskStat和OSTaskIdle任務(wù)為系統自帶,其他8個(gè)任務(wù)均為用戶(hù)創(chuàng )建。其中:App_TaskStart為起始任務(wù),系統運行后第一個(gè)建立的任務(wù),其作用是為初始化系統時(shí)鐘和底層設備創(chuàng )建所有事件和其他任務(wù);App_TaskAD任務(wù)監視電池電壓的變化,當電壓低于設定值Low Battery時(shí),將啟動(dòng)蜂鳴器報警;App_TaskAHRS任務(wù)通過(guò)DMA不斷接收iNEMO慣性導航模塊數據,然后交由USART1接收緩沖區,實(shí)時(shí)獲得手部姿態(tài)信息;App_TaskCmd根據手部姿態(tài)信息轉化為機器人運動(dòng)指令,然后按照制定的通信協(xié)議通過(guò)nRF24L01無(wú)線(xiàn)模塊將指令數據包發(fā)送出去;App_TaskData任務(wù)在每發(fā)送一次指令數據包后,通過(guò)nRF24L01無(wú)線(xiàn)模塊接收機器人本體回傳的運動(dòng)狀態(tài)信息包;App_TaskLCD任務(wù)實(shí)現運動(dòng)指令、機器人運動(dòng)狀態(tài)、電池電量、實(shí)時(shí)時(shí)鐘在12864液晶顯示模塊上的顯示;App_TaskLED_B任務(wù)通過(guò)LED指示遙控器上的主控芯片與iNEMO慣性導航模塊、遙控器與機器人是否通信正常,當電池電量過(guò)低時(shí),通過(guò)蜂鳴器進(jìn)行報警;App_TaskClock任務(wù)得到DS1302的實(shí)時(shí)時(shí)鐘,通過(guò)消息郵箱App_LCDClockMbox發(fā)送給App_TaskLCD任務(wù)予以實(shí)時(shí)顯示。
3.2 任務(wù)間通信設計
任務(wù)和中斷服務(wù)子程序可以通過(guò)事件控制塊與其他任務(wù)進(jìn)行通信,常用的通信方式有信號量、郵箱和消息隊列,同時(shí),通過(guò)事件標志實(shí)現任務(wù)與事件之間的同步。本操作系統共創(chuàng )建了8個(gè)消息郵箱和1個(gè)事件標志:
OS_EVENT *App_AHRSMbox
OS_EVENT *App_CommandMbox
OS_EVENT *App_DataMbox
OS_EVENT *App_ADMbox
OS_EVENT *App_LCDCmdMbox
OS_EVENT *App_LCDDataMbox
OS_EVENT *App_LCDADMbox
OS_EVENT *App_LCDClockMbox
OS_FLAG_GRP *App_GreenLEDFlag
其中,App_GreenLEDFlag包括3個(gè)標志位:
#define Flg_GreenLED 0x0001
#define Flg-BlueLED 0x0002
#define Flg_Buzzer 0x0004
3.3 軟件系統流程圖設計
軟件系統流程圖如圖4所示。經(jīng)上電初始化后,首先采集電池電壓,然后通過(guò)郵箱*App_ADMbox將采集得到的電量值發(fā)送給12864液晶顯示模塊進(jìn)行顯示,若電量過(guò)低,則使標志位Flg_Buzzer置位,即通過(guò)蜂鳴器進(jìn)行報警。并且,通過(guò)DMA把iNEMO慣性導航模塊的數據接收到USART1,判斷校驗位是否正確,若不正確則重新配置DMA,重新接收數據;若正確則將接收到的數據轉化為控制指令,通過(guò)nRF24L01無(wú)線(xiàn)模塊發(fā)送給機器人。同時(shí)通過(guò)郵箱*App-LCDCmdMbox將指令發(fā)送給App_TaskLCD任務(wù),在12864液晶顯示模塊顯示當前發(fā)送的指令,并通過(guò)置位Flg_GreenLED點(diǎn)亮相應LED,以表示STM32F103C8T6與iNEMO模塊通信正常;機器人本體接收到指令后,會(huì )給遙控器返回數據包,如果遙控器接收的數據錯誤標志位沒(méi)有置位,則說(shuō)明遙控器與機器人本體通信正常,通過(guò)郵箱*App_LCDDataMbox將機器人的狀態(tài)信息發(fā)送給App_Tas kLCD任務(wù),在12864液晶顯示模塊上顯示機器人本體運動(dòng)狀態(tài),同時(shí)通過(guò)置位Flg_BlueLED點(diǎn)亮相應LED,以表示遙控器與機器人本體通信正常。App_TaskClock任務(wù)通過(guò)郵箱*App_LCDClockMbox向App_TaskLCD任務(wù)發(fā)送當前時(shí)間信息,并予以顯示。

f.JPG


軟件系統開(kāi)發(fā)環(huán)境為IAR EW5.4,;版本為V2.86,STM32F103C8T6的調試工具為J-Link仿真器,STM32F103C8T6的固件庫版本為V2.0.3。
3.4 遙控器與機器人本體通信方案設計
本設計采用嚴格的“一問(wèn)一答”形式,即每發(fā)送一條指令都需要機器人本體返回一幀數據包。遙控器發(fā)送一條指令后,等待機器人本體返回的數據包,只有獲得機器人本體返回的數據包后才可以繼續發(fā)送指令包。如果機器人本體接收到錯誤指令(經(jīng)校驗錯誤的指令),置位通信錯誤標志位,上傳數據包;同時(shí),機器人本體報警,將機器人速度置0,接下來(lái)1 s內下位機清除串口DMA,重新接收指令。如果遙控器收到的數據包中通信錯誤標志位置位,則重新配置nRF24L01無(wú)線(xiàn)模塊,重新發(fā)送指令。

4 性能測試
對本文所描述的嵌入式機器人體感遙控器進(jìn)行了相應的測試,測試環(huán)境分別為室內走廊環(huán)境和室外環(huán)境,測試結果如表2所列。測試結果表明,在室內走廊環(huán)境中,收發(fā)指令的正確率在95%以上;在室外環(huán)境中,由于環(huán)境中可能存在多種干擾,并且距離在20~30 m,正確率在90%以上。由于遙控器底層軟件具備一定容錯能力,90%以上的正確率完全滿(mǎn)足要求。

g.JPG



結語(yǔ)
本文討論了基于STM32F103C8T6的嵌入式體感遙控器的設計與實(shí)現,并對具體的硬件電路和軟件系統進(jìn)行了詳細的介紹。經(jīng)過(guò)大量的實(shí)驗證明,本體感遙控器具有操作簡(jiǎn)便、可操作性強、通信可靠、穩定性和人性化程度高等優(yōu)點(diǎn),在實(shí)驗室的實(shí)際應用中取得了良好的效果。

紅外遙控器相關(guān)文章:紅外遙控器原理
蜂鳴器相關(guān)文章:蜂鳴器原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>