5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 树莓派2手工打造Linux APM飞控 [打印本页]

作者: sciencebeer    时间: 2015-3-15 20:17
标题: 树莓派2手工打造Linux APM飞控
本帖最后由 sciencebeer 于 2015-3-31 21:51 编辑

今年2月份,树莓派基金会发布了新款的树莓派2,900MHz四核ARM Cortex-A7处理器,1G RAM。运行Linux操作系统,售价只要35美元。
树莓派原本是作为爱好者、儿童教育用途的“微型电脑”,从一代树莓派发布以来已经积累了很多应用和代码库。而这次发布的2代性能比以前提高了6倍,除了可以兼容上一代的所有应用以外,处理器的性能足够用来跑一些高级的算法,跑ros、opencv等也应该足够了。相比而言PIXHAWK飞控,光处理器STM32F427至少也要15美元。只有168MHz主频、256kB RAM。 (, 下载次数: 621)
因此我觉得把APM飞控程序移植到树莓派上,可以拓展很多应用的想象空间。所以在某宝上买了一些传感器模块,自己动手搭了个飞控的原型板。
(, 下载次数: 626)
硬件上总共用了一下几个模块,基本都是某宝上买的现成的:
1. MPU6500 陀螺仪+加速度计
2. HMC5883L 电子罗盘
3. MS5611 气压计
4. PCA9685 用于扩展PWM输出
5. NPN三极管和电阻,用于S.BUS到串口的转接(我用的是FrSky的X8R接收机,串口100k波特率就可以解析S.BUS协议)
6. 转5V电源模块
(, 下载次数: 610) (, 下载次数: 626) (, 下载次数: 663)
软件上ArduPilot的官方代码已经向Linux做了移植,对我来说只需要针对硬件模块做一些小改动、然后重新编译一下即可。
另外原版的Linux是非实时的,要运行飞控代码的话,还要打一个RT-patch,树莓派的官网上能找到相应的教程。
(, 下载次数: 646)
焊接调试好后,用扎带和海绵把飞控板固定到F450机架上。在室内试了一下可以工作,等有空的话去室外飞一下,再来上传视频。
另外如果距离比较近的话,可以用树莓派的WiFi模块代替数传,实测速度要比数传快很多。
(, 下载次数: 603)
如果大家感兴趣的话,后面会详细写一写制作的过程。
=======================================2015年3月17日更新========================================
在67楼更新了一些教程,一起讨论给点建议哈
=======================================2015年3月31日更新========================================
在83楼更新了最新制作进度,PCB版本的树莓派飞控已经进入加工阶段





作者: chinakuobu    时间: 2015-3-15 20:30
技术贴就必须学习下

作者: ansonl    时间: 2015-3-15 20:33
這個厲害喔.持續關注

作者: zhb133    时间: 2015-3-15 21:03
这样的话 如果成功了 普及了 让dji情何以堪啊

作者: sciencebeer    时间: 2015-3-15 21:13
现在能想到的应用还有接上摄像头做WiFi图传;插一个4G网卡做4G数传;
高级一点的还可以用摄像头做手势识别、语音识别等等

作者: W77W    时间: 2015-3-15 21:26
超级感兴趣啊,楼主放个教程吧

作者: huang2678    时间: 2015-3-15 21:31
加油

作者: 蓝魔之夜    时间: 2015-3-15 21:35
懂这个的就是好,,什么都可以自己来,,,顶顶

作者: dolphintt920    时间: 2015-3-15 21:51
"ArduPilot的官方代码已经向Linux做了移植" 意思是只要硬件正确任何跑LINUX的系统都能玩APM咯?

作者: 1025092287    时间: 2015-3-15 21:53
飞行器专业对 IT不熟,刚刚买了一块树莓派,还不会玩,求楼主指教

作者: sciencebeer    时间: 2015-3-15 22:07
dolphintt920 发表于 2015-3-15 21:51
"ArduPilot的官方代码已经向Linux做了移植" 意思是只要硬件正确任何跑LINUX的系统都能玩APM咯?

是的,PC机也可以。装Linux打上RT-patch,用USB扩展出SPI、I2C等接口,再修改一下底层驱动。


作者: yhzyhzyhzapple    时间: 2015-3-15 22:16
真有用树莓派的……牛!

