|
研发就是不断的试错和改进,之前做过一套工程验证控制板,接收机信号和ARDUINO单片机通信使用的是SBUS信号,信号经ARDUINO捕获处理后通过PCA9685驱动舵机,这么做的目的是ARDUINO可以依据程序和传感器采集到的数据辅助对舵机进行操控。SBUS实际是一种串口通信方式,使用纯数字信号进行传输,数据传输没有误差,由于214密封舱空间较小,而潜艇使用老式FM接收机,这类接收机不具备SBUS直接输出能力,只能直接对接收机输出PWM信号进行解析,由此带来两个问题,一是ARDUINO在解析PWM脉冲宽度时有误差,误差大概在0.7%左右,看似不大的误差会导致舵机不断抖动。二是接收机PWM频率为50HZ,也就是说每一路信号解析需要占用单片机20ms的时间,而arduino只能单线程处理,10个通道解析轮一圈,每个通道采样间隔时间至少需要1/5秒,如此长度采样间隔周期,最直观的感受就是舵机操纵延迟非常严重。综上所述,第二版主控板硬件电路仍不能实用化,必须进行修改,修改的思路是增加一个舵机控制信号切换电路,平时接收机直接驱动主动力电调、方向舵、升降舵舵机,当开启自稳模式、定深模式时,舵机信号切换至PCA9685芯片控制,由单片机和陀螺仪接管舵机控制。开关通道由于对PWM解析误差和延时不敏感故继续保留接收机- ARDUINO-PCA9685芯片控制模式,以简化电路设计。如此修改后,控制板仍具备使用无线串口绕过接收机操控潜艇的能力。优化后的电路板继续打样,不过这月白嫖限额又用完了。只能继续掏钱了。
|
来自苹果客户端
|