红点激光器(Laser)设备组件¶
理论¶
RoboMaster RL35 红点激光器是专为 RoboMaster 机器人设计的一款辅助瞄准设备,可发射出点状、出瞳光束为 5 mm 的红色激光以辅助瞄准,如下图所示:
使用时,将电源线(红色为正极,黑色为负极)接入开发板电压为 5V 的直流电源接口。可以直接操作引脚来开关设备;或通过 PWM 调节占空比以改变输出电压,来控制红点激光器亮度(对预分频值没有要求)。
以 RoboMaster 开发板 C 型为例,板上已集成一个可控的激光专用 5V 电源接口,如下图所示:
对应的开关控制 IO 为 PC8,PWM 由
TIM3 CHANNEL3输出。
快速开始¶
组件源码仓库地址:https://github.com/ZJU-HelloWorld/HW-Components
要在项目中使用该组件,需添加仓库内的以下文件:
使用前准备¶
使用前需要做以下准备:
- 在使用 STM32CubeMX 生成项目时,请在
Code Generator界面Enable Full Assert,来帮助断言设备驱动中的错误;在main.c中修改assert_failed函数以指示断言结果,如添加while(1); - 在
system.h中system options: user config处进行系统设置 - 在
dev_config.h中设置Conditional Compiling选项,将使用到的设备对应的条件编译宏开关定义为 1.
示例¶
在项目中引用头文件:
| C | |
|---|---|
实例化一个红点激光器设备并初始化,默认使能,如:
| C | |
|---|---|
设定红点激光器亮度百分数(0 - 100):
| C | |
|---|---|
组件说明¶
Laser 类¶
属性
| 名称 | 类型 | 示例值 | 描述 |
|---|---|---|---|
htim |
TIM_HandleTypeDef* |
&htim1 | 时钟 |
tim_ch |
uint16_t |
TIM_CHANNEL_1 | 频道 |
lumin_percentage |
float |
0 - 100 | 初始亮度百分数 |
方法
| 名称 |
参数说明 | 描述 |
|---|---|---|
LaserInit |
传入时钟句柄指针、频道、初始亮度百分数 | 用传入的参数初始化一个红点激光器设备。 |
enable |
/ | 使能红点激光器设备。 |
disable |
/ | 失能红点激光器设备。 |
setLumin |
传入目标亮度百分数 | 控制红点激光器亮度。 |
setMaxLumin |
/ | 控制红点激光器至最大亮度。 |
附录¶
版本说明¶
| 版本号 | 发布日期 | 说明 | 贡献者 |
|---|---|---|---|
| 2022.12.07 | 发布红点激光器组件 | 薛东来 |

