0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用16位單片機(jī)和激光傳感器實(shí)現(xiàn)尋跡智能車的軟硬件設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-11-27 08:36 ? 次閱讀

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

1 車模安裝

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

圖1 改裝后智能車

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

圖2 紅外傳感器測(cè)速的安裝

2 硬件設(shè)計(jì)

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

2.1 最小系統(tǒng)及主板

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

主板上有組成本系統(tǒng)的主要電路,具體包括:

電源穩(wěn)壓電路 7.2 V的電池電源將會(huì)通過(guò)3個(gè)集成穩(wěn)壓電路處理成兩個(gè)5 V、一個(gè)約5~7.2 V的可調(diào)直流輸出,其中一個(gè)5 V直流電源供單片機(jī)和相關(guān)外設(shè)工作,另外一個(gè)5V直流單獨(dú)供激光傳感器工作,可調(diào)直流輸出供舵機(jī)工作,采用這種電源設(shè)計(jì)方式,可以提供所需不同大小的電源,同時(shí)在舵機(jī)、激光傳感器工作時(shí)不會(huì)影響單片機(jī)的工作電源。

接口電路 包括舵機(jī)接口、電機(jī)驅(qū)動(dòng)接口、電源接口、調(diào)試用人機(jī)界面電路接口、單片機(jī)最小系統(tǒng)插座。

電機(jī)驅(qū)動(dòng)板作為一個(gè)獨(dú)立的單元制作的直流電機(jī)"H"型雙極性驅(qū)動(dòng)電路。

2.2 傳感器模塊

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

使用16位單片機(jī)和激光傳感器實(shí)現(xiàn)尋跡智能車的軟硬件設(shè)計(jì)

圖3 激光傳感器原理圖

3 軟件設(shè)計(jì)

3.1 軟件設(shè)計(jì)概要

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

使用16位單片機(jī)和激光傳感器實(shí)現(xiàn)尋跡智能車的軟硬件設(shè)計(jì)

圖4 軟件設(shè)計(jì)流程圖

3.2 小車行駛狀態(tài)確定

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

圖5 賽道示意

傳感器在賽道上可能的狀態(tài)可分為:在普通的賽道處、在十字交叉線處,還有跑出賽道。系統(tǒng)定義了變量Car_State來(lái)代表小車當(dāng)前的狀態(tài),可能會(huì)出現(xiàn)的情況如下:

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

2)打到10個(gè)以上黑點(diǎn)計(jì)為交叉線,Car_State計(jì)為20;

3)沒(méi)有打到黑點(diǎn)則認(rèn)為小車即將跑出賽道,Car_State計(jì)為30;

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

使用16位單片機(jī)和激光傳感器實(shí)現(xiàn)尋跡智能車的軟硬件設(shè)計(jì)

圖6 傳感器排布

3.3 舵機(jī)控制

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

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

小車行使5 ms后位置的偏差進(jìn)行迭代濾波:

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

P_Offset=Err/P_err; //負(fù)值左偏 正值右偏

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

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

將Err進(jìn)行采樣劃分得到P_Offset變量,P_Offset取值為-5到5的整數(shù),負(fù)數(shù)表示向左偏,正數(shù)表示向右偏,絕對(duì)值越大代表偏轉(zhuǎn)角度越大;采樣分辨率為可調(diào)參數(shù)P_err,P_err偏大時(shí),小車反應(yīng)會(huì)較為遲鈍,P_err偏小時(shí),小車反應(yīng)會(huì)較為靈敏,容易出現(xiàn)很小偏差就會(huì)引起小車較大的轉(zhuǎn)向。

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

舵機(jī)的控制就是通過(guò)查數(shù)據(jù)表Angle_Table來(lái)實(shí)現(xiàn),而不是通過(guò)公式求解,這種方法比較適用于8位單片機(jī),通過(guò)檢索表可以達(dá)到運(yùn)算所達(dá)不到的系統(tǒng)速度。

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

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

4 試驗(yàn)結(jié)果及總結(jié)

