红点激光器(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 | 发布红点激光器组件 | 薛东来 |