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

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

3天內(nèi)不再提示

怎樣隨時重新校準磁力計

454398 ? 來源:wv ? 2019-10-23 11:34 ? 次閱讀

步驟1:您需要的東西

您可能已有一個使用MPU-9150的Arduino項目,在這種情況下,您可以將我的草圖加載到其中。 Neopixel環(huán)僅使用一個Arduino輸出引腳。

或者,您可以使用此處描述的設置。您可以使用其他功能來擴展它,并且可以根據(jù)需要為其他基于Neopixel環(huán)的項目使用其他硬件。

您將需要:

基于ATMega328的Arduino和電源(盡管您可能會使用其他電源)

MPU-9150加速度計/陀螺儀/磁力計

Adafruit Neopixel環(huán),12像素大小或更大的

無焊面包板,剝離板和跳線。

MPU-9150輸入不容許5V的電壓,因此以5V運行Arduino時,您將需要具有2個或更多電壓的5V/3.3V電平轉(zhuǎn)換器通道。這些東西從遠東eBay賣家那里非常便宜。由于Neopixels需要5V的全部電壓,因此您不能簡單地以3.3V的電壓運行整個項目。

電平轉(zhuǎn)換器將Arduino的SDA和SCL引腳以5V的電平供電,并以3.3V的電壓提供給MPU -9150。為此,它一方面需要5V電源,另一方面需要3.3V電源。幸運的是,常見的MPU-9150板包含3.3V穩(wěn)壓器,但是不幸的是,其輸出未在任何引腳上提供。因此,必須如圖所示將細線焊接到穩(wěn)壓器的輸出引腳上。

找到穩(wěn)壓器,該穩(wěn)壓器應標記為KB33(在第二張圖片的頂部)。您將需要一只穩(wěn)定的手和一個尖尖的烙鐵。將一根細線焊接到右上角的插針上。建立良好的連接后,請用一滴強力膠將其覆蓋,以防止其輕易脫落。

步驟2:將其連接

接線將取決于您使用的是插線板還是無焊面包板,哪種類型的Arduino,以及是否使用電平轉(zhuǎn)換器,因此我將為您確定接線或插線板布局。 (如果您覺得做不到,請嘗試一個或兩個簡單的Arduino項目或使用Stripboard的項目,然后在有想法的情況下返回。)

電平轉(zhuǎn)換器具有除Gnd之外,還有兩個標為HV和LV的電源輸入。使用您焊接到的細線,將HV連接到5V電源,將LV連接到MPU-9150的3.3V輸出。 Arduino的SDA和SCL引腳使用5V邏輯電平,并連接到電平轉(zhuǎn)換器的HV1和HV2引腳。然后,LV1和LV2引腳以3.3V邏輯電平向MPU-9150提供相同的信號。您的設備可能還具有未使用的HV3,HV4,LV3和LV4連接。

步驟3:對Arduino進行編程

該草圖包括三個文件(附加)。將這三個都復制到Arduino sketch文件夾中的新文件夾“ Compass”中。然后,草圖應出現(xiàn)在Arduino IDE的草圖簿中。

在編譯之前,請檢查“指南針”選項卡下文件頂部的#define配置選項,并根據(jù)需要進行修改。

PIN定義用于Neopixel數(shù)據(jù)輸入的Arduino引腳,默認情況下為引腳8。

BRILL是默認的像素亮度,最大可以為255,但是更高的值會造成盲目和可能消耗的電流超過電源所能提供的電流,尤其是使用較大尺寸的環(huán)之一時。我通常不會超過30。

PIXELS是指環(huán)中的像素數(shù)。 Adafruit當前提供的尺寸為12(非常好用),16、24(非常不錯的尺寸)和60(巨大-如果您有足夠的錢就可以了)。

已反轉(zhuǎn):如果您的戒指與MPU-9150在電路板的同一側(cè),請保留此注釋掉。相對于MPU-9150,第一個像素應位于加速度計的正Y方向。取消注釋您的戒指在板子的另一側(cè)(已將板子繞Y軸翻轉(zhuǎn))。

您將需要下載并安裝MPU6050庫(其中還包含代碼)用于MPU-9150,是MPU6050的超集)和Adafruit Neopixel庫。編譯草圖并將其上傳到Arduino。

