智能小車原理
《智能小車原理》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能小車原理(23頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、人來完成。而在機(jī)器人在復(fù)雜地形中行進(jìn)時(shí)自動(dòng)避障是一項(xiàng)必不可少也是最基本的功能。因此,自動(dòng)避障 系統(tǒng)的研發(fā)就應(yīng)運(yùn)而生。我們的自動(dòng)避障小車就是基于這一系統(tǒng)開發(fā)而成的。 于未知空間和人類所不能直接到達(dá)的地域的探索逐步成為熱門, : V r V < r v v 「 * n , v 我們的自動(dòng)避障小車就是自動(dòng)避障機(jī)器人中的一類。自動(dòng)避障小車可以作為地域探索機(jī)器人和緊急搶險(xiǎn)機(jī) 器人的運(yùn)動(dòng)系統(tǒng),讓機(jī)器人在行進(jìn)中自動(dòng)避過障礙物。 都選修過數(shù)字電路課程。 二、總體方案設(shè)計(jì) 1、設(shè)計(jì)要求 > 意義隨著科技的發(fā)展,對 這就使機(jī)器人的自動(dòng)避障有了重大的意義。 t w r . s. r t. r r
2、t、r ? r >-? rrrr t 一 咅 b /_? r a i^a r >-? 成員情況本組三位成員均為 2005級基地班學(xué)生, FT "iBb I TA 小車從無障礙地區(qū)啟動(dòng)前進(jìn),感應(yīng)前進(jìn)路線上的障礙物后,根據(jù)障礙物的位置選擇下一步行進(jìn)方向。并可 通過兩個(gè)獨(dú)立按鍵對小車進(jìn)行控速 *L L I I * (如右圖所示)。小車在行進(jìn)過程中由光電開關(guān)向前方發(fā)射岀紅外線, 當(dāng)紅外線遇到障礙物時(shí)發(fā)生漫反射, 信號的情況來判斷前方障礙物的分布并做出相應(yīng)的動(dòng) 反射光被光電開關(guān)接’ ■ —fc * h * \ 作。光電開關(guān)的平均探測距離為 ,收。小車根據(jù)三個(gè)光電開關(guān): 3
3、0cm 。 AT T 3、模塊方案比較及論證 I L L II 《主控a塊廉軟件模塊) 書驚■? 主控芯片 〔探測模塊) 光電開關(guān)組 獨(dú)立 按* 方案一:自己設(shè)計(jì)制作車架 在設(shè)計(jì)車體框架時(shí),我們有兩套起始方案,自己制作和直接購買玩具電動(dòng)車。 ■ 依靠前輪電機(jī)帶動(dòng)前輪轉(zhuǎn)向
4、完成,精度低。 FT 考慮到利用玩. 心用優(yōu)良的算法來彌補(bǔ),故我們選擇方案二。 左 埶左后 自己制作小 轉(zhuǎn)、右后轉(zhuǎn)、倒車等動(dòng)作。減速電機(jī)扭矩大,轉(zhuǎn)速較慢易于控制和調(diào)速,符合避障小車的耍求。而且自 己制作小車框架,可以根據(jù)電路板及傳 案 方案二: 具電動(dòng)車 制作周期較長,且費(fèi)用較高,因而我們. 玩具電動(dòng)車價(jià)格低廉,有完整的驅(qū)動(dòng)、傳動(dòng)和控制單元,其中傳動(dòng)裝置是我們所需的,縮短了開發(fā)周期。 K zjSN 衛(wèi)、 六 但玩具電動(dòng)車采用普通直流電機(jī)驅(qū)動(dòng),帶負(fù)載能力差,調(diào)速方面對程序要求較高。同時(shí),玩具電動(dòng)車轉(zhuǎn)向 \] / VJf M M / VJf M / , Jf 'I
5、 :具電動(dòng)小車做車架開發(fā)周期短,可留夠充分的時(shí)間用于系統(tǒng)調(diào)試,且硬件上的不足我們有信 v jff V W v jff V n I 4- A*- ■ I I I IL I I 但由于需要 電線對小 I I 方案二 L k ?他邏輯單元供 I I 71 5V
6、 L L V L 低電池: 6V 壓接一個(gè) Q d T T T I 直流電機(jī)供電 I 光電幣關(guān)供電 ff I J J 起 9V^i?電源 VI 同時(shí),由于 mega16 綜合考慮,我們采用方案三 course project ,我們直接選用了課程主要介紹的, 機(jī)及其他邏輯單元供電,另取六節(jié) 供電。而電機(jī)和光電 h 上 h 之并不苛刻,故我們將 的勺電源不做穩(wěn)壓處理。這樣 給電機(jī)供電. 方案三:采用干電池組進(jìn)行供電 電池為電機(jī)及 電線識別為障礙物,人為增加了不必要的障礙 以安裝四節(jié)干電池 故我們放棄了這一方案。 蓄電池
7、具有較強(qiáng)的電流驅(qū)動(dòng)能力和較好的電壓穩(wěn)定性能,且成本低廉。可采用蓄電池經(jīng) 3.3主控模塊 始時(shí)考慮使用7805芯片對6V的電池電壓進(jìn)行降壓穩(wěn)壓。但考慮到這樣使得 7805 采用交流電提供直流穩(wěn)壓電源,電流驅(qū)動(dòng)能力及 供電,極大影響了壁障小車行動(dòng)的靈活性及地形的適應(yīng)能力 * L Il 重量較小,同 V I 經(jīng)過降壓接 7805芯片給單片機(jī) 作為單片機(jī)原理與接口技術(shù)課程的 而且壁障小車極易把拖在地上的 采用四節(jié) 樣電機(jī)啟動(dòng)及制動(dòng)時(shí)的短暫電壓干擾不會(huì)影響到邏輯單元和單片機(jī)的工作。干電池用電池盒封裝,體積和 Th' t 芯片消耗大量能量,降 穩(wěn)定性最好,且負(fù)載對電源影響也
8、最小。 且重量過 7812芯片穩(wěn)壓后 3.2電源及穩(wěn)壓模塊 方案一:采用交流電經(jīng)直流穩(wěn)壓處理后供電 只需在小車主板上加兩個(gè)調(diào)速按鈕,根據(jù)電池電量選擇合適功率即可,甚至于可直接在軟件里設(shè)置自動(dòng)換 擋。 ff V 科亠 7 W V 科亠 7 < j V 造成電機(jī)負(fù)載過大,不適合我們采用的小車車架(玩具電動(dòng)車車架)。故我們放棄了這一方案。 “ L L Bl “ L aV Bl 單片機(jī)*翅 輸芯片供電 提供邏輯電平
9、 L L I I V I 方便。 拔岀插 MCU y L L a L L I 4\' T 4 L T L L 主要涉及 7 現(xiàn) d 號 0非門 與門 T 1 V T Vf1 ]:J' 模塊 非門。由 在設(shè)計(jì)開發(fā)過程中我們使用課程設(shè)計(jì)提供的開發(fā)板進(jìn)行程序調(diào)試和下載,配車使用時(shí)直接將 入我們小車. 示意圖如下: 塔號 電路板底座中。示意圖如下 L 頻器和比較器功能的
10、8位定時(shí)器 j 電 JttT 16位定時(shí)器/ % 數(shù)器??赏ㄟ^ 能和捕捉功能的 四個(gè)二輸入與門和四個(gè)二輸入或非門,我們用各用一片芯片即可實(shí)現(xiàn)所需邏輯功能 —| 弋 由于三輸入或非門在市場上很難購買到,我們采用了兩個(gè)二輸入或非門和一個(gè)二輸入與門完成了三輸入或 我們采用的 74HC08 (四二輸入與門 l ** L 3.4邏輯模塊 3.5探測模塊 方案一:使用超聲波探測器 在探測模塊和單片機(jī)中斷接口之間、 獨(dú)立按鍵與單片機(jī)中斷接口之間 rn\i 池 | /Q 三輸入或非門和一個(gè)二輸入與門。這兩個(gè)邏輯關(guān)系我們直 /計(jì)數(shù)器和一個(gè)具有預(yù)分頻器 JTAG 對 MCU 進(jìn)行
11、程序燒寫及仿真。內(nèi)置晶振,使 L — k * L 、74HC02 X ¥ & " 內(nèi)部集成兩個(gè)具有獨(dú)立預(yù)分 ATmaga16L單片機(jī)作為主控模塊。、 , 7 Vt 叩 ( Mega16是高性能、低功耗的 8位AVR 需要經(jīng)過電平的邏輯處理進(jìn)行連接。 用 74HC系列的集成芯片: 丄 I; a 微處理器,具有先進(jìn)的 RISC結(jié)構(gòu) 與門
12、 L I H橋電路工作性能不夠 所以我們放 方案四:使用光電開關(guān)進(jìn)行障礙物信息采集 3cm ),使得小車必須制動(dòng)迅速。而我們由 j此我們放棄了這一方案。 30cm工一般在 可以直接通過電源來調(diào)節(jié)輸岀 八 7 測距方便。但由于聲波 V . 誤判斷。同時(shí),超聲波探測具有幾厘米甚至幾十厘米的盲區(qū),這對于我們的避障小車是個(gè)致命的限制。故 超聲波探 報(bào)面太大,易造 物的錯(cuò) 我們放棄了這一方案。 方案二:使用光電對管探測 于米用普通 10cm 。 方案三:使用視頻采集處理裝置進(jìn)行探測
13、 這是最精確的障礙物信息采集方案, 這是最V.信息采“ 使用CCD實(shí)時(shí)采集小車前進(jìn)路線上的圖像并進(jìn)行實(shí)時(shí)傳輸及處理,這 可以對障礙物進(jìn)行精確定位和測距。但是使用視頻采集會(huì)大大增加小車成本和設(shè)計(jì)開發(fā)難度,而且考慮到 使用三只E3F-DS30C4光電開關(guān),分別探測正前方,前右側(cè),前左, 密集地形)可將正前方的光電開關(guān)移置后方進(jìn)行探測。 ?SSR*- k dB* \ ? 可調(diào),且抗外界背景光干擾能力強(qiáng),可在日光下 '■V們小車換檔調(diào)速后的最大制動(dòng)距離不超過 & 求。 綜上考慮,我們選用方案四。示意圖如下: 光電幵關(guān)2 3.6電機(jī)驅(qū)動(dòng)模塊 方案一: (如障礙 ,八"工丿
14、T E3F-DS30C4光電開關(guān)平均有效探測距離 0?30cm (理論上應(yīng)避免日光和強(qiáng)光源的直接照射)。我 10~20cm左右,因而探測距離滿足我們的小車需 PM J 單沖機(jī) 使用分立原件搭建電機(jī)驅(qū)動(dòng)電路造價(jià)低廉,在大規(guī)模生產(chǎn)中使用廣泛。但分立原件 穩(wěn)定,較易岀 V 方案二:使用[L298N芯片驅(qū)動(dòng)電機(jī) L298N 流的全橋驅(qū)動(dòng)芯片,輸出電壓最高可達(dá) 1/\1 f 50V, * V
15、 3 1 1 I L I * A L 片 rn J 最終方案 卜 L298N V A 動(dòng) +9V l 流供 電電 L293N 電 +5V H 漬邏 輯電 提供信號,而一 n 74HC系列芯片完成。 L298N 芯 單片杞撈令總線 驅(qū)動(dòng)直流電機(jī) 用比較方便。L298N 單元模塊設(shè)計(jì) 性能穩(wěn)定,使 芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也可以驅(qū)動(dòng)一個(gè)四相電機(jī),正好符合我們小車兩個(gè)二相 鳧護(hù) 電路 nr 型q i、各單
16、元模塊功能介紹及電路設(shè)計(jì) 光電開關(guān)進(jìn)行障礙物探測,使用 WM調(diào)速 V 綜合考慮我們采用 科 w V . w V w V 使用干電池組對系統(tǒng)供電,改造玩具電動(dòng)車作為小車底座. 驅(qū)動(dòng)小車電機(jī)??刂剖疽鈭D如下 ==> 久護(hù) * — v W V 耳 * 采用Mega16L作為主控芯片,采用E3F-DS30C4 7Q 用單片機(jī)的' '使能端,方便 * L-昭 經(jīng)過測量,一般四節(jié)新南孚電池串聯(lián)帶負(fù)載后可提供 5.8V 電壓。經(jīng)過二極管穩(wěn)壓至 5.1?5.2V TA 后給邏輯器 AP1
17、 -5.3V 件供電并給系統(tǒng)提供高電平標(biāo)準(zhǔn)。 4/ 使用Mega 16L的PBO?PB2接經(jīng)過電平轉(zhuǎn)換的探測器信號線,實(shí)現(xiàn)對障礙物信息的采集。 PC1接受獨(dú)立按鍵信號,實(shí)現(xiàn)對小車行進(jìn)過程中速度的控制。由于我們小車電機(jī)
18、A / 1 使用 Mega 16L 的 PCO、 r ■-幺 ?幺 電源沒有經(jīng)過穩(wěn)壓,隨著電池電量的消耗,電機(jī)電池組的電壓逐漸降低,因而小車速度會(huì)發(fā)生變化。我們 mXi FT ,?i 就可以通過獨(dú)立按鍵對 憶 T *n , ? — * . 速度進(jìn)行提前設(shè)定,使得即使電池組電量變化,小車也能按預(yù)定速度行進(jìn) 5 使用Mega 16L的PD2、PD3接收中斷信息。在軟件部分我們可以看到, Tr 的 INTO, V 31接地。 ,即PD2并沒有使用。 使用引腳10為單片機(jī)供電,引腳 隨著程序的不斷完善,最終我們 7 “
19、 Figure 1. ATmega16 的引腰 (XCK/TO) PBO 匸 (T1) PB1 匚 (INT2/A1N0J PB2 匚 (OCO/AJN1J PB3 匚 J PB4 C ^MOSn PB5 匚 PB6 C (SCK) PB7 匚 RESET 匚 VCC C GND匚 XTAL2 C XTAL1 匚 (RXD)
20、PtXl 匚 (TXDJ PD1 匚 (INTO) PD2 匚 (INT1J PD3 匚 (OC1B> PD4 匚 (OC1AJ PD5 匚 (ICP1) PD6 匚 O1234567B&C 12 3 4 5 8 7 B 9 1 1111111112 Df p 0987664321 o*va7B54321 43333333233222222 222 nnnnnnnnnnnnnnnrmnnn PAO (ADCO) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PAS (ADC5) PA6 (ADC6) FV\7 (ADC7) AREF
21、 GND AVCC PC7 (TOSC2J PC6 (TOSC1J PCS (TDI) PC4 (TOO) PCS (TMS) PC2 (TCK) PC1 (SDA) PCD (SCL} PD7 (OC2) 我們還是給以闡釋)。 所述,最終我們用定時(shí)器中斷代替了這個(gè)外部中斷, 但作為硬件設(shè)計(jì)和焊接的一部分, 兩個(gè)獨(dú)立按鍵分別控制提速和減速,沒有按下時(shí)一一一亠,F(xiàn) '—亠一亠一 電平,同時(shí)給出一個(gè)低電平給 INT1。 任務(wù)實(shí)現(xiàn): i ” W- ,信號線給岀高電平。當(dāng)任意一鍵按下時(shí),信號線給岀低 J * c r * ' 我們用74HC08的一 卡1 、 第一個(gè)任務(wù)的實(shí)現(xiàn)原
22、本想采用三輸入或非門 甲丁 - / 74HC27 實(shí)現(xiàn)。 * * 3 / T: 1 JJ T T 第二個(gè)任務(wù)邏輯的實(shí)現(xiàn)使用 任務(wù)邏輯 X 按鍵與邏輯高電平( <* 74HC08的一個(gè)與門實(shí)現(xiàn)。按鍵功能的實(shí)現(xiàn),是使用了 y\\' 7 +5V),無鍵按下電平上拉至邏輯高
23、電平,有鍵按下時(shí)降至 接兩個(gè)按鍵 d 1 | £ h ■> I 4 F 1 XJ T T V L II 光電開餐組 * k \ \ T i M1 7
24、4 2 T 任務(wù)實(shí)現(xiàn) rf T 回的信號是非標(biāo) 發(fā)射極電壓小于 +5V 反 1 i _ V h i 變化。若前方有障礙物 ★ 2.光電 * £ L 1.光電 T E h ¥ 7 將光電開關(guān)傳回的非標(biāo)準(zhǔn)的開關(guān)電平信號轉(zhuǎn)換成 這對于 Mega16芯片是不適用的。 T 設(shè)計(jì)任務(wù): I寸出的紅外線在經(jīng)障礙物漫反射后會(huì)由光電開關(guān)再接 則光電開關(guān)傳回低電平;若前方無障礙物 但這并不影響前方障礙物的探測。 型光電開關(guān)傳回的電平I 個(gè) 5K1的電阻上拉,使輸出的高 0。這樣輸出電平已經(jīng)轉(zhuǎn)化為 CMOS標(biāo)準(zhǔn)電平。不過,這 N h ■ 1 * 10
25、K 1:-:: 的變化可以實(shí)現(xiàn)對前方障礙物的探測。 p - f 豐 b CMOS標(biāo)準(zhǔn)電平(即將 0?9V轉(zhuǎn)換成0?5V) 8050三極管來實(shí)現(xiàn)電平的轉(zhuǎn)換。由三極管的電氣特性,當(dāng)其基極為低電平時(shí),即基極 T 時(shí)傳回到Mega16的電平信號已經(jīng)和原來光電 攵到, 這會(huì)引 則光電開關(guān)傳回的是高電平。有電平 導(dǎo)通壓降,其輸岀電平為高電平,在其輸岀端有 極為高電平時(shí),三極管發(fā)射極正偏,輸出電平為
26、 lU
27、 L I 電機(jī)驅(qū)動(dòng)模塊的電路圖 DIO I v L L I 6 v I v i L L 4148 T 4 k 4148 \QTO] VO A ■ * 4148 '414S +5V j 關(guān)閉時(shí)泄流之用 n T A 控制轉(zhuǎn)向電 制其實(shí)現(xiàn)前進(jìn) 對于后置 電量不 1 OCO) 連接 T 7 I L?9fi ,W L298N芯片的 SENS OLT4 0UT3
28、DW ENB INS 再安+5V「 CKD EC ENA IN; VSS 0LT2 OLT: SEs'A 電機(jī)驅(qū)動(dòng)模塊主要功能是將主控芯片發(fā)岀的信號通 /ir p _ 1 /If 1 _ 1 /It ocry oury 7?ZTV OUT/ 頁過 L298N 由于我們 足而產(chǎn)生的小車變慢的問題。所以,我們將 HIM 動(dòng)電機(jī),我們不僅: 電機(jī)控制芯片轉(zhuǎn)化為小車實(shí)際的動(dòng)作。 雅」 L298N芯片有兩個(gè)電源引腳 VDD引腳和VCC引腳。VDD弓I腳接+9V電源用來給電機(jī)供電,VCC弓I腳接 15 L298N芯片通過一個(gè)有四個(gè) 4148二極管組成的保護(hù)電路與電機(jī)
29、相連,保護(hù)電路主要是用來在電機(jī)開啟和 呂退和停止,還要能夠控制其轉(zhuǎn)速以解 -* v H ENB引腳與 Mega16的PB3引腳 機(jī)的輸岀功率,所以 ENA引腳(即轉(zhuǎn)向電機(jī)使能引腳)直接接 +5 V,即讓轉(zhuǎn)向電機(jī)一直使能。 Al /QA1 /QAI ? 功率使能從而獲得最大的扭矩,保證小車轉(zhuǎn)向成功,而不 用來實(shí)現(xiàn)PWM調(diào)速。 T ,驅(qū)動(dòng)模塊 爾」L TJl JU b rJ i
30、
I
b
I
L
V
t
I
T
后退
V
v1
L
L
L
L
I
I
I
L
I
所用全部硬件資源
2
T
ATMega 16L/32
L
L
L
L
⑵
L
L
L
L
⑸
L298
⑺
3只
⑻
8
⑼
I
L
5K1電阻
⑽
散熱
(12)
U
U
(13)
40
(15)
y
7
*
T
目前程
T
A
, 31、
Ik
⑹
⑴
1只
幺
(14)
(16)
(17)
的動(dòng)作指令,并通過
L298N芯片的IN3和IN4弓I腳分別與“Mega16
增強(qiáng)版A
IN2 引腳
5列裝排線1米左右
實(shí)驗(yàn)電路板1只
502粘合劑1瓶
獨(dú)立按鍵2只
7 * 電池盒2只
1、程序調(diào)試過程
計(jì)(11)
Mega 16L
T
TV
T
Hr
L
1 .
V』
*
⑶
、
⑷
°u羯和『UT4來控制驅(qū)動(dòng)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn),最終功能的實(shí)現(xiàn)表現(xiàn)在小車的前進(jìn)
對尋障避障的方法前后有較大的改變。
v fA rt
5 只,10K
r
/Tl
8050NP
,經(jīng) 32、經(jīng)歷了四個(gè)主要版本
T
7T1
3d
t
遙控電動(dòng)玩具車
t
飛
7
T
N〔三極管
WjF
74HC02芯片、74HC08芯片各1片
IF
L298N 芯片
“ 7
4148二極管
彳十*
南孚電池6節(jié),華太電池4節(jié)
T
#*
右轉(zhuǎn)。
E3F-DS30C4光電開關(guān)3只
3V>* L
,和調(diào)試過程
V H
TJ
單片機(jī)1片
.機(jī)驅(qū)動(dòng)芯片1片
的PA3和PA2引腳連接用來接收主控芯片輸岀的驅(qū)動(dòng)電機(jī)
J* L
四、程序
簡版JTAG仿真器(程序的下載和仿真)
7TL
r
和PA0引腳連接用來接收主控芯片輸岀的轉(zhuǎn)向電
的動(dòng)作指令 33、,并通過 0UT1和0UT2來控制轉(zhuǎn)向電機(jī)的正轉(zhuǎn)與反轉(zhuǎn),最終功能的實(shí)現(xiàn)表現(xiàn)在小車的左轉(zhuǎn)與
寧的IN1和
L
諭方無障冊物
II
詢方仃障礙物
V
麗進(jìn)
等待下次中斷觸發(fā)
4
I
JJ
1
T
T
i
根據(jù)檢測到的障礙物怙況(分 7種人從7個(gè)動(dòng)作函數(shù)屮選擇 一個(gè)執(zhí)行
IT
T
檢測傳感器端
T
i.i最初的程序設(shè)計(jì)主流程
端口值是
多少?
T
I勺反饋值前方
T
發(fā)現(xiàn)左方有小障礙(001 ):前進(jìn)并右轉(zhuǎn)
L V
7個(gè)動(dòng)作:
發(fā)現(xiàn)前方有小障礙
發(fā)現(xiàn)右方有小
^n,\i
PWM模式控制小
ZU
0
7
初始時(shí)小車的 34、速度,以便于調(diào)試。第一版程序中為小車設(shè)計(jì)了如下
而自然的想法。用定時(shí)器T0的快
010 ):后退并右轉(zhuǎn)
、障礙(100) :前進(jìn)并左轉(zhuǎn)
障礙物根據(jù)
種),從7個(gè)動(dòng)作函數(shù)中選擇一個(gè)執(zhí)行 前進(jìn)等待下次中斷觸發(fā) 前方無障礙物
INT0中斷觸發(fā)端口值是多
r >
[NT0中斷觸發(fā)
L J
1
F
檢測傳感器端口的反饋值
1
f
35、
T
T
T
T
T
T
T
T
的,不能根據(jù)
環(huán)境自動(dòng)調(diào)整,前進(jìn)后退都太沖;因?yàn)閯?dòng)作都是用延時(shí)函數(shù)實(shí)現(xiàn)的,動(dòng)作中要禁用全局中斷,導(dǎo)致發(fā)現(xiàn)障
Tj
T
發(fā)現(xiàn)前方有大障礙(111):
發(fā)現(xiàn)右方有大障礙(110 ):后退并右轉(zhuǎn);
交大的后退并右轉(zhuǎn)
發(fā)現(xiàn)左方有大障礙(011 ):后退并左轉(zhuǎn);
發(fā)現(xiàn)兩邊有障礙但中間無障礙T 101):較大的后退并右轉(zhuǎn);
按照這樣
常常一頭撞上去:后退
態(tài),經(jīng)常撞上后面的物體。
礙物不及時(shí),
時(shí)動(dòng)作無法調(diào)整,即使已經(jīng)避開了障礙物還是無法及時(shí)轉(zhuǎn)換成前進(jìn)狀
36、巳整,
鑒于以上發(fā)現(xiàn)的問題,我們又修改寫成了第二版程序,流程圖與第一版大致 相同,所不同的
r &
反饋值,然后根據(jù)反饋值選擇下一步動(dòng)作。也就是說,
理函數(shù)形成了循環(huán),循環(huán)的唯一岀口在前進(jìn)函數(shù)里,只有
可的是每次動(dòng)作的時(shí)間都被改得非常短(約幾個(gè)毫秒),在每個(gè)動(dòng)作結(jié)束后都在此檢測探測器
8個(gè)動(dòng)作函數(shù)(加了一個(gè)前進(jìn))和一個(gè) INTO中斷處
已無障礙物時(shí)才能退
nr — v n — v nr — v n 器 V nr — v
望通過縮短每次動(dòng)作的時(shí)間、縮短兩次探測之間的間隔時(shí)間來達(dá)到變行進(jìn)邊探測效果,使小車的動(dòng)作更加
檢測到前方
斷。我們希
?TF
靈敏。
1.2
mi 37、
T1
r
01
I
前方無障礙物
前方有障礙物
L
仃障/
L
刖進(jìn)
1/
等待下次中斷觸發(fā)
7種)
斷端口值
但隨之而來又出現(xiàn)了新
T
T
T
檢測判斷
端口侑
T
個(gè)動(dòng)作函數(shù)中選擇一個(gè)執(zhí)行
h V iff V v
障礙物情況
很拡檢測別的障礙物 38、怙況(分
7種)*從7個(gè)動(dòng)作函數(shù)中選擇
一個(gè)執(zhí)疔
有障礙 無障礙INTO中斷觸發(fā) 端口值是多少? 檢測傳感器端口的反饋值 前方有障礙物 根據(jù)檢測到的
等待下次中斷觸發(fā) t
卜 * TV ¥
對于這一版程序,我們在調(diào)試過程中發(fā)現(xiàn)小車四處亂撞的問題已經(jīng)基本能解決了
端I r俏足 多少?
前方無障礙物檢測判
INTO 中
1
斷觸發(fā)
1
r
檢測傳感器端口的反饋價(jià)
1
39、
L
問題
的
具
V
IL
I
改為用
觸發(fā)溢岀
T1
L
I
1
I
I
I
4
L
L
T
4
T
4
前方無障礙物
前方仃障円物
I
等待下次中斷觸發(fā)
T1
T
■
端口俏足 多少?
體表現(xiàn)為:端口值有規(guī)律
根掘檢測到的陽礙物情況(分 7種),從7個(gè)動(dòng)作函效中選擇 一個(gè)執(zhí)行
有一個(gè)動(dòng)作,動(dòng)作完成后不再'
1.3第三版程序的主流程圖:
等待下次中斷再修改控制端口值。
(分 7
同時(shí)節(jié)省CPU時(shí)間,我們對程序進(jìn)行了 40、較大調(diào)整
■ ’
中進(jìn)行檢測和行動(dòng)。
iflr ;
地閃動(dòng),大約0.2秒閃一次,出現(xiàn)一個(gè)極短的脈沖,其值恰好是 前進(jìn)
TA
因造成了這種現(xiàn)象,是退岀中斷服務(wù)程序時(shí)的一個(gè)脈沖。
Il A* L II
TH
前進(jìn)和轉(zhuǎn)向的端
Tr
溢岀中斷 端口值是多少? 檢測傳感器端口的反饋值 前方有障礙物 根據(jù)檢測到的障礙物情況
為了解決端口電平不穩(wěn)定的問題,也為了定時(shí)更加準(zhǔn)確 金」 —
器來控制動(dòng)作和檢測。
這時(shí)的行動(dòng)只是改變控制端口值,不需要延時(shí)函數(shù),這就大大節(jié)約了 CPU時(shí)間。每個(gè)動(dòng)作函數(shù)都精簡到只
r 1
T1溢出中斷
1
檢測傳感器端口的反慣值
41、
1
F
f
L
L
L
I
1
種)
另外
在啟
I
自動(dòng)變速
INT1
L
I
在測試中
I
暢了許多
71
L
L
V
v
£
L
L
L
L
L
第四版程序中新增添了防卡死機(jī)
實(shí)現(xiàn)
1.4
L
L
!
V
n
42、
1
V
ir
n
V
I
I
*
T
7
, 43、小車在光電開關(guān)檢測距離閾值的地方正好速度
連續(xù)動(dòng)作的進(jìn)行時(shí)間,由程序
* L
第四版程序的主流程圖
動(dòng)和制動(dòng)時(shí)給小車較大的動(dòng)力
能夠保證小車在改變方向時(shí)有足夠的
1/X1 夕
j J
7個(gè)動(dòng)作函數(shù)中選^
從這一流程圖可以看出
?的速度不再由各個(gè)動(dòng)作函數(shù)直接指定,而是通過計(jì)算一個(gè)
. TA Z .
的OCRO值。這樣做主要是為了配合小車的啟動(dòng)和制動(dòng),
t L Il
在前方障礙物的檢測和避過上已經(jīng)
,U 丁亠即 ff V
在隨意放置的障礙物陣中迅速找到前進(jìn)的路線穿過陣列。由于加上了自動(dòng)變速程序,小車的動(dòng)作也變得流
J* ■ ,亠 ri J* ■ ,亠 ri J* 44、■
斷觸發(fā)
我們盡可能的精簡了小車的動(dòng)作過程
而在一般行進(jìn)時(shí)使用普通功率,這樣就可以既有效的控制小車的速度,又 E們還修改 丨
兩個(gè)按鍵的功能,不再是控制起始速度,而是控制普通行進(jìn)時(shí)的速度,使這兩個(gè)控制按鍵更加實(shí)用。
使得整個(gè)判斷處理過程簡潔而迅速。
1
eV
E'l
*
TJ L
rJ
t
45、
4/
端口值是
多少?
詢力無障礙物
T1溢出中斷
記錄上一次釣動(dòng)作持續(xù)時(shí)間
檢測傳感器端口的反饋(3
1 1
前方有障倚物
根據(jù)檢測到的障筒物帖況(分 7種人從7個(gè)動(dòng)作函數(shù)中選擇 —個(gè)執(zhí)行
T1
等待下次中斷觸發(fā)
溢岀中斷端口值是多少?
反饋值
種),從
否卡死?
7個(gè)動(dòng)作函數(shù)中選擇一個(gè)執(zhí)行 等待
■ \ ■ I
執(zhí)行卡死 處理函數(shù) 清空歷史記錄 否是
次中斷觸發(fā)
執(zhí)行卡死 處理函數(shù)
清空歷史記錄
前方有障礙物根據(jù)檢測到
前方無障礙物記錄上?
(分 46、 7
次的動(dòng)作持續(xù)時(shí)間 是
尋物情況
I
L
I
寸是一個(gè)有
7
t
8次動(dòng)作中有7次以上持續(xù)時(shí)間在
V
中間沒有時(shí)
L
L
I
行從障礙物中間穿過
比
較靈敏了
I
I
L
此外有兩
函數(shù)。
f
L
L
L
L
I
L
L
I
*
共有
J
, 47、isr_INTO();
mid_power
個(gè)輔助軟件3
L
期間禁用了 T1
7種設(shè)定的障礙物情況,詳
T
相關(guān)函數(shù):
從啟動(dòng)開始,利用變量
防卡死機(jī)制有效地解決了小車
程序設(shè)計(jì)了 3擋自動(dòng)調(diào)速
探測到障礙物需要
障礙探測模塊:如前所述,通過讀取
T
0.4秒以下,就認(rèn)為小車被卡住了, 這時(shí)執(zhí)行卡死處理函數(shù),讓小車退岀卡死區(qū)域。
L jV1 L jd* Il L
障礙物的躲避也
行進(jìn)方向 y
mid_power 值加1
卡死處理函數(shù)使用了延
ax_power, fast_poWer,
間,使用最大功率連續(xù)前進(jìn)或后退 0.3秒以克服摩擦阻力,接下來 0 48、.3秒時(shí)用較大功率,以后使用普通功
I /n
時(shí)重新計(jì)時(shí)。通過兩個(gè)獨(dú)立按鍵可以調(diào)整普通功率 q
視障礙物情況執(zhí)行1-3次倒退轉(zhuǎn)向動(dòng)作。此外我們改變了一個(gè)動(dòng)作函數(shù)
yrixl 穴1氣1 穴VXI 孑
相關(guān)函數(shù):
- — 1
作為小車周期性探測和動(dòng)作的時(shí)鐘。
,片 f
定時(shí)器產(chǎn)生0.1秒間隔的溢岀中斷
每次行進(jìn)方向改變,即由后退轉(zhuǎn)為前進(jìn)或由前進(jìn)轉(zhuǎn)為后退時(shí)
率。其間如果:
V
直計(jì)算按鍵的時(shí)間,每個(gè)時(shí)間單位
count moVe來計(jì)算連續(xù)行動(dòng)的時(shí)
這一版程序?yàn)槲覀冃≤嚨淖罱K定型程序。
set_OCRO()
trap_handler();
delay100us(n) 49、; f
j
delay10ms(n);
動(dòng)作歷史記錄隊(duì)列為基礎(chǔ)的
s ■亠
timer1_init();.
I
isr_timer1_ovf(); y
/Tl\|
histoid],
Hr * *
PWM波形來控制驅(qū)動(dòng)電機(jī)的輸出功率。
F 1
程序模塊構(gòu)成
J 1
系統(tǒng)時(shí)鐘模塊:通過T1
亍h *
771
8個(gè)元素的數(shù)組
個(gè)八"
即認(rèn)為一次連續(xù)動(dòng)作結(jié)束,記錄這個(gè)動(dòng)作的
1
I
I
I
I
A
t
I
I
常規(guī)動(dòng)作模塊:
1
V1
0
L
L
I
r
V
L
I
110
L
L
L
histo 50、ry [8]
L
L
曰.
/
若有改變則
歷
動(dòng)
V1
相關(guān)函數(shù)
I
trap_handler();
V
*
且保
芻
f
相關(guān)函數(shù):
V
下(括號內(nèi)
現(xiàn)端口值不穩(wěn)定的問題,該函數(shù)使用
100(
A J
¥
L
a j
¥
L
每次T1
move_front_bigobj())
V ‘ I
)
3次
T
在行進(jìn)中對障礙
* Ik
相關(guān)函數(shù):
T1定時(shí)器,這樣設(shè)計(jì)是因?yàn)檐浖訒r(shí)對時(shí)間間隔的控制更為靈活。 為了防止像以前版本中的軟件延時(shí)動(dòng)作
7^3層嵌套判斷結(jié)構(gòu)
)
8次連續(xù)動(dòng)作所經(jīng)過的時(shí)間。初始值都設(shè)定為
Hr 51、I
111):較大的后退并右轉(zhuǎn)
說明小車在
(通過 isforward變量標(biāo)志)
isr timer1 ovf()
_別
足以使小車退到安全區(qū)域
move_front_obj())
史記錄自動(dòng)清空為初始狀態(tài)。
%
L
%
L
move_right_obj())
move_left_obj())
函數(shù)一樣
判斷,若中間有一次探測發(fā)現(xiàn)障礙物消失,則退岀函數(shù)繼續(xù)執(zhí)行常規(guī)動(dòng)作。這樣就可以使函數(shù)的最大動(dòng)作 動(dòng)作的流暢性。
record_history();
發(fā)現(xiàn)右方有小障礙(100 ):前進(jìn)并左轉(zhuǎn)
V」 V 乂 If V」
發(fā)現(xiàn)左方有小障礙(001 ):前進(jìn)并右轉(zhuǎn) 52、
“ 7/ - & 7/ *
發(fā)現(xiàn)前方有小障礙(010):后退并右轉(zhuǎn)
閾值的位置上且
'一 L
t J*1 L * dB1 k t J01
等于4 (連續(xù)動(dòng)作持續(xù)時(shí)間小于或等于 0.4秒),則變量recorder加1;若最終recorder值大于或等于 7
賣多次改變了行進(jìn)方向,則認(rèn)為小車處在探
根據(jù)障礙探測模塊的返回值,由 8個(gè)動(dòng)作函數(shù)控制小車的各種動(dòng)作。修改后的動(dòng)作列表如
THAI E
發(fā)現(xiàn)兩邊有障礙
時(shí)間達(dá)到0.9秒
history[]數(shù)組的各個(gè)元素值
行卡死處理函數(shù)trap_handler()。trap_handler()是一個(gè)使用軟件延時(shí)作為計(jì)時(shí)方法的函數(shù), 53、執(zhí)行期間禁用
isr_timer1 ovf( trap_handler();
進(jìn)穿過;(move_double_obj() i/ V
其值代表之前
后退并右轉(zhuǎn);(move_rjght_bigobj()“
發(fā)現(xiàn)左方有大障礙(011 ):后退并左轉(zhuǎn);(move_left_bigobj())
V
_L
Fl
T
f r
1、系統(tǒng)實(shí)現(xiàn)功能:
A A
對于前方任意放置的障礙物的靈活規(guī)避;
3檔自動(dòng)變速;
正常行進(jìn)速度的手動(dòng)連續(xù)調(diào)節(jié);
防卡死機(jī)制,可以有效地退岀夾縫、
通過在小車前方擺放不同顏色的障礙物來測試小車的制動(dòng)距離。該項(xiàng)測量在小車行進(jìn)中進(jìn)行。
“ T1 匕 T
2、系統(tǒng)主要參數(shù)測試:
角落等區(qū)域。
給光電開關(guān)供電,前側(cè)放置不同顏色障礙物,通過尾部指示燈觀察探測距離。
淺色:30cm深色:20cm韋
■ 1 八…;
L
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識與測量1平面圖形的認(rèn)識練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)上冊期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級語文上冊第六單元知識要點(diǎn)習(xí)題課件新人教版
- 2022春一年級語文下冊課文5識字測評習(xí)題課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版