找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1714|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

從網(wǎng)上下載循跡小車紅外線線性處理方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
1.

使用光反射器
為了確定要遵循的路線,大多數(shù)參賽者正在使用兩個或更多數(shù)量的反光板。與地板反射率成正比的輸出電流通過電阻器轉(zhuǎn)換為電壓,并檢測是否檢測到線路。但是,閾值電壓不能固定為任何水平,因?yàn)槿缬覉D所示,環(huán)境光會向輸出電流添加光電流。
大多數(shù)工業(yè)用光電檢測模塊都使用調(diào)制光,以避免環(huán)境光的干擾。使用帶通濾波器對檢測到的信號進(jìn)行濾波,并過濾掉不使用的信號。因此,只能檢測到來自發(fā)光器的調(diào)制信號。當(dāng)然,檢測器一定不能被環(huán)境光飽和,這在檢測器在線性區(qū)域工作時是有效的。
在該項(xiàng)目中,脈沖光用于消除環(huán)境光。這適用于順序掃描的折迭式傳感器,以避免來自下一個傳感器的干擾。微控制器開始掃描傳感器狀態(tài),采樣輸出電壓,打開LED并再次采樣輸出電壓。兩個樣本之間的差異是LED產(chǎn)生的光電流,環(huán)境光產(chǎn)生的輸出電壓被抵消。其他傳感器也按順序掃描相同的avobe。
線路檢測的信號處理


