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