現(xiàn)在看下來開源的飛控已經(jīng)很穩(wěn)定了,就是PX4和APM(國內(nèi)有個基于模型開發(fā)的,不過在國外,全球的市場看,不太行,加油吧~),剩下就是FPV這塊了,也是一個樹下7個娃。接著就是一些開源的小飛控。
所以對于現(xiàn)在不用DJI商用飛控這些無人機,那現(xiàn)在選擇也就是PX4了,至于為什么不是APM,我也說不明白,PX4總體是更高級一些的,而且在設(shè)計之初就選用很好的技術(shù)路線,所以也是高端和專業(yè)的代名詞。
PX4,一種是開發(fā)板就是上面有IMU,MCU,接口什么的,專注于飛行本身。還有一種是偏向于上層控制的,就是一個較強的計算模塊來發(fā)送飛行指令的。
隨著開源硬件樹莓派,這些廉價的ARM硬件盛行,有人就在想,和PX4飛行固件能不能碰撞出不一樣的火花,那有人就想,直接讓樹莓派運行固件就好。
就是這樣
樹莓派硬件運行PX4飛控固件, 這文章好像是21年寫的。
當時的文章現(xiàn)在在現(xiàn)在看起來是有點呆逼的
重溫這篇文章,或是重寫這個文章的理由也很簡單,重溫這個硬件,以及試著給地平線設(shè)計一個飛行的載板,地平線的邊緣算力是有點強的。
閑話不多說,開始!
我們從板子的設(shè)計上面看,就是6個功能塊:GPS,雙路的IMU,多樣的RC輸入,氣壓,額外的接口(ADC,I2C,UART),電源控制。
1. 雙IMU芯片。Navio2采用兩只IMU芯片,既可以提高飛行性能,也實現(xiàn)了冗余設(shè)計,提高了可靠性。
2. 改進的MS5611性能。之前MS5611與總線上其他芯片共享,會產(chǎn)生噪聲。Navio2獨立MS5611于I2C總線上,消除了這一影響。
3. 用微控制器代替PCA9685 PWM發(fā)生器。之前版本采用PCA9685芯片產(chǎn)生PWM,但其每個通道的頻率不能獨立控制,給馬達和舵機帶來問題。Navio2采用微控制器代替,可以按組設(shè)置每個輸出通道的頻率,解決這個問題。
4. PPM/SBUS解碼由微控制器代替DMA完成。之前Navio+采用DMA采樣PPM信號,占用大量系統(tǒng)資源。Navio2由微控制器完成PPM/SBUS采樣,釋放Raspberry Pi 2的處理器核心用于其他任務(wù)。
5. AUX SPI。Navio2是第一個利用Raspberry Pi的AUX SPI控制器的HAT。兩個SPI控制器允許更有效地分配傳感器。
6. ADC接口。之前Navio+的ADC通道只在板底的焊盤上可用,不方便。Navio2的這些通道在DF13接口上可方便訪問。
7. 更好的Linux集成。PWM、ADC、SBUS和PPM通過Linux sysfs集成,可以方便從任何編程語言訪問。未來會有更深入的集成。
具體的傳感器就是這幾個
因為還面臨一個硬件驅(qū)動的問題,所以給出的驅(qū)動代碼也要學習!
MPU9250,實際上是內(nèi)部集成了一個 MPU6500 六軸傳感器和一個 AK8963 三軸磁力計,他們共用一個 IIC 接口,這樣組合成一個九軸傳感器。
MPU9250使用的是SPI,20Mhz的采樣頻率
函數(shù)庫很簡單的,就是一個更新函數(shù)就可以得到數(shù)據(jù)的
寫一個獲取ACC的函數(shù)
這個是芯片的引腳,現(xiàn)在的資料都是IIC的,SPI的設(shè)計需要看芯片手冊的
這里放一個IIC的原理圖
SPI的使用就是傳輸速率很穩(wěn)定性上面
MPU9250內(nèi)置慣性測量單元(IMU)芯片可以通過SPI接口或IIC接口與主機通信。相比而言,SPI接口有以下優(yōu)點:
1. 速度更快。SPI通??梢赃_到更高的通信速度,最大可以達到10MHz以上。IIC通常最高只有400KHz,通信速度較慢。
2. 并行通信。SPI采用并行通信,可以同時發(fā)送和接收多位數(shù)據(jù),通信效率更高。IIC采用串行通信,一次只能發(fā)送和接收1位數(shù)據(jù)。
3. 更簡單。SPI只需要4條線(SCLK,MOSI,MISO,CSN)即可完成全雙工通信。IIC需要至少2條線(SDA,SCL),通信協(xié)議也較為復(fù)雜。
4. 可實現(xiàn)更長傳輸距離。采用SPI可以實現(xiàn)較長(10米以上)的傳輸距離。IIC由于采用開漏輸出,傳輸距離較短,一般只有幾米。
5. 支持更高靈活性。SPI通信可以由片選信號(CSN)控制從機,主機可以與多個從機通信; each從機也可以有自己的通信速率。IIC只能固定通信,通信速率也相同。
6. 更強的抗干擾能力。SPI采用差分信號,對噪聲更加魯棒。IIC易受電磁干擾影響,通信質(zhì)量較差。
ST的這個IMU,我源碼里面沒有找到驅(qū)動?
隨便看了看,IIC,不是SPI的
數(shù)據(jù)手冊里面有
芯片的引腳圖
定義
原理圖
兩個IMU,SPI的接口
emmmm,我要不是搞錯了+和2這個版本,要不就是驅(qū)動里面沒有寫這個芯片的驅(qū)動。
寫了,我搞錯了。
也是SPI的
這個是氣壓傳感器,電阻橋
氣壓傳感器是使用的IIC
這個是2,最大的改變就是STM32芯片的引入是處理RC信號的
這個是+,兩個版本
這個是老版本的
Selected: MPU9250 Connection established: True Acc: +0.014 +0.139 +9.974 Gyr: -0.042 +0.022 +0.011 Mag: -3525.450 +29.584 +0.000 Acc: -0.010 +0.268 +10.036 Gyr: -0.042 +0.019 +0.015 Mag: -14.963 +43.390 -50.130 Acc: -0.010 +0.278 +9.888 Gyr: -0.043 +0.021 +0.012 Mag: -16.566 +42.852 -50.302 Acc: +0.010 +0.187 +10.041 Gyr: -0.039 +0.021 +0.011 Mag: -14.963 +42.314 -50.817 Acc: -0.062 +0.158 +9.855 Gyr: -0.039 +0.020 +0.011 Mag: -15.497 +42.493 -49.959 Acc: -0.067 +0.196 +10.056 Gyr: -0.044 +0.020 +0.013 Mag: -14.963 +43.748 -50.130
打印出來的數(shù)據(jù)
這個是擴展的接口
這個就是有趣的東西,有了這個就可以設(shè)計電路板了
2代少了PWM的驅(qū)動芯片,ADS1115,ADC轉(zhuǎn)換芯片。
這個好像是一代的引腳來著
這東西不難設(shè)計,主要是不想自己寫驅(qū)動,想直接用。
還有這個小玩意兒,我也是設(shè)計完了,上圖是印度小哥的
目前,我就繪制IMU,GPU,留些接口就行,這個STM32的設(shè)計是需要一些時間的。
審核編輯 :李倩
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151310 -
gpu
+關(guān)注
關(guān)注
28文章
4729瀏覽量
128888 -
地平線
+關(guān)注
關(guān)注
0文章
340瀏覽量
14941
原文標題:讓地平線X3運行PX4(硬件篇)
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論