資料介紹
描述
介紹
我的最終項目的主要目標(biāo)是在機(jī)器人汽車上實(shí)現(xiàn)超聲波傳感器,并使用羅盤和 MPU-9250 寄存器。此外,我還將使用來自機(jī)器人汽車的陀螺儀寄存器數(shù)據(jù)來輸出機(jī)器人汽車在地板上的當(dāng)前位置(x,y 坐標(biāo))。

對于最后的演示,我希望我的機(jī)器人汽車能夠避開障礙物,并且 teraterm 將打印機(jī)器人汽車的當(dāng)前 x 和 y 坐標(biāo)。首先,要正確實(shí)現(xiàn)超聲波傳感器,我們首先需要將其連接到我們使用的發(fā)射臺,即 F28379D 發(fā)射臺。超聲波傳感器的工作電壓為 5 V。我們可以連接到發(fā)射臺上的 5 V 電源引腳,也可以連接到綠板上的任何 5 V 電源。在這個項目中,我將綠板的電源焊接到超聲波傳感器上。超聲波傳感器有四個引腳,分別是 vcc、觸發(fā)引腳、回波引腳和接地引腳。只要選擇不干擾其他傳感器和芯片,我們可以將觸發(fā)引腳和回波連接到 F28379D 發(fā)射臺的任何 GPIO 寄存器。在這個項目中,觸發(fā)引腳連接到 GPIO 15,回聲引腳連接到 GPIO 14。根據(jù)超聲波傳感器的數(shù)據(jù)表,觸發(fā)引腳需要低電平至少 2ms,然后變?yōu)楦唠娖?10ms,超聲波傳感器才能工作。根據(jù)我的測試,將初始低態(tài)時間設(shè)置更長可能有助于超聲波傳感器精確檢測更長的距離。在這個項目中,觸發(fā)引腳被命令保持低電平 3ms,然后保持高電平 10ms。最后,我使用 F28379D 發(fā)射臺的 ecap 外設(shè)來捕捉回波引腳接收信號所花費(fèi)的時間。回波距離是根據(jù)回波持續(xù)時間和 340 m/s 的速度計算得出的。下面的代碼片段顯示了觸發(fā)超聲波傳感器的方法,我們將超聲波傳感器的狀態(tài)存儲在參數(shù) trigger_state 中,當(dāng)觸發(fā)狀態(tài)為 0 時,我們將參數(shù)設(shè)置為 1,即低電平狀態(tài)持續(xù) 3ms。
void hc_sr04_trigger(void) {
if (trigger_count < 3) {
if (trigger_state == 0) {
// last for 3ms
GpioDataRegs.GPACLEAR.bit.GPIO15 = 1;
trigger_state = 1;
}
trigger_count++;
} else if ( (trigger_count >= 3) && (trigger_count < 12) ) {
// last for 10ms
if (trigger_state == 1) {
GpioDataRegs.GPASET.bit.GPIO15 = 1;
trigger_state = 2;
}
trigger_count++;
} else {
if (trigger_state == 2) {
trigger_count = 0;
trigger_state = 0;
}
}
}
為了計算機(jī)器人汽車的 x 和 y 坐標(biāo),我應(yīng)用了 Yorihisa Yamamoto 在“NXTway-GS Model-Based Design - Control of self-balancing two-wheel robot built with LEGO Mindstorms NXT”中撰寫的論文中的方程式。可以使用以下鏈接找到該項目:
https://www.mathworks.com/matlabcentral/fileexchange/19147-nxtway-gs-self-balancing-two-wheeled-robot-controller-design
具體來說,用于計算 x 和 y 坐標(biāo)的方程是論文中的方程 3.1 和 3.2。

