電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用MPU 9250的磁力計(jì)來定位小型3輪汽車

使用MPU 9250的磁力計(jì)來定位小型3輪汽車

2022-11-16 | zip | 1.95 MB | 次下載 | 免費(fèi)

資料介紹

描述

對(duì)于這個(gè)項(xiàng)目,我開始使用 MPU-9250 中包含的磁力計(jì)來定位一輛小型 3 輪汽車,以便讓它沿著 12 英尺乘 12 英尺見方的設(shè)定路徑行駛,并使用 IR距離傳感器,以防止汽車撞墻。完成此任務(wù)所需的技能包括:

  • 用 C 編寫代碼、調(diào)試、了解德州儀器的 Code Composer Studio、使用中斷服務(wù)例程和 SPI 通信。
  • 閱讀數(shù)據(jù)表,寄存器映射
  • 焊錫絲、表面貼裝元件、排針

簡(jiǎn)介和硬件連接

我解釋了汽車的設(shè)置和使項(xiàng)目工作的組件。

項(xiàng)目車使用德州儀器 F28379D Launchpad XL 來處理處理。還使用了 MPU-9250、直流電機(jī)和幾個(gè)IR 距離傳感器。下面顯示了它們?nèi)绾芜B接的進(jìn)一步說明。附在綠板上的蜂鳴器也在項(xiàng)目期間使用。

poYBAGNy7_WAE5YFAAqq7oDzrps581.jpg
?

上面看到的綠線將來自 IR 距離傳感器的信號(hào)帶到 ADC紅線和黃線允許與 TI Launchpad 進(jìn)行通信。IR 傳感器使用 ADCD 中斷程序運(yùn)行,設(shè)置為每 4 毫秒采樣一次。

pYYBAGNy8AKANxUTAA0szqCli18094.jpg
?

綠線來自連接在綠板另一側(cè)的 1x3 插頭引腳。每個(gè)接頭上的中間引腳是電源,底部引腳是接地。電源和接地連接焊接在電路板的背面,如下所示。

pYYBAGNy8AmAZTPQAA4KlK6i8Fw899.jpg
?

短的黑線是紅外距離傳感器的地線,穿過電路板的紅線是紅外傳感器的電源,焊接在電路板邊緣 2x5 孔區(qū)域的三個(gè)大孔上方.

MPU-9250 使用 GPIO 引腳 63、64、65 和 66 連接到 Launchpad。GPIO 63 連接到 SPI 串行數(shù)據(jù)輸入(MPYU-9250 上的 SDA),GPIO 64 連接到 SPI 串行數(shù)據(jù)輸出( AD0),GPIO 65 連接到串行時(shí)鐘(SCL),GPIO 66 連接到片選(NCS)。MPU-9250 還可以使用 I2C 進(jìn)行通信,其中 GPIO63/SDA 為 I2C 串行數(shù)據(jù)端口,GPIO64/AD0 為 I2C 從地址最低有效位,GPIO65/SCL 為 I2C 串行時(shí)鐘。就本項(xiàng)目而言,SPI 將是 MPU-9250 唯一感興趣的通信方法,但如果需要也可以使用 I2C。

電機(jī)從 QEP A 和 B 接頭連接到 Launchpad,其中 QEP A 對(duì)應(yīng)于左側(cè)電機(jī),QEP B 對(duì)應(yīng)于右側(cè)。左側(cè)電機(jī)的 PWM 或占空比連接到 GPIO 3,右側(cè)電機(jī)連接到 GPIO 2。蜂鳴器連接到 GPIO16。

下圖顯示了磁力計(jì)的軸。為了了解磁力計(jì)的工作原理,我不得不在通過 SPI 與芯片通信的程序運(yùn)行時(shí)用手小心地轉(zhuǎn)動(dòng)整輛汽車。我將汽車在?? 3 個(gè)軸上分別旋轉(zhuǎn)至少 360 度,以查看不同的 X、Y 和 Z 值如何隨汽車的位置而變化。感謝 Evan Hall 創(chuàng)建的代碼,我在下面和這個(gè)項(xiàng)目的團(tuán)隊(duì)部分承認(rèn)了他,我能夠?qū)⒋帕τ?jì)的 X 和 Y 測(cè)量值轉(zhuǎn)換為 0 到 360 度之間的方位角。這部分代碼在第 727 到 738 行。

poYBAGNy8AyAcfVRAAAYfBvA3oM161.jpg
?

