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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 新型多功能智能小車的設計與應用

          新型多功能智能小車的設計與應用

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

          2.2 編程思想及核心算法的實現(xiàn)
          2.2.1 PWM方波的產生
          采用內部定時器方式來產生占空比可調的PWM方波信號。
          2.2.2 拐彎的實現(xiàn)
          如圖7所示,左1黑白線傳感器碰到黑線時,向左拐,并鎖住拐彎狀態(tài)等到左2黑白線傳感器碰到黑線,左2黑白線傳感器碰到黑線時,向左拐。右1,右2碰到黑線的處理與左1,左2碰到黑線的處理一樣。其他狀態(tài)小車直走(除特殊情況如起跑線與終點)。

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

          f.JPG


          2.2. 3 小車行駛路程的計算
          小車的行駛的路程是用霍爾傳感器來計算的。由于黑線位于兩個輪子之間,設左輪走過的路程為S1,右輪走過的路程為S2,故實際距離應為(S1+S2)/2。
          2.2.4 小車軌跡的繪制
          小車的軌跡是由一段段射線構成的。小車每走一段距離L,就在屏幕上畫一條線段,線段長度為4個像素。畫射線的算法:
          橫坐標: x=Lcosθ
          縱坐標: y=Lsinθ
          通過描點函數(shù)一點點描出來。由于單片機沒有計算sinθ,cosθ的函數(shù),所以本組采用查表法。

          3 系統(tǒng)性能測試方法與結果
          3.1 測試步驟
          (1)根據(jù)要求做出完整軌跡,總長度為3.8 m,接著分別在直道、彎道放置4個鐵片,其距離起點依次為30 cm,140 cm,210 cm,270 cm,觀察小車能否尋跡,檢測到金屬片時能否停下5 s,顯示并給出提示。
          (2)將小車放置起點處,啟動小車,手中秒表開始計時,到終點時停止計時,看數(shù)碼管顯示。
          (3)重復步驟(1),步驟(2)四次。
          3.2 性能指標測試數(shù)據(jù)
          性能指標測試數(shù)據(jù)如表2所示。

          g.JPG


          經(jīng)測量小車履帶車輪的半徑為24 mm,經(jīng)計算的周長為150.72 mm,測試跑道的長度為380 cm,經(jīng)過測試每次行駛的時間誤差很小,性能指標良好。

          4 結語
          經(jīng)性能指標測試實驗,該系統(tǒng)通過調節(jié)PWM輸出可實現(xiàn)控制小車的前進、后退、轉向、加速、減速等動作;結果表明,該方案科學合理,可精準地完成小車沿黑色引導線的尋跡(斷開引導線亦可)、檢測鐵片個數(shù)、實時LCD顯示行駛距離、時間和行車軌跡等功能,精度較高。

          霍爾傳感器相關文章:霍爾傳感器工作原理


          霍爾傳感器相關文章:霍爾傳感器原理

          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

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