精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用16位單片機和激光傳感器實現尋跡智能車的軟硬件設計

電子設計 ? 作者:電子設計 ? 2018-11-27 08:36 ? 次閱讀

智能車競速比賽以及多種智能車的應用場合中,需要智能車沿著某條軌跡快速前進,使用普通紅外傳感器、激光傳感器、攝像頭識別均可有效提取路面軌道信息而解決這一問題,現在常見使用16位單片機作為控制核心。普通紅外傳感器因為易受干擾、前瞻距離短等缺點已經較少使用,攝像頭有豐富的數據信息,但是低成本8位單片機不能很好的處理這些信息。激光傳感器成本適中,處理的信號便于8位單片機處理,能夠有效的節省硬件成本。針對尋跡智能車進行了軟硬件設計,采用3位freescale單片機MC9S08AC16作為控制核心,使用激光傳感器提取賽道信息,采用低成本的紅外測速方案,算法使用以PID為基礎的枚舉查表法,做到了處理快速高效。整個設計既滿足了競速小車的響應迅速的要求,又是一種較低成本的設計方案。

1 車模安裝

智能車的控制采用的是前輪轉向,B型車模采用的是國內廠商生產的1:16的電動越野遙控車的底盤部分,突出特點為四輪驅動,四輪獨立懸掛。反射式光電傳感器在小車前方一字形簡單排布,14個發射,7個接收,一個發射帶兩個接收,傳感器的前瞻可以達到40cm以上,兩個激光發射頭間距1.8cm.傳感器單元安裝圖如圖1所示。

圖1 改裝后智能車

系統選用紅外傳感器作為測速傳感器把紅外傳感器安裝在后輪上,在后輪的內壁貼上黑白等距的膠帶,這樣子安裝就充分利用了空間,且完成了測速的要求。紅外傳感器測速安裝圖如圖2所示。車輪轉動時,紅外傳感器將會輸出脈沖電平,檢測脈沖頻率將得到小車速度。這種測速方法無法達到光電解碼器的精度,但是對于小車的速度處理并沒有太大影響,而光電解碼器價格昂貴,安裝在齒輪上,同等電源和PWM的輸出時,小車速度會變慢。

圖2 紅外傳感器測速的安裝

2 硬件設計

電源管理模塊采用7.2 V 2 000 mAh Ni-Cd蓄電池作為系統能源,并且通過降壓穩壓電路分出6 V,5 V分別給舵機和單片機等供電;使用H橋及其相關器件做了直流電機驅動模塊;轉向伺服舵機控制智能車轉向;用紅外傳感器測量模塊實時測量智能車車速;采用激光傳感器作為賽道的檢測;系統充分使用了M9S8AC16CG單片機的外圍模塊,具體使用到的模塊包括:定時器模塊、PWM脈沖寬度調制模塊、中斷模塊、I/O端口實時時鐘模塊等。

2.1 最小系統及主板

系統采用的常規使用的最小系統板,以MC9S08AC16為核心的單片機系統的最小系統主要包括以下幾個部分:時鐘電路(外接的8 MHz的石英晶振)、電源電路(提供5 V直流電源)、復位電路、BDM接口(通過BDM頭向單片機下載和調試程序)。

主板上有組成本系統的主要電路,具體包括:

電源穩壓電路 7.2 V的電池電源將會通過3個集成穩壓電路處理成兩個5 V、一個約5~7.2 V的可調直流輸出,其中一個5 V直流電源供單片機和相關外設工作,另外一個5V直流單獨供激光傳感器工作,可調直流輸出供舵機工作,采用這種電源設計方式,可以提供所需不同大小的電源,同時在舵機、激光傳感器工作時不會影響單片機的工作電源。

接口電路 包括舵機接口、電機驅動接口、電源接口、調試用人機界面電路接口、單片機最小系統插座。

電機驅動板作為一個獨立的單元制作的直流電機"H"型雙極性驅動電路

2.2 傳感器模塊