作者: yhzyhzyhzapple    时间: 2015-3-15 22:16
不过用Linux,实时性能行么?

作者: triskaideka    时间: 2015-3-15 22:24
这个必须顶,厉害的

作者: kingvole    时间: 2015-3-15 22:28
树莓派 老款的还行啊?


作者: sciencebeer    时间: 2015-3-15 22:29
yhzyhzyhzapple 发表于 2015-3-15 22:16
不过用Linux,实时性能行么?

可以的,打RT-patch前,定时中断的延迟完全不可控,打RT-patch后,定时中断延迟最大不超过100us


作者: sciencebeer    时间: 2015-3-15 22:30
kingvole 发表于 2015-3-15 22:28
树莓派 老款的还行啊?

老款的也可以,就是老款的CPU速度太慢,跑opencv之类的应用很吃力。另外老板的螺丝固定孔实在是无语。


作者: rjg07232636    时间: 2015-3-15 22:32
高手………

作者: 炸香机    时间: 2015-3-15 22:43
楼主牛人

作者: 炸香机    时间: 2015-3-15 22:45
楼主牛人

作者: 喜歪歪    时间: 2015-3-15 22:45
dolphintt920 发表于 2015-3-15 21:51
"ArduPilot的官方代码已经向Linux做了移植" 意思是只要硬件正确任何跑LINUX的系统都能玩APM咯?

随便拿个安卓手机过来,分分钟可以??想象一下之后的故事吧!

作者: 阿琨    时间: 2015-3-15 22:46
LZ,论坛里有另外的高人在用树莓派搞高清图传!!!

您俩能合体一个不??哈哈,搞一个飞控+高清图传的方案!!!!

颠覆行业啊!!!!!

作者: sciencebeer    时间: 2015-3-15 22:53
喜歪歪 发表于 2015-3-15 22:45
随便拿个安卓手机过来,分分钟可以??想象一下之后的故事吧!

这个我过年在家时还真想过,哈哈。不过安卓手机还是贵啊..


作者: zhanyiduo    时间: 2015-3-15 23:12
我之前误认为liunx的实时性不好不适合飞控的程序。我记得看过一个rov的比赛专栏,其中一个新加坡的队伍就是用apm来控制姿态,用树莓派来处理图像。lz既然用上了这么强大的处理器,应该多开发一些视觉识别的功能。

作者: wxlijun324    时间: 2015-3-15 23:21
这个不错,求科普。

作者: er9x    时间: 2015-3-15 23:21


作者: ilikepanda007    时间: 2015-3-16 01:17
膜拜大神,持续关注!!

作者: 我要飞得更高fzb    时间: 2015-3-16 09:21
高大上 坐等教程

作者: hulandy    时间: 2015-3-16 09:29
树莓派粉丝来顶个。不过LZ的那个5V模块太随意了。

作者: dukong    时间: 2015-3-16 09:45
不错的树莓派飞控贴。

个人担心整个飞控的能耗会不会有点大?

作者: 逍遥一回    时间: 2015-3-16 09:54
膜拜高大上楼主,坐等教程出现

作者: kstg3306572    时间: 2015-3-16 11:10
看上去很有发展空间啊   不错不错


作者: zizaideyu5    时间: 2015-3-16 11:16
回帖留名,就喜欢技术派。

作者: witp    时间: 2015-3-16 11:17
有创意,开个教程让大家都玩玩

作者: 龙腾四海1113    时间: 2015-3-16 11:46


作者: 宇浩轩杰    时间: 2015-3-16 12:58
楼主太棒了,以后可以开发更多新功能了

作者: yhzyhzyhzapple    时间: 2015-3-16 13:13
sciencebeer 发表于 2015-3-15 22:30
老款的也可以,就是老款的CPU速度太慢,跑opencv之类的应用很吃力。另外老板的螺丝固定孔实在是无语。

...

树莓派新版老板CPU一样的啊


作者: dreamsky    时间: 2015-3-16 13:32
回帖mark  看看后续效果

作者: zign    时间: 2015-3-16 14:08
LZ精神可嘉,但Linux往飞控上用并不合适,尤其是没有核心优化的。
LZ应该考虑其他的RTOS,如果能用Nuttx那就更好了。

