5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 12832|回复: 38
打印 上一主题 下一主题

【测试】尝试用STM32F4Discovery开发板和10dof模块(GY-86)组Paparazzi飞控

[复制链接]
跳转到指定楼层
楼主
发表于 2015-2-1 15:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
点击查看详情
2013年的时候,我用模块组了一个mwc飞控,因为i2c接口相同,mega2560的rom也够大,该硬件也可以刷apm海盗的程序。
尝试用arduino 2560开发板和10dof(GY-86)组MWC飞控
当时引用了两个很火的帖子
发点大家喜闻乐见的东西,同时把arduino 2560开发板和10dof(GY-86)组mwc连线图法上来
新人DIY四轴分享点经验,避免其他人重复走我走过的弯路
  今年我原本是打算用模块和洞洞板组个pix飞控的,于是买了STM32F4Discovery开发板,STM32F103开发板,还有一些arduino pro mini用来做PPM编码。年初时候下载好各种原理图和线路图,收集好芯片资料,准备学习之余大干一场。不料今年学业特别的忙,各种CFD的计算,各种后处理,写论文,等到正事办完也到寒假了,于是只好降低难度,先组个芯片少一些的。我观察了Paparazzi和CC3d飞控,硬件上把传感器的SPI和I2C接口跟微处理器的I2C接上就能用了,然后源代码都是可以修改的
  Paparazzi官网上已经有神人用STM32F4Discovery开发板DIY了飞控板,还做了一个分线板发布在github上(分线板工程文件  源代码链接 )。我参(chao)考(xi)了他的原理图,然后又优(tou)化(lan)了一下,有些不常用的接口没接。因为有组mwc飞控的经验(关键原因还是不想浪费GY-86模块),所以我把gy86的i2c接到了PB10和PB11上,主要是为了方便连线(原理上接到PB8和PB7也是可以的)。我没有使用PB6和PB9,因为F4Discovery开发板上CS43L22音频芯片的I2C接口已经把这两个端口用了。PA*至PE*端口的接线可以参考头文件里的配置,如下图

LINUX下开发飞控有很多坑,我踩了一路的地雷,各种报错,等到程序调通,脑细胞也已经死伤惨重。这里有个注意点(很关键),官网wiki上没有提到,编译stlink后,把编译得到的st-flash、st-info等4个程序复制到bin目录下去,复制完后把权限改成775(我就是因为忘改执行权限,能生成elf程序,但下载的时候会报错,反复调试了很多次才想到这个问题,st-flash忘给权限了)。github上的stm32F4discovery例程的AirFrame配置是有问题的,编译会报错,其他配置参数都可以删掉重写,除了关键的这句board="stm32f4_discovery“定义,它可以使程序支持ST-Link方式下载。我的这个stm32f4_discovery_test.xml文件已经改得面目全非了,抄袭了quadshot模型的部分配置。

  如上图所示,STM32F4discovery.h文件里的LED部分默认是注释掉的,所以AirFrame的配置也要跟着修改一下,去掉LED闪光功能(不去掉调试报错)。最后保证语法没错能调通的基础上,把lisa2.0板的定义去掉,把stm32f4Discovery板的定义加进去,这样下载按钮就有STLink选项了。代码调通后,通过STlink上传至STM32F4Discovery开发板,如下图所示。





评分

参与人数 1威望 +4 收起 理由
surebo + 4 赞一个!

查看全部评分

欢迎继续阅读楼主其他信息

沙发
发表于 2015-2-1 15:14 | 只看该作者
楼主有尝试过GY-88接I2C吗?另外,接口在配置文件中如何定义的 ?我的lisa 飞控用GY-88接到I2C上没反应。
3
发表于 2015-2-1 15:20 | 只看该作者
另外STM32F4 自带的bootloader 也可以直接通过usb 写入配置文件到飞控而省去了stlink 吧?使用DFU-UTIL就可以吧?

4
 楼主| 发表于 2015-2-1 15:54 | 只看该作者
tufeii 发表于 2015-2-1 15:14
楼主有尝试过GY-88接I2C吗?另外,接口在配置文件中如何定义的 ?我的lisa 飞控用GY-88接到I2C上没反应。

