|
63| 7
|
[K10教程] 【花雕动手做】行空板 K10 之语音调控可移动WS2812B平板灯 |
![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
知识点:WS2812 灯带 一、基础定义 WS2812(常称 内置驱动 5050 RGB 灯珠),是单线串行智能控制 LED。 单颗灯珠集成:5050 RGB 三色 LED + WS2812 控制芯片。 特点:只需要 1 根数据线、电源、GND,大量灯珠可以首尾串联。 衍生型号:WS2812B(市面上最通用版本,改善散热),日常大家说 WS2812 一般就是 WS2812B。 二、电气参数 供电电压:DC 5V 重点:灯珠芯片 5V 供电,但数据引脚支持 3.3V 电平(ESP32 / 行空板 K10、掌控板可以直接驱动,无需电平转换) 通信方式:单总线异步串行通信 色彩:24 位色彩(R 0~255,G 0~255,B 0~255),一共 1670 万颜色 通信速率:800KHz 静态电流:很低;全亮白光时单颗最大约 60mA 三、信号传输原理(关键) 数据线 DI 输入信号: 第一颗灯读取属于自己的 24bit 颜色数据,剩下数据自动从 DO 引脚转发给下一颗灯。 串联顺序:主控 DATA → DI 灯 1 → DO→DI 灯 2 → DO→DI 灯 3…… 优势:所有灯共用一根 IO 口,扩展非常方便。 限制:信号单向传输,不能反向接线。 四、硬件接线规范 三根线: VCC:5V GND:电源负极(必须和主控共地! 不共地极易乱色、闪烁) DI:数据输入(接到单片机 IO) 高频踩坑(机器人项目必看) 不要使用行空板 3.3V 给长灯带供电! 3.3V 引脚电流小,只能驱动 3~5 颗短灯带;超过建议单独外接 5V 电源。 长线(>1 米):电源线两端并联 1000μF 电解电容;数据端串联 300Ω 电阻,减少信号反射,防止频闪。 严禁 DO 当成 DI 使用。 五、常用规格分类 裸灯珠:单颗 WS2812B(适合小车状态指示灯) 软灯带:IP30 裸板、IP65 硅胶套管、IP67 防水 硬灯条、圆环(彩灯圆盘) 灯珠密度:30 灯 / 米、60 灯 / 米、144 灯 / 米 六、单片机驱动方案(适配你的硬件) 1)行空板 K10 / 掌控板 Arduino (C++) 推荐库:Adafruit_NeoPixel ESP32 底层使用 RMT 硬件外设驱动,不占用 CPU,不会卡顿。 示例极简代码: 补充:行空板自带 3 颗 RGB 灯是内置 WS2812,封装在库内,直接调用k10.rgb,不用 NeoPixel 库。 2)Mind + 图形化 直接找到「WS2812 灯带」积木,选择引脚、灯数量即可。 七、优缺点汇总 优点 单线控制,仅占用 1 路 IO,资源占用少; 独立控色,每一颗灯可以显示不同颜色,实现流水灯、呼吸灯、状态指示; 3.3V 单片机可以直接驱动数据信号; 价格低廉,创客项目标配; 串联扩展简单。 缺点 需要5V 供电,3.3V 无法带动多颗灯珠; 串行传输:灯带越长,刷新耗时越大(100 颗灯刷新会产生轻微延迟); 电源布线不当极易出现首尾亮度不一致; 抗干扰一般,BLDC 电机、大功率驱动旁边容易出现随机乱闪,需要做好地线隔离。 ![]() ![]() |
|
【花雕动手做】行空板 K10 系列实验之离线语音识别控制WS2812B小车移动平板灯 实验开源代码 |
|
行空板 K10 离线语音三轮全向平板灯小车代码解读 项目概况 硬件:行空板 K10 + Microbit 电机扩展板 + 三轮全向轮底盘 + P1 外接 37 颗 WS2812 灯带 功能:离线语音控制灯光、小车全向运动;唤醒词:你好小新 开发环境:Mind+ Arduino 模式 一、头文件与对象定义解读 二、setup () 上电初始化(只运行 1 次) k10.begin():初始化行空板硬件 asr.asrInit(CONTINUOUS, CN_MODE, 12000) CONTINUOUS:持续语音监听模式 CN_MODE:中文识别 12000:语音拾音最大超时时间 (ms) while(asr._asrState == 0){delay(100);} 阻塞等待语音模块启动完成;模块未就绪,不往下执行。 k10.initScreen() + k10.creatCanvas():初始化屏幕、创建绘图画布 asr.addASRCommand(ID, "语音指令") 注册离线关键词,建立【编号 - 语音文本】映射;识别到语音后,可以通过 ID 判断指令。 neoPixel_P1.begin(P1, 37):灯带引脚 P1,总共有 37 颗灯珠;设置最大亮度。 三、loop () 无限主循环(程序核心) 1. 唤醒状态监测 已唤醒:屏幕红色文字提示 未唤醒:屏幕蓝色文字提示唤醒词 2. 灯光指令逻辑 ![]() 3. 三轮全向底盘运动指令(M1/M2/M3 三路电机) 底盘为标准 120° 排布三轮全向轮 qian jin 前进:M2、M3 正向运转 hou tui 后退:M2、M3 反向运转 ting che 停车:所有电机立刻停止 you heng 右横移:M1 反转、M2 正转、M3 停机 zuo heng 左横移:M1 正转、M2 反转、M3 停机 shun zhuan 顺时针转圈:三个电机按对应方向运行 delay(2000),2 秒后自动停车 ni zhuan 逆时针转圈:反向旋转,维持 2 秒停止 4. 屏幕绘制逻辑 k10.canvas->canvasText() 在画布写入文字 k10.canvas->updateCanvas() 将画布内容刷新到屏幕 循环末尾 k10.canvas->canvasClear(6):清空局部画布,防止文字叠加残影。 四、核心工作流程 上电 → 硬件全部初始化,等待语音模块就绪 持续监听唤醒词「你好小新」 唤醒成功后,开始识别注册好的语音命令 识别对应指令: 灯光指令 → 修改 WS2812 灯带颜色 运动指令 → 控制三轮全向电机运转,屏幕同步显示状态 持续循环,等待下一次语音指令。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed