前 言
今年7月1日,是党的百年华诞。为此,我国举行了一系列庆祝活动。其中,开展时间最长的是党史学习教育活动,将贯穿全年。前一段时间,我制作了一个党史知识答题机(“同学,请听题”),很荣幸地被《爱上机器人》杂志录用。
这次DF举办线上活动,又激起了我的创作欲望。在党史学习中,我印象最深的是红军长征的那段历史,也许是因为小时候就从课本上读到过那一个个催人泪下的故事——《飞夺泸定桥》、《金色的鱼钩》、《丰碑》、《一袋干粮》......
于是,我开始着手制作一个关于长征历史的智能宣讲机。其间,遇到了不少困难和失败。更换了几次主控板,放弃了一些预设的功能......在坚持不懈的努力下,作品于7月1日完工了,算是我为党的百年华诞的献上的一份礼物吧!
长征永远在路上!
功 能 介 绍
(1)诗歌欣赏——按下对应按钮后,会播放《七律·长征》朗诵音频,上面的画卷会随之转动,展现一幅幅长征主题版画*。
*因时间及技术等因素,成品的画卷中只有3幅画,预设是10幅左右。预想的《七律·长征》书法作品也因为激光切割机加工尺寸不够而放弃。
(2)长征概述——按下对应按钮后,会播放长征介绍音频,一颗颗LED灯会随之亮起,指示出红军长征的行进路线。
(3)了解事件——按下对应按钮后,会提示:请说出你想了解的事件;当识别到某个事件名称后,会亮起该事件发生的地点的指示灯(其他的灯会自动熄灭),并播放介绍该事件的音频。
演 示 视 频
材料清单
- DFRduino Uno R3 X1
- IO扩展板 X1
- 语音识别模块 X1
- 串口MP3模块 X1
- 数字按钮模块 X3
- 360°舵机 X2
- 小音箱 X1
其他材料
(1)小滚动轴承 (2)油画布 (3)椴木板 (4)螺丝螺母 (5)合页 (6)小木棒
制 作 过 程
步骤1 硬件搭建
先将扩展板安装主控板上,然后将各个电子模块连接到扩展板上,连接图如图3所示。
语音识别模块——IIC专用引脚
WS2812灯带——引脚4
360°舵机——引脚8、9
数字按钮模块——引脚A1、A2、A3
串口MP3模块——引脚2、3
小音箱——串口MP3模块
步骤2 编写程序
1. 打开编程软件MIND+ v1.7.0,以“上传模式”运行,如下图所示
2. 分别加载主控板和各电子模块的扩展积木模块,如下图所示
3. 根据预设功能编写程序,完整程序下图所示(源程序见附件)
步骤3 结构设计、加工
1. 设计思路:
考虑到手上的激光切割机加工范围为40cm*60cm,而预设的尺寸较大、内部构件较多,只能采取分体设计、分部分切割再组装的方式完成。
2.使用激光建模软件LaserMaker 进行结构及外型的图纸绘制
3.使用激光切割机进行加工
步骤4 组装
1.将电子模块安装到木板件的预设位置
2.将电子模块重新连接到主控板及扩展板上
3.将下面的盒体组装起来
4.安装滚动轴承,组装上面的部分盒体
5.拼装、制作画轴,并固定到面板上
6.拼装转轴,并固定在合适的位置
7.将画布固定在转轴上
8.装上上面盒体的背板,使用合页与下面的盒体连接在一起
成 品 图 赏
折叠状态
展开状态
上部特写
下部特写
灯全亮状态
/*!
* MindPlus
* uno
*
*/
#include <SimpleList.h>
#include<DFRobot_ASR.h>
#include <SoftwareSerial.h>
#include <DFRobot_NeoPixel.h>
#include <DFRobot_SerialMp3.h>
#include <DFRobot_Libraries.h>
// 动态变量
volatile float mind_n_xzkz, mind_n_b, mind_n_order, mind_n_index, mind_n_a;
SimpleList<String> mind_l_DengHao;
// 函数声明
void DF_YiCiLiangDeng();
// 创建对象
DFRobot_SerialMp3 serialMp3;
SoftwareSerial softSerialserialMp3(2, 3);
DFRobot_NeoPixel neoPixel_4;
DFRobot_ASR asr;
DFRobot_Servo360 servo360_8;
DFRobot_Servo360 servo360_9;
// 主程序开始
void setup() {
asr.begin(LOOP,MIC);
asr.addCommand("xiang jiang",2);
asr.addCommand("zui yi",3);
asr.addCommand("chi shui",4);
asr.addCommand("jin sha",5);
asr.addCommand("du he",6);
asr.addCommand("lu ding",7);
asr.addCommand("xue shan",8);
asr.addCommand("mao gong",9);
asr.addCommand("cao di",10);
asr.addCommand("la zi kou",11);
asr.addCommand("da hui shi",12);
asr.start();
servo360_8.attach(8);
servo360_9.attach(9);
mind_l_DengHao.push_back("57");
mind_l_DengHao.push_back("49");
mind_l_DengHao.push_back("40");
mind_l_DengHao.push_back("33");
mind_l_DengHao.push_back("37");
mind_l_DengHao.push_back("26");
mind_l_DengHao.push_back("24");
mind_l_DengHao.push_back("21");
mind_l_DengHao.push_back("18");
mind_l_DengHao.push_back("16");
mind_l_DengHao.push_back("12");
mind_l_DengHao.push_back("8");
mind_l_DengHao.push_back("1");
serialMp3.begin(&softSerialserialMp3);
serialMp3.volume(100);
delay(1000);
neoPixel_4.begin(4, 58);
neoPixel_4.setBrightness(50);
neoPixel_4.clear();
mind_n_xzkz = 0;
mind_n_b = 0;
}
void loop() {
if (digitalRead(A1)) {
while (!(!digitalRead(A1))) {}
serialMp3.playList(1);
if ((mind_n_b==0)) {
servo360_8.speed(10);
servo360_9.speed(80);
delay(13000);
servo360_8.speed(0);
servo360_9.speed(0);
mind_n_b = 1;
}
else {
servo360_8.speed(-80);
servo360_9.speed(-10);
delay(15000);
servo360_8.speed(0);
servo360_9.speed(0);
mind_n_b = 0;
}
delay(50000);
}
if (digitalRead(A2)) {
while (!(!digitalRead(A2))) {}
serialMp3.playList(2);
DF_YiCiLiangDeng();
delay(10000);
}
if (digitalRead(A3)) {
while (!(!digitalRead(A3))) {}
serialMp3.playList(3);
}
mind_n_order = (asr.read());
mind_n_index = 1;
for (int index = 0; index < mind_l_DengHao.size(); index++) {
if ((mind_n_order==mind_n_index)) {
mind_n_a = (String(mind_l_DengHao[mind_n_index-1]).toInt());
neoPixel_4.clear();
neoPixel_4.setRangeColor(mind_n_a, mind_n_a, 0x0000FF);
serialMp3.playList((mind_n_order + 2));
delay(5000);
}
mind_n_index += 1;
}
mind_n_order = -1;
}
// 自定义函数
void DF_YiCiLiangDeng() {
neoPixel_4.clear();
delay(2000);
mind_n_index = 1;
for (int index = 0; index < mind_l_DengHao.size(); index++) {
mind_n_a = (String(mind_l_DengHao[mind_n_index-1]).toInt());
neoPixel_4.setRangeColor(mind_n_a, mind_n_a, 0x0000FF);
delay(1000);
mind_n_index += 1;
}
}
Dr丶2024.11.16
可以加下VX吗
HF-CGH2021.08.29
挺棒的
虾虾^0^2021.08.10
好