搜索
bottom↓
回复: 45

看看我设计的Linux 飞控板

[复制链接]

出0入0汤圆

发表于 2015-8-18 22:31:37 | 显示全部楼层 |阅读模式
不是手机渣像素,是这俩玩意太小,实在是不容易拍清楚。

最近实在是受够了FTDI的新驱动,不知道为什么,这个驱动会被windows认成鼠标输入设备,结果数据一传过来,鼠标就乱跳。

花了一个晚上,用MCU画了一个UART to USB工具,为了看起来高达上一点,把CAN总线也做上去了。

加了一个小开关,可以选择UART,还是CAN接到USB上。

几个LED, 指示电源,模式选择,和RX/TX。

程序很简单,基本上就是改改例子程序,测试了一下,效果不错,就是接收部分USB的buffer长度有点长,有些延迟,有时间改一下

本水贴正题是LINUX:
之前看到intel edison,心中各种长草,结果就搞出来这个么东西

背面是一个MCU,负责输入输出,一个GPS,一个扩展接口(SPI/UART/GPIO/POWER)


看起来东西不多,但是设计起来真是麻烦死。为了这个小东西,首次尝试0402的阻容。 画的很爽,贴片的时候烦死,还好不多:)

最终效果看起来不错:)

过几天把第二个也贴好,这样可以作为base station了,通信的硬件部分已经做好,只是还没有测试,之后再更新,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2015-8-18 22:36:29 | 显示全部楼层
你在哪国高就?

出0入0汤圆

发表于 2015-8-18 23:22:44 | 显示全部楼层
intel edison的连接端子不比intel edison板便宜多少,关键是业余条件很难焊接

出0入0汤圆

 楼主| 发表于 2015-8-18 23:51:50 | 显示全部楼层
咖啡可乐 发表于 2015-8-18 23:22
intel edison的连接端子不比intel edison板便宜多少,关键是业余条件很难焊接

那个连接器并不难,正常的SMD方式很容易就上去了

价格么,是intel edison mini breakout board的1/10

出0入0汤圆

发表于 2015-8-19 08:13:08 | 显示全部楼层
edison...  好贵哇

出0入0汤圆

发表于 2015-8-19 08:21:14 | 显示全部楼层
还没有人吐槽芯片覆盖……

出0入0汤圆

发表于 2015-8-19 08:22:59 | 显示全部楼层
本帖最后由 usecool 于 2015-8-19 08:24 编辑


手机不像相机对焦,注意选取合适的拍摄距离和对焦点

出0入0汤圆

发表于 2015-8-19 08:50:49 | 显示全部楼层
吐槽一下,ic磨得的不错,完全看不出是啥,哈哈哈!

出0入0汤圆

 楼主| 发表于 2015-8-19 14:34:48 | 显示全部楼层
DiaoMao_Huang 发表于 2015-8-19 08:21
还没有人吐槽芯片覆盖……

我还在想怎么没人吐槽这个…………

画图板干的 有ps的话能更自然一点

硬件部分没啥好藏的  涂鸦就是好玩一下^_^

出0入0汤圆

 楼主| 发表于 2015-8-20 21:30:16 | 显示全部楼层
本帖最后由 Anteater 于 2015-8-20 21:38 编辑

GPS 功能测试

选择在一个停车场,良好的净空条件,使用有源天线但是没有使用ground plane

下图中每一个格子是0.5米,可以看到定位很稳定,并且重复性很好,

下图中的是吧路径和google 地图结合起来, 可以看出走的路经和实际路线非常吻合

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-8-20 21:35:49 | 显示全部楼层
图呢,没有图

出0入0汤圆

 楼主| 发表于 2015-8-20 21:39:19 | 显示全部楼层

哦,刚才有点技术问题,图已经可以显示出来了

出0入0汤圆

发表于 2015-8-20 21:42:41 | 显示全部楼层
Anteater 发表于 2015-8-20 21:39
哦,刚才有点技术问题,图已经可以显示出来了

上资料把,

出0入0汤圆

发表于 2015-8-20 23:27:47 | 显示全部楼层
楼主不在国内的么

出0入0汤圆

 楼主| 发表于 2015-8-21 21:36:16 | 显示全部楼层
Anteater 发表于 2015-8-20 21:30
GPS 功能测试

选择在一个停车场,良好的净空条件,使用有源天线但是没有使用ground plane