步驟4:自動校準過程

首次運行草圖時,它首先輸入校準值程序。將完成的設備放在桌子上方幾英寸的地方,使電路板的一個邊緣與桌子的邊緣對齊,或者與其他固定的直邊對齊。

Neopixel環(huán)將顯示一些綠色和一些藍色像素。調(diào)平電路板,直到它們?nèi)孔優(yōu)榫G色。剩余的藍色像素表示該邊太高(天空為藍色)。當滿足水平要求時,將讀取數(shù)個磁力計讀數(shù),然后將所有像素閃爍一次。

現(xiàn)在,它將要求您在4個方向上將其傾斜45度,以綠色提示和藍色像素一樣,在每個位置進行測量,并將所有像素閃爍2、3、4,最后閃爍5次。始終注意使板的邊緣與桌子的邊緣對齊。

整個過程將重復3次,然后將計算并存儲磁力計的偏移量。

一旦校準,草圖將模擬指南針。消除藍色像素以使電路板保持水平,從而獲得可靠的讀數(shù)。紅點疊加在一起,表示北。點從一個像素移動到下一個像素時逐漸淡出。

您可以根據(jù)需要使它重新進入校準模式,只需將板急劇地向另一方向扭轉(zhuǎn)幾下即可。

p》

第5步:在自己的項目中使用草圖

您可以將校準功能合并到自己的項目中,方法是將我的代碼合并到自己的代碼中或添加代碼挖掘,取決于您已經(jīng)走了多遠。 Mine包含鉤子,可用于添加其他功能。

如果將Mine合并到自己的鉤子中,請完成Calibrate和Functions選項卡。在“指南針”選項卡中,您需要將我的Setup()函數(shù)與您的函數(shù)合并,并將之前的所有內(nèi)容合并到您的代碼中。您只需要調(diào)用Calibrate()函數(shù)即可進入校準模式。

“校準”選項卡包含兩個#define語句。 NUMSAMPLES定義每個位置獲取多少個磁力計讀數(shù)??赡軟]有特別的理由將其從10更改。這樣的數(shù)字可以確保始終保持穩(wěn)定。 NUMTESTS定義要重復執(zhí)行5個位置的完整過程的次數(shù)。一個很好的數(shù)字是3,但是對于速度而言,如果您只想進行粗略的校準,則1可能就足夠了。

步驟6:使用其他硬件

相同的技術(shù)可以用于其他磁力計,并且不僅限于Arduino,還必須對其進行調(diào)整,并可能將其從C語言翻譯為另一種語言。

如果將代碼修改為如果要使用其他磁力計,則MPU-9150會對磁力計和加速度計使用不同的坐標系。從一個交換到另一個需要交換X和Y值并取反Z。這是在readMag()函數(shù)中完成的,以便其余代碼可以僅在加速度計的坐標系中工作。一旦計算出偏移量,就將其轉(zhuǎn)換回磁力計坐標以進行存儲。

使用其他磁力計,原則上您只需要替換readMag()函數(shù)即可。

三個數(shù)組,mx [],my []和mz [] 5個元素中的每一個,將磁力計讀數(shù)保持在5個位置(即水平)上,分別繞X軸旋轉(zhuǎn)45度,然后繞X軸旋轉(zhuǎn),以及類似地繞Y軸旋轉(zhuǎn)。旋轉(zhuǎn)加速度計輸出的位置(第一個位置除外),以便displayCal()函數(shù)只需要計算變量“ angle”和“ up”,作為與所需方向和方向(作為浮點像素數(shù))的角度最大的坡度。將誤差的大小轉(zhuǎn)換為對數(shù)刻度,以在誤差較小時提供最大的靈敏度。當誤差在限制范圍內(nèi)時,displayCal()函數(shù)將返回布爾值true,一旦這樣做,行中就會以固定次數(shù)多次校準Calibrate()存儲磁力計讀數(shù)。

實際計算偏移量的計算需要幾頁代數(shù)和三角函數(shù),但僅用4行代碼即可實現(xiàn)。您可能會認識到魔術(shù)數(shù)0.7071是2或cos(45?)的平方根的一半。從1減去這個得到第二個魔術(shù)數(shù)0.29289并將其加倍得到第三個魔術(shù)數(shù)0.58579。畢竟不是魔術(shù)。

