APM+ 代码编译及字符修改

飞控开发

1)代码下载
此代码已过期,最新以github为准。https://github.com/PlayUAV/ardupilot
请阅读README_Playuav.md获得更多信息。

目前APM稳定版本是:
多旋翼V3.1.5,下载地址:copter3.1.5
固定翼V3.1.1,下载地址:plan3.1.1

2) 编译工具下载
使用APM修改过的arduino来编译。原版的不能编译!从APM官网下载的编译工具还要改个配置文件,这里把改好的放这里:apm-arduino编译工具
3)编译代码,因为plane和copter稳定版本不一样,所以我们要修改两份代码,并且不同版本处理也有些不一样,下面只以多旋翼版本为例。

3.1)设置arduino
打开File-->Preferences设置工作目录如下图,一定要把启动更新去掉,其他没用的也不要勾选,就按下图设置吧。

arduino1.jpg

注意:arduino的配置文件是放在:C:\Users\Administrator\AppData\Roaming\Arduino\preferences.txt
arduino默认是不保存编译出来的固件文件的。如果要把编译出来的固件文件保存下来。要修改这个文件,打开加入这行:build.path=d:\arduinobuild 这样每次编译后,二进制文件就保存在这里(ArduPlane.cpp.hex),这个文件可以在地面站里用加载定制固件来烧到板子上,参考:APM+简介和使用,如图

arduino2.png


3.2)然后打开项目文件./APMCopterOSD/ArduCopter/ArduCopter.pde, 固定翼的是./APMPlanOSD/ArduPlane/ArduPlane.pde

arduino3.jpg

选择好芯片类型(mega 2560)和端口,就可以编译上传了。当然飞控要连上USB,并且驱动正确。安装missionplaner时会安装驱动的。

4)字符修改,下载工具吧:字符修改和上传工具
如果对我们修改的字符不满意,可以自己修改字符文件,并上传到MAX7456芯片上。
打开MAX7456Charwizard.jar(要装java吧),并打开字符文件,my_Charset.mcm是我们修改过的,OSD_Charset.mcm是miniosd的如图:

CharsetMod.png

选择一个字符就可以修改了,对点阵字符没概念?用神器吧PCtoLCD2002^_^

修改后一定要点"Save Charact..."按钮,然后File--->save。不要白费努力啊,我就碰到过。

最后更新字符到MAX7456,还是使用阉割版的miniosd的工具,为了怕误操作,把没用的去掉了。通过USB连飞控,打开OSD_Config.exe,选择端口,不一样电脑端口不同。然后菜单Options--->Update CharSet..--->打开,如果一切正常就开始上传字符了,下面有进度条显示,上传完有个对话框跳出来的。如图:
charsetUpload.jpg

6 个评论

请问我编译ArduCopter提示编译出错,但是编译Arduplane和Ardumoves都能通过并可以在指定文件看到编译的文件。
rentt

rentt 回复 Banana

提示什么错误,估计是固件太大了,超过了248K
Banana

Banana 回复 rentt

我之前编译最新版本不能通过,然后换了2.8的也不行,昨天找了3.2.1版本的就通过了。是版本问题么?
编译v3.3出现的错误:ArduCopter.pde:104:58: fatal error: AP_SerialManager.h: No such file or directory
compilation terminated.
rentt

rentt 回复 Banana

3.3dev的时候,你先看第一行,明确说明不能用再APM2.X上。所以不能用ARDUINO IDE编译。
Banana

Banana 回复 rentt

是在ArduCopter.pde里么,没找到- -
有个问题想请教!我现在用的是3.2.1固件,但是用不了声纳跟光流传感器,我了解到要配置,但是我下载了固件,没有办法编译成hex,可以为了内存而放弃其他某些功能,希望能配置编译的朋友帮个忙,联系我好吗!408023268

要回复文章请先登录注册