<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于ARM的電腦鼠走迷宮的研究

          基于ARM的電腦鼠走迷宮的研究

          作者: 時間:2011-05-20 來源:網(wǎng)絡 收藏

          2.4 傳感器模塊
          2.4.1 傳感器模塊組成
          傳感器模塊采用紅外傳感器:紅外線發(fā)射對管SIR563ST3F和IRM8601S,紅外線收發(fā)對管IR204和PD204-6B。紅外線發(fā)射管SIR563ST3F最大輻射角約為30°,工作中心頻率38 kHz;紅外線接受管IRM8601S為一體式紅外線接收頭,最佳工作波長940 nm??梢酝ㄟ^設置不同的發(fā)射頻率來實現(xiàn)用一個紅外傳感器完成遠距和近距探測的功能。紅外線發(fā)射管IR204和紅外線接收管PD204-6B工作波長均為940 nm,它們固定在兩輪內(nèi)側(cè),并在輪內(nèi)貼上黑白碼盤,碼盤隨車輪的轉(zhuǎn)動而轉(zhuǎn)動,當傳感器正對著碼盤黑色條紋時,輸出高電平,反之低電平。通過GPIO口中斷檢測電平變化,就可以計算并記錄鼠行走的距離。
          2.4.2 傳感器模塊功能
          (1)路程檢測。由安裝在兩輪內(nèi)側(cè)的紅外線收發(fā)管IR204和PD204-6B,對黑白碼盤條紋進行計數(shù),按照單元的長度為單位進行路程計數(shù),以記錄鼠在中的方位坐標,同時還可以精確地實現(xiàn)轉(zhuǎn)彎。
          (2)岔口檢測。岔口檢測由安裝在正前、左前、右前的3個紅外線發(fā)射對管SZR563ST3F和IRM8601S實現(xiàn),工作波長940 nm,實現(xiàn)遠紅外測距功能,探測前、左、右有無障礙。
          (3)姿勢修正。姿勢修正由左右2個紅外線發(fā)射對管SIR563ST3F和IRM8601S實現(xiàn),發(fā)射信號約30.5 kHz,實現(xiàn)近紅外測距功能,保持鼠在中軸線附近行走,避免撞擊。值得注意的是,在轉(zhuǎn)彎過程中不要進行姿勢修正,這樣有可能導致轉(zhuǎn)彎的角度出現(xiàn)偏差,即電腦鼠只是在前進的過程中才進行姿勢修正。
          2.5 電機控制模塊
          電機控制模塊主要負責控制電腦鼠的運動,包括電機和電機驅(qū)動電路兩部分。電機為兩個兩相四線制步進電機,工作電壓為7.4 V。電機驅(qū)動芯片采用BA6845FS,每個芯片包含2個H橋,它的最大驅(qū)動電流為1 A,且在輸入邏輯的控制下輸出有3種模式:正向、反向和停止。

          3 電腦鼠軟件與實現(xiàn)
          電腦鼠的軟件部分主要用來檢測迷宮環(huán)境,傳送控制信號給相應的硬件模塊,對在迷宮中行走的電腦鼠進行制導與導航。其主要由迷宮搜索主程序和其他實現(xiàn)各種功能的子程序組成,主程序主要起到搜索探測迷宮和決策功能,而其他各種功能則是通過調(diào)用其相應子程序來實現(xiàn)的,搜索流程如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/162073.htm

          b.jpg



          關(guān)鍵詞: 研究 迷宮 電腦 ARM 基于

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();