<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-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.2 電源模塊電路

  本遙控器采用8.4 V鋰電池供電,采用TL750M05C穩壓芯片提供5 V電壓,選用REG1117-3.3穩壓芯片為系統提供3.3 V電壓。STM32F1 03C8T6電源分為模擬電源與數字電源,為了保證其正常工作,將兩路電源進(jìn)行隔離設計,在模擬地與數字地之間通過(guò)0Ω電阻實(shí)現單點(diǎn)共地。為監測鋰電池電源電壓,將電池電壓經(jīng)電阻分壓及阻容濾波電路濾波后作為采樣輸入。

  2.3 無(wú)線(xiàn)通信模塊及顯示模塊電路

  無(wú)線(xiàn)通信模塊采用2.4 GHz頻段射頻芯片nRF24L01作為無(wú)線(xiàn)數據收發(fā)芯片,工作于2.4~2.5GHz ISM頻段,輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。nRF24L01功耗低,在以-6 dBm的功率發(fā)射時(shí),工作電流只有9 mA;接收時(shí),工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。nRF24L01采用SPI總線(xiàn)方式與控制芯片進(jìn)行通信。

  12864液晶顯示模塊,可顯示漢字及圖形,內置8192個(gè)中文漢字(16×1 6點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM),具有并行數據傳送方式和串行數據傳送方式,其中串行數據傳輸方式只用到CS、SID、SCK 3個(gè)通信引腳,較并行數據傳送方式節省單片機的I/O引腳,本文采用串行傳輸方式進(jìn)行設計。

  3 軟件系統設計

  的軟件系統設計基于實(shí)時(shí)嵌入式操作系統mu;C/OS-II,借助于mu ;C/OS-II內核的多任務(wù)管理和優(yōu)秀的實(shí)時(shí)性能,大大簡(jiǎn)化了軟件系統設計,并且可以保證系統響應的實(shí)時(shí)性。

  3.1 任務(wù)分配與實(shí)現

  在任務(wù)規劃的過(guò)程中,采用分層次和模塊化的思想將整個(gè)系統任務(wù)進(jìn)行劃分。首先,我們必須對系統整體的控制任務(wù)有清楚地了解,具體任務(wù)劃分如表1所列。

  
  表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

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


關(guān)鍵詞: ARM 體感遙控器 STM32F103C8T6

評論


相關(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>