PPM 编码器¶
警告
存档
PPM 编码器可将最多 8 个 PWM(脉宽调制)信号编码成一个 PPM(脉冲位置调制)信号。
jD-PPM 编码器(v2.1)使用 ArduPPM 固件,取代了之前使用的 Paparazzi PPM 编码器固件。新的 ArduPPM 固件从零开始设计,以提高性能和稳健性,并更好地适应我们现在和未来的产品需求。
故障安全输出值:¶
新的中断系统可更好地处理某些 Futaba 接收机(在快速间隔内同时更改一组遥控通道)(这在 v2.3.13 中已经存在)
信道丢失时的调整行为:如果一个信道丢失,将根据下表进行设置。其他通道将继续工作。
频道 1
卷轴
设置为中心(1500 μs)
频道 2
间距
设置为中心(1500 μs)
第 3 频道
节流阀/电门
设置为低电平(900 μs)
第四频道
亚乌
设置为中心(1500 μs)
第 5 频道
...
保持最后数值
第 6 频道
...
保持最后数值
第 7 频道
...
保持最后数值
第 8 频道
...
保持最后数值
在 Copter 和 Plane 中,节流阀低电平信号可触发故障安全动作。
应按照维基百科中的说明进行仔细配置。 APM 旋翼飞行器 和 APM 平面
另外请注意,这与发射机和接收机之间失去无线电连接无关。接收机在超出范围时的行为取决于发射机/接收机的硬件和设置。因此在飞行前,请务必仔细检查所有情况
设置手册¶
"这款" PPM 编码器手册 说明了如何焊接和连接 PPM 编码器,并解释了不同的故障安全模式。
重新编程 Atmega328p PPM 编码器¶
备注
PPM 编码器预置了 PPM 编码器固件,大多数用户都不需要或不想修改它。
不过,有些用户可能想进入代码更改 PPM 编码器解释 RC 信号的方式,或者想更新到最新版本。一些罕见的用户确实报告了旧版本(ArduPPM 之前)的接收器兼容性问题。在大多数情况下,ArduPPM 确实解决了这些问题。
ArduPPM 是新一代固件的正式名称。ArduPPM 是新一代固件的官方名称,它从零开始设计,以可靠性为首要考虑因素。编码器固件的正式版本在下载区,名为 ArduPPM_Vx.x.xx_ATMega328p.hex。官方源代码在 Git 代码库中: https://github.com/ArduPilot/ardupilot/tree/master/Tools/ArduPPM.独立的 PPM 编码器需要 ATMega328p 版本。
编译后的二进制文件可从我们的下载网站下载:
要进行闪存,请将 PPM 编码器连接到 AVR 编程器(如 AVRISP mkII)上:
闪烁时,确保 PPM 编码器使用任何 5V 和接地引脚供电。
内部 MCU 的触发保护机制设置¶
所有基于 ATMEGA 328P 的 PPM 编码器都有严格的触发保护机制设置。
使用 AVR Studio 编程时,应使用以下触发保护机制设置:
低电平:0xFF
高电平: 0xDA
扩展:0x07
Windows 重新编程说明¶
下载并安装最新的 WinAVR.
插入 AVRISP mkII 并按如下步骤安装 AVRISP mkII 的驱动程序:
打开设备管理器,选择 AVRISP mkII,选择 "更新驱动程序软件..."
选择 "浏览我的电脑,查找驱动程序软件"。
浏览到安装 WinAVR 的文件夹(例如 C:WinAVR-20100110)
浏览到安装 WinAVR 的文件夹(例如 C:\WinAVR-20100110\)
选择 "无论如何安装此驱动程序软件"。
这应该会成功完成:
现在启动命令行:按 "开始 "键,输入 cmd 并回车。
使用 cd 将目录更改为 Hex 文件所在的文件夹:例如,如果 Hex 文件在 Downloads 中,则使用 cd Downloads。
然后键入命令:avrdude -P usb -c avrispmkii -p atmega328p -U flash:w:ArduPPM_Vx.x.x_PPM_Encoder.hex(用版本号 x.x.x 代替)。
如果一切顺利,就会出现以下输出结果:
Mac OS X 重新编程说明¶
待办事项:在此处添加如何闪存十六进制文件的内容。
Linux 重编程说明¶
安装 avrdude:
适用于 Ubuntu:
苏都 适切-获取 安装 avrdude
AVRISP mkII 的程序说明:
avrdude -p atmega328p -P USB -c avrispmkii -U 焕发:w:ArduPPM_Vx.x.x_ATMega328p.六角
输出结果应为
avrdude: AVR 装置 初始化 和 就绪 至 接受 说明
阅读 | ################################################## | 100% 0.00s
avrdude: 设备 签字 = 0x1e950f avrdude: 注意: 闪光灯 内存 有 一直 指定, 一个 擦除 周期 将 是 进行了 至 关闭 此 功能, 具体说明 的 -D 选择权. avrdude: 擦除 芯片 avrdude: 阅读 输入 文件 "ArduPPM_V2.3.0_ATMega328p.hex"; avrdude: 输入 文件 ArduPPM_V2.3.0_ATMega328p.六角 载具 侦测到 作为 英特尔 六角形 avrdude: 写作 焕发 (1952 字节数):
写作 | ################################################## | 100% 0.61s
avrdude: 1952 字节数 的 焕发 成文 avrdude: 核查 焕发 内存 反对 ArduPPM_V2.3.0_ATMega328p.六角: avrdude: 负荷 数据 焕发 数据 从 输入 文件 ArduPPM_V2.3.0_ATMega328p.六角: avrdude: 输入 文件 ArduPPM_V2.3.0_ATMega328p.六角 载具 侦测到 作为 英特尔 六角形 avrdude: 输入 文件 ArduPPM_V2.3.0_ATMega328p.六角 载有 1952 字节数 avrdude: 阅读 关于-芯片 焕发 数据:
阅读 | ################################################## | 100% 0.56s
avrdude: 核查 ... avrdude: 1952 字节数 的 焕发 属实
avrdude: 安全模式: 触发保护机制 好的
avrdude 完成的. 谢谢 你.
如果出现权限错误,请尝试使用 sudo。
重新编译选项¶
默认情况下编码的是负脉冲 PPM。要改为正脉冲 PPM,需要取消 Tools/ArduPPM/Libraries/PPM_Encoder.h 中第 158 行的注释:
// #define _POSITIVE_PPM_FRAME_ // 切换到正脉冲 PPM
至
#define _POSITIVE_PPM_FRAME_ // 切换到正脉冲 PPM
使用 Linux 重新编译¶
这些说明是使用 Ubuntu 测试的:
苏都 适切-获取 安装 构建-至关重要 git-核心 gcc-avr avrdude
git 复制 http://代码.谷歌.网/p/ardupilot-大型
CD ardupilot-大型/工具/ArduPPM/
现在编辑 ATMega328p/Encoder-PPM.c 或 Libraries/PPM_Encoder.h
CD ATMega328p/
生产 清洗
生产
您就可以使用自定义的十六进制文件进行编程了:
avrdude -p atmega328p -P USB -c avrispmkii -U 焕发:w:编码器-PPM.六角