通過(guò)上述方法,小車取得了比較好的試驗(yàn)結(jié)果,在最小曲率半徑不小于50 cm的賽道上,小車可以取得每秒2 m以上的速度。其速度比采用16位單片機(jī)的系統(tǒng)沒(méi)有很大差異。要特別注意的是,運(yùn)算時(shí)采用不同數(shù)據(jù)類型的變量將會(huì)帶來(lái)不同的效果,經(jīng)實(shí)驗(yàn)證明,如果可以使用字節(jié)存儲(chǔ)類型的變量作雙字節(jié)變量存儲(chǔ),將會(huì)嚴(yán)重影響小車的運(yùn)行情況,這是由單片機(jī)編譯環(huán)境進(jìn)行數(shù)學(xué)運(yùn)算引起的,應(yīng)當(dāng)盡量避免不恰當(dāng)?shù)淖兞慷x及算數(shù)運(yùn)算。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49961

    瀏覽量

    747520
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628406
  • 激光
    +關(guān)注

    關(guān)注

    19

    文章

    3004

    瀏覽量

    64023
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    工程師電子制作故事:光電尋跡智能車DIY設(shè)計(jì)

    提出一種使用激光檢測(cè)白底黑色跑道的尋跡智能車軟硬件設(shè)計(jì)方法,在硬件上設(shè)計(jì)了最小系統(tǒng)、主板、電機(jī)驅(qū)動(dòng)、
    發(fā)表于 03-18 12:03 ?4154次閱讀

    基于電磁傳感器路徑識(shí)別的智能車控制系統(tǒng)

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

    STM32單片機(jī)到底是如何實(shí)現(xiàn)軟硬件結(jié)合?

    本文分析 STM32 單片機(jī)到底是如何實(shí)現(xiàn)軟硬件結(jié)合的,接著分析單片機(jī)程序如何編譯、運(yùn)行。
    發(fā)表于 05-16 09:54 ?980次閱讀
    STM32<b class='flag-5'>單片機(jī)</b>到底是如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>軟硬件</b>結(jié)合?

    電動(dòng)智能車硬件設(shè)計(jì)與方法測(cè)試

    電動(dòng)智能車硬件設(shè)計(jì)與方法測(cè)試80C51單片機(jī)是一款八單片機(jī),他的易用性和多功能性受到了廣大使用者的好評(píng)。這里介紹的是如何用80C51
    發(fā)表于 12-07 17:22

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

      智能車系統(tǒng)配有7.2v的蓄電池,可直接為直流電機(jī)供電。單片機(jī)、光電傳感器和光電編碼所需電壓為5v,伺服舵機(jī)為6v。這些電壓則由7.2v蓄電池調(diào)節(jié)得來(lái)?! ?/div>
    發(fā)表于 11-05 15:50

    基于光電管路徑識(shí)別的智能車系統(tǒng)設(shè)計(jì)

    ?! ? 結(jié)語(yǔ)  本文設(shè)計(jì)了一個(gè)智能車控制系統(tǒng),實(shí)現(xiàn)了快速自動(dòng)尋跡功能。在硬件上,該系統(tǒng)采用MC9S12DG128B單片機(jī)為控制核心,協(xié)調(diào)電
    發(fā)表于 11-06 15:08

    智能車教程單片機(jī)原理及應(yīng)用

    智能車教程單片機(jī)原理及應(yīng)用(C語(yǔ)言版)4.ppt智能車教程制作過(guò)程單片機(jī)原理及應(yīng)用 (C語(yǔ)言版)第4章單片機(jī)C語(yǔ)言及程序設(shè)計(jì) 第4章
    發(fā)表于 07-14 08:34

    單片機(jī)測(cè)控系統(tǒng)的軟硬件平臺(tái)技術(shù)

    本文探討了一種用于工業(yè)測(cè)控系統(tǒng)的單片機(jī)軟硬件綜合設(shè)計(jì)方法——軟硬件平臺(tái)技術(shù),重點(diǎn)闡述了其基本原理、設(shè)計(jì)思想、實(shí)現(xiàn)方法,并給出了一個(gè)單片機(jī)測(cè)控
    發(fā)表于 08-13 09:38 ?12次下載

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

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

    電磁導(dǎo)航式智能車的設(shè)計(jì)與實(shí)現(xiàn)

    為了實(shí)現(xiàn)智能小車自主尋跡的功能,設(shè)計(jì)了一種電磁導(dǎo)航式智能車控制系統(tǒng)。 以飛思卡爾 16
    發(fā)表于 11-02 17:47 ?3次下載

    單片機(jī)系統(tǒng)軟硬件調(diào)試及維修技術(shù)

    單片機(jī)系統(tǒng)軟硬件調(diào)試及維修技術(shù),快來(lái)下載吧
    發(fā)表于 09-01 18:17 ?0次下載

    基于紅外線光電傳感器尋跡智能車系統(tǒng)設(shè)計(jì)方法

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

    使用MC9S12XS128MAL芯片與51單片機(jī)設(shè)計(jì)智能車的2個(gè)方案說(shuō)明

    運(yùn)用 Freescale S12 單片機(jī)控制模型自動(dòng)沿著黑白(電磁組是檢測(cè)賽道通有交流信號(hào)的導(dǎo)線來(lái)實(shí)現(xiàn)尋跡)賽道完成比賽。主要包括智能車
    發(fā)表于 09-21 08:00 ?0次下載
    使用MC9S12XS128MAL芯片與51<b class='flag-5'>單片機(jī)</b>設(shè)計(jì)<b class='flag-5'>智能車</b>的2個(gè)方案說(shuō)明

    深度:單片機(jī)到底是如何軟硬件結(jié)合的?

    分析單片機(jī)到底是如何軟硬件結(jié)合的。并通過(guò)一個(gè)基本的程序,分析單片機(jī)程序的編譯,運(yùn)行。
    發(fā)表于 02-08 16:29 ?2次下載
    深度:<b class='flag-5'>單片機(jī)</b>到底是如何<b class='flag-5'>軟硬件</b>結(jié)合的?

    深度:單片機(jī)到底是如何軟硬件結(jié)合的?

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