2026年2月1日 星期日

mBot2 行車條件測試

四路感測器校正

1. 雙擊四路感測器上方按鈕,藍燈閃爍
2. 讓四個感測器同時通過黑線,來回一次,藍燈停止閃爍
3. 測試,在黑線上方則藍燈滅


起始速度測試

不翹起的狀況:從RPM = 200, step = -20往下測試

初始 RPM = 80,微翹車頭,RPM=60,不翹

加速度500RPM/sec,每0.1秒提速50PRM,仍可順利不翹頭


每圈行走距離,空轉時為 20.3 cm

前進,後退指令:以RPM 50 前進後退,最長約496 cm

原地右轉360度:左輪前進640度,右輪後退640度

右輪不動右轉360度:左輪前進1280度

左右輪間距:約11.3 cm

按鈕A, B:可視為硬體中斷

每秒約可執行 12000次,也就是每個周期約為100us;
加入四路巡跡偵測,每秒約1000次,也就是每個周期約為1ms;
加入超音波,每秒約1000次,也就是每個周期約為1ms;
超音波似乎為中斷執行,加入超音波時,執行週期無明顯增加;


改變馬達轉速需較長時間,每秒約250次,也就是每個周期約為4ms;
當僅改變一個馬達時,每秒約500次,也就是改變一個馬達轉速約耗時2ms


假設0.01秒偵測一次,線寬約2cm,至少每1cm偵測一次;
則秒速不得超過 100cm/sec,代表約每秒5轉,RPM為300


若以RPM = 200 估計,秒速約為67cm,
輪長一周20cm,最大應該為200 rpm


速度(rpm)秒速(cm)
206.6
3010
4013.2
5016.6
6020
12040
18060
24070
30070


有角度偵測,可利用角度偵測改善偏差值

offset: 通常為 -96, -46, 0, 46, 96 幾種數值,中間的數值變化較不明顯。offset為正時代表車體偏右,負值代表車體偏左,但輸出非成線性變化,實際用處目前看起來不大

在RPM = 50的情況下,橫過直線,約可判斷250次
以RPM= 50, 速度V = 1000 cm/min = 16.7 cm/sec
橫跨2cm 約 0.12秒


左右兩側感測器間距稍寬於路徑黑線寬度,且因圖紙反射或車體歪斜,也就是當走偏但車體仍在線上時,有可能出現0000(與車體離線相同)或1100(類似左直角90度)的狀況,造成誤判。
解決方向:
1. 維持循線在 0100, 0110, 0010三種狀況
2. 前後多次偵測確認路線


在90度轉彎時,先判斷出橫向黑線叉路,由橫向黑線叉路跨到全白再轉90度,可在路線中間


以下,採用四種方式測試馬達轉彎
1. 先判斷黑線叉路,再判斷全白區=>右輪停,左輪轉320度,等效右轉90度,在轉彎前有明顯停頓
2. 先判斷黑線叉路,再判斷全白區=>右輪停,左輪以RPM=50轉動1.06秒,等效右轉90度,在轉彎前無停頓
3. 判斷黑線叉路,持續前進0.12秒(跨過黑線)=>右輪停,左輪轉320度,等效右轉90度,在轉彎前有明顯停頓
4. 判斷黑線叉路,持續前進0.12秒(跨過黑線)=>右輪停,左輪以RPM=50轉動1.06秒,等效右轉90度,在轉彎前無停頓

四種方法過彎時間如下,可知使用輪胎轉固定角度的花費時間較久,應以RPM加上轉動時間較佳
1. 1.62 sec
2. 1.19 sec
3. 1.61 sec
4. 1.19 sec



轉彎半徑:轉彎半徑以車體中心估算,若以轉彎側輪胎為距離,需再減5.6cm

轉彎半徑與兩輪的相對速度有關,例如RPM=50, 20與RPM =100, 50的轉彎半徑相同,惟過彎速度不同,右轉時左輪快,左轉時右輪快

左輪速度右輪速度相對速度轉彎半徑
50 45 90%106 cm
50 40 80% 50 cm
50 30 60% 22 cm
50 20 40% 13 cm
50 10 20% 8.4 cm
50 0 0% 5.6 cm
50-25 -50% 1.9 cm
50-50-100%    0 cm


四路感測器間距分別為:24 mm <-> 12 mm <-> 24 mm ,總計 60 mm
感應器在約 正負 3mm的範圍內,均可能感應到
改進方法 (?)=> 以3D列印在感應器下方加裝有四個孔洞的限縮板,限制光線入射範圍


0100 or 0010: 中心偏移的狀況
以線寬20mm計,感測器中心兩路距離12mm,表示從中心起,若位移4mm即超出邊界,但若以感測距離正負3mm計算,約需位移7mm才超出邊界

以下在轉彎的狀況下,計算橫向位移所需移動的距離及時間,轉速以RPM = 50為基準,另需要考慮感測器距離輪胎約7.5cm

左輪速度右輪速度相對速度轉彎半徑移動徑度(theta)移動距離(cm)移動時間(sec)
50 45 90%106 cm0.06426.830.41
50 40 80% 50 cm0.07463.760.23
50 30 60% 22 cm0.08311.860.11
50 20 40% 13 cm0.08681.130.07
50 10 20% 8.4 cm0.00890.750.04
50 0 0% 5.6 cm0.09050.510.03


1000 or 0001: 中心兩路完全不在線上的偏移狀況

以線寬20mm計,感測器中心兩路距離12mm,表示從中心起,若位移16mm (20/2+12/2)即完全超出邊界

以下在轉彎的狀況下,計算橫向位移所需移動的距離及時間,轉速以RPM = 50為基準,另需要考慮感測器距離輪胎約7.5cm

左輪速度右輪速度相對速度轉彎半徑移動徑度(theta)移動距離(cm)移動時間(sec)
50 45 90%106 cm0.116912.440.75
50 40 80% 50 cm0.14417.260.44
50 30 60% 22 cm0.17073.820.23
50 20 40% 13 cm0.18482.410.14
50 10 20% 8.4 cm0.19351.630.1
50 0 0% 5.6 cm0.19981.120.07


在前進的過程中,當偵測到路線狀況改變,由全白變為全黑並令馬達停止時,仍會向前前進多遠?
注意,此處距離由四路感測器最前沿開始計算

速度(rpm)前進距離(cm)
200.5
300.5
400.8
501
1003
1504.5
2008
2509
3009

轉彎方式比較(原地左轉與單輪左轉)

在40cm見方的正方形路線,轉彎十次

1. 原地左轉

感應到直角轉彎後,前進8cm,左輪-50 RPM後退右輪50 RPM前進,花費33.2秒



2. 單輪左轉

感應到直角轉彎後,前進2cm,左輪0 RPM停止右輪50 RPM前進,花費31.8秒



=========

因行進距離相同,平均每次轉彎,可快上0.14秒