打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
让地平线X3运行PX4(硬件篇)
userphoto

2023.05.24 内蒙古

关注
好几天没有写文章了,诈尸来一篇!

我今天干饭的时候,看见了这个无人机的展会!!!呜呜呜,在内蒙古的我就去不了了,不过写篇文章来安慰一下自己吧~



大家快去看!

现在看下来开源的飞控已经很稳定了,就是PX4和APM(国内有个基于模型开发的,不过在国外,全球的市场看,不太行,加油吧~),剩下就是FPV这块了,也是一个树下7个娃。接着就是一些开源的小飞控。

所以对于现在不用DJI商用飞控这些无人机,那现在选择也就是PX4了,至于为什么不是APM,我也说不明白,PX4总体是更高级一些的,而且在设计之初就选用很好的技术路线,所以也是高端和专业的代名词。

PX4,一种是开发板就是上面有IMU,MCU,接口什么的,专注于飞行本身。还有一种是偏向于上层控制的,就是一个较强的计算模块来发送飞行指令的。

随着开源硬件树莓派,这些廉价的ARM硬件盛行,有人就在想,和PX4飞行固件能不能碰撞出不一样的火花,那有人就想,直接让树莓派运行固件就好。

就是这样

树莓派硬件运行PX4飞控固件, 这文章好像是21年写的。

当时的文章现在在现在看起来是有点呆逼的

重温这篇文章,或是重写这个文章的理由也很简单,重温这个硬件,以及试着给地平线设计一个飞行的载板,地平线的边缘算力是有点强的。

闲话不多说,开始!

我们从板子的设计上面看,就是6个功能块:GPS,双路的IMU,多样的RC输入,气压,额外的接口(ADC,I2C,UART),电源控制。

1. 双IMU芯片。Navio2采用两只IMU芯片,既可以提高飞行性能,也实现了冗余设计,提高了可靠性。

2. 改进的MS5611性能。之前MS5611与总线上其他芯片共享,会产生噪声。Navio2独立MS5611于I2C总线上,消除了这一影响。

3. 用微控制器代替PCA9685 PWM发生器。之前版本采用PCA9685芯片产生PWM,但其每个通道的频率不能独立控制,给马达和舵机带来问题。Navio2采用微控制器代替,可以按组设置每个输出通道的频率,解决这个问题。

4. PPM/SBUS解码由微控制器代替DMA完成。之前Navio+采用DMA采样PPM信号,占用大量系统资源。Navio2由微控制器完成PPM/SBUS采样,释放Raspberry Pi 2的处理器核心用于其他任务。

5. AUX SPI。Navio2是第一个利用Raspberry Pi的AUX SPI控制器的HAT。两个SPI控制器允许更有效地分配传感器。

6. ADC接口。之前Navio+的ADC通道只在板底的焊盘上可用,不方便。Navio2的这些通道在DF13接口上可方便访问。

7. 更好的Linux集成。PWM、ADC、SBUS和PPM通过Linux sysfs集成,可以方便从任何编程语言访问。未来会有更深入的集成。

具体的传感器就是这几个

因为还面临一个硬件驱动的问题,所以给出的驱动代码也要学习!

MPU9250,实际上是内部集成了一个 MPU6500 六轴传感器和一个 AK8963 三轴磁力计,他们共用一个 IIC 接口,这样组合成一个九轴传感器。

MPU9250使用的是SPI,20Mhz的采样频率

函数库很简单的,就是一个更新函数就可以得到数据的

写一个获取ACC的函数

这些是芯片的电气参数

这个是芯片的引脚,现在的资料都是IIC的,SPI的设计需要看芯片手册的

这里放一个IIC的原理图

SPI的使用就是传输速率很稳定性上面

MPU9250内置惯性测量单元(IMU)芯片可以通过SPI接口或IIC接口与主机通信。相比而言,SPI接口有以下优点:

1. 速度更快。SPI通常可以达到更高的通信速度,最大可以达到10MHz以上。IIC通常最高只有400KHz,通信速度较慢。

2. 并行通信。SPI采用并行通信,可以同时发送和接收多位数据,通信效率更高。IIC采用串行通信,一次只能发送和接收1位数据。

3. 更简单。SPI只需要4条线(SCLK,MOSI,MISO,CSN)即可完成全双工通信。IIC需要至少2条线(SDA,SCL),通信协议也较为复杂。

4. 可实现更长传输距离。采用SPI可以实现较长(10米以上)的传输距离。IIC由于采用开漏输出,传输距离较短,一般只有几米。

5. 支持更高灵活性。SPI通信可以由片选信号(CSN)控制从机,主机可以与多个从机通信; each从机也可以有自己的通信速率。IIC只能固定通信,通信速率也相同。

6. 更强的抗干扰能力。SPI采用差分信号,对噪声更加鲁棒。IIC易受电磁干扰影响,通信质量较差。

ST的这个IMU,我源码里面没有找到驱动?

随便看了看,IIC,不是SPI的

数据手册里面有

芯片的引脚图

定义

原理图

两个IMU,SPI的接口

emmmm,我要不是搞错了+和2这个版本,要不就是驱动里面没有写这个芯片的驱动。

写了,我搞错了。

也是SPI的

这个是气压传感器,电阻桥

气压传感器是使用的IIC

这个是2,最大的改变就是STM32芯片的引入是处理RC信号的

这个是+,两个版本

这个是老版本的

Selected: MPU9250Connection established:  TrueAcc:  +0.014  +0.139  +9.974  Gyr:   -0.042   +0.022   +0.011  Mag: -3525.450 +29.584  +0.000Acc:  -0.010  +0.268 +10.036  Gyr:   -0.042   +0.019   +0.015  Mag: -14.963 +43.390 -50.130Acc:  -0.010  +0.278  +9.888  Gyr:   -0.043   +0.021   +0.012  Mag: -16.566 +42.852 -50.302Acc:  +0.010  +0.187 +10.041  Gyr:   -0.039   +0.021   +0.011  Mag: -14.963 +42.314 -50.817Acc:  -0.062  +0.158  +9.855  Gyr:   -0.039   +0.020   +0.011  Mag: -15.497 +42.493 -49.959Acc:  -0.067  +0.196 +10.056  Gyr:   -0.044   +0.020   +0.013  Mag: -14.963 +43.748 -50.130

打印出来的数据

这个是扩展的接口

这个就是有趣的东西,有了这个就可以设计电路板了

2代少了PWM的驱动芯片,ADS1115,ADC转换芯片。

这个好像是一代的引脚来着

这东西不难设计,主要是不想自己写驱动,想直接用。

还有这个小玩意儿,我也是设计完了,上图是印度小哥的

目前,我就绘制IMU,GPU,留些接口就行,这个STM32的设计是需要一些时间的。

hhhh,喜获一个理学学士,我就是觉得理学比工学牛逼~

https://dojofordrones.com/raspberry-pi-pico-drone-diy-micro-drones/
https://docs.emlid.com/navio/dev/datasheets
https://www.robotshop.com/products/navio2-autopilot-kit-raspberry-pi-2-3
https://github.com/orgs/emlid/repositories
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
教你如何选择无人机飞控
pixhawk硬件构架
EEDrone开源四旋翼从零开始(2)--引脚的讨论
51单片机开发板有什么用,对初学单片机有什么帮助?
电子开发中如何确定使用I2C总线还是SPI总线或者CAN总线
MCU、MPU、CPU为何均离不开RTC电路设计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服