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

基于K10行空板的洛阳牡丹文化艺术节的电子作品(项目实践案例征集) 中等

头像 思想者 2025.02.06 146 0

一、洛阳牡丹文化艺术节项目简介

洛阳牡丹,作为中国传统文化的重要符号,以其独特的美丽和深厚的文化内涵,吸引了无数人的目光。每年的洛阳牡丹文化艺术节,都是展示洛阳牡丹风采和文化魅力的重要平台。通过结合K10行空板的显示屏、语音识别、语音合成功能,我制作了一款宣传洛阳牡丹的电子作品,旨在让更多人了解和喜爱这一传统文化瑰宝。

二、洛阳牡丹文化艺术节项目来源

 (一)洛阳牡丹文化艺术节的历史背景

洛阳牡丹文化艺术节起源于唐代,已有千年历史。唐代时期,洛阳牡丹已经成为宫廷和贵族花园中的珍品,受到皇室和文人墨客的喜爱。宋代以后,洛阳牡丹逐渐普及到民间,并形成了每年一度的牡丹文化艺术节。洛阳牡丹文化艺术节不仅是一个展示牡丹花卉的盛会,更是一个集文化、艺术、旅游于一体的综合性活动。

 (二)洛阳牡丹文化艺术节的主要活动

洛阳牡丹文化艺术节期间,洛阳各地会举办丰富多彩的活动,吸引了大量游客和摄影爱好者。主要活动包括:

1.  牡丹花会:牡丹花会是牡丹文化艺术节的核心活动,各地的牡丹园会展示各种品种的牡丹花卉,游客可以在这里欣赏到绚丽多彩的牡丹花海。牡丹花会通常在每年的4月中旬举行,正值牡丹盛开的季节。

2.  牡丹文化展览:牡丹文化展览展示了与牡丹相关的历史文化、诗词、绘画、雕刻等艺术作品,向游客展示牡丹在中国传统文化中的重要地位和深远影响。

3.  牡丹诗词朗诵会:牡丹诗词朗诵会是牡丹文化艺术节的重要文化活动之一,诗人和文学爱好者们会在这里朗诵与牡丹相关的诗词,表达对牡丹的赞美和热爱。

4.  牡丹摄影大赛:牡丹摄影大赛吸引了众多摄影爱好者参与,他们用镜头记录下牡丹的美丽瞬间,通过摄影作品展示牡丹的迷人风采。

5.  牡丹工艺品展览:牡丹工艺品展览展示了各种以牡丹为主题的工艺品,如刺绣、陶瓷、雕刻等,展示了牡丹文化在中国传统工艺中的广泛应用。

 (三)洛阳牡丹文化艺术节的文化意义

洛阳牡丹文化艺术节不仅是一个展示牡丹花卉的盛会,更是一个传承和弘扬中国传统文化的重要平台。牡丹在中国传统文化中象征着富贵、繁荣和幸福,被誉为“花中之王”。通过牡丹文化艺术节,洛阳向世界展示了其深厚的文化底蕴和独特的文化魅力。牡丹文化艺术节不仅吸引了大量游客,还促进了当地旅游业的发展,带动了经济增长。同时,牡丹文化艺术节也成为洛阳人民文化生活的重要组成部分,丰富了市民的文化生活,增强了文化自信。

image.png

 

 

三、洛阳牡丹文化艺术节项目目标与原理

本项目旨在通过利用K10行空板的显示屏、语音识别、语音合成等功能,结合洛阳牡丹文化艺术节,制作一个宣传洛阳牡丹的电子作品。具体实现目标如下:

1.  通过本项目的制作,让学生可以了解K10行空板屏幕显示、语音识别和语音合成功能的基本使用方法及原理。

2.  通过实际操作,掌握硬件与Mind+编程交互的技巧,学会从简到繁规划设计、调试和完善作品。

3.  通过搜集和制作与洛阳牡丹相关的素材和作品,对孩子进行中国传统文化教育,培养他们的数字化学习与创新能力及计算思维。

4.  通过这种形式,建立一种日常创意-开源制作-制作短视频-宣传引流的模式,为建设家乡尽自己的一份力量,树立家国情怀。

四、洛阳牡丹文化艺术节使用器材

 K10行空板一块(含tf卡)

 数据线一根

 掌控板IO扩展板IO电机驱动扩展板一块(含电源)

 带编码器直流减速电机一个

 继电器一个

 雾化器一个(含电源)

 花朵开合器(自己制作)

 杜邦线若干

 

image.png

 

材料清单

五、洛阳牡丹文化艺术节项目制作过程 

(一)前期准备

在项目制作前期,我进行了充分的准备工作。首先,我对洛阳牡丹文化艺术节进行了深入的调研和资料收集,整理了大量与牡丹相关的图片、诗词、绘画、故事等素材。这些素材将用于开发电子作品的内容。同时,我对K10行空板的性能和功能进行了详细的了解,包括其显示屏、语音识别和语音合成功能的基本使用方法及原理。

 (二)硬件搭建

硬件搭建是项目制作的重要环节。我按照设计要求,准备好K10行空板、数据线、掌控板IO扩展板IO电机驱动扩展板、TT马达、继电器和雾化器等器材,并进行了规范的连接和固定。具体步骤如下:

1.  将K10行空板与数据线连接,确保电源供应稳定。

2.  将掌控板IO扩展板IO电机驱动扩展板与K10行空板连接,确保各硬件模块之间的通信正常。