作者: dawanpi    时间: 2015-3-16 15:57
1. 就算打了rt patchLinux实时性也不如专门的rtos好,否则那么多商用rtos厂家早喝风去了。而且Linux过于复杂,会降低可靠性。
2. 树莓派那么便宜是建立在数量大的基础上的,否则连博通的cpu都买不到。楼主拿stm32的样片价格和树莓派的批量比?要是pixhawk有那个数量,估计价格15美元都不到。

作者: atczyh    时间: 2015-3-16 19:41
太凶残了 有树莓派来跑这玩意 运算能力过剩

作者: 1263436446    时间: 2015-3-16 21:45
zhanyiduo 发表于 2015-3-15 23:12
我之前误认为liunx的实时性不好不适合飞控的程序。我记得看过一个rov的比赛专栏,其中一个新加坡的队伍就是 ...

求这个比赛的链接~最近也在研究这方面的内容


作者: task00    时间: 2015-3-16 22:13
顶一个
球电路图
球patch

作者: zhanyiduo    时间: 2015-3-17 09:09
本帖最后由 zhanyiduo 于 2015-3-17 09:11 编辑
1263436446 发表于 2015-3-16 21:45
求这个比赛的链接~最近也在研究这方面的内容
https://coconutpi.wordpress.com/



作者: hoochaw    时间: 2015-3-17 10:40
牛人, 围观膜拜一下

作者: sanmaodeai    时间: 2015-3-17 12:09
这个必须支持,能把资料共享吗?

作者: wangmingjie    时间: 2015-3-17 12:41
yhzyhzyhzapple 发表于 2015-3-16 13:13
树莓派新版老板CPU一样的啊

不一样哦

作者: hayasi    时间: 2015-3-17 13:05



技术贴真牛


作者: caosix2    时间: 2015-3-17 13:24
  两天 没上网 看 5iMX ——先 顶了 再 细细看。。

——支持:把 传感器 与 运算单元 分开,便于 减震。


作者: 玲珑飞宝MM    时间: 2015-3-17 13:31
学习

作者: tjcdq    时间: 2015-3-17 13:32
貌似这个是技术贴。大家顶顶啊!!!

作者: caosix2    时间: 2015-3-17 13:34
sciencebeer 发表于 2015-3-15 21:13
现在能想到的应用还有接上摄像头做WiFi图传;插一个4G网卡做4G数传;
高级一点的还可以用摄像头做手势识别 ...

  个人 觉得:主要的 应用和次要的应用 应该分开。

就 PixHawk 飞控而言:其 CPU —— STM32F427——
的运算 能力 已经足足足够 满足 姿态稳定 解算。。。
作为飞行器——稳定可靠是 第一重要的——

其它的 附带功能 能少则少。。。越简单越可靠。。。
应该说纯单片机 比 【单片机+RTOS(Linux)】更可靠

很支持 楼主的 创新 方式。。。期待 后续 效果。。。


作者: duan123    时间: 2015-3-17 13:34
MARK一下,持续关注

作者: 致命情魔    时间: 2015-3-17 13:47
一看又是属于高大上的技术性帖,飘过~~~~

作者: 虎门小段    时间: 2015-3-17 16:01
树莓是好东西啊

作者: sciencebeer    时间: 2015-3-17 18:32
caosix2 发表于 2015-3-17 13:34
个人 觉得:主要的 应用和次要的应用 应该分开。

就 PixHawk 飞控而言:其 CPU — ...

说的很对,飞控还是要稳定可靠。就像人的大脑和植物神经,即便大脑休克,心脏等器官还是要保证工作。
另一方面看,树莓派作为一个学习平台还是不错的。


作者: Geoff1127    时间: 2015-3-17 18:35
技术贴,顶了!

作者: nazawk    时间: 2015-3-17 20:39
牛人,持续关注

作者: victor振振    时间: 2015-3-17 21:33
现在正在做这方面的课题,楼主给力呀

作者: napier    时间: 2015-3-17 22:48
这种电源模块的质量参差不齐,纹波有的会偏高,对系统的稳定性有影响。

作者: 江南第二燕    时间: 2015-3-17 23:22
楼主技术大牛啊。

