APM 固件编译

飞控开发

V3.2终于出来了,poshold模式刚体验过,真不错。为加这个功能,编译出来的固件大概增加了4.5KB。对于本来容量就不大的2560芯片,于是牺牲了命令行(21KB)。给习惯命令行测试传感器,刷EPPROM等操作的用户带来不便。

让我们看看APM的官方固件都少了哪些功能。以多旋翼为例。打开./ArduCopter/APM_Config.h文件
*********这些都是默认启用的,如果不想要把注释去掉(行开头的两个斜杠删除)*****************
//#define LOGGING_ENABLED DISABLED // 日志占11K flash空间
//#define MOUNT DISABLED // 相机控制占8K
//#define AUTOTUNE_ENABLED DISABLED // 自动调参占7K
//#define AC_FENCE DISABLED //围栏占2K
//#define CAMERA DISABLED // camera trigger占1K
//#define CONFIG_SONAR DISABLED // 声呐占 1k
//#define POSHOLD_ENABLED DISABLED // PosHold占4.5k
*********这些都是默认禁用的,如果想要把注释去掉,可以看到命令行被禁用了**************
//#define AC_RALLY ENABLED // rally points 2k
//#define PARACHUTE ENABLED // 伞降1k
//#define CLI_ENABLED ENABLED // 命令行 21K !!!!
*********这些都是默认禁用的,如果想要把注释去掉**************
//#define OPTFLOW ENABLED // 光流5K,如果你装了光流,不工作,那要改这里了
//#define SPRAYER ENABLED // 不知道干啥的,喷农药?
//#define EPM_ENABLED ENABLED // epm 0.5K, 要运货?
//#define NAV_GUIDED ENABLED // enable external navigation computer to control vehicle through MAV_CMD_NAV_GUIDED mission commands


现在我们知道3.2版本为什么命令行没了。想要就要自己编译固件。如果固件不对,是不会刷坏板子的,放心大胆的实践吧。当然,如果你把所有的都启用了,编译出来的固件太大,是放不进去的。所以根据自己的实际使用来选择你需要的功能。比如:需要自动调参的时候把自动调参开启,其他的先关闭,一旦调好了,基本都不用这个功能的。那就注释掉。可以把光流啊啥的加上去。当然每次修改,都得重新编译固件。
好了下面我们就说怎么编译固件。其实一点都不麻烦。玩开源的不自己折腾着玩,还真不如买商品机
1)先下载工具。
1-1)git工具,方便check你想要的固件。下载地址:https://github.com/
往下拉看到这里就下载吧,这个要安装的。

git_download.jpg


1-2) 代码下载,https://github.com/diydrones/ardupilot
命令行用:git clone git://github.com/diydrones/ardupilot.git
不想用命令行的看页面的这里,点那个都行,不行的话请稍微百度一下git的用法

apm_code_download.png

1-3)编译工具下载,APM Arduino

2)工具代码都下载好了。下面开始编译了。
2-1)首先打开git shell,就是1-1里安装的工具。然后进入你下载代码的目录。比如:我是安装在G:\Proj\ardupilot

git2.jpg

2-2)注意这是的代码是最新的,我估计大家都喜欢稳定版本的。那么我们要checkout出稳定版的,目前是3.2.执行下面命令个,可以看到我们从master变为了ArduCopter-3.2:

git3.jpg


这时候你本地的代码就是稳定版3.2的了,然后打开./ArduCopter/APM_Config.h文件,推荐用notepad++(下载地址)。把你需要的,不需要的改改,然后保存。接下来就编译了。我写过一个编译APM+的,这里直接贴链接吧。
只看第3部分就行。APM+ 代码编译及字符修改

3 个评论

赞一个,这很有用!
支持一下!刚看到伞降功能,apm都这么多功能了。。
我尝试好多次都是无法编译啊,能否帮个忙。我需要用到声纳和光流,不用自动调参、相机控制、地理围栏,如果有大神可以表一好发给我,感激不尽啊!qq408023268

要回复文章请先登录注册