这个图实际上是在电脑上解算的结果,没有用到板子上的Edison。

刚刚把程序移植到Edison上,使用相同的数据验证了一下功能正确性,

精度还算不错,如果稳定性足够的话,就可以直接用在四轴的航线控制了。

剩下的就是把无线的部分做好,这样就组成了完整的GPS定位。

出0入0汤圆

 楼主| 发表于 2015-8-22 06:26:43 | 显示全部楼层
Anteater 发表于 2015-8-21 21:36
这个图实际上是在电脑上解算的结果,没有用到板子上的Edison。

刚刚把程序移植到Edison上,使用相同的数 ...

距离目标更近一步了,昨天把程序弄到linux上去了但是数据传输都是通过 WIFI。

在实际使用过程中,野外没有wifi不就傻了么,

因此需要解决输出传输问题,方式就是UART。

倒霉催的Intel Edison竟然只有两个串口,一个还被boot loader占用了,这样的话直接能用的只有一个,而我需要三个端口 。。。

解决办法也很简单,因为linux可以使用虚拟串口,因此虚拟出来几个就可以了,写个小程序调度一下数据流,这样就没问题了。只是要数据封包和解包比较麻烦,以前没做过,这次是拍拍脑袋想的一方法。

等有时间放到Edison上试一下,看看效果怎么样。

出0入0汤圆

 楼主| 发表于 2015-8-24 07:30:00 | 显示全部楼层
代码移植到edison的过程比想象中顺利太多,可能这就是在操作系统上编程的好处吧,基本上不用考虑和硬件平台相关的问题。

同时测试了一下linux下读取串口数据,整体过程比较顺利,Edison顺利的从MCU读到了数据。

下一步就是在MCU端进行数据打包。

出0入0汤圆

发表于 2015-8-24 09:45:24 | 显示全部楼层
楼主做的是后处理吧。单点定位肯定达不到这个精度的。

出0入0汤圆

发表于 2015-8-24 11:02:34 | 显示全部楼层
Edision能够安装哪些版本的Linux?

出0入0汤圆

 楼主| 发表于 2015-8-24 21:17:41 | 显示全部楼层
Nexus 发表于 2015-8-24 11:02
Edision能够安装哪些版本的Linux?

En,

有人用Debian,参见 https://learn.sparkfun.com/tutor ... linux-on-the-edison

我现在用的是yocto project, 比较死板,但是精炼,比较适合deep embeded。基本上可以满足我的需求

出0入0汤圆

发表于 2015-8-24 21:27:03 | 显示全部楼层
楼主,搞linux多久了?

出0入0汤圆

 楼主| 发表于 2015-8-24 22:03:49 | 显示全部楼层
yick 发表于 2015-8-24 21:27
楼主,搞linux多久了?

一个月吧,从入intel edison开始, http://www.amobbs.com/thread-5627919-1-1.html

出0入0汤圆

发表于 2015-8-24 23:04:19 | 显示全部楼层
楼主出板子么?

出0入0汤圆

 楼主| 发表于 2015-8-24 23:14:52 | 显示全部楼层

嗯,可以出,等我做完的,算算成本的

出0入0汤圆

 楼主| 发表于 2016-8-25 01:34:31 | 显示全部楼层
之前把帖子发错地方了,这里把link贴过来:)

http://www.amobbs.com/thread-5633521-1-1.html

出0入0汤圆

发表于 2016-8-25 14:06:20 | 显示全部楼层
本帖最后由 avr-arm 于 2016-8-25 14:11 编辑

LZ,我自荐WIDORA,绝对比edison更适合做飞控。
WIDORA资源:1T1R WIFI,3UART,4PWM,GPIOS,SDIO,USB,ETH,IIC,SPI
内存:128MB,FLASH:16MB、32MB,CPU:580MHz
系统:openwrt(mango)
核心版价格:55元
曾经想过做飞控,精力不够。但资源还是不错的。
Widora随便网上一搜就找到了,主要是我很用心在做,软硬件全锅端了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-8-25 21:16:27 | 显示全部楼层
avr-arm 发表于 2016-8-25 14:06
LZ,我自荐WIDORA,绝对比edison更适合做飞控。
WIDORA资源:1T1R WIFI,3UART,4PWM,GPIOS,SDIO,USB,ET ...

飞控用什么都一样,无所谓的,从8bit单片机一直到PC都能做。

那个顺手用那个,