我用STlink是验证一下官网给的代码是不是对的,用discovery开发板,不得不带着STlink烧写器上天,同样任务载荷下留空时间要损失了。正常的飞控板,程序上传也可以从microUSB口那里通过DFU上传,把BOOT0接3V重启,如果不成功,就BOOT0接3V同时把BOOT1接GND再重启,这样就进DFU模式了。
GY86用的是ms5611传感器,有两种读取方式,一个是spi方式读,一个是i2c方式读。GY-88的传感器也都可以走i2c接口,气压传感器用bmp085,路径都在\sw\airborne\peripherals,分别是bmp085.h,mpu60x0——i2c.h,hmc58xx.h
lisa飞控默认是用的aspirin2spi模块,目录在\sw\airborne\subsystems\imu
#include "subsystems/imu/imu_mpu60x0_defaults.h"
#include "peripherals/mpu60x0_spi.h"
然后结构体变量里也用的spi接口的数据,所以导致了GY-88接到I2C上没反应。
struct ImuAspirin2Spi {
  volatile bool_t gyro_valid;
  volatile bool_t accel_valid;
  volatile bool_t mag_valid;
  struct Mpu60x0_Spi mpu;
  struct spi_transaction wait_slave4_trans;
  volatile uint8_t wait_slave4_tx_buf[1];
  volatile uint8_t wait_slave4_rx_buf[2];
  volatile bool_t slave4_ready;
};
可以在imu目录下新建一个模块gy88,按i2c方式添加变量

5
发表于 2015-2-1 16:06 | 只看该作者
xukejing 发表于 2015-2-1 15:54
我用STlink是验证一下官网给的代码是不是对的,用discovery开发板,不得不带着STlink烧写器上天,同样任 ...

一看楼主就是单片机高手,可惜小弟初学,又是个外行。学起来很艰难,新建一个对我来说不容易,更不用说按照I2C方式添加bianliang .I hope if you can help me out.

6
发表于 2015-2-1 16:33 | 只看该作者
完全看不懂
7
发表于 2015-2-1 16:59 | 只看该作者
xukejing 发表于 2015-2-1 15:54
我用STlink是验证一下官网给的代码是不是对的,用discovery开发板,不得不带着STlink烧写器上天,同样任 ...

可否用 imu 路径下的drotek 10 dof模块替代新建gy-88?气压计好像是baro单独管理的。

8
发表于 2015-2-1 17:02 | 只看该作者
本帖最后由 caosix2 于 2015-2-1 17:07 编辑

非常支持 楼主的 DIY 行动  。。。

不过呢:我觉得 应该 模块化:事半功倍 啊。

请参看——我得帖子:

有对DIY【模块化】简易飞控感兴趣的吗?(自己掌握核心软件)避免限高50米之类。  ...2

姿态测量模块直接用现成的,卡尔曼程序都不用自己做。
输出:3个量给 三轴陀螺仪,CCPM 混控 等程序也省了

自己 只做 核心的 东西,可以 快速感受到 自己的成果。



9
发表于 2015-2-1 17:05 | 只看该作者
尝试了下在配置文件里改imu为drotek 10dof ,build 能够通过,upload 后依然无法识别gy-88 ,同时板上的imu初始化指示灯只是常亮,并无初始化的过程(闪亮多次后常量)。
10
 楼主| 发表于 2015-2-1 17:14 | 只看该作者
tufeii 发表于 2015-2-1 17:05
尝试了下在配置文件里改imu为drotek 10dof ,build 能够通过,upload 后依然无法识别gy-88 ,同时板上的imu ...

我也是参考了drotek 10dof的写法,新建了imu_gy86_i2c.h和imu_gy86_i2c.c
I2C读imu的代码是对的。无法识别gy-88,airframe里的xml配置文件可能还有疏漏,导致还在按spi的方式工作,没有读i2c接口,或没把i2c接口读到的数据用于姿态结算。

11
发表于 2015-2-1 17:39 | 只看该作者
完全看不懂
12
发表于 2015-2-2 12:33 | 只看该作者
mark
13
发表于 2015-2-2 21:35 | 只看该作者
留个爪印,日后学习
14
发表于 2015-2-5 23:18 | 只看该作者
mark 一下  目前还在使用PAPARAZZI 阶段
15
发表于 2015-2-10 22:17 | 只看该作者
高手,关注
16
发表于 2015-2-12 23:55 | 只看该作者
技术贴不顶说不通,期待楼主最终成果,造福模友
17
发表于 2015-3-20 09:34 | 只看该作者
关注
18
发表于 2015-3-22 22:44 | 只看该作者
关注中,很想自己研究这些开源飞控,可惜对硬件有欠缺呀
19
发表于 2015-4-6 23:31 | 只看该作者
进展到什么地步了?
来自苹果客户端来自苹果客户端
20
 楼主| 发表于 2015-4-11 22:24 | 只看该作者

差点烂尾楼了,原来以为寒假能宅在屋里研究点业余爱好,结果各种访亲逛街和旅游到开学,然后开学又带着几个做毕设的小师弟搞项目。师弟赶着要毕业答辩,时间很紧,忙得一塌糊涂。
今晚逛论坛,抽空赶紧写点组飞控的经验。paparazzi飞控用开发板和模块组起来很容易,组块ppz飞控板的成本基本跟mwc一样,很便宜的,希望大伙儿能推广起来。当然,ppz飞控的局限性也是有的,比如上图那个地面站,习惯性下不到地图。

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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