在校準中使用的45度傾斜沒有什么特別之處,但是它確實大大簡化了數(shù)學運算。原則上,您可以將設備繞垂直方向滾動,連續(xù)獲取來自加速度計和磁力計的讀數(shù),并計算偏移量,直到計算出的平均值穩(wěn)定在一個可靠的結(jié)果附近,但數(shù)學會復雜得多。 iOS Compass應用程序執(zhí)行此操作,這是我自動校準的想法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 校準
    +關(guān)注

    關(guān)注

    1

    文章

    152

    瀏覽量

    21822
  • 磁力計
    +關(guān)注

    關(guān)注

    1

    文章

    71

    瀏覽量

    20825
收藏 人收藏

    評論

    相關(guān)推薦

    陀螺儀LSM6DSV16X與AI集成(11)----融合磁力計進行姿態(tài)解算

    MotionFX庫包含用于校準陀螺儀、加速度磁力計傳感器的例程。 將磁力計的數(shù)據(jù)與加速度和陀螺儀的數(shù)據(jù)融合,可以大幅提高姿態(tài)估計的精度
    的頭像 發(fā)表于 09-06 16:57 ?1782次閱讀
    陀螺儀LSM6DSV16X與AI集成(11)----融合<b class='flag-5'>磁力計</b>進行姿態(tài)解算

    磁力計LIS2MDL開發(fā)(4)----MotionMC 執(zhí)行磁力計校準

    磁力計測量結(jié)果容易受到周圍環(huán)境中的硬鐵(Hard Iron)和軟鐵(Soft Iron)效應的干擾,從而影響精度。為了解決這一問題,磁力計校準變得至關(guān)重要。STMicroelectronics提供
    的頭像 發(fā)表于 08-26 10:56 ?1222次閱讀
    <b class='flag-5'>磁力計</b>LIS2MDL開發(fā)(4)----MotionMC 執(zhí)行<b class='flag-5'>磁力計</b><b class='flag-5'>校準</b>

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(11)----磁力計校準

    磁力計校準是確保傳感器數(shù)據(jù)準確性和可靠性的關(guān)鍵步驟。磁力計用于測量地球磁場,并在導航、定位、姿態(tài)測量等應用中起到重要作用。然而,磁力計在使用過程中會受到環(huán)境磁場、硬件偏差、安裝誤差等因
    的頭像 發(fā)表于 08-23 09:57 ?429次閱讀
    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(11)----<b class='flag-5'>磁力計</b><b class='flag-5'>校準</b>

    e2studio開發(fā)磁力計LIS2MDL(1)----輪詢獲取磁力計數(shù)據(jù)

    本文將介紹如何使用 LIS2MDL 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗證設備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取磁力數(shù)據(jù)和溫度數(shù)據(jù)。讀取到的數(shù)據(jù)會被轉(zhuǎn)換
    的頭像 發(fā)表于 08-09 15:14 ?1697次閱讀
    e2studio開發(fā)<b class='flag-5'>磁力計</b>LIS2MDL(1)----輪詢獲取<b class='flag-5'>磁力計</b>數(shù)據(jù)

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(10)----融合磁力計進行姿態(tài)解算

    MotionFX庫包含用于校準陀螺儀、加速度磁力計傳感器的例程。 將磁力計的數(shù)據(jù)與加速度和陀螺儀的數(shù)據(jù)融合,可以大幅提高姿態(tài)估計的精度
    的頭像 發(fā)表于 08-02 15:50 ?2066次閱讀
    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(10)----融合<b class='flag-5'>磁力計</b>進行姿態(tài)解算

    腦磁圖(MEG)新型技術(shù)及功能特點-多通道光泵磁力計便攜平臺

    腦磁圖(MEG)新型技術(shù)及功能特點多通道光泵磁力計便攜平臺腦磁圖(MEG)發(fā)展背景前景介紹腦磁圖(MEG)通過評估神經(jīng)電流產(chǎn)生的磁場來測量大腦功能。傳統(tǒng)的MEG使用超導傳感器,這對性能、實用性和部署
    的頭像 發(fā)表于 06-06 08:16 ?885次閱讀
    腦磁圖(MEG)新型技術(shù)及功能特點-多通道光泵<b class='flag-5'>磁力計</b>便攜平臺

    使用主控IIC讀取MPU9250的磁力計數(shù)據(jù),速度特別慢怎么解決?

    使用iic對mpu9250進行讀取數(shù)據(jù),讀取磁力計數(shù)據(jù)時采用的是主控iic方式,但是讀取的速度特別慢,幾秒一次,網(wǎng)上說磁力計數(shù)據(jù)輸出的速率最快是100hz,幾秒一次也太慢了;另外在初始化函數(shù)中開啟了延時,但是一次讀取6個字節(jié)的數(shù)據(jù),只能讀到前兩個字節(jié),后四個字節(jié)全為0,請
    發(fā)表于 04-11 07:02

    單片機一個IIC連接兩個MPU9250如何設置讀取磁力計的模式?

    在STM32單片機的一個IIC接口上同時連了兩個MPU9250傳感器,將兩者的AD0分別設為高和低,對于磁力計都設置成Bypass模式,發(fā)現(xiàn)兩塊磁力計的數(shù)據(jù)都能讀出來,Bypass模式不是由單片機
    發(fā)表于 04-10 07:14

    MotionEC和MotionMC的庫在磁力計校準后為什么不調(diào)用MotionMC_SaveCalInNVM函數(shù)?

    MotionEC和MotionMC的庫在磁力計校準后為啥不調(diào)用MotionMC_SaveCalInNVM這個函數(shù)
    發(fā)表于 04-02 08:05

    ADIS16485在沒有磁力計的情況下怎么進行初始對準呢?

    讀取了ADIS16485的數(shù)據(jù)發(fā)現(xiàn)陀螺儀幾個軸的輸出數(shù)據(jù)沒有什么差別,那這個傳感器是不是不能敏感出地球自轉(zhuǎn)角速度,如果是的話在沒有磁力計的情況下怎么進行初始對準呢?
    發(fā)表于 12-27 07:01

    Melexis推出新款微型3D磁力計,拓展性能極限

    2023 年12月13日,比利時泰森德洛 ——全球微電子工程公司Melexis今日宣布,推出Triaxis?微功耗磁力計MLX90394。這是一款基于霍爾效應的微型傳感器,其完美的實現(xiàn)低噪音、微電流
    發(fā)表于 12-22 15:31 ?1002次閱讀
    Melexis推出新款微型3D<b class='flag-5'>磁力計</b>,拓展性能極限

    磁力計LIS2MDL開發(fā)(1)----輪詢獲取磁力計數(shù)據(jù)

    本文將介紹如何使用 LIS2MDL 傳感器來讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗證設備ID、配置傳感器的數(shù)據(jù)輸出率和濾波器,以及通過輪詢方式持續(xù)讀取磁力數(shù)據(jù)和溫度數(shù)據(jù)。讀取到的數(shù)據(jù)會被轉(zhuǎn)換為適當?shù)膯挝徊⑼ㄟ^串行通信輸出。
    的頭像 發(fā)表于 12-18 10:56 ?1340次閱讀
    <b class='flag-5'>磁力計</b>LIS2MDL開發(fā)(1)----輪詢獲取<b class='flag-5'>磁力計</b>數(shù)據(jù)

    Melexis宣布推出一款Triaxis?微功耗磁力計MLX90394

    據(jù)麥姆斯咨詢報道,近日,全球微電子工程公司Melexis宣布,推出Triaxis?微功耗磁力計MLX90394。
    的頭像 發(fā)表于 12-15 17:25 ?929次閱讀

    Melexis推出新款微型3D磁力計,拓展性能極限

    Melexis推出Triaxis微功耗磁力計MLX90394。這是一款基于霍爾效應的微型傳感器芯片,該產(chǎn)品實現(xiàn)了低噪音、微電流消耗和成本之間的平衡設計。
    的頭像 發(fā)表于 12-15 13:38 ?777次閱讀

    怎樣設計和驗證TRL校準件以及TRL校準的具體過程

    怎樣設計和驗證TRL 校準件以及TRL 校準的具體過程
    發(fā)表于 12-14 09:40 ?0次下載