資料介紹
描述
對(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)目期間使用。
上面看到的綠線將來自 IR 距離傳感器的信號(hào)帶到 ADC。紅線和黃線允許與 TI Launchpad 進(jìn)行通信。IR 傳感器使用 ADCD 中斷程序運(yùn)行,設(shè)置為每 4 毫秒采樣一次。
綠線來自連接在綠板另一側(cè)的 1x3 插頭引腳。每個(gè)接頭上的中間引腳是電源,底部引腳是接地。電源和接地連接焊接在電路板的背面,如下所示。
短的黑線是紅外距離傳感器的地線,穿過電路板的紅線是紅外傳感器的電源,焊接在電路板邊緣 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 行。
本項(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é)果
上面的視頻顯示了使用下面的代碼運(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ì)非常有幫助。
- IIS2MDC 3D數(shù)字磁力計(jì)應(yīng)用筆記
- LSM303AH 3D數(shù)字磁力計(jì)和3D數(shù)字加速度計(jì)應(yīng)用筆記
- LIS2MDL 3D數(shù)字磁力計(jì)應(yīng)用筆記
- ISM303DAC:高性能、低功耗、緊湊型3D加速度計(jì)和3D磁力計(jì)模塊
- MPU 9250型產(chǎn)品規(guī)格 2次下載
- QFN封裝的復(fù)合芯片MPU9250數(shù)據(jù)手冊(cè) 1次下載
- MPU9250資料包分享 39次下載
- QMC5883L磁力計(jì)介紹(硬件+軟件)(附STM32程序~~~)
- 電子產(chǎn)品MPU-9250規(guī)格書英文版下載 0次下載
- ADIS16400:帶磁力計(jì)的三軸慣性傳感器數(shù)據(jù)表
- ADIS16405:帶磁力計(jì)的三軸慣性傳感器數(shù)據(jù)表
- MPU9250的中文數(shù)據(jù)手冊(cè)免費(fèi)下載 208次下載
- MPU9250陀螺儀QFN封裝的復(fù)合芯片中文說明書免費(fèi)下載 66次下載
- MPU-9250-寄存器手冊(cè) 0次下載
- GY9250 MPU9250資料 182次下載
- mpu6500和mpu6000哪個(gè)好 3078次閱讀
- mpu6050和mpu6500哪個(gè)性能好 6359次閱讀
- TC3xx芯片的MPU功能詳解 1792次閱讀
- 基于雙壓電懸臂梁的交變梯度磁力計(jì)設(shè)計(jì) 490次閱讀
- 如何利用HMC5883L實(shí)現(xiàn)三軸磁力計(jì)的設(shè)計(jì) 5456次閱讀
- 九軸傳感器之加速度計(jì)是怎么回事 2786次閱讀
- digilent三軸數(shù)字羅盤介紹 2937次閱讀
- digilent9軸慣性測(cè)量單元及氣壓計(jì)簡(jiǎn)介 1373次閱讀
- 微雪電子樹莓派傳感器擴(kuò)展板 | Sense HAT (B)介紹 3339次閱讀
- 針對(duì)樹莓派設(shè)計(jì)的Sense HAT 8774次閱讀
- 教你i.MX RT1052的開源AutoQuad飛控 1.9w次閱讀
- 縮短設(shè)計(jì)周期的方案 快速的傳感器設(shè)計(jì) 快速的MCU設(shè)計(jì) 1638次閱讀
- 簡(jiǎn)單講解汽車四輪定位儀中的傾角傳感器 7127次閱讀
- TDK與AKM共同開發(fā)高精度3軸TMR磁力計(jì)的關(guān)鍵數(shù)據(jù)、主要特點(diǎn)與優(yōu)勢(shì)解析 8323次閱讀
- mpu6050和mpu3050有什么不同和相同(基礎(chǔ)介紹和區(qū)別分析) 3.6w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 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元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 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è)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 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é)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多