在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設計應用 > 基礎知識之姿態(tài)傳感器

            基礎知識之姿態(tài)傳感器

            作者: 時間:2024-03-01 來源:電子森林 收藏

            是一種用于檢測和測量物體的姿態(tài)或位置的設備。它們通常使用各種傳感器技術,如加速度計、陀螺儀和磁力計等,來獲取物體在空間中的方向、旋轉角度和位置信息。廣泛應用于許多領域,包括航空航天、機器人技術、虛擬現(xiàn)實、運動追蹤和醫(yī)療設備等。通過實時監(jiān)測和記錄物體的姿態(tài),姿態(tài)傳感器可以幫助實現(xiàn)精確的導航、運動控制和姿勢分析等功能。

            本文引用地址:http://www.biyoush.com/article/202403/455922.htm

            姿態(tài)傳感器的工作原理取決于其具體的傳感器技術。以下是幾種常見的姿態(tài)傳感器及其工作原理:

            加速度計(Accelerometer):加速度計通過測量物體的加速度來確定其姿態(tài)。加速度計通常使用微機電系統(tǒng)(MEMS)技術,其中包含微小的質量和彈簧系統(tǒng)。當物體發(fā)生加速度變化時,質量會受到力的作用而移動,通過測量這種移動可以確定物體的加速度和姿態(tài)。

            常見的三軸加速度傳感器使用微電機加速度計(MEMS accelerometer)技術。它們通常包含三個獨立的加速度傳感器,分別測量物體在X軸、Y軸和Z軸方向上的加速度。只記得加速度測量機測量到的加速度和受力方向相反,當初使用這個是為了判斷受力是超重還是失重,變化時,加速度傳感器會感知到這種變化并產(chǎn)生相應的電信號。這些信號經(jīng)過放大和處理后,可以轉換為數(shù)字信號,并通過數(shù)字接口(如I2C或SPI)傳輸給微控制器或其他處理器。

            陀螺儀(Gyroscope):陀螺儀通過測量物體的角速度來確定其姿態(tài)。陀螺儀通常使用旋轉的轉子或振蕩器來感知角速度的變化。當物體發(fā)生旋轉時,轉子或振蕩器會受到力的作用而發(fā)生相應的位移,通過測量這種位移可以確定物體的角速度和姿態(tài)。

            這里介紹以下兩個內(nèi)容:地面坐標系(Earth-fixed coordinate system)是一種以地球表面為參考的坐標系,用于描述物體在地球上的位置和運動。地面坐標系通常使用經(jīng)度、緯度和高度(或海拔)來表示位置。

            機體坐標系(Body-fixed coordinate system)是一種以物體自身為參考的坐標系,用于描述物體內(nèi)部或相對于物體的位置和方向。機體坐標系通常使用前后、左右和上下(或X、Y、Z)來表示物體的方向。

            區(qū)別:

            • 參考對象:地面坐標系以地球為參考對象,而機體坐標系以物體自身為參考對象。
            • 坐標軸方向:地面坐標系的坐標軸通常與地球的經(jīng)度、緯度和高度相關,而機體坐標系的坐標軸通常與物體自身的方向相關。
            • 變化性:地面坐標系通常是固定的,而機體坐標系可以隨著物體的旋轉、移動或變換而改變。

            聯(lián)系:

            • 物體運動的描述:地面坐標系和機體坐標系都可以用于描述物體的位置和運動。地面坐標系適用于描述物體在地球上的位置和運動,而機體坐標系適用于描述物體相對于自身的位置和運動。
            • 坐標轉換:在某些情況下,需要將地面坐標系和機體坐標系相互轉換。例如,在航空航天領域,需要將飛機的機體坐標系轉換為地面坐標系,以便進行導航和飛行控制。

            總的來說,地面坐標系和機體坐標系是兩種不同的坐標系,用于描述不同的參考對象和位置關系。它們在不同的應用領域中起著重要的作用,并且在某些情況下需要進行坐標轉換。

            那么我們得到坐標位置是為了什么呢,主想借大學物理和高數(shù)內(nèi)容介紹一下歐拉角:

            歐拉角(Euler angles)是一種常用的描述物體姿態(tài)的方法。它由三個旋轉角度組成,通常分別稱為滾轉角(roll)、俯仰角(pitch)和偏航角(yaw)。

            滾轉角表示物體繞其自身的X軸旋轉的角度。俯仰角表示物體繞其自身的Y軸旋轉的角度。偏航角表示物體繞其自身的Z軸旋轉的角度。

            歐拉角的旋轉順序可以有多種,最常見的是ZYX順序,也稱為航向-俯仰-滾轉順序。在這種順序下,先繞Z軸旋轉偏航角,然后繞旋轉后的Y軸旋轉俯仰角,最后繞旋轉后的X軸旋轉滾轉角。

            歐拉角的優(yōu)點是直觀且易于理解,可以直接對物體的姿態(tài)進行描述。它廣泛應用于飛行器、機器人、游戲開發(fā)和計算機圖形學等領域。

            然而,歐拉角也存在一些問題。由于旋轉順序的選擇和旋轉角度的限制,歐拉角存在萬向鎖問題(gimbal lock),即在某些情況下,兩個旋轉角度會變得冗余或無法唯一確定物體的姿態(tài)。為了避免這個問題,有時候會使用四元數(shù)

            (quaternions)或旋轉矩陣(rotation matrices)來替代歐拉角。哈哈哈我不會四元數(shù),就不bb了。

            總的來說,歐拉角是一種常用的姿態(tài)描述方法,具有直觀和易于理解的特點,但在某些情況下可能存在萬向鎖問題。

            磁力計(Magnetometer):磁力計通過測量物體周圍磁場的強度和方向來確定其姿態(tài)。磁力計利用磁敏材料的特性,當材料受到磁場作用時,其電阻或電壓會發(fā)生變化。通過測量這種變化可以確定物體所處的磁場方向,從而確定其姿態(tài)。

            這些傳感器通常會結合在一起,形成姿態(tài)傳感器系統(tǒng)。通過同時測量加速度、角速度和磁場等參數(shù),姿態(tài)傳感器可以計算出物體的姿態(tài),包括方向、旋轉角度和位置等信息。這些數(shù)據(jù)可以通過算法進行處理和解析,從而實現(xiàn)對物體姿態(tài)的準確測量和跟蹤。

            以下是一般的使用姿態(tài)傳感器的步驟:

            • 連接傳感器:首先,將姿態(tài)傳感器與目標設備進行連接。這可能涉及到使用適當?shù)碾娎|或接口將傳感器連接到設備的主板或控制器上。
            • 初始化傳感器:在使用姿態(tài)傳感器之前,需要進行初始化。這個過程包括設置傳感器的初始狀態(tài)和參數(shù),以確保其正常工作和準確測量姿態(tài)。
            • 讀取傳感器數(shù)據(jù):使用設備的軟件或編程接口,讀取傳感器提供的姿態(tài)數(shù)據(jù)。姿態(tài)數(shù)據(jù)通常包括設備的姿勢、朝向、角度和加速度等信息。
            • 解析和處理數(shù)據(jù):根據(jù)應用的需求,對傳感器提供的姿態(tài)數(shù)據(jù)進行解析和處理。這可能涉及到使用算法和數(shù)學模型來計算設備的姿態(tài)、運動狀態(tài)或其他相關參數(shù)。
            • 應用數(shù)據(jù):根據(jù)解析和處理后的姿態(tài)數(shù)據(jù),進行相應的應用。這可能包括控制設備的運動、調整設備的姿態(tài)、提供用戶反饋或進行其他相關操作。
            • 錯誤校正和校準:定期進行錯誤校正和校準,以確保姿態(tài)傳感器的準確性和可靠性。這可能包括校正傳感器的偏差、校準傳感器的靈敏度或進行其他相關調整。

            需要注意的是,具體使用姿態(tài)傳感器的方法會因應用的不同而有所變化。例如,在航空航天領域中,可能需要更復雜的姿態(tài)控制算法和系統(tǒng)來實現(xiàn)精確的導航和飛行控制。在虛擬現(xiàn)實領域中,可能需要更高的實時性和精度來跟蹤用戶的頭部和手部姿態(tài)。因此,在具體應用中,需要根據(jù)需求和要求進行相應的定制和調整。 姿態(tài)傳感器在許多領域中都有廣泛的應用。以下是一些姿態(tài)傳感器的應用示例:

            STMicroelectronics:STMicroelectronics是一家全球領先的半導體公司,提供各種姿態(tài)傳感器解決方案,包括加速度計、陀螺儀磁力計等。

            InvenSense(現(xiàn)為TDK公司):InvenSense是一家專注于慣性傳感器技術的公司,提供高性能的加速度計和陀螺儀等姿態(tài)傳感器產(chǎn)品。

            Bosch Sensortec:Bosch Sensortec是博世集團的子公司,專注于傳感器技術。他們提供各種姿態(tài)傳感器解決方案,包括加速度計、陀螺儀和磁力計等。

            Analog Devices:Analog Devices是一家領先的半導體公司,提供各種傳感器解決方案,包括姿態(tài)傳感器。他們的產(chǎn)品范圍包括加速度計、陀螺儀和磁力計等。

            Honeywell(霍尼韋爾):Honeywell是一家全球知名的工業(yè)自動化和控制技術供應商,他們提供各種姿態(tài)傳感器產(chǎn)品,包括加速度計、陀螺儀和磁力計等。

            這只是一些主要的姿態(tài)傳感器供應商,市場上還有許多其他供應商提供各種姿態(tài)傳感器解決方案。在選擇供應商時,可以根據(jù)產(chǎn)品性能、可靠性、技術支持和供應鏈等因素進行評估和比較。

            • 航空航天:姿態(tài)傳感器在飛機、無人機和航天器中被用于導航、飛行控制和姿態(tài)穩(wěn)定等方面。它們可以幫助飛行器準確測量和控制其姿態(tài),以確保平穩(wěn)和穩(wěn)定的飛行。
            • 機器人技術:姿態(tài)傳感器在機器人中起著關鍵作用,能夠幫助機器人感知和調整其姿態(tài),以適應不同的任務和環(huán)境。例如,在機器人導航和操作中,姿態(tài)傳感器可以幫助機器人確定其位置、朝向和運動狀態(tài)。
            • 虛擬現(xiàn)實(VR)和增強現(xiàn)實(AR):姿態(tài)傳感器在VR和AR設備中被用于跟蹤用戶的頭部、手部和身體姿態(tài),從而實現(xiàn)沉浸式的虛擬體驗或與現(xiàn)實世界的交互。它們可以幫助設備準確追蹤用戶的動作和位置,以實現(xiàn)更真實和自然的交互體驗。
            • 運動追蹤:姿態(tài)傳感器在運動追蹤領域中被廣泛應用。例如,在體育訓練中,姿態(tài)傳感器可以用于監(jiān)測運動員的姿勢和動作,以提供反饋和改進訓練效果。此外,姿態(tài)傳感器還可以用于運動分析、姿勢矯正和康復治療等方面。
            • 醫(yī)療設備:姿態(tài)傳感器在醫(yī)療設備中的應用包括姿勢監(jiān)測和姿勢輔助。例如,在手術中,姿態(tài)傳感器可以幫助醫(yī)生準確測量和調整手術工具的位置和角度,以實現(xiàn)精確的手術操作。

            這只是姿態(tài)傳感器應用的一小部分示例,實際上,姿態(tài)傳感器在許多其他領域中也有各種應用,如游戲控制、智能家居、運動裝備等。隨著技術的不斷發(fā)展,姿態(tài)傳感器的應用領域將繼續(xù)擴大和創(chuàng)新。

            此外,結合自己的電賽經(jīng)歷略述一二,向大家介紹的是MPU6050,是一款集成了三軸陀螺儀和三軸加速度計的傳感器模塊。它由英飛凌(InvenSense)公司開發(fā),廣泛應用于姿態(tài)測量、運動追蹤和穩(wěn)定控制等領域。

            MPU6050內(nèi)部集成了三軸陀螺儀和三軸加速度計,能夠同時測量物體的旋轉和線性加速度。陀螺儀用于測量物體的旋轉速度和方向,而加速度計則用于測量物體的線性加速度和傾斜角度。

            MPU6050采用數(shù)字輸出,通過I2C總線與微控制器或其他設備進行通信。它具有高精度、低功耗和快速響應的特點,適用于需要實時姿態(tài)測量和運動追蹤的應用。

            除了陀螺儀和加速度計,MPU6050還提供了一些額外的功能和傳感器,如溫度傳感器和數(shù)字運動處理器(DMP)。溫度傳感器可用于測量環(huán)境溫度,而DMP則可以通過內(nèi)部算法提供更高級的運動處理功能,如姿態(tài)解算和方向估計。

            初始化MPU6050傳感器:

            初始化I2C總線,復位MPU6050,再次喚醒mpu6050后,設置陀螺儀傳感器為±200dps,加速度傳感器±2g,設置采樣率50HZ,關閉中斷配置INT引腳低電平有效。器件id正確后,設置pll,clksel,xz的水平軸為參考

            讀取傳感器數(shù)據(jù):

            使用官方empl庫所帶的函數(shù)獲取加速度值和陀螺儀值,理由歐拉公式計算得到俯仰角和偏航角(ps:需要設置延時函數(shù)如果要輸?shù)缴衔粰C,需要提供串口等接口)

            解析和處理數(shù)據(jù):

            這里介紹當時使用的方法:讀取數(shù)據(jù)判斷是否在設置的閾值范圍內(nèi),并記錄最后的數(shù)據(jù)用于比較下一次的變化情況,根據(jù)自己的算法要求進行處理。要結合編碼器的使用,使用了STM32正交編碼器,是指在STM32系列微控制器中用于讀取旋轉編碼器信號的硬件模塊。旋轉編碼器是一種用于測量旋轉運動的傳感器,通常由兩個光電傳感器組成,可以測量旋轉方向和速度。而STM32正交編碼器模塊支持兩種常見的編碼器類型:增量式編碼器和絕對式編碼器。這里吧主將自己的理解的原理放進來:編碼器軸每旋轉一圈,A相和B相都發(fā)出相同的脈沖個數(shù),但是A相和B相之間存在一個90°(電氣角的一周期為360”)的電氣角相位差,可以根據(jù)這個相位差來判斷編碼器貨轉的方向是正轉還是反轉,正轉時,A相超前B相90°先進行相位輸出,反轉時,B相超前A相90°先進行相位輸出。

            增量式編碼器通過兩個光電傳感器(我使用的是光碼盤和光電二極管)檢測旋轉編碼盤上的刻度,并生成兩個相位差90度的方波信號。通過檢測這兩個方波信號的變化,可以確定旋轉方向和速度。STM32正交編碼器模塊可以直接讀取這兩個方波信號,并提供相應的硬件計數(shù)器和中斷功能,使得編碼器的讀取和處理變得更加簡單和高效。

            絕對式編碼器則通過在編碼盤上添加更多的刻度,以實現(xiàn)對旋轉位置的絕對測量。STM32正交編碼器模塊可以支持多種絕對式編碼器的協(xié)議和接口,如SSI(同步串行接口)、BiSS(雙向同步串行接口)和SPI(串行外設接口)等。通過讀取這些接口的數(shù)據(jù),可以準確地獲取旋轉位置信息。

            在使用STM32正交編碼器模塊時,需要配置相關的寄存器和中斷,以使其與編碼器信號同步工作。可以根據(jù)實際需求選擇不同的計數(shù)模式、計數(shù)方向和中斷觸發(fā)條件等。此外,還可以通過使用DMA(直接內(nèi)存訪問)功能,將編碼器數(shù)據(jù)直接傳輸?shù)絻?nèi)存,減輕CPU的負擔。

            總的來說,STM32正交編碼器模塊為STM32微控制器提供了方便、高效的編碼器信號讀取和處理功能,使得我們使用者可以更加輕松地實現(xiàn)旋轉運動的測量和控制。通過把編碼器放在pwm直流電機轉軸處,把AB兩相接入單片機接口可以獲得具體的信息。

            欸,大家可能疑惑了,我這里將姿態(tài)傳感器那為什么說到了編碼器了呢。hhhh,因為俺要講如何在軟件上去調試姿態(tài)傳感器,那我就要再廢話了,我的目標是什么呢,結合電賽,我想說小車直立行走任務分解

            我們要求車模在直立的狀態(tài)下以兩個輪子在地面上隨意行走,相比四輪著地狀態(tài),車??刂迫蝿崭鼮閺碗s。為了能夠方便找到解決問題的辦法,首先將復雜的問題分解成簡單的問題進行討論。 從控制角度來看,車模作為一個控制對象,它的控制輸入量是兩個電轉動速度。車橫運動控制任務可以分解成以下三個基本控制任務
            (1)控制車模平衡:通過控制兩個電機正反向運動保持車模直立平衡化
            (2)控制車橫速度:通過調節(jié)車模的傾角來實現(xiàn)車模速度控制,實際上還是演變成通過控制電機的轉速來實現(xiàn)車輪速度的控制
            (3)控制車模方向:通過控制兩個電機之間的轉動差速實現(xiàn)車模轉
            哎呀這么復雜,我們考慮的核心在哪里,哈哈就是負反饋,是否平衡是否轉彎無法缺少的就是將采集到的數(shù)據(jù)比較反饋了,大家讀到這里就明白我在數(shù)據(jù)處理時存儲最后一次數(shù)據(jù)的用意了哈哈,最后結合pid控制。PID控制是一種常用的反饋控制算法,用于調節(jié)系統(tǒng)的輸出以使其達到期望值。PID是Proportional-Integral-Derivative的縮寫,分別代表比例、積分和微分三個控制項。

            • 比例項(P項)根據(jù)實際輸出與期望值之間的差異進行調節(jié)。它與差異成正比,越大的差異會導致更大的調節(jié)輸出。比例項可以快速響應系統(tǒng)的變化,但可能導致系統(tǒng)的震蕩和超調。
            • 積分項(I項)根據(jù)實際輸出與期望值之間的累積差異進行調節(jié)。它可以消除系統(tǒng)的穩(wěn)態(tài)誤差,并使系統(tǒng)更好地追蹤期望值。積分項可以幫助系統(tǒng)達到精確的控制,但過大的積分項可能導致系統(tǒng)的過沖和振蕩。
            • 微分項(D項)根據(jù)實際輸出的變化率進行調節(jié)。它可以預測系統(tǒng)的未來變化趨勢,并提前調整控制輸出,以減小超調和振蕩。微分項可以提高系統(tǒng)的穩(wěn)定性和響應速度,但過大的微分項可能導致系統(tǒng)對噪聲和干擾過于敏感。

            PID控制通過將比例、積分和微分項加權求和,得到最終的控制輸出。權重因子可以根據(jù)系統(tǒng)的特性和需求進行調整,以達到最佳的控制效果。

            在實際應用中,PID控制廣泛用于工業(yè)自動化、機械控制、溫度控制、飛行器控制等領域。通過不斷調整PID參數(shù),可以實現(xiàn)系統(tǒng)的穩(wěn)定性、精度和響應速度的平衡。

            總的來說,PID控制是一種簡單而有效的控制算法,通過比例、積分和微分三個控制項的組合調節(jié)系統(tǒng)的輸出,以實現(xiàn)期望的控制效果。 這里借用了matlab仿真進行了預測和優(yōu)化,打字累了不想說了,哈哈,結合姿態(tài)傳感器使用一下把哈哈哈哈哈哈 偷懶嘎嘎嘎,

            含mpu6050芯片的姿態(tài)傳感器模塊

            基于stm4與串口調試結果圖

            最后結合電賽,我想說,除了姿態(tài)傳感器我們應該還要結合編碼器,超聲波測距,步進電機CDD攝像頭,正交碼盤的使用,pwm步進電機,我們不僅僅要考慮到以上電子相關內(nèi)容,應當考慮類似的,在小車開發(fā)中,扭矩通常用于描述引擎或電動機對車輪的驅動力。較大的扭矩可以提供更大的驅動力,使車輛能夠加速或克服阻力。在小車開發(fā)中,摩擦力對于車輛的制動、轉彎和牽引等方面起著重要作用。合理控制摩擦力可以提高車輛的操控性和安全性。為了最大限度地利用摩擦力,需要對車輛的重心、輪胎和地面之間的摩擦系數(shù)等因素進行優(yōu)化和調整。

            mpu6050驅動

            import machine

            class accel():

            def __init__(self, i2c, addr=0x68):

               self.iic = i2c

               self.addr = addr

               self.iic.start()

               self.iic.writeto(self.addr, bytearray([107, 0]))

               self.iic.stop()


            def get_raw_values(self):

               self.iic.start()

               a = self.iic.readfrom_mem(self.addr, 0x3B, 14)

               self.iic.stop()

               return a


            def get_ints(self):

               b = self.get_raw_values()

               c = []

               for i in b:

                   c.append(i)

               return c


            def bytes_toint(self, firstbyte, secondbyte):

               if not firstbyte & 0x80:

                   return firstbyte << 8 | secondbyte

               return - (((firstbyte ^ 255) << 8) | (secondbyte ^ 255) + 1)


            def get_values(self):

               raw_ints = self.get_raw_values()

               vals = {}

               vals["AcX"] = self.bytes_toint(raw_ints[0], raw_ints[1])

               vals["AcY"] = self.bytes_toint(raw_ints[2], raw_ints[3])

               vals["AcZ"] = self.bytes_toint(raw_ints[4], raw_ints[5])

               vals["Tmp"] = self.bytes_toint(raw_ints[6], raw_ints[7]) / 340.00 + 36.53

               vals["GyX"] = self.bytes_toint(raw_ints[8], raw_ints[9])

               vals["GyY"] = self.bytes_toint(raw_ints[10], raw_ints[11])

               vals["GyZ"] = self.bytes_toint(raw_ints[12], raw_ints[13])

               return vals  # returned in range of Int16

               # -32768 to 32767


            def val_test(self):  # ONLY FOR TESTING! Also, fast reading sometimes crashes IIC

               from time import sleep

               while 1:

                   print(self.get_values())

                   sleep(0.05)

            主程序

            from machine import I2C,Pin
            i2c = I2C(scl=Pin("X9"), sda=Pin("X10"))
            accel = mpu6050.accel(i2c)
            accel_dict = accel.get_values()
            print(accel_dict)

            運行結果如下 

            樹莓派_MMA7660姿態(tài)傳感器



            關鍵詞: 姿態(tài)傳感器

            評論


            技術專區(qū)

            關閉