驴友花雕 发表于 2025-2-28 15:53:43

【花雕学编程】行空板K10系列实验之串口数据控制RGB



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

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



驴友花雕 发表于 2025-2-28 15:55:40

【花雕学编程】行空板K10系列实验之串口数据控制RGB

串口操作
串口即串行通信接口,是一种实现设备与设备之间、模块与设备之间数据传输的有线通信方式。
UNIHIKER K10支持2个串口通信,其中串口0为硬串口,通常用于程序上传和接收Mind+串口窗发送的数据。




驴友花雕 发表于 2025-2-28 15:57:53

【花雕学编程】行空板K10系列实验之串口数据控制RGB

串口操作相关积木



串口操作相关积木说明



驴友花雕 发表于 2025-2-28 15:59:30

【花雕学编程】行空板K10系列实验之串口数据控制RGB

辅助:屏幕显示相关积木


驴友花雕 发表于 2025-2-28 16:04:13

【花雕学编程】行空板K10系列实验之串口数据控制RGB

【花雕学编程】行空板K10系列实验之从串口中读取数据控制RGB LED与显示屏改变颜色
实验开源代码

#include "unihiker_k10.h"// 引入 UNIHIKER_K10 库,用于控制硬件行空板K10的功能

// 动态变量
volatile float mind_n_ChuanKouShuJu;// 定义易变的浮点数变量,用于存储串口传入的数据

// 创建对象
UNIHIKER_K10 k10;// 创建 行空板K10 对象,用于控制屏幕、LED等功能
uint8_t screen_dir = 3;// 定义屏幕方向,值为3

// 主程序开始
void setup() {
    k10.begin();// 初始化 行空板k10 对象
    k10.initScreen(screen_dir);// 初始化屏幕方向
    k10.creatCanvas();// 创建画布,用于显示内容
    Serial.begin(9600);// 初始化串口通信,波特率为9600
    k10.setScreenBackground(0x000000);// 设置屏幕背景为黑色
}

void loop() {
    // 检测串口是否有数据传入
    if (Serial.available()) {
      mind_n_ChuanKouShuJu = Serial.read();// 读取串口数据并存储在变量 mind_n_ChuanKouShuJu 中
    }
    // 如果接收到字符 'R',设置屏幕和LED为红色
    if (mind_n_ChuanKouShuJu == (toascii('R'))) {
      k10.rgb->write(-1, 0xFF0000);// 设置板载LED灯为红色
      k10.setScreenBackground(0xFF0000);// 设置屏幕背景为红色
      k10.canvas->canvasText("                红色", 5, 0xFFFFFF);// 显示文字 "红色",字体大小为5,颜色为白色
      k10.canvas->updateCanvas();// 更新画布以显示内容
    }
    // 如果接收到字符 'G',设置屏幕和LED为绿色
    if (mind_n_ChuanKouShuJu == (toascii('G'))) {
      k10.rgb->write(-1, 0x00FF00);// 设置板载LED灯为绿色
      k10.setScreenBackground(0x00FF00);// 设置屏幕背景为绿色
      k10.canvas->canvasText("                绿色", 5, 0xFFFFFF);// 显示文字 "绿色",字体大小为5,颜色为白色
      k10.canvas->updateCanvas();// 更新画布以显示内容
    }
    // 如果接收到字符 'B',设置屏幕和LED为蓝色
    if (mind_n_ChuanKouShuJu == (toascii('B'))) {
      k10.rgb->write(-1, 0x0000FF);// 设置板载LED灯为蓝色
      k10.setScreenBackground(0x0000FF);// 设置屏幕背景为蓝色
      k10.canvas->canvasText("                蓝色", 5, 0xFFFFFF);// 显示文字 "蓝色",字体大小为5,颜色为白色
      k10.canvas->updateCanvas();// 更新画布以显示内容
    }
}

驴友花雕 发表于 2025-2-28 16:06:07

【花雕学编程】行空板K10系列实验之串口数据控制RGB

代码解读

1、串口监听:

使用 Serial.available() 检测串口是否有数据传入。

如果有数据,使用 Serial.read() 读取数据并存储到变量 mind_n_ChuanKouShuJu 中。

2、颜色切换:

根据接收的数据值切换 LED 和屏幕的颜色。

当收到字符 'R'(表示红色)时:

将 LED 设置为红色。

将屏幕背景设置为红色,并显示文字 "红色"。

当收到字符 'G'(表示绿色)时:

将 LED 设置为绿色。

将屏幕背景设置为绿色,并显示文字 "绿色"。

当收到字符 'B'(表示蓝色)时:

将 LED 设置为蓝色。

将屏幕背景设置为蓝色,并显示文字 "蓝色"。

4、视觉更新:

每次切换颜色后,都会调用 k10.canvas->updateCanvas() 方法更新画布,确保内容即时显示。

5、应用场景

该代码可用于通过串口指令控制 LED 灯光和屏幕颜色,例如用于调试、演示或互动项目。


驴友花雕 发表于 2025-2-28 16:08:54

【花雕学编程】行空板K10系列实验之串口数据控制RGB

Mind+图形编程


驴友花雕 发表于 2025-2-28 16:11:41

【花雕学编程】行空板K10系列实验之串口数据控制RGB

实验串口分别输入“RGB”情况







驴友花雕 发表于 2025-2-28 16:14:29

【花雕学编程】行空板K10系列实验之串口数据控制RGB

实验场景图






页: [1]
查看完整版本: 【花雕学编程】行空板K10系列实验之串口数据控制RGB