在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

引脚操作相关积木

在这里插入图片描述

引脚操作相关积木说明

在这里插入图片描述
执行器:灯带模块

在这里插入图片描述

板载传感器

在这里插入图片描述

辅助:屏幕显示相关积木

在这里插入图片描述
WS2812灯柱模块

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

二、引脚定义(3 针)

在这里插入图片描述

三、关键参数
供电: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 库常用控制函数

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

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

在这里插入图片描述

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

#include "unihiker_k10.h"
#include <DFRobot_NeoPixel.h>

// 动态变量
volatile float mind_n_k;
// 创建对象
uint8_t          screen_dir=3;
UNIHIKER_K10     k10;
DFRobot_NeoPixel neoPixel_P0;


// 主程序开始
void setup() {
	k10.begin();
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	k10.setScreenBackground(0x000000);
	k10.canvas->canvasText("      八位WS2812B灯柱", 4, 0xFFFFFF);
	k10.canvas->updateCanvas();
	neoPixel_P0.begin(P0, 8);
	neoPixel_P0.setBrightness(25);
	mind_n_k = 0;
}
void loop() {
	if ((k10.buttonA->isPressed())) {
		neoPixel_P0.showRainbow(0, 7, 1, 360);
		k10.canvas->canvasText("              渐变颜色", 6, 0xFFFFFF);
		k10.canvas->updateCanvas();
		delay(3000);
		k10.canvas->canvasClear(6);
	}
	if ((k10.buttonB->isPressed())) {
		k10.canvas->canvasText("              循环点亮", 8, 0xFFFFFF);
		k10.canvas->updateCanvas();
		for (int index = 0; index < 8; index++) {
			neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
			mind_n_k += 1;
			delay(300);
		}
		for (int index = 0; index < 8; index++) {
			neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
			mind_n_k -= 1;
			delay(300);
			neoPixel_P0.setRangeColor(0, 0, 0x000000);
		}
		k10.canvas->canvasClear(8);
	}
}

八位 WS2812 灯柱代码解读

一、头文件与全局变量

#include "unihiker_k10.h"
#include <DFRobot_NeoPixel.h>

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

volatile float mind_n_k;
uint8_t          screen_dir=3;
UNIHIKER_K10     k10;
DFRobot_NeoPixel neoPixel_P0;

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

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

void setup() {
	k10.begin();
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	k10.setScreenBackground(0x000000); //屏幕黑色底色
	k10.canvas->canvasText("      八位WS2812B灯柱", 4, 0xFFFFFF);//第4行白色标题
	k10.canvas->updateCanvas();//刷新屏幕

	neoPixel_P0.begin(P0, 8); //P0引脚、一共8颗灯珠(0~7)
	neoPixel_P0.setBrightness(25);//亮度0~255,25降低亮度防刺眼
	mind_n_k = 0;//计数初始值=0
}

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

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

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

showRainbow(起始灯,结束灯,步长,起始色相):整段灯珠自动七彩渐变。
2.B 按键:柱状流水(从 0→8 点亮,再 8→0 熄灭)

if ((k10.buttonB->isPressed())) {
	k10.canvas->canvasText("              循环点亮", 8, 0xFFFFFF);
	k10.canvas->updateCanvas();
	//第一轮:灯逐个增加点亮 0→7
	for (int index = 0; index < 8; index++) {
		neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7); //柱状图:前mind_n_k颗点亮
		mind_n_k += 1;
		delay(300);//间隔300ms
	}
	//第二轮:灯逐个减少熄灭 7→0
	for (int index = 0; index < 8; index++) {
		neoPixel_P0.showBarGraph(0, 7, mind_n_k, 7);
		mind_n_k -= 1;
		delay(300);
		neoPixel_P0.setRangeColor(0, 0, 0x000000);//最后单点清零
	}
	k10.canvas->canvasClear(8);
}

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

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

在这里插入图片描述

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

六、关键库函数汇总

在这里插入图片描述
Mind+图形编程

在这里插入图片描述

实验场景图与视频记录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