18. 综合实验四 - 氛围灯¶
18.1. 实验介绍¶
18.1.1. 实验物料清单¶
名称 |
数量 |
备注 |
---|---|---|
野火RGB灯模块 |
1 |
|
野火W25Q64模块 |
1 |
|
按键 |
1 |
扩展板板载 |
18.1.2. 实验现象介绍¶
这是一个基于RGB灯变色兼有呼吸效果的程序。程序运行初期会加载FLASH里保存的氛围灯数据, 若检测到FLASH没有氛围灯数据,则使用默认的氛围灯数据。程序运行期间,按下KEY1,会生成一组随机 的氛围灯数据,并立刻应用在RGB灯上和保存到FLASH中。按下KEY2,擦除已保存的氛围灯数据。
18.2. 实验操作¶
18.2.2. 获取程序¶
综合实验三程序位于lubancat_rk_code_storage/expansion_board/experiment/experiment_4_RGB, 将experiment_4_RGB整个文件夹拷贝到板卡。
本次的氛围灯综合实验基于两种实现方式,如上一章《17. RGB LED》。分为GPIO翻转驱动和SPI驱动。
18.3. GPIO翻转驱动¶
这里需要提前参考《17. RGB LED》章节,编译安装ws2812驱动。
本实验要用到的外设配置已经在配置文件gpio/configuration.json中定义,运行程序前可按实际情况修改。一般 只需要修改按键的输入事件,因为每次上电后,这些输入事件的注册顺序不一定每次相同。
18.3.1. c代码测试¶
c测试代码为:gpio/c/main.c
执行如下命令运行程序:
1 2 3 4 5 6 7 8 | # 进入c程序目录
cd experiment_4_RGB/gpio/c
# 编译程序
sudo make
# 运行程序
sudo ./main
|
程序开始运行后,会在默认的颜色数据(四个颜色)间进行呼吸渐变。按Key1重新随机生成四个颜色数据并保存到flash, 按下Key2清除flash数据。
注解
目前基于GPIO翻转驱动实现的RGB渐变呼吸灯效果不佳,会大几率出现频闪和颜色误识别。
18.4. SPI驱动¶
需要将RGB灯模块的IN脚接到扩展板SPI接口的DI脚,SPI Flash接线不变,接线对照表如下:
野火三色RGB灯模块 |
鲁班猫扩展板SPI接口 |
---|---|
5V |
5V |
GND |
GND |
IN |
DI |
本实验要用到的外设配置已经在配置文件spi/configuration.json中定义,运行程序前可按实际情况修改。一般 只需要修改按键的输入事件,因为每次上电后,这些输入事件的注册顺序不一定每次相同。
18.4.1. c代码测试¶
c测试代码为:spi/c/main.c
执行如下命令运行程序:
1 2 3 4 5 6 7 8 | # 进入c程序目录
cd experiment_4_RGB/spi/c
# 编译程序
sudo make
# 运行程序
sudo ./main
|
程序开始运行后,会在默认的颜色数据(四个颜色)间进行呼吸渐变。按Key1重新随机生成四个颜色数据并保存到flash, 按下Key2清除flash数据。