一.项目背景
2022年4月,教育部正式发布《义务教育信息科技课程标准(2022年版)》。六年级跨学科主题学习,结合信息科技新课标中的小型系统模拟中的小型开关系统。设计了“多功能电子班牌”。
二、作品分析
本作品是设计制作一个电子班牌。同学老师或者家长,可以通过电子班牌的信息,了解整个班级的班风班貌以及课程设置。班牌中显示时间和温度,方便学生了解生活知识。



三、知识点
1.行空板K10及相关硬件。
2.数据采集与显示。
3.按键功能的实现。
4.数据可视化大屏。
5.程序自定义函数的学习
四、硬件清单及软件准备
材料清单
- 行空板K10 X1 链接
硬件简介 :
行空板K10是一款专为快速体验和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等人工智能项目。

接口&器件说明

这款扩展板与K10兼容。行空板K10屏幕插入micro:bit方向。它提供了10路数字/模拟3Pin口和三路IIC口,能轻松扩展和控制各种设备。它还内置了两路电机驱动,无需占用额外的引脚。

本作品在实际操作中,会用到按键。
步骤1 设置标题,连接无线网络
步骤2 设置天气,室内温度,当前时间
步骤3 设置班牌显示函数
步骤4 设置A、B按键程序,显示课程表和中队分工
/*!
* MindPlus
* esp32s3bit
*
*/
#include "asr.h"
#include <DFRobot_Iot.h>
#include "unihiker_k10.h"
#include <mPython_Weather.h>
#include <MPython_NtpTime.h>
#include "arduino_image_cache.h"
// 函数声明
void DF_TianQiShiJian();
void DF_XianShiDianZiBanPai();
void onButtonAPressed();
void DF_XianShiKeChengBiao();
void onButtonBPressed();
void DF_XianShiZhongDuiFenGong();
// 创建对象
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
DFRobot_Iot myIot;
ASR asr;
mPython_Weather myWeather;
MPython_NtpTime ntptime;
AHT20 aht20;
// 主程序开始
void setup() {
k10.begin();
k10.initScreen(screen_dir);
k10.creatCanvas();
asr.setAsrSpeed(2);
k10.buttonA->setPressedCallback(onButtonAPressed);
k10.buttonB->setPressedCallback(onButtonBPressed);
k10.canvas->canvasClear();
myIot.wifiConnect("Xiaomi", "88888888");
while (!myIot.wifiStatus()) {}
asr.speak("已连接网络");
myWeather.init("server.mindplus.top", "31982666", "E6MtBcxQ");
ntptime.setNtpTime(ntptime.UTCEast8_t, "edu.ntp.org.cn");
k10.canvas->canvasDrawBitmap(0,90,240,205,image_data1);
DF_TianQiShiJian();
}
void loop() {
}
// 自定义函数
void DF_TianQiShiJian() {
while (!((k10.buttonA->isPressed()) || (k10.buttonB->isPressed()))) {
k10.canvas->canvasText("欢迎来到2024级20班", 1, 0xFF6600);
k10.canvas->canvasText((String((String("今天天气") + String(myWeather.getWeather("weather", "101120901")))) + String((String(",温度") + String(aht20.getData(AHT20::eAHT20TempC))))), 2, 0x0000FF);
k10.canvas->canvasText((String("当前时间") + String(ntptime.getTime())), 3, 0x0000FF);
k10.canvas->updateCanvas();
}
}
void DF_XianShiDianZiBanPai() {
asr.speak("欢迎来到二零二四级20班");
k10.canvas->canvasDrawBitmap(0,90,240,205,image_data2);
}
void DF_XianShiKeChengBiao() {
asr.speak("20班课程表");
k10.canvas->canvasDrawBitmap(0,90,240,205,image_data3);
}
void DF_XianShiZhongDuiFenGong() {
asr.speak("20中队分工");
k10.canvas->canvasDrawBitmap(0,90,240,205,image_data4);
}
// 事件回调函数
void onButtonAPressed() {
k10.canvas->canvasClear();
DF_XianShiKeChengBiao();
delay(5000);
DF_XianShiDianZiBanPai();
}
void onButtonBPressed() {
k10.canvas->canvasClear();
DF_XianShiZhongDuiFenGong();
delay(5000);
DF_XianShiDianZiBanPai();
}
附件
评论