0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

让地平线X3运行PX4(硬件篇)

云深之无迹 来源:云深之无迹 2023-06-02 17:06 次阅读

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

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

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

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

2877e496-fae1-11ed-90ce-dac502259ad0.png

就是这样

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

28944596-fae1-11ed-90ce-dac502259ad0.png

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

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

闲话不多说,开始!

28aae864-fae1-11ed-90ce-dac502259ad0.png

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

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集成,可以方便从任何编程语言访问。未来会有更深入的集成。

28c79b4e-fae1-11ed-90ce-dac502259ad0.png

具体的传感器就是这几个

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

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

28e41c38-fae1-11ed-90ce-dac502259ad0.png

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

28fd165c-fae1-11ed-90ce-dac502259ad0.png

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

291920ae-fae1-11ed-90ce-dac502259ad0.png

写一个获取ACC的函数

291fa262-fae1-11ed-90ce-dac502259ad0.png

这些是芯片的电气参数

29353bfe-fae1-11ed-90ce-dac502259ad0.png

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

293c9c1e-fae1-11ed-90ce-dac502259ad0.png

这里放一个IIC的原理图

296777d6-fae1-11ed-90ce-dac502259ad0.png

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,我源码里面没有找到驱动?

298b4f26-fae1-11ed-90ce-dac502259ad0.png

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

29d75222-fae1-11ed-90ce-dac502259ad0.png

数据手册里面有

29e835d8-fae1-11ed-90ce-dac502259ad0.png

芯片的引脚图

29fe6fec-fae1-11ed-90ce-dac502259ad0.png

定义

2a19fe2e-fae1-11ed-90ce-dac502259ad0.png

原理图

2a442532-fae1-11ed-90ce-dac502259ad0.png

两个IMU,SPI的接口

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

写了,我搞错了。

2a664702-fae1-11ed-90ce-dac502259ad0.png

也是SPI的

2ab19112-fae1-11ed-90ce-dac502259ad0.png

这个是气压传感器,电阻

2ab7823e-fae1-11ed-90ce-dac502259ad0.png

气压传感器是使用的IIC

2accdd6e-fae1-11ed-90ce-dac502259ad0.png

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

2b5f73ea-fae1-11ed-90ce-dac502259ad0.png

这个是+,两个版本

2bc51f60-fae1-11ed-90ce-dac502259ad0.png

这个是老版本的

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

打印出来的数据

2be41316-fae1-11ed-90ce-dac502259ad0.png

这个是扩展的接口

2c0fa8aa-fae1-11ed-90ce-dac502259ad0.png

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

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

2c16aaf6-fae1-11ed-90ce-dac502259ad0.png

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

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

2c20b01e-fae1-11ed-90ce-dac502259ad0.png

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

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147653
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126716
  • 地平线
    +关注

    关注

    0

    文章

    307

    浏览量

    14640

