• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      K64和MQXLite的直立智能循跡小車設計

      2018-04-11 09:14:02,,
      關鍵詞:微控制器控制算法編碼器

      ,,

      (蘇州大學 計算機科學與技術學院,蘇州215006)

      引 言

      隨著現(xiàn)代計算機、電子、自動化等技術的發(fā)展,越來越多的智能設備進入人們的生活。智能汽車作為近些年來的研究熱點,其無人駕駛技術具有良好的應用前景。而直立智能車由于具有靈活、占地面積小等特點,在擁擠的地方有較大用途。

      小車設計遵循第十二屆全國大學生智能汽車競賽技術規(guī)范,使用E型車模作為基礎機械結構,完成硬件電路設計,并基于實時操作系統(tǒng)MQXLite設計了控制算法,實現(xiàn)小車直立行駛,自動循跡功能。

      1 系統(tǒng)硬件設計

      系統(tǒng)硬件架構圖如圖1所示,小車硬件系統(tǒng)由輸入部分、微控制器、輸出部分和供電模塊組成。輸入部分的陀螺儀和加速度傳感器、編碼器、攝像頭作為信息采集設備,實時采集小車狀態(tài)信息,經(jīng)微控制器處理后,微控制器輸出PWM波至電機驅動模塊,控制電機轉速,實現(xiàn)自動循跡。而迷你鍵盤和OLED顯示屏作為人機交互設備,方便調(diào)試和獲取信息。

      圖1 系統(tǒng)硬件架構圖

      1.1 微控制器

      微控制器選用恩智浦半導體公司生產(chǎn)的MK64FX512VLL12(K64),其特點為高性能,主頻可達120 MHz,且有FTM、ADC、SPI、I2C、UART等豐富接口。作為智能車的核心控制模塊,微控制器需要獲取各傳感器的輸入信息,轉換為可處理的數(shù)字量,并由控制算法計算出PWM占空比,輸出PWM波至電機驅動模塊。一款高性能的微控制器可以快速完成控制任務,使系統(tǒng)更加穩(wěn)定。

      1.2 供電模塊

      小車使用7.2 V、2 000 mAh的鎳鎘電池供電,而陀螺儀、加速度傳感器、攝像頭的工作電壓為3.3 V,編碼器的工作電壓為5 V,因此需要設計降壓電路,獲得各設備的工作電壓。

      TPS系列低壓差線性穩(wěn)壓芯片的工作壓降較低,靜態(tài)工作電流較小,且具有過載保護功能[1]。利用TPS7333和TPS7350兩款芯片,完成了電路設計,具有較高的穩(wěn)定性。其中,TPS7350電路原理圖如圖2所示,TPS7333電路原理圖與其類似。

      圖2 TPS7350電路原理圖

      1.3 輸入部分

      輸入部分包含陀螺儀和加速度傳感器、編碼器、攝像頭和迷你鍵盤。它們?yōu)檎麄€系統(tǒng)采集信息,是一切控制的基礎。

      我們選用的陀螺儀型號為ENC-03,加速度傳感器型號為MMA7361,它們集成在一個模塊上,通過兩個ADC接口與微控制器連接,將采集到的角速度和加速度模擬量傳輸至微控制器處理。

      對于編碼器,選用了歐姆龍公司生產(chǎn)的500線編碼器,通過齒輪與電機連接,這樣電機旋轉時,編碼器便會產(chǎn)生脈沖,脈沖數(shù)與電機轉速成正比。K64的FTM模塊有正交解碼功能,可以利用該模塊捕獲編碼器脈沖。

      OV7725是由Omnivision公司生產(chǎn)的圖像感光器件,與OV7620、OV7670這些型號相比,OV7725信噪比更高、速度更快、穩(wěn)定性更好、微光靈敏度更高[2]。我們選用的鷹眼攝像頭既使用了OV7725芯片,又設計了硬件二值化電路,可直接將攝像頭采集到的二值化圖像傳輸至微控制器。

      迷你鍵盤為人機交互設備的一部分,它是一個4×4的矩陣鍵盤,可以自定義按鍵功能,完成參數(shù)的錄入與修改。

      1.4 輸出部分

      輸出部分包含電機驅動模塊和OLED顯示屏。

      在設計電機驅動模塊時,我們使用兩片IR2104S芯片和4個MOSFET組成全橋驅動電路,利用MOSFET的通斷來控制兩個電機的轉動方向與轉速。其中,IR2104S芯片為IR公司生產(chǎn)的半橋驅動芯片。

      OLED顯示屏為人機交互設備的另一部分,其分辨率為128×64,可以顯示攝像頭拍攝的圖像、采集到的數(shù)據(jù)等,方便調(diào)試。

      2 控制算法設計

      直立小車運動控制任務可以分解成以下三個基本任務[3]:

      ① 直立控制。根據(jù)小車當前的角度和角速度,控制電機正反轉,使小車保持平衡。

      ② 速度控制。根據(jù)小車當前的速度,調(diào)整小車傾角,使小車按設定速度行駛。

      ③ 方向控制。根據(jù)攝像頭采集到的圖像,計算離中心線的偏離程度,控制兩個電機之間的轉動差速,使小車轉向。

      這三個控制會分別輸出對電機轉向和轉速的控制量,通過線性疊加,得到PWM占空比,最終輸出PWM波至電機驅動模塊。

      2.1 直立控制

      可以將直立小車看成一個倒立的單擺,當它往一個方向傾倒時,在它的底部提供一個同向的加速度,便可以使它回到平衡位置,如圖3所示。

      圖3 直立控制原理

      加速度傳感器采集到小車加速度a后,由下式可以得到小車當前角度θ1:

      (1)

      其中,g為重力加速度單位。另外,將陀螺儀采集到的角速度ω積分,可以得到角度θ2。通過卡爾曼濾波,可以將θ1和θ2融合為變化平滑的角度θ。

      利用PD控制,得到直立控制的控制量Ca:

      Ca=Kpa×(θ-θ0)+Kda×ω

      (2)

      其中,Kpa為直立控制比例系數(shù),Kda為直立控制微分系數(shù),θ0為小車平衡時的角度。Kpa和Kda均需通過實驗得到。

      2.2 速度控制

      為了使系統(tǒng)更加穩(wěn)定,我們希望小車勻速行駛。完成直立控制后,若想讓小車加速,則僅需使其前傾。通過不斷調(diào)整傾角,便可以使其按設定速度行駛。

      利用編碼器獲得左右輪的速度后,先由式(3)得到速度差值ve:

      (3)

      其中,vl為左輪速度,vr為右輪速度,v0為設定速度。再將ve積分,得到總的距離偏差d。最后利用PI控制,由式(4)得到速度控制的控制量Cs:

      Cs=Kps×ve+Kis×d

      (4)

      其中,Kps為速度控制比例系數(shù),Kis為速度控制積分系數(shù),它們均需通過實驗得到。這樣,當小車速度低于設定速度時,Cs為負,小車前傾,而直立控制為了使小車保持平衡,便會給小車一個向前的加速度,使小車加速。

      2.3 方向控制

      為了使小車能夠沿指定道路行駛,還需要進行方向控制,根據(jù)道路情況及時調(diào)整小車的前進方向。

      圖4 中線提取效果

      中線提取效果如圖4所示,在攝像頭采集到的二值化圖像上,道路中間為白色,邊緣為黑色。使用中線提取算法,找出圖像上每行的左右邊線,進而求出道路中心線的位置。對每行中點位置進行加權平均,得到表示小車位置的量,用這個量減去小車目標位置,得到小車離中心線的偏離度me。再計算me的微分量Δme,Δme表示小車方向的變化率。利用PD控制,由式(5)得到方向控制的控制量Ct:

      Ct=Kpt×me+Kdt×Δme

      (5)

      其中,Kpt為方向控制比例系數(shù),Kdt為方向控制微分系數(shù),它們均需通過實驗得到。當小車在道路左側時,拍攝到的圖像向右移動,me為正,因而Ct為正。線性疊加控制量時,左輪加Ct,而右輪減Ct,這樣,小車會向右轉向,恢復至道路中心位置。

      2.4 控制融合

      在完成了直立、速度和方向控制后,線性疊加Ca、Cs和Ct,為了使小車能夠轉向,在疊加Ct時,左輪加Ct,而右輪減Ct。線性疊加的結果即為PWM占空比,根據(jù)這個占空比,微控制器輸出PWM波至電機驅動模塊,控制小車行駛。

      3 基于MQXLite的軟件設計

      為了使系統(tǒng)獲得更好的實時性和穩(wěn)定性,我們使用了實時操作系統(tǒng)MQXLite。與無操作系統(tǒng)時不同,操作系統(tǒng)下的編程是以任務為單位的,每一個任務完成一個特定功能,各個任務之間相互獨立。編寫完各個任務后,交由操作系統(tǒng)調(diào)度運行,降低了程序設計的難度。

      3.1 MQXLite簡介

      MQXLite是標準MQX(Message Queue eXecutive)嵌入式實時操作系統(tǒng)的輕量級版本,它支持多任務、優(yōu)先級調(diào)度、同步訪問資源、任務間通信、中斷處理,具有實時性高、內(nèi)核精簡、資源占用低等特點[4]。

      3.2 任務劃分

      MQXLite中,任務的基本形式按其執(zhí)行方式分為單次執(zhí)行任務、周期執(zhí)行任務,以及資源驅動任務[5]。

      單次執(zhí)行任務在創(chuàng)建后,只執(zhí)行一次,之后便被銷毀或阻塞;周期執(zhí)行任務按照一定周期執(zhí)行一次;資源驅動任務僅在它等待的資源可用時,才可能被執(zhí)行。

      根據(jù)設計的控制算法,我們劃分了5個任務:task_main、task_angle、task_speed、task_turn和task_comm。

      task_main為單次執(zhí)行任務,它是MQXLite啟動后執(zhí)行的第一個任務,用于初始化全局變量、初始化外設、創(chuàng)建其他任務和安裝用戶中斷服務例程。

      task_angle為5 ms執(zhí)行一次的周期性任務,該任務用于直立控制。首先,它獲取陀螺儀和加速度傳感器采集到的角速度和加速度,再通過直立控制算法,計算得到直立控制的控制量。最后,在該任務中還完成控制量的線性疊加,更新左右電機PWM占空比,以變更小車行駛狀態(tài)。

      task_speed為20 ms執(zhí)行一次的周期性任務,該任務用于速度控制。在獲取左右輪速度后,根據(jù)速度控制算法,更新速度控制的控制量。

      task_turn為資源驅動任務,用于方向控制。攝像頭采集完畢圖像后,會觸發(fā)一個中斷,在該中斷的中斷服務例程中,置輕量級事件位,觸發(fā)task_turn任務。該任務中,對采集到的圖像使用方向控制算法,更新方向控制的控制量。

      task_comm為資源驅動任務,主要用于與上位機的通信,進行調(diào)試。在收到上位機的命令后,該任務被觸發(fā),將小車的參數(shù)發(fā)送至上位機,用于調(diào)試與分析。

      另外,由于各控制量被多個任務使用,在更新控制量時,還需要使用互斥體來保證對它們的同步訪問。

      各任務優(yōu)先級從高到低依次為:task_main、task_turn、task_speed、task_angle和task_comm。由于圖像采集的時間較長,在圖像采集完畢后,我們希望能夠盡快更新方向信息,所以task_turn優(yōu)先級較高。task_speed和task_angle同理。而task_comm并不是特別重要,優(yōu)先級最低。這樣設置任務優(yōu)先級后,對方向、速度控制的響應會比無操作系統(tǒng)時快,使整個系統(tǒng)獲得了更好的實時性和穩(wěn)定性。

      結 語

      [1] Texas Instruments. Low-Dropout Voltage Regulators With Integrated Delayed Reset Function (Rev. F)[EB/OL]. (1999-01-01) [2018-01-31].http://www.ti.com/lit/ds/symlink/tps73.pdf.

      [2] Omnivision. OV7725 datasheet[EB/OL]. (2007-12-17) [2018-01-31].http://www.zhopper.narod.ru/mobile/ov7725_full.pdf.

      [3] 劉明,王洪軍,李永科.直立行走的智能車設計方案[J].科技信息,2012,29(20):122.

      [4] Freesca1e Semiconductor. MQXLite Real-Time Operating System User Guide. Rev 1.1[EB/OL]. (2014-02-01) [2018-01-31].http://cache.freescale.com/files/soft_dev_tools/doc/user_guide/MQXLITEUG.pdf.

      [5] 王宜懷,朱仕浪,姚望舒.嵌入式實時操作系統(tǒng)MQX應用開發(fā)技術—ARM Cortex-M微處理器[M]. 北京:電子工業(yè)出版社,2014.

      [6] 卓晴,黃開勝,邵貝貝.學做智能車:挑戰(zhàn)“飛思卡爾”杯[M]. 北京:北京航空航天大學出版社,2007.

      趙俊杰、高曉雅(本科),物聯(lián)網(wǎng)工程專業(yè);張建(講師),主要研究方向為MIS系統(tǒng)開發(fā)、嵌入式系統(tǒng)應用。

      猜你喜歡
      微控制器控制算法編碼器
      基于FPGA的同步機軸角編碼器
      基于ARM+FPGA的模塊化同步控制算法研究
      物聯(lián)網(wǎng)技術在微控制器實驗教學中的應用
      電子制作(2017年14期)2017-12-18 07:07:58
      基于PRBS檢測的8B/IOB編碼器設計
      JESD204B接口協(xié)議中的8B10B編碼器設計
      電子器件(2015年5期)2015-12-29 08:42:24
      一種優(yōu)化的基于ARM Cortex-M3電池組均衡控制算法應用
      電源技術(2015年9期)2015-06-05 09:36:06
      多總線式光電編碼器的設計與應用
      Atmel針對新一代物聯(lián)網(wǎng)應用發(fā)布全新32位微控制器
      最新STM32設計工具增加對混合信號微控制器的支持
      一種非圓旋轉工件支撐裝置控制算法
      黔南| 饶平县| 清流县| 府谷县| 尉氏县| 房产| 天峨县| 佳木斯市| 南涧| 安达市| 斗六市| 长兴县| 新乐市| 汕头市| 且末县| 汾阳市| 禹城市| 库车县| 汪清县| 玉环县| 安阳县| 陆川县| 英吉沙县| 双桥区| 伊吾县| 长治县| 灵璧县| 凤山县| 登封市| 双城市| 龙海市| 五华县| 大关县| 镇原县| 湘西| 嘉义县| 英德市| 平乐县| 田东县| 京山县| 江都市|