[C++] 纯文本查看 复制代码
/*!
* 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;
}
}