采用14個發射,7個接收,兩個發射一個接收為一組一字排開。每次選中不相鄰兩個發射管發射,由兩個接收譬分別接受。AC16單片機的IO端口進行控制,由74LD164驅動選擇要發射的傳感器,由一個555芯片發出100 kHz的頻率震蕩波,激光管發光。接受部分有一個相匹配的100 kHz的接收管接收返回的光,7路接收管的接收信號直接進單片機。傳感器原理如圖3所示。

使用16位單片機和激光傳感器實現尋跡智能車的軟硬件設計

圖3 激光傳感器原理圖

3 軟件設計

3.1 軟件設計概要

系統的主函數將執行圖4所示流程圖對應的程序。調試程序可以完成的功能有:檢驗傳感器故障、調試速度控制參數、舵機中點設置、舵機轉角參數控制等。傳感器數據的讀取特指激光傳感器的讀取,在定時器程序中,每5 ms開始新的一輪激光掃描,每125μs更換1組激光發射管,每組發射兩個不相鄰的激光信號,所有激光發射5遍之后,3次以上檢測到賽道軌跡信號才確認有效,此時才會設置傳感器數據讀取完成標志,所以系統每5 ms進入后續程序執行。小車舵機轉向控制、速度控制稍后詳細論述。對于小車馬達速度控制則為閉環控制,采用bang-bang控制與P算法控制相結合,小車的速度讀取采用了輸入捕捉功能完成,車子運動時,車輪轉動,每轉過1/5圈,紅外傳感器就會輸出一個完整的脈沖周期,通過讀取紅外傳感器的輸出脈沖頻率確定小車的速度。

使用16位單片機和激光傳感器實現尋跡智能車的軟硬件設計

圖4 軟件設計流程圖

3.2 小車行駛狀態確定

該系統采用的賽道為寬為50 cm,中心線為25 mm的賽道,傳感器在黑色上讀取為1,在白色上讀取為0,賽道外地板使用傳感器有可能讀1,也有可能讀0.激光傳感器終采用"一"字型排布方式,相鄰的兩個傳感器的距離為20 mm.賽道如圖5所示。

圖5 賽道示意

傳感器在賽道上可能的狀態可分為:在普通的賽道處、在十字交叉線處,還有跑出賽道。系統定義了變量Car_State來代表小車當前的狀態,可能會出現的情況如下:

1)當小車在賽道上時,將會有1到2個傳感器輸出高電平,如果有兩個傳感器同時打到黑點,而兩個傳感器并不是相鄰的則認為是干擾信號,不作特別處理,其他按照如圖6的傳感器排布方法計算坐標從左向右依次為-13到13,此時Car_State計為傳感器打到的坐標;

2)打到10個以上黑點計為交叉線,Car_State計為20;

3)沒有打到黑點則認為小車即將跑出賽道,Car_State計為30;

4)另外還有一種情況傳感器已經打到了賽道之外,而打到賽道外的傳感器可能輸出高電平,也有可能輸出低電平,此時有可能讀出的情況可能會判定為第一種,如圖5示意,此時小車本應繼續左拐,但是判讀位第一種情況,就可能右拐,這種情況的判定就不能僅僅依靠讀傳感器來判定,還應考慮小車前面行進的趨勢加以判別。因為此種情況一般只出現在小車轉大彎時,由于轉角不夠當小車的傳感器會打到相反方向的賽道外,所以左轉或者右轉的角度超過某一特定值時(如60°),應當屏蔽另一側的傳感器,只讀轉向該側的傳感器,如圖5小車現轉左側大彎,右側傳感器檢測到錯誤黑點,此時只要將右側的7個傳感器屏蔽,只讀左側傳感器數值即可,此種情況Car_State計為40。

使用16位單片機和激光傳感器實現尋跡智能車的軟硬件設計

圖6 傳感器排布

3.3 舵機控制