原文标题:让地平线X3运行PX4(硬件篇)

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PX4开发者手册

    参考资料PX4 Github主页:PX4 Github(代码有分支,请查看v1.10.0分支)PX4开发者手册:PX4手册 v1.11(手册有分支,请查看v1.11.0分支)
    发表于 08-23 07:42

    PX4和Audupilot的区别与联系是什么

    ArduPilot固件也叫APM。二、两者的联系后来APM硬件性能不太够,所以APM固件也就针对兼容了Pixhawh硬件平台所以在pixhawk硬件平台上可以运行
    发表于 02-15 07:32

    基于Nuttx系统进行开发的开源PX4

    PX4二次开发——程序运行过程一、写在前面​px4固件程序与最开始我们所学习的对单片机外设开发不同,是因为飞行器控制系统是一个复杂的系统,要求实时性好,完成复杂的控制任务,简简单单的按照之前
    发表于 02-17 07:02

    地平线旭日X3派试用体验】开箱与板载资源介绍视频

    本视频为地平线旭日X3派的开箱视频,讲解板载资源.
    发表于 07-10 00:14

    地平线旭日X3派试用体验】烧录镜像与UBUNTU桌面环境初体验视频

    本视频讲解地平线旭日X3派开发板烧录镜像,以及体验UBUNTU桌面系统。
    发表于 07-10 00:24

    地平线旭日X3派试用体验】#旭日X3派首百尝鲜#资料下载及环境搭建初试

    前言:非常高兴成为地平线旭日X3派的新品体验官,一直想做一些不一样的东西,看到地平线旭日X3派的发布会,加之电子发烧友有开发板试用活动,果断申请。非常高兴被选中。收到开发板后打开货品,
    发表于 07-12 13:45

    地平线旭日X3派试用体验】开箱+快速上手体验

    首先很高兴能够成为地平线旭日X3派的新品体验官,前不久开发板到了,目前玩了有一个星期左右了,先来简单发一个开箱帖子。【开箱】收到开发板的那一瞬间感觉外盒挺有趣的。盒子里面配了一块散热片、USB转
    发表于 07-17 22:31

    地平线旭日X3派试用体验】#首百尝鲜# 第二 旭日X3派基础实验操作演示

    前言:前一的环境在板子上已经OK,接下来将旭日X3派用户手册中的几个实验跑一下,实际操作演示,出现的问题及演示效果进行分享。本实验使用串口操作旭日X3派开发板,手册中还有其他网络方式,大家自行实验
    发表于 07-19 15:00

    地平线旭日X3派试用体验】开箱硬件介绍

    地平线旭日X3是梦寐以求的开发板,上图,地平线是一家细心的公司,包装都做得这么精致。还带个散热片。接口:一个CSI的相机接口,板载USB有3个,包含1个USB3.0和2个USB2.0,
    发表于 07-26 19:13

    地平线旭日X3派试用体验】 HHP环境搭建及简单demo演示

    1. 前言 — 地平线机器人平台用户手册 1.0 文档 (horizon.ai)前言: 前面两基本测试了板端跑Ubuntu Server镜像及基本外设功能,接下来测试地平线机器人平台HHP,根据
    发表于 07-31 20:18

    地平线旭日X3派试用体验】01. X3派开箱及上手

    1、开箱突然一天接到地平线官方小姐姐的电话说我的X3派申请试用通过了,确实我有点意外被选中成为试用者,非常感谢地平线官方和电子发烧友开展本次旭日X
    发表于 08-09 17:32

    #旭日X3派首百尝鲜# 用solidworks画了一个旭日X3派的模型

    的是SOLIDWORKS2021,低版本打不开这个模型文件,只能用2021或者更高版本),和.STL文件(可用于3D打印)「地平线旭日X3派,开启你的嵌入式开发之旅」,欢迎正在阅读的你申请试用,一起交流开发心得此处下载附件
    发表于 08-31 11:18

    [经验] 【 地平线旭日X3派试用体验】X3派开箱及开发环境搭建

    地平线旭日X3派开发板是我见过,AI计算算力最强,开源程度最深,AI算法集成度最高的开发板,再此表示感谢。环境安装在进行AI算法开发之前请参考X3派用户手册完成系统安装及配置,此时X3
    发表于 09-01 01:17

    地平线旭日X3派试用体验】地平线旭日X3派AGV智能车设计

    本项目是做一个基于地平线旭日X3派ROS-SLAM激光雷达自主导航AGV机器人原型设计。地平线旭日X3派ROS主机、副控板及驱动、控制端,通过xrbase节点调用xrmiddlewar
    发表于 09-12 19:25

    旭日,从地平线升起——地平线旭日X3派开箱试用

    地平线旭日X3派,开启你的嵌入式开发之旅
    的头像 发表于 11-08 15:22 1153次阅读
    旭日,从<b class='flag-5'>地平线</b>升起——<b class='flag-5'>地平线</b>旭日<b class='flag-5'>X3</b>派开箱试用