CRServoF:将CRSF串口协议转换为PWM伺服信号的利器
CRServoF CRSF to PWM Servo converter for STM32F103 项目地址: https://gitcode.com/gh_mirrors/cr/CRServoF
项目介绍
CRServoF 是一个开源项目,旨在将CRSF(Crossfire Serial Frame)串口协议转换为PWM信号,以便直接驱动伺服电机。如果你使用的是ExpressLRS、Crossfire或Tracer等支持CRSF协议的接收机,但希望在没有飞行控制器的情况下直接驱动伺服电机,那么CRServoF将是你的理想选择。
该项目基于STM32F103C8(俗称“蓝板”)开发,通过简单的硬件连接和配置,即可实现从CRSF协议到PWM信号的转换。CRServoF不仅支持基本的伺服控制,还提供了丰富的功能,如通道映射、故障保护、电池电压监测等,确保你的设备在各种情况下都能稳定运行。
项目技术分析
硬件平台
CRServoF 基于STM32F103C8微控制器,这是一个广泛使用的低成本、高性能的ARM Cortex-M3芯片。STM32F103C8具有丰富的外设资源,包括多个UART接口、定时器和ADC,非常适合用于伺服控制和串口通信。
软件架构
CRServoF 的软件架构简洁高效,主要分为以下几个模块:
- CRSF协议解析:负责从接收机接收CRSF数据包,并解析出各个通道的PWM值。
- PWM输出:将解析后的PWM值转换为伺服电机的控制信号。
- 故障保护:在接收机失去信号时,自动进入故障保护模式,确保设备安全。
- 电池电压监测:通过ADC读取电池电压,并通过CRSF协议将电压信息发送回接收机。
编程语言
CRServoF 使用C++语言编写,充分利用了STM32的硬件资源,同时保持了代码的可读性和可维护性。
项目及技术应用场景
应用场景
CRServoF 适用于多种场景,包括但不限于:
- 模型飞机/无人机:在没有飞行控制器的情况下,直接使用CRSF接收机驱动伺服电机。
- 机器人控制:通过CRSF协议控制机器人的各个关节,实现复杂的运动控制。
- 教育与研究:作为学习STM32和CRSF协议的实践项目,帮助开发者深入理解嵌入式系统和通信协议。
技术优势
- 低成本:使用常见的STM32F103C8芯片,硬件成本低廉。
- 高灵活性:支持通道映射和故障保护配置,适应不同的应用需求。
- 易于集成:通过简单的硬件连接和配置,即可快速集成到现有系统中。
项目特点
1. 通道映射
CRServoF 允许用户自定义通道映射,通过修改OUTPUT_MAP[]
数组,可以将CRSF协议中的通道映射到不同的PWM输出引脚。此外,还支持通道反转功能,满足不同伺服电机的控制需求。
2. 故障保护
项目内置故障保护机制,当接收机失去信号超过300ms时,系统会自动进入故障保护模式。用户可以通过修改OUTPUT_FAILSAFE[]
数组,自定义故障保护时的PWM输出值,确保设备在异常情况下仍能安全运行。
3. 电池电压监测
CRServoF 支持电池电压监测功能,通过ADC读取电池电压,并通过CRSF协议将电压信息发送回接收机。用户可以通过修改电阻分压网络和VBAT_SCALE
定义,调整电压监测的精度和范围。
4. 支持ExpressLRS固件更新
CRServoF 还支持通过Betaflight Passthrough方式更新ExpressLRS接收机的固件,虽然成功率约为80%,但为开发者提供了极大的便利。
结语
CRServoF 是一个功能强大且易于使用的开源项目,适用于多种嵌入式控制场景。无论你是模型爱好者、机器人开发者,还是嵌入式系统学习者,CRServoF 都能为你提供高效、可靠的解决方案。赶快尝试一下,体验CRServoF带来的便捷与乐趣吧!
CRServoF CRSF to PWM Servo converter for STM32F103 项目地址: https://gitcode.com/gh_mirrors/cr/CRServoF