作者: task00    时间: 2015-3-18 02:23
我帮你文档整理一下,放到diydrone上去吧。。

作者: task00    时间: 2015-3-18 11:14
楼主啊,看了一下代码,是不是GPS你用的ublox的spi口啊,是借用emlid的方式吗?需要找到ublox的配置。。

作者: sciencebeer    时间: 2015-3-18 11:47
task00 发表于 2015-3-18 11:14
楼主啊,看了一下代码,是不是GPS你用的ublox的spi口啊,是借用emlid的方式吗?需要找到ublox的配置。。

目前室内飞还没有接GPS,舍不得剪GPS的线……
打算用一个USB转串口接GPS,代码只是从上一行粘过来,还没有改。


作者: task00    时间: 2015-3-18 12:04
sciencebeer 发表于 2015-3-18 11:47
目前室内飞还没有接GPS,舍不得剪GPS的线……
打算用一个USB转串口接GPS,代码只是从上一行粘过来,还没 ...

这个。。。SPI口之外还有PPS口接了ublox的1pps秒输入的。。你得看下代码,这个部分希望不要给系统打了时间戳同步。。


作者: 783385710    时间: 2015-3-18 13:30
精品贴,必须顶

作者: yybyhn6f    时间: 2015-3-18 13:42
留印学习,顶顶顶

作者: zhude111    时间: 2015-3-18 14:58
确实是牛B了...这个项目很有前途  

作者: gaoyah    时间: 2015-3-19 13:44
牛人 牛人 牛人

作者: RiverBian    时间: 2015-3-19 14:02
这个思路不错,结合了APM的飞行控制算法与树莓派运算能力的优点。

作者: sanmaodeai    时间: 2015-3-19 15:32
sciencebeer 发表于 2015-3-17 21:56
1. 手绘了一张原理图,不要嫌丑哈

我也来一块,预订


作者: tonyvicky    时间: 2015-3-23 14:20
哈哈,又一个用树莓派做的,我也是用树莓派做的。
apm的ap_hal_linux接口支持BeagleBone black和树莓派。

楼主有空的话加我qq 125680613

我做的树莓派上位机,控制arduino multiwii来实现的
视频在这里http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1049340&page=1#pid15584039


作者: xiafsn    时间: 2015-3-23 22:22
新手学习膜拜

作者: n-flyer    时间: 2015-3-24 17:44
sciencebeer 发表于 2015-3-17 21:56
1. 手绘了一张原理图,不要嫌丑哈

有兴趣,有没有qq想跟你学习学习派

作者: chennyweei    时间: 2015-3-24 22:42
楼主求个QQ号  

作者: nfgh151612    时间: 2015-3-24 23:30
如果安卓手机也可以的话,那淘汰下来的手机可以大有用途了,我要做的满天都是飞机在飞!

作者: zhude111    时间: 2015-3-28 15:37
太监了么????????????!!!!!!!!!!!!!!!!!!!!!!

作者: sciencebeer    时间: 2015-3-28 19:50
zhude111 发表于 2015-3-28 15:37
太监了么????????????!!!!!!!!!!!!!!!!!!!!!!

稍微改了下设计,正在出PCB。


作者: moonsound    时间: 2015-3-28 23:20
顶楼主

作者: n-flyer    时间: 2015-3-31 16:46
顶一下,楼主加油。

作者: sciencebeer    时间: 2015-3-31 21:48
在task00大神的顶力帮助下,目前PCB版的树莓派飞控已经完成设计,进入加工阶段。
既然做PCB了,就索性一次性做完善点。新的设计借鉴了不少pixhawk和navio飞控的设计。
比如:
接口采用与pixhawk兼容的插针或DF13接口,原先玩pixhawk的版友,电源/罗盘/GPS模块可以直接拿过来使用;
STM32F103 failsafe co-processor;
电源输入过压/反接保护,短路保护。USB、Servo BEC、Power接口三路冗余供电;
板载LED灯、蜂鸣器,板载GPS模块。这样配合task00大神的WiFi数传图传,可以最大限度的减少外接配件。关于WiFi图传数传,大家可以参考task00的帖子。http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=1043418&extra=page%3D1

(, 下载次数: 92)
处理器:
树莓派A+/B+/2
STM32F103 failsafe co-processor

