【花雕学编程】行空板K10系列实验之动态读取麦克风数据值并控制板载LED灯

2025-02-26214
AI 快速预览详细 收起
本文介绍了如何使用行空板K10动态读取麦克风数据并控制板载LED灯。行空板K10集成了多种传感器和功能,如麦克风、LED灯、摄像头等,适用于STEM教育场景。通过编程,可以实现动态读取麦克风数据并在屏幕上显示,同时根据数据变化控制LED灯的颜色。实验中通过设置阈值30000来判断麦克风数据,并根据数据变化控制LED灯的颜色。此外,还提供了详细的代码解读和Mind+图形编程示例,帮助用户理解和实践。

00-.jpg

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

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

0-5.jpg

板载传感器相关积木

05.jpg

辅助:屏幕显示相关积木

03.jpg

板载传感器之麦克风与积木说明

05-08.jpg
05-09.jpg

【花雕学编程】行空板K10系列实验之动态读取麦克风数据值并控制板载LED灯
实验开源代码

代码
#include "unihiker_k10.h"  // 引入 UNIHIKER_K10 行空板K10库

// 创建对象
UNIHIKER_K10 k10;  // 创建 UNIHIKER_K10 对象 行空板k10
uint8_t screen_dir = 2;  // 定义屏幕方向变量,并初始化为2

// 主程序开始
void setup() {
    k10.begin();  // 初始化 k10 对象
    k10.initScreen(screen_dir);  // 初始化屏幕方向
    k10.creatCanvas();  // 创建画布
    k10.rgb->write(-1, 0x000000);  // 将板载LED灯初始化为关闭状态(黑色)
}

void loop() {
    delay(500);  // 延迟500毫秒
    k10.canvas->canvasText("行空板K10传感器", 5, 0x0000FF);  // 在画布上显示文本 "行空板K10传感器",字体大小为5,颜色为蓝色 (0x0000FF)
    k10.canvas->canvasText((String("麦克风:") + String(k10.readMICData())), 7, 0x0000FF);  // 在画布上显示麦克风数据,字体大小为7,颜色为蓝色 (0x0000FF)
    k10.canvas->canvasText("板载LED:绿色", 8, 0x0000FF);  // 在画布上显示文本 "板载LED:绿色",字体大小为8,颜色为蓝色 (0x0000FF)
    k10.canvas->updateCanvas();  // 更新画布
    k10.rgb->write(-1, 0x00FF00);  // 将板载LED灯设置为绿色
    k10.canvas->canvasClear(9);  // 清除画布上第9行的内容
    if (k10.readMICData() > 30000) {  // 如果麦克风数据超过30000
        k10.canvas->canvasText("板载LED:红色", 9, 0xFF0000);  // 在画布上显示文本 "板载LED:红色",字体大小为9,颜色为红色 (0xFF0000)
        k10.canvas->updateCanvas();  // 更新画布
        k10.rgb->write(-1, 0x000000);  // 将板载LED灯关闭(黑色)
        k10.rgb->write(-1, 0xFF0000);  // 将板载LED灯设置为红色
        k10.canvas->canvasClear(8);  // 清除画布上第8行的内容
        delay(1000);  // 延迟1秒
    }
}

代码解读

1、初始化:

UNIHIKER_K10 k10;:创建一个 UNIHIKER_K10 对象 k10。

uint8_t screen_dir = 2;:定义屏幕方向变量 screen_dir 并初始化为2。

k10.begin();:初始化 k10 对象。

k10.initScreen(screen_dir);:根据 screen_dir 初始化屏幕方向。

k10.creatCanvas();:创建一个画布。

k10.rgb->write(-1, 0x000000);:将板载LED灯初始化为关闭状态(黑色)。

2、主循环:

每次循环延迟500毫秒。

在画布上显示文本 "行空板K10传感器",字体大小为5,颜色为蓝色 (0x0000FF)。

在画布上显示麦克风数据,字体大小为7,颜色为蓝色 (0x0000FF)。

在画布上显示文本 "板载LED:绿色",字体大小为8,颜色为蓝色 (0x0000FF)。

更新画布以显示最新内容。

将板载LED灯设置为绿色。

清除画布上第9行的内容。

如果麦克风数据超过30000:

在画布上显示文本 "板载LED:红色",字体大小为9,颜色为红色 (0xFF0000)。

更新画布以显示最新内容。

将板载LED灯关闭(黑色)。

将板载LED灯设置为红色。

清除画布上第8行的内容。

延迟1秒。

这些代码实现了通过 UNIHIKER_K10 获取麦克风数据并根据数据变化控制LED灯的功能。

Mind+图形编程

05-10.jpg

实验场景图 动态图

00056.gif

05-11 (1).jpg
05-11 (2).jpg

z.jpg

刚打开Mind+,上传模式,硬件选择行空板K10,在板载传感器里面,确定有读取麦克风数据的积木,请见最后一张图。

 

zzz.jpg

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -