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

對于最后的演示,我希望我的機器人汽車能夠避開障礙物,并且 teraterm 將打印機器人汽車的當前 x 和 y 坐標。首先,要正確實現(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)時間設置更長可能有助于超聲波傳感器精確檢測更長的距離。在這個項目中,觸發(fā)引腳被命令保持低電平 3ms,然后保持高電平 10ms。最后,我使用 F28379D 發(fā)射臺的 ecap 外設來捕捉回波引腳接收信號所花費的時間。回波距離是根據(jù)回波持續(xù)時間和 340 m/s 的速度計算得出的。下面的代碼片段顯示了觸發(fā)超聲波傳感器的方法,我們將超聲波傳感器的狀態(tài)存儲在參數(shù) trigger_state 中,當觸發(fā)狀態(tài)為 0 時,我們將參數(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;
}
}
}
為了計算機器人汽車的 x 和 y 坐標,我應用了 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 坐標的方程是論文中的方程 3.1 和 3.2。

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