小車在賽道上:Car_State為-13到13間的整數,由于光電管數量少,造成傳感器返回值離散度過大,不適合進行回控,故應加快采樣速率,進行過采樣,再進行一階迭代濾波:

PVal=((Car_State×1 000)+(Pvalx10))/11;

小車行使5 ms后位置的偏差進行迭代濾波:

Err=((PVal-PVal1)+(Errx10))/11;//兩次位置偏差

P_Offset=Err/P_err; //負值左偏 正值右偏

if(P_Offset<-5)P_Offset=-5;??? //左偏最大偏離為-5個單位

if(P_Offset>5)P_Offset=5; //右偏最大偏離為5個單位

將Err進行采樣劃分得到P_Offset變量,P_Offset取值為-5到5的整數,負數表示向左偏,正數表示向右偏,絕對值越大代表偏轉角度越大;采樣分辨率為可調參數P_err,P_err偏大時,小車反應會較為遲鈍,P_err偏小時,小車反應會較為靈敏,容易出現很小偏差就會引起小車較大的轉向。

按照小車當前的位置以及P_Offset組織數據表Angle_Table[],該表共有27行11列,第n行m列元素j,表示小車位置Car_State為n-13偏差P_Offset為m-5時,j的值在-10到10之間,負值代表向左轉,正值代表向右轉,小車舵機應打的角度為jxAngle_C,可調參數Angle_C可以根據賽道狀況舵機反應靈敏度等調節,其調節在調試程序中完成,其值愈大,同等情況下轉角越大。

舵機的控制就是通過查數據表Angle_Table來實現,而不是通過公式求解,這種方法比較適用于8位單片機,通過檢索表可以達到運算所達不到的系統速度。

小車在交叉線時Car_State=20不更改舵機的控制;當小車的傳感器打不到黑點,即將跑出賽道活著已經打到賽道外時Car_State=30或40,此時按照小車轉的方向,將舵機設置為最大轉角,以達到盡快找到賽道黑線的目的。

舵機的輸出PWM采用5 ms周期,與小車傳感器采樣的頻率一致。

4 試驗結果及總結

通過上述方法,小車取得了比較好的試驗結果,在最小曲率半徑不小于50 cm的賽道上,小車可以取得每秒2 m以上的速度。其速度比采用16位單片機的系統沒有很大差異。要特別注意的是,運算時采用不同數據類型的變量將會帶來不同的效果,經實驗證明,如果可以使用字節存儲類型的變量作雙字節變量存儲,將會嚴重影響小車的運行情況,這是由單片機編譯環境進行數學運算引起的,應當盡量避免不恰當的變量定義及算數運算。

相較于當前流行的16位單片機控制的雙舵機智能車,該系統在硬件上成本較低,而軟件也根據8位單片機的特點,避開了較為復雜的運算,采用了查表的方式,只在小車位置及偏差運算以及速度P算法中涉及了少量的數學運算,以此達到系統的快速響應。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2548

    文章

    50692

    瀏覽量

    752035
  • 單片機
    +關注

    關注

    6032

    文章

    44520

    瀏覽量

    633076
  • 激光
    +關注

    關注

    19

    文章

    3126

    瀏覽量

    64363