本項(xiàng)目磁力計(jì)與SPI通信,SPI的傳輸命令位于ADCD中斷函數(shù)中,設(shè)置為每4ms超時(shí)一次。因此,在 SPIB 中斷功能中,磁力計(jì)每 4ms 以及通過 SPI 采樣一次。

MPU-9250 磁力計(jì)的問題是,當(dāng)靠近金屬或電氣設(shè)備時(shí),會(huì)有很多噪音可以甩掉羅盤角的方位。即使是靜止不動(dòng),角度也有10度左右的急速波動(dòng)。在地圖上應(yīng)該是北方的地方和磁力計(jì)確定的北方之間似乎也有大約 20 度的偏移。為了解決這個(gè)問題,我為羅盤角度創(chuàng)建了一個(gè) 20 點(diǎn)的平均值。它顯著減少了角度的波動(dòng),但由于磁力計(jì)的靈敏度,干擾仍然存在。

平均濾波器的結(jié)果使汽車的定位更加準(zhǔn)確,但由于干擾仍然存在誤差。過濾器的 0/360 度點(diǎn)也會(huì)導(dǎo)致問題,因?yàn)閷?duì)接近 360 度以下和接近 0 度以上的角度進(jìn)行平均也會(huì)導(dǎo)致平均角度被拋出。因此,我盡量避免在汽車旋轉(zhuǎn)過程中靠近這個(gè)點(diǎn)。

項(xiàng)目說明

我希望這輛車完成的目標(biāo)是從某個(gè) 12x12 平方英尺的正方形開始,并開始面向東方。汽車將播放一首包含單個(gè)音符的歌曲,然后使用磁力計(jì)控制其方向向西旋轉(zhuǎn),然后沿負(fù) X 方向向最西面的墻壁行駛。從那里,使用面向汽車前部的電機(jī)編碼器或紅外傳感器,它會(huì)停下來然后轉(zhuǎn)向南方,并沿著墻壁沿負(fù) Y 方向行駛,轉(zhuǎn)向避開它并試圖保持前進(jìn)。電機(jī)編碼器跟蹤車輪的旋轉(zhuǎn),以根據(jù)提供的初始條件識(shí)別汽車的位置。

到達(dá)廣場(chǎng)的左下角,它會(huì)在一個(gè)音階上演奏一個(gè)單音的第二首歌曲,然后轉(zhuǎn)向東方,沿著底墻,然后到達(dá)廣場(chǎng)的右下角,在那里它會(huì)播放第三首歌曲/音符,然后轉(zhuǎn)向廣場(chǎng)的中間。一旦它靠近,它會(huì)在前進(jìn)和后退時(shí)自行轉(zhuǎn)動(dòng),以到達(dá)正方形中的點(diǎn) (6,6),如果左下角是 (0,0)。比例控制將用于控制轉(zhuǎn)彎的速度,以在行駛狀態(tài)下到達(dá)每個(gè)方向并保持在目標(biāo)上。

為了讓汽車執(zhí)行所需的操作,我在 SPI 中斷函數(shù)中創(chuàng)建了一個(gè)狀態(tài)機(jī)。在計(jì)算羅盤角度并對(duì)其進(jìn)行平均后,狀態(tài)機(jī)確定汽車正在行駛的路徑的哪一部分。在第一個(gè)狀態(tài),用變量“state”標(biāo)識(shí),變量設(shè)置為 10,汽車將播放一個(gè)音符的第一首歌,表明它正在啟動(dòng),并旋轉(zhuǎn)到對(duì)應(yīng)于向西行駛的角度朝向墻壁。一旦正確定向,汽車就會(huì)進(jìn)入狀態(tài) 20 并向墻壁移動(dòng)。

一旦它檢測(cè)到墻壁或電機(jī)編碼器確定它已經(jīng)接近墻壁,它將進(jìn)入狀態(tài) 30 并轉(zhuǎn)向南方。轉(zhuǎn)向南后,車子進(jìn)入40狀態(tài),向廣場(chǎng)的南墻方向行駛。朝向汽車右側(cè)的紅外傳感器將防止汽車撞到墻上。前 IR 傳感器將確定汽車是否足夠靠近南墻,或者一直在計(jì)算汽車在正方形中的位置的編碼器將確定是否已達(dá)到指定的 Y 坐標(biāo),狀態(tài)將變?yōu)?50。

