10浏览
查看: 10|回复: 5

[K10教程] 【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块

[复制链接]
本帖最后由 驴友花雕 于 2026-6-3 20:25 编辑

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1

行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好


【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图2

驴友花雕  高级技神
 楼主|

发表于 4 小时前

【花雕】行空板K10系列实验之使用AB按键来控制舵机模块

板载 3Pin PH2.0全功能IO接口 x 2

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1

引脚操作相关积木

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图2

引脚操作相关积木说明

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图3


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 4 小时前

【花雕】行空板K10系列实验之使用AB按键来控制舵机模块

本帖最后由 驴友花雕 于 2026-6-3 20:25 编辑

执行器:灯带模块
【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图3

板载传感器

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图2

辅助:屏幕显示相关积木

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 4 小时前

【花雕】行空板K10系列实验之使用AB按键来控制舵机模块

本帖最后由 驴友花雕 于 2026-6-3 20:27 编辑

WS2812灯柱模块

一、模块概述
WS2812 是串行全彩 RGBLED 智能彩灯执行器,8 位灯柱 = 8 颗 WS2812 灯珠串联在一条信号线,单引脚即可控制全部灯珠的红、绿、蓝三色亮度,可实现渐变、流水、分段亮灯。本课搭配板载光敏:光线越暗点亮灯珠越多,光线越亮灯珠熄灭。

二、引脚定义(3 针)

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1

三、关键参数
供电:5V,8 颗全亮功耗偏高,大批量建议外接电源
控制:单根 IO 口串行控制,内置驱动 IC,无需多个 PWM 引脚
色彩:单灯 RGB 三色,颜色范围0x000000~0xFFFFFF(24 位真彩)
灯珠数量:固定 8 颗,编号 0~7(从 DIN 输入端开始为第 0 颗)

四、驱动原理
只用 1 根信号线依次下发 8 颗灯的色彩数据,数据自动依次移位,一颗灯接收完数据传给下一颗,单线级联。
0xRRGGBB:RR 红、GG 绿、BB 蓝,数值 0~FF,0 熄灭、FF 最亮。

五、K10 库常用控制函数

```cpp
k10.ws2812Init(P0,8);    //初始化:P0引脚、8颗灯珠(setup中)
k10.ws2812SetPixel(编号,颜色); //设置单个灯颜色
k10.ws2812Show();        //刷新显示(必须调用才亮灯)
k10.ws2812Clear();       //全部熄灭
```

六、使用注意事项
严格控制亮度,这里选择25
电源线尽量粗,多灯满载容易压降偏暗;
接线不能反接 VCC/GND,极易烧毁灯珠;
数据 DIN 不要接 3.3V,必须 5V 电平。

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图2
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块


【花雕动手做】行空板K10系列实验之使用AB按键来控制舵机模块
实验开源代码

  1. #include "unihiker_k10.h"
  2. #include <DFRobot_NeoPixel.h>
  3. // 动态变量
  4. volatile float mind_n_k;
  5. // 创建对象
  6. uint8_t          screen_dir=3;
  7. UNIHIKER_K10     k10;
  8. DFRobot_NeoPixel neoPixel_P0;
  9. // 主程序开始
  10. void setup() {
  11.         k10.begin();
  12.         k10.initScreen(screen_dir);
  13.         k10.creatCanvas();
  14.         k10.setScreenBackground(0x000000);
  15.         k10.canvas->canvasText("      八位WS2812B灯柱", 4, 0xFFFFFF);
  16.         k10.canvas->updateCanvas();
  17.         neoPixel_P0.begin(P0, 8);
  18.         neoPixel_P0.setBrightness(25);
  19.         mind_n_k = 0;
  20. }
  21. void loop() {
  22.         if ((k10.buttonA->isPressed())) {
  23.                 neoPixel_P0.showRainbow(0, 7, 1, 360);
  24.                 k10.canvas->canvasText("              渐变颜色", 6, 0xFFFFFF);
  25.                 k10.canvas->updateCanvas();
  26.                 delay(3000);
  27.                 k10.canvas->canvasClear(6);
  28.         }
  29.         if ((k10.buttonB->isPressed())) {
  30.                 k10.canvas->canvasText("              循环点亮", 8, 0xFFFFFF);
  31.                 k10.canvas->updateCanvas();
  32.                 for (int index = 0; index < 8; index++) {
  33.                         neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
  34.                         mind_n_k += 1;
  35.                         delay(300);
  36.                 }
  37.                 for (int index = 0; index < 8; index++) {
  38.                         neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
  39.                         mind_n_k -= 1;
  40.                         delay(300);
  41.                         neoPixel_P0.setRangeColor(0, 0, 0x000000);
  42.                 }
  43.                 k10.canvas->canvasClear(8);
  44.         }
  45. }
