【发布时间】:2013-11-16 13:28:35
【问题描述】:
对于一个学校项目,我必须使用 Java 从我的计算机控制我的 RC 飞机。 我想要实现这一点的方法是通过 3.5 毫米电缆(遥控器的教练端口)将我的遥控器连接到我的 MacBookPro。
我必须与遥控器通信的方式是通过 PPm 信号,如下所示:
以下是有关 PPM 信号的更多信息: https://www.insecure.ws/2010/03/09/control-rc-aircrafts-from-your-computer-for-0/#toc-2
我现在想知道的是,如何使用 Java 生成所述 PPM 信号。 它必须是具有特定幅度的粗信号。
这里有人可以帮助我吗?
编辑:
让我在这里回答下面提出的一些问题:
那个网站解释得更好,我认为我能做到,但我还是会尝试。
我想用我的电脑控制我的遥控飞机。 现在,我只希望我的油门工作。其余的将在稍后进行。
每帧长 22.5 毫秒,因为这是 RC 东西使用的格式。 每帧由 8 个通道组成,它们之间有 0.4 毫秒的停顿,以及一个空白信号来填补剩余的时间。
每个通道的幅度为 1.3 伏,我将通过反复试验来实现(用我的音量播放,直到恼人的哔哔声停止),并且为 0.7 - 1.5 毫秒。
我想要实现的是有一个默认信号,7x 1.1ms 和 1x 0.7ms(所有舵机的中间位置为 7x,油门最小为 1x),当用户按下键盘上的按钮时会改变( 1 会将油门的信号长度更改为 0.7 + 0.1 ms => 0.8ms)。在用户按下 0、1、2、3 或 4 之前,信号将不断重复(每 22.5 毫秒 1 帧),通道 1 的长度发生变化。
我已经在github 上发布了我目前所拥有的。
【问题讨论】:
-
你能在这里解释一下信号的技术细节和限制条件,而不是在场外链接吗?
-
所以你的意思是square wave?
-
这里看起来不太方正。可能是脉宽调制的?
-
如果可以请发布更多信息。通过 Java Sound 生成要输出的信号相对容易,但听起来您在问如何生成控制信号。规格不够清楚,我们无法告诉您如何制作样品。例如有 8 个通道。它们是如何格式化的?幅度被指定为声卡输出的电压电平。您知道整数值还是需要使用测试信号进行测量?您是否打算实时执行此操作(更复杂)?等等。