传感器:
MPU6500/MPU9250 陀螺仪&加速度计
MS5611 气压计
HMC5883L 电子罗盘
板载u-blox NEO-M8N GPS(可接主动式天线)


接口:(接插件采用DF13接口,兼容pixhawk的配件)
Power Module输入,兼容APM和pixhawk的电源模块。可对电压和电流进行采样
1路串口(可接数传或GPS模块)
1路I2C
1路安全开关接口
8路PWM输出
1路BEC接口,可以给舵机做额外供电
板载蜂鸣器和RGB LED

RC接收机接口:
PPM sum
S.BUS
Spektrum DSM / DSM2 / DSM-X Satellite

另外打算做一个USB转DF13串口的小模块,这样扩展串口GPS或数传就比较方便了。

飞控焊接调试完成后,再回来分享试飞效果。


作者: task00    时间: 2015-3-31 22:10
我就是打打酱油。。

作者: fxlee    时间: 2015-4-1 17:43
坐等成品,看效果

作者: code    时间: 2015-4-1 20:21
mark!

作者: sanmaodeai    时间: 2015-4-1 20:56
貌似挺不错的呀,关注中

作者: makeflyeasy    时间: 2015-4-3 22:02
很厉害的样子

作者: kanqiluguo    时间: 2015-4-3 22:30
楼主牛人啊

作者: oicqnick    时间: 2015-4-4 20:32
用arduino做运动协处理器处理姿态控制,用树莓派处理进行视频流编码和传输,如何。。??

作者: sciencebeer    时间: 2015-4-5 18:42
oicqnick 发表于 2015-4-4 20:32
用arduino做运动协处理器处理姿态控制,用树莓派处理进行视频流编码和传输,如何。。??

也可以啊,就是arduino的性能差些,代码量和运算速度会受到限制。


作者: W77W    时间: 2015-4-5 23:05
留个记号。。。。

作者: wowjl    时间: 2015-4-6 00:34
mark

作者: thomas0769    时间: 2015-4-6 08:41
sciencebeer 发表于 2015-3-15 22:53
这个我过年在家时还真想过,哈哈。不过安卓手机还是贵啊..

手机也有 蛇螺仪,GPS,高度,罗盘,LIUNX系统, 能不能 手机的硬件,传感器, 发送数据,控制4轴,也就是说 4轴上没有飞控,只有块接收板


作者: huhu2207    时间: 2015-4-6 10:46
sciencebeer 发表于 2015-4-5 18:42
也可以啊,就是arduino的性能差些,代码量和运算速度会受到限制。

以后能出套件吗?很期待啊


作者: sciencebeer    时间: 2015-4-6 13:58
thomas0769 发表于 2015-4-6 08:41
手机也有 蛇螺仪,GPS,高度,罗盘,LIUNX系统, 能不能 手机的硬件,传感器, 发送数据,控制4轴,也就 ...

应该是可以的,如果能用Android开发的话,就可以做的比较通用了,否则不同型号的手机就要整不同的系统和驱动。但是我没写过Android程序,不知道能不能设置进程的优先级,提高实时性。



作者: sciencebeer    时间: 2015-4-6 13:59
huhu2207 发表于 2015-4-6 10:46
以后能出套件吗?很期待啊

打算做一个开源的扩展板,现在正在弄,有进展会过来更新的。


作者: Redon    时间: 2015-4-15 16:24
我也在用树莓派做东西,求交流。

作者: vistasc    时间: 2015-4-15 17:00
楼主神人 膜拜大神

作者: fxlee    时间: 2015-4-15 17:05
本帖最后由 fxlee 于 2015-4-15 23:59 编辑

我刚收到树莓派,准备用来学习python控制 硬件.

我觉得楼主应该建个群大家交流下,最好是能先出个扩展板,先把硬件搞定,软件部分大家再一起搞。
硬件刚开始不用太复杂,能实现飞控的基本控制功能就差不多来。
要不然时间久来热度久降下来啦


作者: 紫云轩    时间: 2015-4-17 23:58
lz进展如何,持续关注中~~

作者: 吃甘蔗的恐龙    时间: 2015-4-18 21:33
看起来很不错啊,留名





欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3