3.  将TT马达连接到IO扩展板上的M1口上,将TT马达和花朵开合器相连,确保硬件设备的正常运行。

4.  继电器和雾化器相连,测试正常后连接到P0上。

image.png

 

 (三)程序设计

程序设计是项目制作的核心环节。我利用Mind+编程软件,结合K10行空板的功能特点,进行了宣传洛阳牡丹电子作品的程序设计。主要步骤包括:

 1.  屏幕显示程序设计

 2.  语音识别与合成程序设计

 3.  交互逻辑设计

(四)程序流程图

image.png

代码如下:

代码
/*!
 * MindPlus
 * esp32s3bit
 *
 */
#include "asr.h"
#include <IOBOX_Motor.h>
#include "unihiker_k10.h"
#include "arduino_image_cache.h"

// 动态变量
volatile float mind_n_ShiJian, mind_n_MuDan;
// 函数声明
void DF_HuaXiang();
void DF_QingFeng();
// 创建对象
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;
ASR          asr;
Music        music;
IOBOX_Motor  motor_ib;


// 主程序开始
void setup() {
	pinMode(P0, OUTPUT);
	k10.begin();
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	asr.setAsrSpeed(2);
	asr.asrInit(CONTINUOUS, CN_MODE, 12000);
	while(asr._asrState == 0){delay(100);}
	k10.initSDFile();
	digitalWrite(P0, LOW);
	k10.setScreenBackground(0x000000);
	k10.canvas->canvasText("欢迎来洛阳欣赏牡丹", 13, 0xFF0000);
	k10.canvas->canvasDrawBitmap(0,0,240,200,image_data1);
	k10.canvas->updateCanvas();
	delay(1000);
	asr.speak("欢迎来洛阳欣赏牡丹");
	asr.addASRCommand(0+1, "luo yang");
	asr.addASRCommand(1+1, "qing feng");
	asr.addASRCommand(2+1, "hua xiang");
}
void loop() {
	if (asr.isWakeUp()) {
		k10.canvas->canvasText("识别中,请说命令词:", 5, 5, 0xFF0000, k10.canvas->eCNAndENFont24, 20, true);
		k10.canvas->canvasDrawBitmap(0,0,240,320,image_data2);
		k10.canvas->updateCanvas();
	}
	else {
		k10.canvas->canvasText("休眠中…", 5, 5, 0xFF0000, k10.canvas->eCNAndENFont24, 20, true);
		k10.canvas->canvasText("请说“你好小新”", 5, 40, 0x333333, k10.canvas->eCNAndENFont24, 20, true);
		k10.canvas->updateCanvas();
	}
	if (asr.isDetectCmdID(0+1)) {
		asr.speak("洛阳地脉花最宜  牡丹尤为天下奇");
		delay(4000);
	}
	if (asr.isDetectCmdID(1+1)) {
		DF_QingFeng();
		asr.speak("唯有牡丹真国色  花开时节动京城");
		delay(4000);
	}
	if (asr.isDetectCmdID(2+1)) {
		asr.speak("竟夸天下无双艳  独立人间第一香");
		music.playTFCardAudio("S:/music.wav");
		DF_HuaXiang();
	}
}


// 自定义函数
void DF_HuaXiang() {
	digitalWrite(P0, HIGH);
	k10.canvas->canvasClear();
	for (int index = 0; index < 5; index++) {
		mind_n_ShiJian = 0.1;
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data3);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data4);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data5);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data6);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data7);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data8);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data9);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data10);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data11);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data12);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data13);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data14);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data15);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data16);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data17);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data18);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data19);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data20);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data21);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data22);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data23);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
		k10.canvas->canvasDrawBitmap(0,0,240,300,image_data24);
		k10.canvas->updateCanvas();
		delay(mind_n_ShiJian * 1000);
	}
}
void DF_QingFeng() {
	for (int index = 0; index < 10; index++) {
		motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 100);
		delay(500);
		motor_ib.motorRun(motor_ib.M1, motor_ib.CCW, 100);
		mind_n_MuDan = 1;
		delay(500);
	}
	motor_ib.motorStop(motor_ib.M1);
}

图形化程序如下:

image.png

 

image.png

 (四)素材制作与整合

为了丰富电子作品的内容,我搜集和制作了大量与洛阳牡丹相关的素材。这些素材包括精美的牡丹图片、动人的牡丹诗词、动听的音乐等。我将这些素材融入电子作品中,为用户呈现出一个充满洛阳牡丹元素的宣传世界。具体步骤如下:

 

1.  搜集与洛阳牡丹相关的图片和诗词,制作展示内容。

2.  设计电子作品的界面,将牡丹图片和诗词元素融入其中,增强作品的视觉效果和文化氛围。

3.  进行多次调试和优化,确保界面的美观和展示内容的准确性。

 

 (五)调试与完善

在项目制作过程中,我进行了多次的调试和完善工作。我针对硬件连接、软件开发、素材整合等方面进行了全面的测试,发现并解决了多个潜在的问题。

  六、结语

通过本次洛阳牡丹宣传电子作品的制作,我不仅实现了预期的目标,还收获了许多宝贵的经验和教训。我深刻认识到,传统文化的传承与创新需要现代科技手段的支撑,而现代科技手段的发展也离不开传统文化的滋养。未来,我将继续探索更多传统文化与现代科技相结合的可能性,为传承和弘扬中国传统文化贡献更多的力量。

image.png

 

                                                                                                                                   

评论

user-avatar