首页/作品列表/炫彩风车小屋
主要内容
团队名称:从心
团队分工:李宇辰——代码编程
宫照珩——外观设计
郝嘉阳——文案编辑
作品名称——炫彩风车小屋
项目背景:在当今社会,随着科学技术的飞速发展,人们的生活节奏也越来越快,这使得很多人逐渐失去了耐性,经常沉迷于所谓的快餐游戏。在智能手机的普遍流行中,人们更是失去了沟通和交流的能力。很多年轻人,专注于手机办公,手机游戏,网剧等等,这让人与人之间明明身体的距离很近,心的距离却很远。 我们作为万千学子中的一员,或许无法做得到一些伟大的事情,但是愿能尽微薄之力,我们小小的作品,能够让大家回忆起家的温暖,哪怕是放下一刻钟的时间多陪陪家人。 希望我们的作品能够摆放在办公桌或是课桌上提醒我们对家的渴望和对家人的关爱。
小屋可以切换和添加歌曲 ,但是风车不能自由调节转速。
制作过程图片:














程序代码:#include
#include
#include
#include
AudioPro_FilePlayer musicPlayer = AudioPro_FilePlayer(SD);
Motor MotorLeft(MOTOR0_PINA, MOTOR0_PINB);
DigitalKey keyDigital(10);

uint8_t fileNum = 0; //文件数量

void playNum(uint8_t num) {
if (num > musicPlayer.getMusicNum() - 1) {
return;
}

if (!musicPlayer.stopped()) {
musicPlayer.stopPlaying(); //必要,否则SD类得不到关闭,内存溢出
}
musicPlayer.flushCancel(both); //清缓存,播放MIDI等格式文件时必要

String _name = musicPlayer.getMusicName(num);
Serial.print(F("Playing:"));
if (!musicPlayer.playMP3(_name)) {
Serial.println(F("ERROR"));
}
else {
Serial.print(F("OK \t File: "));
Serial.println(_name);
}
}
void setup() {
Serial.begin(115200); //串口初始化
Serial.println("Microduino_Motor!");
MotorLeft.begin(); //电机MotorLeft初始化

Serial.println(F("AudioPro(VS1053) Simple Test"));
pinMode(SD_PIN_SEL, OUTPUT); //先初始化AudioPro,所以先使能SD卡
digitalWrite(SD_PIN_SEL, HIGH);
delay(500);

if (! musicPlayer.begin()) { // initialise the music player
Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
while (1);
}
Serial.println(F("VS1053 found"));

if (!SD.begin(SD_PIN_SEL)) {
Serial.println(F("initialization failed!"));
return;
}
Serial.println(F("initialization done."));

musicPlayer.setVolume(105); //left & right 0-127
//or
//musicPlayer.setVolume(105, 105); //left right 0-127

// If DREQ is on an interrupt pin, we can do background
musicPlayer.useInterrupt(VS1053_PIN_DREQ);
}
uint8_t num = 0 ;
void loop() {
switch (keyDigital.readEvent()){
case SHORT_PRESS:
Serial.println("KEY (digital) SHORT_PRESS");
MotorLeft.setSpeed(100); //设置电机MotorLeft速度为100);
num--;
if(num==-1)
{num==8;}
playNum(num % 9);
break;
case LONG_PRESS:
Serial.println("KEY (digital) LONG_PRESS");
MotorLeft.setSpeed(FREE); //设置电机MotorLeft为释放状态,即速度为0
musicPlayer.stopPlaying();
delay(1000);
break;
}
if (Serial.available()) {
char c = Serial.read();
if ((c == '-') || (c == '+')) { //调整音量
int _volume;
if (c == '-') { // note dB is negative
_volume = musicPlayer.volumeDown();
}
else {
_volume = musicPlayer.volumeUp();
}
Serial.print(F("Volume changed to "));
Serial.println(_volume);
}


}
}

#include

#define PIN 6
#define NUMPIXELS 4

ColorLED strip = ColorLED(NUMPIXELS, PIN);

int i = 0;
int gap = 1;


void setup() {

strip.begin();

}

void loop() {
// 用for写呼吸灯,控制第一个灯
for (int i = 0; i<=255; i++){
strip.setPixelColor(0, i, 0, 0);
strip.setPixelColor(1, 0, i, 0);
strip.setPixelColor(2, i, 0, i);
strip.setPixelColor(3, i, i, 0);
strip.show();
delay(15);
}

for (int i = 255; i>=0; i--){
strip.setPixelColor(0, i, 0, 0);
strip.setPixelColor(1, 0, i, 0);
strip.setPixelColor(2, i, 0, i);
strip.setPixelColor(3, i, i, 0);
strip.show();
delay(15);
}

}




代码展示

1. LED灯

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.8.4


2. 音乐模块

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.8.4


附件下载
暂无数据!
0
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册