圖顯示了實(shí)際的線位置與檢測到的線位置(中心值為640)之間的關(guān)系。微控制器掃描六個傳感器,并通過線附近兩個傳感器的輸出比來計(jì)算線位置。因此,僅使用六個傳感器就可以線性檢測線位置。所有傳感器輸出均被捕獲為與反射率成比例的模擬值,并且它們之間的靈敏度各不相同。在該系統(tǒng)中,為了消除輸出的變化,可以將每個傳感器的校準(zhǔn)參數(shù)保存在非易失性存儲器中。這可以通過在線模式完成。ISP電纜時,微控制器進(jìn)入在線模式附件,可以用N81 38.4kbps串行格式的終端程序進(jìn)行控制。S1命令監(jiān)視傳感器值,S2命令校準(zhǔn)參考表面(白皮書)上傳感器增益的變化。ATmega8必須設(shè)置為8MHz內(nèi)部osc。
2.
巡線
該機(jī)器人具有巡線能力。這意味著它能夠遵循明亮表面上標(biāo)記的黑色引導(dǎo)線。軌道上可能存在交叉線,在這種情況下,機(jī)器人會選擇直線方向。機(jī)器人可以避開途中的障礙物;如果檢測到障礙物,機(jī)器人就會倒轉(zhuǎn)并繼續(xù)向后移動。
最終,機(jī)器人可以在未知環(huán)境中找到引導(dǎo)線。當(dāng)機(jī)器人下方?jīng)]有線時,機(jī)器人開始沿螺旋軌跡尋找,直到穿過引導(dǎo)線。
線路傳感器模塊
指南標(biāo)有黑色 PVC 隔離膠帶。這種材料不反射紅外光,因此很容易通過表面的光反射來區(qū)分引導(dǎo)線。
傳感器模塊由3個探測器和4個發(fā)射器組成。發(fā)射器(紅外 LED)和檢測器(光電晶體管)交替放置成一排,以便每個光電晶體管被兩個紅外 LED 包圍。由于這種設(shè)計(jì),僅使用三個光電晶體管和四個紅外 LED 就可以測量傳感器模塊下方六個點(diǎn)的表面反射率。一般來說,這種方法減少了線路傳感器模塊所需的組件和 ADC 輸入的數(shù)量,這在尺寸限制方面是理想的。
下圖顯示了該方法的工作原理:
LED1發(fā)射紅外光,反射到光電晶體管T1,因此測量點(diǎn)1的光反射率。
然后,LED1 關(guān)閉,LED2 開始發(fā)射紅外光。光電晶體管 T1 測量點(diǎn) 2 處的光反射率。
在實(shí)際應(yīng)用中(特別是需要高刷新率時)必須考慮IR組件的特性。由于反應(yīng)延遲(延遲),如果在測量點(diǎn)1 的反射率后立即測量點(diǎn)2 的反射率,來自傳感器的數(shù)據(jù)可能會有偏差。為了避免這種情況,我在示波器上分析了傳感器特性,然后修改了掃描以某種方式排序,以便傳感器不會相互影響。
環(huán)境光抑制
由于光照條件往往會根據(jù)時間和地點(diǎn)的不同而變化,因此需要使用環(huán)境光抑制算法才能使傳感器正常工作。該方法很簡單:每個傳感器進(jìn)行兩次測量。首先,它掃描環(huán)境光量。然后,它打開紅外 LED 并再次測量該值。減去這兩個值,環(huán)境光的偏差就被抑制了。
傳感器校準(zhǔn)
各個光學(xué)元件的特性可能存在細(xì)微差異;因此應(yīng)校準(zhǔn)傳感器模塊。校準(zhǔn)分兩步手動完成:
1.偏移校準(zhǔn)
所有傳感器均放置在黑色引導(dǎo)線上方。一旦接收到校準(zhǔn)命令,所有傳感器都會測量表面反射率,并將測量值存儲在存儲器中。這些是偏移校準(zhǔn)值。從現(xiàn)在起,所有測量值都會自動使用此偏移進(jìn)行校正。(每次進(jìn)行測量時,只需從實(shí)際值中減去偏移量)。因此,當(dāng)所有傳感器位于黑線上方時,它們將返回相同的值。
2. 增益校準(zhǔn)
在增益校準(zhǔn)期間,所有傳感器都放置在白色表面上方。某些傳感器可能比其他傳感器更敏感,因此測量值彼此不同。但由于傳感器模塊下方的表面反射率應(yīng)該相等,因此可以輕鬆計(jì)算每個傳感器的增益?zhèn)S數(shù)。為了以后的測量,每個測量值都會與其增益?zhèn)S數(shù)相乘(相乘);以便所有校準(zhǔn)的傳感器都具有相似的特性。
因此,校準(zhǔn)的傳感器模塊將輸出標(biāo)準(zhǔn)化值。
處理來自傳感器、電機(jī)控制的數(shù)據(jù)
光學(xué)傳感器測量表面的光反射率,并通過線檢測算法處理獲取的數(shù)據(jù)。該算法的設(shè)計(jì)方式使得線寬無關(guān)緊要。線檢測算法輸出有符號整數(shù)值,該值表示引導(dǎo)線的實(shí)際偏轉(zhuǎn)。接近零的值意味著該線準(zhǔn)確地位于傳感器模塊的中間,正值表示該線向右偏轉(zhuǎn)了多少,負(fù)值表示向左偏轉(zhuǎn)了??多少。然后,該輸出用于線路跟蹤的比例積分微分 (PID) 控制。PID控制器根據(jù)實(shí)際的線路偏轉(zhuǎn)和之前的狀態(tài)來調(diào)整電機(jī)的速度。每秒評估線的位置 30 次。
換句話說,PID控制器驅(qū)動機(jī)器人,使得線路始終以傳感器模塊的中間為中心,從而使機(jī)器人執(zhí)行平滑的線路跟蹤。

3.
在下一個視頻中,我展示了使用 8 個 CNY70 傳感器進(jìn)行的測試。這些傳感器通過 Arduino Nano 的端口 A0 至 A7 進(jìn)行模擬測量。我使用初始算法通過將范圍標(biāo)準(zhǔn)化為 0 到 1000 來校準(zhǔn)傳感器,其中 0 代表白色背景,1000 代表黑線。完成校準(zhǔn)后,進(jìn)入循環(huán)并開始讀取周期,計(jì)算0到7000的位置,分別代表左傳感器到右傳感器。該位置值用于計(jì)算比例誤差P。P的范圍是-3500(左)到3500(右),以0為中心值。該算法會記住檢測到黑線的最后一個傳感器(左或右)的位置值,目的是使用該數(shù)據(jù)進(jìn)行制動操作和線路恢復(fù).

資料.7z

1.94 MB, 下載次數(shù): 6, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表