外设丰富神马的,只要可以OTG,外设少不是问题。

设计上么,体积功耗易用性,差不多就行,反正设计硬件比的总体时间比软件开发快得多。

出0入0汤圆

发表于 2016-8-25 23:36:54 | 显示全部楼层
avr-arm 发表于 2016-8-25 14:06
LZ,我自荐WIDORA,绝对比edison更适合做飞控。
WIDORA资源:1T1R WIFI,3UART,4PWM,GPIOS,SDIO,USB,ET ...

你这个支持几个硬件 spi?
我看框图这个 spi 是挂在系统 flash 上面的。
做飞控最好有两个 spi,一个给 MPU9250 这种,
另外一个给光流这一类。如果是软件模拟的 spi 通常
速度不够快。

出0入37汤圆

发表于 2016-8-26 00:00:54 | 显示全部楼层
avr-arm 发表于 2016-8-25 14:06
LZ,我自荐WIDORA,绝对比edison更适合做飞控。
WIDORA资源:1T1R WIFI,3UART,4PWM,GPIOS,SDIO,USB,ET ...

你们家店里的东西怎么突然涨价了?

出0入0汤圆

发表于 2016-8-26 16:53:27 | 显示全部楼层
下一页 发表于 2016-8-26 00:00
你们家店里的东西怎么突然涨价了?

只有核心板有货,其他都卖断货了

出0入0汤圆

发表于 2016-8-26 16:56:10 | 显示全部楼层
helislayer 发表于 2016-8-25 23:36
你这个支持几个硬件 spi?
我看框图这个 spi 是挂在系统 flash 上面的。
做飞控最好有两个 spi,一个给 M ...

1个SPI
没问题,正常工作时FLASH不会频繁读取。所以用对外的CS1配合GPIO口做出多片选即可

出0入0汤圆

发表于 2016-8-27 01:22:28 | 显示全部楼层
avr-arm 发表于 2016-8-26 16:56
1个SPI
没问题,正常工作时FLASH不会频繁读取。所以用对外的CS1配合GPIO口做出多片选即可 ...

这个我保留我自己的看法。

SPI 对 IMU 的访问至关重要,IMU 希望是 1K 甚至 8K 的采样率。
任何对 FLASH 的访问都会影响 IMU 的采样,导致采样不均匀,
丢失采样点。这些对后面的滤波算法都会有比较大的影响。
滤波算法如果采样是均匀的比较好算,如果有不均匀的点
要麻烦很多,不然容易出现积分错误,体现为累计误差加大,
飞机漂移。

所以理想的飞控平台 IMU 希望有独立的 SPI 来使用。
和 flash 共享的 SPI, IMU 不能控制什么时候 flash
会被读写这个不是理想状态。

出0入0汤圆

发表于 2016-8-27 07:08:17 | 显示全部楼层
helislayer 发表于 2016-8-27 01:22
这个我保留我自己的看法。

SPI 对 IMU 的访问至关重要,IMU 希望是 1K 甚至 8K 的采样率。

这样子看的话确实是个问题。
有没有IIC的IMU?如果没有的话要求实时性可能用USB转SPI更靠谱一些。

出0入0汤圆

发表于 2016-8-27 08:54:31 | 显示全部楼层
avr-arm 发表于 2016-8-27 07:08
这样子看的话确实是个问题。
有没有IIC的IMU?如果没有的话要求实时性可能用USB转SPI更靠谱一些。 ...

IIC 的 IMU 也有,但是IIC 速度比较慢,MPU6050 大概就是最流行的一个。
采样率只能到 1K。超过 1K 那个 400KHz 的 IIC 读不出来。
话说回来,某著名厂商也是用 IIC 的 MPU6050 在最主打的飞行器上面。
单纯从接口角度 SPI 可以获得比较好的数据采集率。

USB 转 SPI 不太靠谱是因为使用 USB 的延时很可能都不止 1ms。
增加的延时间对控制是不好的。

出0入0汤圆

发表于 2016-8-27 17:39:34 | 显示全部楼层
长见识了

出0入0汤圆

 楼主| 发表于 2016-8-30 00:24:47 | 显示全部楼层
helislayer 发表于 2016-8-27 08:54
IIC 的 IMU 也有,但是IIC 速度比较慢,MPU6050 大概就是最流行的一个。
采样率只能到 1K。超过 1K 那个  ...

采样率和你系统的带宽相关,如果整个系统带宽就是50hz,那么1K的采样率也没什么用