在狀態(tài) 50 時(shí),將播放另一個(gè)音符的第二首??歌曲,根據(jù)磁力計(jì)的測(cè)量結(jié)果,汽車將轉(zhuǎn)向東方。然后它將進(jìn)入狀態(tài) 60 并沿著南墻行駛,使用右側(cè)的 IR 傳感器防止它再次撞到墻上。到達(dá)第三個(gè)拐角時(shí),由前面的紅外傳感器達(dá)到足夠高的電壓或編碼器確定 X 坐標(biāo),汽車將進(jìn)入狀態(tài) 70。在這里,它播放第三個(gè)音符/歌曲,并使用磁力計(jì)將自己指向廣場(chǎng)的中心。

狀態(tài) 80 是汽車向廣場(chǎng)中心行駛的地方,一旦接近,將左右轉(zhuǎn)向并向后移動(dòng),使汽車前部朝北并定位在坐標(biāo) (6,6) 處。到達(dá)這一點(diǎn)后,汽車進(jìn)入狀態(tài) 90,播放第四首也是最后一首歌曲的最高音,表示程序結(jié)束。

項(xiàng)目最終結(jié)果

項(xiàng)目運(yùn)行視頻。

上面的視頻顯示了使用下面的代碼運(yùn)行的項(xiàng)目。它能夠根據(jù) MPU-9250 磁力計(jì)的讀數(shù)轉(zhuǎn)動(dòng),但由于它旋轉(zhuǎn)得如此之快,車輪打滑,編碼器無法準(zhǔn)確判斷汽車轉(zhuǎn)動(dòng)了多遠(yuǎn)。因此,汽車跟蹤的 X 和 Y 坐標(biāo)也不準(zhǔn)確,這會(huì)干擾狀態(tài)機(jī)從旋轉(zhuǎn)狀態(tài)到行駛狀態(tài)的正確進(jìn)程。在轉(zhuǎn)彎狀態(tài)下對(duì)轉(zhuǎn)彎速度的比例控制似乎確實(shí)提高了轉(zhuǎn)彎的準(zhǔn)確性,但嘗試使用類似的方法使汽車在行駛狀態(tài)下保持在軌道上,使得汽車在狀態(tài) 70 之后無法運(yùn)行。

下一步

嘗試使用 MPU-9250 磁力計(jì)作為控制汽車方向的一種手段,這表明它可能不是最好的方向控制形式,因?yàn)槲疫M(jìn)行了測(cè)試的機(jī)電一體化實(shí)驗(yàn)室中金屬和電子設(shè)備的干擾量很大雖然我確實(shí)使用比例控制來控制轉(zhuǎn)動(dòng)速度,但可以實(shí)施 PID 控制器的更多方面,以進(jìn)一步提高每次轉(zhuǎn)動(dòng)的精度,并防止在電機(jī)編碼器跟蹤全局坐標(biāo)的方式中產(chǎn)生錯(cuò)誤的打滑。狀態(tài)機(jī)在確定行駛狀態(tài)在哪里結(jié)束時(shí)也可能是幼稚的,并且改進(jìn)如何確定部分路徑的終點(diǎn)也將提高汽車行駛的準(zhǔn)確性。

我歡迎任何人嘗試改進(jìn)這個(gè)項(xiàng)目的狀態(tài)機(jī)部分,如果你有代碼可以告訴我,我可以嘗試看看它是如何工作的!

致謝

我要感謝伊利諾伊大學(xué)厄巴納-香檳分校的 Dan Block 教授在整個(gè)學(xué)期中的所有幫助,盡管大流行持續(xù)存在困難,但他制作了這門 SE 423 - 機(jī)電一體化課程,這對(duì)每個(gè)人來說都是一次很棒的經(jīng)歷。盡管我的最終項(xiàng)目沒有像我希望的那樣工作,但嘗試朝著我的項(xiàng)目目標(biāo)努力并解決出現(xiàn)的問題仍然很有趣。他提供了用于該項(xiàng)目的大部分代碼,包括初始化和幾個(gè)函數(shù)。他為該項(xiàng)目開發(fā)了綠板,并提供了該項(xiàng)目中使用的許多傳感器和設(shè)備。

我還要感謝 Evan Hall 根據(jù)磁力計(jì)讀數(shù)計(jì)算和角度的代碼。他的代碼對(duì)于理解如何有效地使用磁力計(jì)非常有幫助。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)