收藏 人收藏

    評論

    相關推薦

    工程師電子制作故事:光電尋跡智能車DIY設計

    提出一種使用激光檢測白底黑色跑道的尋跡智能車軟硬件設計方法,在硬件上設計了最小系統、主板、電機驅動、
    發表于 03-18 12:03 ?4215次閱讀

    基于電磁傳感器路徑識別的智能車控制系統

    文中介紹一種基于電磁傳感器路徑識別的智能車控制系統,系統采用Freescale16單片機MC9S12XS128為核心控制
    發表于 03-29 17:23 ?9426次閱讀
    基于電磁<b class='flag-5'>傳感器</b>路徑識別的<b class='flag-5'>智能車</b>控制系統

    STM32單片機到底是如何實現軟硬件結合?

    本文分析 STM32 單片機到底是如何實現軟硬件結合的,接著分析單片機程序如何編譯、運行。
    發表于 05-16 09:54 ?1082次閱讀
    STM32<b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>實現</b><b class='flag-5'>軟硬件</b>結合?

    電動智能車硬件設計與方法測試

    電動智能車硬件設計與方法測試80C51單片機是一款八單片機,他的易用性和多功能性受到了廣大使用者的好評。這里介紹的是如何用80C51
    發表于 12-07 17:22

    基于光電傳感器的能自主識別道路的智能車

      智能車系統配有7.2v的蓄電池,可直接為直流電機供電。單片機、光電傳感器和光電編碼所需電壓為5v,伺服舵機為6v。這些電壓則由7.2v蓄電池調節得來。  
    發表于 11-05 15:50

    基于光電管路徑識別的智能車系統設計

    。  4 結語  本文設計了一個智能車控制系統,實現了快速自動尋跡功能。在硬件上,該系統采用MC9S12DG128B單片機為控制核心,協調電
    發表于 11-06 15:08

    智能車教程單片機原理及應用

    智能車教程單片機原理及應用(C語言版)4.ppt智能車教程制作過程單片機原理及應用 (C語言版)第4章單片機C語言及程序設計 第4章
    發表于 07-14 08:34

    單片機測控系統的軟硬件平臺技術

    本文探討了一種用于工業測控系統的單片機軟硬件綜合設計方法——軟硬件平臺技術,重點闡述了其基本原理、設計思想、實現方法,并給出了一個單片機測控
    發表于 08-13 09:38 ?12次下載

    低成本8單片機控制的光電尋跡智能車

    提出一種使用激光檢測白底黑色跑道的 尋跡智能車軟硬件設計方法,在硬件上設計了最小系統、主板、電機驅動、
    發表于 05-30 15:31 ?369次下載
    低成本8<b class='flag-5'>位</b><b class='flag-5'>單片機</b>控制的光電<b class='flag-5'>尋跡</b><b class='flag-5'>智能車</b>

    電磁導航式智能車的設計與實現

    為了實現智能小車自主尋跡的功能,設計了一種電磁導航式智能車控制系統。 以飛思卡爾 16
    發表于 11-02 17:47 ?3次下載

    單片機系統軟硬件調試及維修技術

    單片機系統軟硬件調試及維修技術,快來下載吧
    發表于 09-01 18:17 ?0次下載

    基于紅外線光電傳感器尋跡智能車系統設計方法

    為了能夠自主尋跡行駛,智能車應具有路徑識別、方向控制、速度檢測、驅動控制等功能,根據比賽規定,本設計以飛思卡爾公司提供的比賽專用車模為載體,以飛思卡爾16微控制
    發表于 09-07 15:04 ?5次下載
    基于紅外線光電<b class='flag-5'>傳感器</b><b class='flag-5'>尋跡</b>的<b class='flag-5'>智能車</b>系統設計方法

    使用MC9S12XS128MAL芯片與51單片機設計智能車的2個方案說明

    運用 Freescale S12 單片機控制模型自動沿著黑白(電磁組是檢測賽道通有交流信號的導線來實現尋跡)賽道完成比賽。主要包括智能車
    發表于 09-21 08:00 ?0次下載
    使用MC9S12XS128MAL芯片與51<b class='flag-5'>單片機</b>設計<b class='flag-5'>智能車</b>的2個方案說明

    深度:單片機到底是如何軟硬件結合的?

    分析單片機到底是如何軟硬件結合的。并通過一個基本的程序,分析單片機程序的編譯,運行。
    發表于 02-08 16:29 ?2次下載
    深度:<b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>軟硬件</b>結合的?

    深度:單片機到底是如何軟硬件結合的?

    本文我們將分析單片機到底是如何軟硬件結合的,并通過一個基本的程序,分析單片機程序的編譯,運行。
    發表于 02-08 16:53 ?7次下載
    深度:<b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>軟硬件</b>結合的?