作为飞行器,整体带宽不是很高,需要一定的采样率来保证算法收敛就可以了。

USB转SPI肯定有延迟,主要是控制器和外设之间通信的堆栈延迟。不过从另外角度看,传感器自身也有延迟,数据手册上面一般会有,滤波算法也会引入延迟,我觉得在总体带宽不大的情况下,这点儿延迟都不是问题,

出0入0汤圆

 楼主| 发表于 2016-8-30 00:28:49 | 显示全部楼层
helislayer 发表于 2016-8-27 01:22
这个我保留我自己的看法。

SPI 对 IMU 的访问至关重要,IMU 希望是 1K 甚至 8K 的采样率。

别说,这个我几年前还真试过,不过是simulink仿真的,
采样点不精确实际上对滤波算法没啥影响,挺好理解的,离散过的滤波算法,本来就是假设时间步长为小量,然后不精确的采样间隔就是小量的修正,那么就是高阶小量,在滤波算法中之后的补偿之后,对输出没有很大的影响。

出0入0汤圆

发表于 2016-8-30 02:32:10 | 显示全部楼层
Anteater 发表于 2016-8-30 00:24
采样率和你系统的带宽相关,如果整个系统带宽就是50hz,那么1K的采样率也没什么用

作为飞行器,整体带宽 ...

你玩过四轴飞行器看过 IMU 原始数据吗?
你一旦飞起来四轴上有多大的振动噪声你
知道吗?那些无刷马达的振动噪声的频域
有多宽? 你的问题不是测量一个平稳干净
的 50Hz 的系统。你的问题是要在一个很大
噪音的系统上面尽可能快的提取出系统的
姿态信息。

所以你就确定了 50Hz 就够了?

四轴飞行器基本上不会出现采样率过高的问题。
相反,采样率过低会是问题。

市面上好多商业厂家,特别是无人机排名比较
靠前的都是 1K 的采样率的。

你可以说我采样率比较低也可以飞起来。
但是那个绝对不是比较理想的情况。

你随便找个大街上的商业卖的玩具四轴测
一下,你就会发现他们的采样率其实挺高的。

出0入0汤圆

发表于 2016-8-30 02:34:48 | 显示全部楼层
Anteater 发表于 2016-8-30 00:28
别说,这个我几年前还真试过,不过是simulink仿真的,
采样点不精确实际上对滤波算法没啥影响,挺好理解 ...

对,关键字在“仿真”。
你找个 USB 到 SPI 转换然后真飞来。
拿个原始数据贴出来看看。

出0入0汤圆

发表于 2016-8-30 13:30:13 | 显示全部楼层
这么看的话,还不如找个arduino做飞控,找linux板处理业务。

出0入0汤圆

 楼主| 发表于 2016-8-31 01:17:34 | 显示全部楼层
helislayer 发表于 2016-8-30 02:34
对,关键字在“仿真”。
你找个 USB 到 SPI 转换然后真飞来。
拿个原始数据贴出来看看。

嗯,物理法则是检验事实的唯一标准:) 飞起来了的话,大自然自然帮助验证了,没有模拟那么多画画肠子,只是飞起来这件事儿也有很多技巧么。。。

其实对着仿真辩论还是挺无聊的,这里面变数太多,做出来良莠不齐,基本上是一个garbage in garbage out的过程

仿真的要点在于“真”,这个可以做很多,也可以一笑了之,做数值计算的水平也就在此体现。这里把simulink模型拿出来说事儿有点太严肃了,论坛么,娱乐一下就好

这楼都开始卖tb东西了,还什么原始数据,娱乐,娱乐,

出0入0汤圆

 楼主| 发表于 2016-8-31 01:32:20 | 显示全部楼层
avr-arm 发表于 2016-8-30 13:30
这么看的话,还不如找个arduino做飞控,找linux板处理业务。

arduino的确能做飞控,只是限制比较多,毕竟资源有限。和linux搭起来就相当于把飞控分层,arduino是底层执行基本飞控功能,linux是上层控制行为。
Intel edison大约是这个思路,linux做功能控制,里面的MCU做实时控制,当然,edison的目标是IOT,不是四轴飞控。

我对linux了解不多,经验都是从Intel Edison来的,还有就是原来学校里面上操作系统课程的时候留下的一点印象,