复制代码

八位 WS2812 灯柱代码解读
一、头文件与全局变量

  1. #include "unihiker_k10.h"
  2. #include <DFRobot_NeoPixel.h>
复制代码

unihiker_k10.h:行空板 K10 底层库,屏幕、按键、系统初始化;
DFRobot_NeoPixel.h:WS2812 全彩灯专用驱动库,封装渐变、柱状图、单点上色等函数。

  1. volatile float mind_n_k;
  2. uint8_t          screen_dir=3;
  3. UNIHIKER_K10     k10;
  4. DFRobot_NeoPixel neoPixel_P0;
复制代码

mind_n_k:浮点计数变量,控制点亮灯珠数量,做流水增减;
screen_dir=3:屏幕正向显示;
k10:K10 主板对象;
neoPixel_P0:WS2812 灯柱实例,绑定 P0 引脚。

二、setup () 上电初始化(只运行 1 次)

  1. void setup() {
  2.         k10.begin();
  3.         k10.initScreen(screen_dir);
  4.         k10.creatCanvas();
  5.         k10.setScreenBackground(0x000000); //屏幕黑色底色
  6.         k10.canvas->canvasText("      八位WS2812B灯柱", 4, 0xFFFFFF);//第4行白色标题
  7.         k10.canvas->updateCanvas();//刷新屏幕
  8.         neoPixel_P0.begin(P0, 8); //P0引脚、一共8颗灯珠(0~7)
  9.         neoPixel_P0.setBrightness(25);//亮度0~255,25降低亮度防刺眼
  10.         mind_n_k = 0;//计数初始值=0
  11. }
复制代码

neoPixel.begin(引脚,灯珠总数)是 WS2812 必备初始化。

三、loop () 循环:A 键彩虹渐变、B 键柱状流水
1.A 按键:彩虹渐变特效

  1. if ((k10.buttonA->isPressed())) {
  2.         neoPixel_P0.showRainbow(0, 7, 1, 360); //0~7全灯珠彩虹渐变
  3.         k10.canvas->canvasText("              渐变颜色", 6, 0xFFFFFF);
  4.         k10.canvas->updateCanvas();
  5.         delay(3000); //彩虹保持3秒
  6.         k10.canvas->canvasClear(6);//清空第6行文字
  7. }
复制代码

showRainbow(起始灯,结束灯,步长,起始色相):整段灯珠自动七彩渐变。

2.B 按键:柱状流水(从 0→8 点亮,再 8→0 熄灭)

  1. if ((k10.buttonB->isPressed())) {
  2.         k10.canvas->canvasText("              循环点亮", 8, 0xFFFFFF);
  3.         k10.canvas->updateCanvas();
  4.         //第一轮:灯逐个增加点亮 0→7
  5.         for (int index = 0; index < 8; index++) {
  6.                 neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7); //柱状图:前mind_n_k颗点亮
  7.                 mind_n_k += 1;
  8.                 delay(300);//间隔300ms
  9.         }
  10.         //第二轮:灯逐个减少熄灭 7→0
  11.         for (int index = 0; index < 8; index++) {
  12.                 neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
  13.                 mind_n_k -= 1;
  14.                 delay(300);
  15.                 neoPixel_P0.setRangeColor(0, 0, 0x000000);//最后单点清零
  16.         }
  17.         k10.canvas->canvasClear(8);
  18. }
复制代码

核心函数:showBarGraph(首灯,尾灯,当前数值,满值)
满值 = 7(8 颗灯 0~7):
mind_n_k=0:全灭
mind_n_k=3:前 0、1、2 三颗点亮
mind_n_k=7:8 颗全部点亮

四、硬件接线(8 位 WS2812 灯柱)

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图2

五、整体功能总结
按下 A 键:8 颗灯全彩彩虹渐变,持续 3 秒;
按下 B 键:灯从下往上逐个点亮→再从上往下逐个熄灭,流水柱状效果;
屏幕同步提示当前运行模式。

六、关键库函数汇总

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块

Mind+图形编程

【花雕】行空板K10系列实验之使用AB按键来控制灯柱模块图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail