回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

行空板K10多功能电子班牌 简单

头像 于永生 2025.02.20 12 0

一.项目背景

    2022年4月,教育部正式发布《义务教育信息科技课程标准(2022年版)》。六年级跨学科主题学习,结合信息科技新课标中的小型系统模拟中的小型开关系统。设计了“多功能电子班牌”。

 

7c8480591b13047c0d05d1119d436977_db01679360896713478eb9ab63350626.png

二、作品分析

        本作品是设计制作一个电子班牌。同学老师或者家长,可以通过电子班牌的信息,了解整个班级的班风班貌以及课程设置。班牌中显示时间和温度,方便学生了解生活知识。

feb4c35400c8731a6adabd1d2d0709c7.jpg
a53032a8a72b08e9db66048a58bffc0d.jpg
94c4eb79910184f04866d399541341c6.jpg

三、知识点

         1.行空板K10及相关硬件。

         2.数据采集与显示。

         3.按键功能的实现。

         4.数据可视化大屏。

         5.程序自定义函数的学习

 

四、硬件清单及软件准备

材料清单

硬件简介   :

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

          接口&器件说明

        

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

 

568366b062b4d73d09f02c80f21825da_Fv38JUiLJyj8r-6TOTLG7ruJck46.png

 

本作品在实际操作中,会用到按键。

 

步骤1 设置标题,连接无线网络

步骤2 设置天气,室内温度,当前时间

步骤3 设置班牌显示函数

步骤4 设置A、B按键程序,显示课程表和中队分工

程序1.jpg
程序2.jpg

代码
/*!
 * 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();
}

附件

评论

user-avatar