究竟linux作飞控有什么优势,我还真说不出来,劣势倒是明确的知道一个,就是实时性不佳,但是资源多计算能力强的特点很适合做上层控制。




BTW:这个帖子的硬件实际上是给RTKGPS做的,Linux进行RTK解算,导航模块负责GNSS信号解码,GPRS部分接收修正信息。 问题在于我在上面放了一个I2C的9DOF IMU, 就题外话的提出来这货直接可以做飞控。 实际四轴中,我是不会用这个做飞控的,我做了一个专门的飞控板子 (好像我之前有个帖子说这个了的)

出0入0汤圆

 楼主| 发表于 2016-8-31 01:39:40 | 显示全部楼层
本帖最后由 Anteater 于 2016-8-31 01:53 编辑
helislayer 发表于 2016-8-30 02:32
你玩过四轴飞行器看过 IMU 原始数据吗?
你一旦飞起来四轴上有多大的振动噪声你
知道吗?那些无刷马达的 ...


究竟我看看没看过IMU原始数据,呵呵,感兴趣可以翻翻我之前的帖子:)

四轴上多大的震动我也定量的知道,原因也知道,也知道怎么规避,只是在这个娱乐的帖子中有点不和谐 23333

不同无刷不同转速下无刷震动我测过频谱,带不带桨我也测过,不同桨型也做过,不同偏心率的侧过,不同驱动算法我也测过,原始数据么,呵呵,不得不说这玩意真不好测,有设备都不容易测准

控制率从50到800Hz我在同平台都飞过,结果么,呵呵,你猜 :D   究竟什么情况是理想情况,那就随你说喽

我说50hz那句之前有一个“如果”,嗯,嗯,就是假设情况,和真实四轴数据没有直接联系,那个假设的数值说37Hz也行

姿态解算分算法,有一些对采样率敏感,采样率不过百算法自身都不收敛,原因就是做离散积分近似的时候对忽略的高阶小量要求比较严格, 有的15Hz就能飞,这方面论文放狗一搜一大堆





出0入0汤圆

 楼主| 发表于 2016-8-31 01:44:24 | 显示全部楼层
本帖最后由 Anteater 于 2016-8-31 01:46 编辑


哦,对了,lz现在不卖板子,这些板子都是业余爱好,不会说哪个绝对好,其他的都是垃圾之类的事情

发帖就是打算咋这里存个档,有兴趣相投的还可以讨论一下,其他的么,呵呵

出0入0汤圆

发表于 2016-8-31 02:05:17 | 显示全部楼层
Anteater 发表于 2016-8-31 01:44
哦,对了,lz现在不卖板子,这些板子都是业余爱好,不会说哪个绝对好,其他的都是垃圾之类的事情

发帖就 ...

赫赫,我就更不卖板子了。
就是技术讨论一下而已,
技术问题技术讨论嘛。

就我看过的数据来说,用 1K 采样可以看到振动的噪声在几百 Hz
的范围,振幅动在 1个G 以上。所以振动都比较猛而且频域比较广。
所以有效的滤波是需要比较高的采样率。这些经验我乐于分享。

我其实是希望看到有比较合用的 Linux 那样的飞控板,但是现在
没有看到特别好的。要不就死贵。

出0入0汤圆

 楼主| 发表于 2016-8-31 02:50:34 | 显示全部楼层
本帖最后由 Anteater 于 2016-8-31 02:55 编辑
helislayer 发表于 2016-8-31 02:05
赫赫,我就更不卖板子了。
就是技术讨论一下而已,
技术问题技术讨论嘛。



我的经验是,采样率是保证你能看到频率的基本保证,但是高采样率并不一定带来正确的高频信号,这个和传感器性能直接相关,这也是测无刷震动倍儿困难的原因。

震动是个很头疼的事情,特别在gyro精度感人,需要加速度计修正的情况下。我最开始碰到这个问题的时候,发现四轴越飞越歪....然后静态还查不出问题,各种怀疑...直到搞好了Telemetry ,瞄一眼就知道怎么回事了。


个人觉得基础的飞控算法实际上没有那么复杂,就是说姿态保持,用保证实时性的方式控制,比如MCU裸奔或者+RTOS
其他的更高层次一点的行为控制对实时要求没有那么高,比如航线,速度之类的,这样linux就可以完美胜任了,再者说linux功能更强,更有能力实现复杂功能。我现在就在打算用这个RTKGPS硬件实现航线控制。



回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 00:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表