x 方向和 y 方向的速度通過使用車輪的半徑乘以車輪的角速度,然后乘以電機(jī)的角度變化來計算。在計算 x 和 y 的速度后,我們可以直接根據(jù)我們設(shè)置的時間步長對速度進(jìn)行積分以獲得 x 和 y 坐標(biāo)。在這個項目中,可以使用 teraterm 查看 x 和 y 坐標(biāo)。下面的代碼就是這個公式和計算的實(shí)現(xiàn)。
LeftWheel = readEncLeft();
RightWheel = -readEncRight();
VLeft = (LeftWheel - LeftWheeli)/0.004;
VRight = (RightWheel - RightWheeli)/0.004;
dtheta = (VLeft + VRight)*0.5;
thetaabs = (0.108/0.679)*(RightWheel - LeftWheel);
x_dot = (0.108*dtheta)*cos(thetaabs);
y_dot = (0.108*dtheta)*sin(thetaabs);
x_pos = x_posi + (0.004*((x_dot + x_doti)/2));
y_pos = y_posi + (0.004*((y_dot + y_doti)/2));
x_posi、y_posi、x_doti 和 y_doti 是過去狀態(tài)(上一個時間步)的參數(shù),我們使用這些參數(shù)進(jìn)行時間積分。
MPU 9250 寄存器中的陀螺儀讀數(shù)也可用于計算電機(jī)角度的變化。使用的公式是根據(jù)本項目中 0.004s 的時間步長對陀螺儀讀數(shù)進(jìn)行積分。
蜂鳴器連接到 F28379D 發(fā)射臺的 GPIO 16,應(yīng)用 EPWM 9A 控制蜂鳴器。當(dāng)需要蜂鳴器時,我們需要將 pinmux 設(shè)置為 5,對應(yīng) EPWM 9A。當(dāng)我們不需要使用蜂鳴器時,我們可以將 pinmux 設(shè)置為 0 以阻止它發(fā)出噪音。在這個項目中,蜂鳴器被用作通知障礙物的信號。每當(dāng)超聲波傳感器檢測到某物時,蜂鳴器就會發(fā)出聲音通知它。
對于 MPU 9250 寄存器,SPI(串行外設(shè)接口)用于發(fā)送和接收來自 MPU 9250 寄存器所需的位和數(shù)據(jù)。我們設(shè)置 SPI 以接收來自加速度計的數(shù)據(jù)和來自 MPU 9250 寄存器的陀螺儀讀數(shù)。MPU 9250 連接到 F28379D 啟動板的 GPIO 63、GPIO 64、GPIO 65 和 GPIO 66。
項目基本邏輯
本項目中機(jī)器人小車的邏輯是在cpu timer 0中傳輸MPU 9250相關(guān)寄存器,在cpu timer 0中觸發(fā)超聲波傳感器,在cpu timer 1中計算電機(jī)相關(guān)參數(shù)。我們使用 if 語句來決定是否轉(zhuǎn)向。如果超聲波傳感器返回的回波距離小于 30cm,則轉(zhuǎn)彎參數(shù)將增加到 1。汽車將開始向左轉(zhuǎn)彎。連接蜂鳴器的GPIO 16的pinmux將設(shè)置為通道5,即EPWM 9A,用于蜂鳴器發(fā)出聲音。當(dāng)超聲波傳感器沒有檢測到任何東西時,GPIO 16 的 pinmux 為 0。
結(jié)論
根據(jù)測試和觀察,機(jī)器人小車可以在超聲波傳感器的實(shí)施下正常工作。機(jī)器人檢測到障礙物后向左轉(zhuǎn),同時蜂鳴器發(fā)出提示音。teraterm 將輸出機(jī)器人汽車的方向和 x 和 y 坐標(biāo)。
?
電路原理圖和電路板由伊利諾伊大學(xué)厄巴納香檳分校的布洛克教授(Dan Block)設(shè)計。電子郵件:d-block@illinois.edu
- 帶超聲波傳感器的PCB機(jī)器人車
- 微型智能機(jī)器人手指關(guān)節(jié)使用超聲波電機(jī)的優(yōu)勢 0次下載
- 超聲波傳感器在無人機(jī)和汽車安全駕駛的應(yīng)用 18次下載
- 超聲波測距原理及其系統(tǒng)設(shè)計 8次下載
- 【超聲波傳感器】超聲波傳感器使用問題詳解! 23次下載
- 探究超聲波傳感器在工業(yè)領(lǐng)域中的地位 0次下載
- 基于超聲波測距的機(jī)器人局部導(dǎo)航 22次下載
- 位差超聲波傳感器在智能玩具機(jī)器人中的應(yīng)用 70次下載
- 機(jī)器人測距傳感器的研究 161次下載
- 超聲波傳感器概述 128次下載
- 在線測量酵母濃度的超聲波傳感器
- 移動機(jī)器人超聲波避碰傳感器系統(tǒng)設(shè)計
- H ERO - Ⅰ機(jī)器人及其傳感器
- 機(jī)器人分布多傳感器系統(tǒng)的設(shè)計
- 在線測量酵母濃度的超聲波傳感器
- 基于PGA460超聲波傳感器信號調(diào)理器的參考設(shè)計 2410次閱讀
- 超聲波傳感器如何接線_超聲波傳感器測距 1.7w次閱讀
- 超聲波傳感器構(gòu)成的超聲波加濕器電路 8250次閱讀
- 超聲波傳感器的優(yōu)勢有哪些 4368次閱讀
- 超聲波傳感器的應(yīng)用 1890次閱讀
- 采用AT89C51微處理器和olaroid 600系列傳感器實(shí)現(xiàn)超聲波測距系統(tǒng)設(shè)計 1357次閱讀
- 超聲波傳感器的使用注意事項說明 3116次閱讀
- dfrobotSRF02超聲波傳感器介紹 1748次閱讀
- 超聲波傳感器的優(yōu)勢特點(diǎn)及應(yīng)用介紹 4056次閱讀
- 超聲波傳感器內(nèi)部結(jié)構(gòu)及特點(diǎn) 1.8w次閱讀
- 關(guān)于超聲波測距儀在機(jī)器人系統(tǒng)中的作用 5754次閱讀
- 超聲波傳感器及工作原理解析 9866次閱讀
- 機(jī)器人自動導(dǎo)航的超聲波傳感器介紹 3322次閱讀
- 超聲波傳感器有哪些用途_可以應(yīng)用到什么地方 3.6w次閱讀
- 超聲波傳感器的原理及應(yīng)用 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論