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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于LM3S811的智能避障小車

          基于LM3S811的智能避障小車

          作者:楊汝軍時間:2013-02-20來源:電子產品世界收藏

            硬件電路的設計

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

            小車所能實現的功能:主動識別障礙物,并對障礙物自動做出反應,實現自動避障功能。整個系統大致分為以下五個主要部分:電源模塊、微控制器單元模塊、電機控制模塊、傳感器模塊、機身模塊。以下就各部分進行詳細的說明。

            電源模塊

            本系統選擇了8.2V的直流電壓源為整個系統進行供電,電機部分需要7~12V的直流電源,采用電壓源直接為其控制驅動芯片來供電,傳感器模塊需要5V的直流電源,采用SPX1117M3_5V的穩壓芯片來輸出恒定的5V電壓,微控制器模塊需要3.3V的直流電源,我采用SPX1117_M3_3.3V的穩壓芯片來為其提供恒定的電壓源。

            微控制器模塊

            整個系統的控制單元采用(與LM3S615全兼容)。是32位的基于Cortex_M3 V7M架構的微控制器;具有32KB的Flash和8KB的SRAM;可以達到50MHz的工作頻率;集成了嵌套向量中斷控制器(NVIC)以提供明確的中斷處理,有29個中斷,帶8個優先級;具有豐富的外設資源,多達3個通用定時器,2個UART、1個SSI、ADC、I2C、3個PWM發生器模塊,多達34個通用GPIO。本系統主要使用到的部分是JTAG口下載和調試測序,PWM模塊以驅動紅外線傳感器,GPIO口以驅動步進電機,ADC模塊檢測電池電壓。

            電機控制模塊

            電機控制模塊主要負責控制的運動,包括電機和電機驅動電路兩部分。電機為兩個兩相四線制步進電機,工作電壓為8.2V。電機驅動芯片采用BA6845FS,每個芯片包含2個H橋,它的最大驅動電流為1A,且在輸入邏輯的控制下輸出有3種模式:正向、反向和停止。

            傳感器模塊

            傳感器單元選用IRM-8601S紅外線一體化接收頭;普通紅外線發射管。紅外發射管SIR563ST3F具有以下特性:最大輻射角約為30°,工作中心頻率38kHz,940nm波長,PWM調制。紅外線接受管IRM8601S為一體式紅外線接收頭,其最佳工作波長為940nm,視角45?,38kHz帶通濾波。使用PWM模塊產生38kHz的紅外調制信號經紅外發射管發出,當一體化接收頭接收到38kHz的紅外發射信號時將產生低電平,否則為高電平。采集接收端的信號狀態來判斷是否有墻壁。

            機身模塊

            結合的外型尺寸、迷宮格的大小以及電腦鼠走迷宮競賽的比賽要求,我們對電腦鼠機身進行了設計,并交由工廠加工制作。

            底層算法的研究

            搜集查閱相關資料,對各部分功能進行需求分析,制作程序流程圖,對各部分代碼進行編寫。

            傳感器驅動

            通過調節電位器阻值的大小,改變有效發射信號強度,當接收頭剛好能接收到信號時,記錄下此時發射的強度,這樣也就可以大致測算出距離。讓五個發射頭輪流發射38kHz及35kHz的調制信號,改變有效發射信號的強度,從而能夠粗略判斷障礙物的遠近距離,指示出有沒有障礙物。



          評論


          相關推薦

          技術專區

          關閉
          看屁屁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); })();