“音乐盒/zh”的版本间的差异
502748957@qq.com(讨论 | 贡献) (→调试过程) |
502748957@qq.com(讨论 | 贡献) (→调试过程) |
||
(未显示2个用户的17个中间版本) | |||
第45行: | 第45行: | ||
|尼龙螺丝&螺母 ||1||固定 | |尼龙螺丝&螺母 ||1||固定 | ||
|- | |- | ||
− | | | + | |木质外壳 ||1||外观,固定 |
|} | |} | ||
− | [[File:音乐盒物料.jpg||600px|center| | + | [[File:音乐盒物料.jpg||600px|center]] |
+ | [[File:音乐盒物料2.jpg||600px|center]] | ||
+ | |||
==实验原理== | ==实验原理== | ||
Microduino-Audio板可解码并存储音乐文件,Microduino-Audio&shield 与喇叭连接实现音乐拨轮及大容量存储,Microduino-Cube-S1与Microduino-OLED连接可以直观的文字提示方式在OLED中显示音量及曲目。再将Microduino-USBTTL,Microduino-Core+与其他模块无序拼接即可实现插卡音箱功能。音箱外形采用木质外壳也可DIY自己的专属外壳。 | Microduino-Audio板可解码并存储音乐文件,Microduino-Audio&shield 与喇叭连接实现音乐拨轮及大容量存储,Microduino-Cube-S1与Microduino-OLED连接可以直观的文字提示方式在OLED中显示音量及曲目。再将Microduino-USBTTL,Microduino-Core+与其他模块无序拼接即可实现插卡音箱功能。音箱外形采用木质外壳也可DIY自己的专属外壳。 | ||
− | [[File:外形.jpg||600px|center | + | [[File:外形.jpg||600px|center]] |
*主要传感器 | *主要传感器 | ||
[[Microduino-Audio]] | [[Microduino-Audio]] | ||
==文档== | ==文档== | ||
+ | 百度盘地址:http://pan.baidu.com/s/1eQiA6CM | ||
+ | 提取码:v576 | ||
+ | |||
==调试过程== | ==调试过程== | ||
将[[Microduino-Core+/zh]]、[[Microduino-USBTTL/zh]]堆叠在一起.用数据线将写好的程序通过[[Microduino-USBTTL/zh]]上传到[[Microduino-Core+/zh]]上。 | 将[[Microduino-Core+/zh]]、[[Microduino-USBTTL/zh]]堆叠在一起.用数据线将写好的程序通过[[Microduino-USBTTL/zh]]上传到[[Microduino-Core+/zh]]上。 | ||
注意:最好不要将所有模块堆叠在一起之后再上传程序 | 注意:最好不要将所有模块堆叠在一起之后再上传程序 | ||
− | [[File:download1.jpg|| | + | [[File:download1.jpg||400px|center]] |
打开Arduino IDE编程软件,点击 【文件】->【打开】,打开插卡音箱文件夹后选择Microduino_Audio_ble\ Microduino_Audio_ble.ino | 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开插卡音箱文件夹后选择Microduino_Audio_ble\ Microduino_Audio_ble.ino | ||
点击"√",编译程序。 | 点击"√",编译程序。 | ||
点击【工具】,选择正确的板+处理器+端口。 | 点击【工具】,选择正确的板+处理器+端口。 | ||
点击"→",进行上传。 | 点击"→",进行上传。 | ||
− | [[File:Downloadselectcore+.jpg||600px|center | + | [[File:Downloadselectcore+.jpg||600px|center]] |
− | * | + | *方法一:'''使用Flash存储音乐(容量很小,小于4M)''' |
连接Audio模块到电脑。若成功识别,则“我的电脑”中会出现CD驱动,打开CD驱动。 | 连接Audio模块到电脑。若成功识别,则“我的电脑”中会出现CD驱动,打开CD驱动。 | ||
注意:若未成功识别请检查数据线与模块之间是否插牢。如检查插牢还不能识别就换个电脑USB接口试试。 | 注意:若未成功识别请检查数据线与模块之间是否插牢。如检查插牢还不能识别就换个电脑USB接口试试。 | ||
− | |||
连接成功能显示出一个名为Microduino-Audio的CD驱动器,然后执行以下步骤: | 连接成功能显示出一个名为Microduino-Audio的CD驱动器,然后执行以下步骤: | ||
− | [[File:Dl5.jpg|| | + | [[File:Dl5.jpg||400px|center]] |
打开驱动后选择MusicDownload.exe | 打开驱动后选择MusicDownload.exe | ||
− | [[File:Musicdl.jpg|| | + | [[File:Musicdl.jpg||400px|center]] |
打开后选择“音频加载” | 打开后选择“音频加载” | ||
− | [[File:Musicdl1.jpg|| | + | [[File:Musicdl1.jpg||500px|center]] |
点击“浏览”后选择所有歌曲,点击“打开”(歌曲在Case1-4.mp3中)。 | 点击“浏览”后选择所有歌曲,点击“打开”(歌曲在Case1-4.mp3中)。 | ||
注意:Flash中音乐文件不能超过4M,因此显屏中只有Music Num:1-4号有歌曲,5-9号歌曲还是上一首歌。如果想要增加歌曲,则使用第一种方法即音乐存入MicroSD卡 | 注意:Flash中音乐文件不能超过4M,因此显屏中只有Music Num:1-4号有歌曲,5-9号歌曲还是上一首歌。如果想要增加歌曲,则使用第一种方法即音乐存入MicroSD卡 | ||
− | [[File:Musicdl2.jpg|| | + | [[File:Musicdl2.jpg||500px|center]] |
打开后点击返回“更新下载”,点击“更新”,点击更新,更新时间较长,请耐心等待 | 打开后点击返回“更新下载”,点击“更新”,点击更新,更新时间较长,请耐心等待 | ||
− | [[File:Musicdl3.jpg|| | + | [[File:Musicdl3.jpg||500px|center]] |
当现显示“校验成功”后,拷贝音乐就成功了。 | 当现显示“校验成功”后,拷贝音乐就成功了。 | ||
注意:校验成功后直接关闭窗口,不要再点击更新,否则又要重新更新 | 注意:校验成功后直接关闭窗口,不要再点击更新,否则又要重新更新 | ||
− | * | + | *'''方法二:使用TF卡存储音乐(容量随TF卡大小变化)''' |
将Audio&Shield模块通过USB数据线连接到电脑,此时会识别出一个CD驱动一个可移动磁盘。双击可移动磁盘 | 将Audio&Shield模块通过USB数据线连接到电脑,此时会识别出一个CD驱动一个可移动磁盘。双击可移动磁盘 | ||
− | [[File:TF步骤1.png||600px|center | + | [[File:TF步骤1.png||600px|center]] |
点击鼠标右键新建文件夹,命名为01(如需要多个可继续命名为02,03以此类推) | 点击鼠标右键新建文件夹,命名为01(如需要多个可继续命名为02,03以此类推) | ||
− | [[File:TF步骤2. | + | [[File:TF步骤2.jpg||600px|center]] |
之后将音乐存储进文件夹01中即可 | 之后将音乐存储进文件夹01中即可 | ||
− | [[File:TF步骤3. | + | [[File:TF步骤3.jpg||600px|center]] |
− | + | ==组装== | |
如图,请点击查看大图并对应步骤进行拼装 | 如图,请点击查看大图并对应步骤进行拼装 | ||
− | [[File: | + | *'''Step1''':首先将A1与OLED显示屏用螺丝钉和螺帽固定,再将传感器连接线接入OLED背面的接口 |
+ | [[File:Musicstep1.jpg||600px|center]] | ||
+ | *'''Step2''':将D1和C2分别插入B1接口 | ||
+ | [[File:Musicstep2.jpg||600px|center]] | ||
+ | *'''Step3''':将音响嵌入如图位置,再将A1和B1用D3拼装起来 | ||
+ | [[File:Musicstep3.jpg||600px|center]] | ||
+ | *'''Step4''':将音响嵌入如图位置,再将A1和B1用D3和D2拼装起来 | ||
+ | [[File:Musicstep4.jpg||600px|center]] | ||
+ | *'''Step5''':将C1与A1和B1进行合并,并将Core,USBTTL,Audio&Shield,Amplifier,Audio叠加在一起,插在底板上,并用D4固定 | ||
+ | [[File:Musicstep5.jpg||600px|center]] | ||
+ | *'''Step6''':将传感器线和音响线接入模块底板相应位置,再使用USB线接到USBTTL模块上 | ||
+ | [[File:Musicstep6.jpg||600px|center]] | ||
+ | 至此音乐盒拼装完成 | ||
==注意事项== | ==注意事项== | ||
第108行: | 第124行: | ||
|} | |} | ||
在uiSetup中更改阈值设定 | 在uiSetup中更改阈值设定 | ||
+ | ==操作说明== | ||
+ | 上电之后是默认在第一首歌的位置暂停,之后垂直方向按下拨轮开始播放第一首。 | ||
+ | 长按拨轮更改播放模式,如循环播放,单曲暂停等。 | ||
+ | 左右方向长按拨轮为改变音量。 | ||
+ | |||
==程序说明== | ==程序说明== | ||
− | <source lang="cpp"> | + | 主程序部分 |
+ | <source lang = "cpp"> | ||
+ | int vol=uiStep(); //检测输入动作 | ||
+ | // Serial.print("vol:"); | ||
+ | // Serial.println(vol); | ||
+ | |||
+ | if(vol==1) key=true; | ||
+ | else key=false; | ||
+ | |||
+ | if(!key && key_cache) //按下松开后 | ||
+ | { | ||
+ | key_cache=key; //缓存作判断用 | ||
+ | music_status=!music_status; //播放或暂停 | ||
+ | if(music_status == true) //播放 | ||
+ | { | ||
+ | Serial.println("play"); | ||
+ | // audio_choose(1); | ||
+ | audio_play(); | ||
+ | } | ||
+ | else //暂停 | ||
+ | { | ||
+ | Serial.println("pause"); | ||
+ | audio_pause(); | ||
+ | } | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | key_cache=key; //缓存作判断用 | ||
+ | } | ||
+ | |||
+ | if(vol==0) | ||
+ | { | ||
+ | // Serial.println("no"); | ||
+ | music_vol_time_cache=millis(); | ||
+ | music_vol_time=music_vol_time_cache; | ||
+ | music_vol_sta=false; | ||
+ | } | ||
+ | else if(vol==2) | ||
+ | { | ||
+ | music_vol_time=millis()-music_vol_time_cache; | ||
+ | // if(music_vol_time>200) | ||
+ | delay(500); | ||
+ | if(uiStep()==0 && !music_vol_sta) | ||
+ | { | ||
+ | Serial.println("next"); | ||
+ | |||
+ | music_num++; //歌曲序号加 | ||
+ | if(music_num>music_num_MAX) //限制歌曲序号范围 | ||
+ | { | ||
+ | music_num=1; | ||
+ | } | ||
+ | audio_choose(music_num); | ||
+ | audio_play(); | ||
+ | // delay(500); | ||
+ | music_status=true; | ||
+ | eeprom_WRITE(); | ||
+ | |||
+ | } | ||
+ | else if(music_vol_time>1500) | ||
+ | { | ||
+ | music_vol_sta=true; | ||
+ | music_vol++; | ||
+ | if(music_vol>30) music_vol=30; | ||
+ | audio_vol(music_vol); | ||
+ | Serial.println("++"); | ||
+ | delay(100); | ||
+ | eeprom_WRITE(); | ||
+ | } | ||
+ | } | ||
+ | else if(vol==3) | ||
+ | { | ||
+ | music_vol_time=millis()-music_vol_time_cache; | ||
+ | // if(music_vol_time>200) | ||
+ | delay(500); | ||
+ | if(uiStep()==0 && !music_vol_sta) | ||
+ | { | ||
+ | Serial.println("perv"); | ||
+ | |||
+ | music_num--; //歌曲序号加 | ||
+ | if(music_num<1) //限制歌曲序号范围 | ||
+ | { | ||
+ | music_num=music_num_MAX; | ||
+ | } | ||
+ | audio_choose(music_num); | ||
+ | audio_play(); | ||
+ | // delay(500); | ||
+ | music_status=true; | ||
+ | eeprom_WRITE(); | ||
+ | } | ||
+ | else if(music_vol_time>1500) | ||
+ | { | ||
+ | music_vol_sta=true; | ||
+ | music_vol--; | ||
+ | if(music_vol<1) music_vol=1; | ||
+ | audio_vol(music_vol); | ||
+ | Serial.println("--"); | ||
+ | delay(100); | ||
+ | eeprom_WRITE(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if(millis()-timer_draw>init_draw) //OLED显示部分 | ||
+ | { | ||
+ | u8g.firstPage(); | ||
+ | do { | ||
+ | draw(); | ||
+ | } | ||
+ | while( u8g.nextPage() ); | ||
+ | timer_draw=millis(); | ||
+ | } | ||
+ | } | ||
</source> | </source> | ||
+ | |||
==视频== | ==视频== |
2015年12月21日 (一) 03:57的最新版本
概述
插卡音箱一般是指目前市场上支持或者能够读取SD、TF等等这些内存处理器的音箱,与传统的电脑音箱,手机音箱相比,插卡音箱独有的解码功能,使得它更为消费者所青睐,正因如此,它才被成为音响帝国中的解码大王。插卡音箱以实用,方便,最大限度的满足音箱消费者的需求为设计理念,产品设计简洁,使用高品质喇叭,音质震撼,还原度高,即使在最大音量下破音依然不明显,是追求完美音质的明智选择,还原效果明显,失真度低,被誉为音响王国中的音乐天使。精简按键设计、屏幕显示,无须复杂操作,轻松使用。 材料清单
实验原理Microduino-Audio板可解码并存储音乐文件,Microduino-Audio&shield 与喇叭连接实现音乐拨轮及大容量存储,Microduino-Cube-S1与Microduino-OLED连接可以直观的文字提示方式在OLED中显示音量及曲目。再将Microduino-USBTTL,Microduino-Core+与其他模块无序拼接即可实现插卡音箱功能。音箱外形采用木质外壳也可DIY自己的专属外壳。
文档百度盘地址:http://pan.baidu.com/s/1eQiA6CM 提取码:v576 调试过程将Microduino-Core+/zh、Microduino-USBTTL/zh堆叠在一起.用数据线将写好的程序通过Microduino-USBTTL/zh上传到Microduino-Core+/zh上。 注意:最好不要将所有模块堆叠在一起之后再上传程序 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开插卡音箱文件夹后选择Microduino_Audio_ble\ Microduino_Audio_ble.ino 点击"√",编译程序。 点击【工具】,选择正确的板+处理器+端口。 点击"→",进行上传。
连接Audio模块到电脑。若成功识别,则“我的电脑”中会出现CD驱动,打开CD驱动。 注意:若未成功识别请检查数据线与模块之间是否插牢。如检查插牢还不能识别就换个电脑USB接口试试。 连接成功能显示出一个名为Microduino-Audio的CD驱动器,然后执行以下步骤: 打开驱动后选择MusicDownload.exe 打开后选择“音频加载” 点击“浏览”后选择所有歌曲,点击“打开”(歌曲在Case1-4.mp3中)。 注意:Flash中音乐文件不能超过4M,因此显屏中只有Music Num:1-4号有歌曲,5-9号歌曲还是上一首歌。如果想要增加歌曲,则使用第一种方法即音乐存入MicroSD卡 打开后点击返回“更新下载”,点击“更新”,点击更新,更新时间较长,请耐心等待 当现显示“校验成功”后,拷贝音乐就成功了。 注意:校验成功后直接关闭窗口,不要再点击更新,否则又要重新更新
将Audio&Shield模块通过USB数据线连接到电脑,此时会识别出一个CD驱动一个可移动磁盘。双击可移动磁盘 点击鼠标右键新建文件夹,命名为01(如需要多个可继续命名为02,03以此类推) 之后将音乐存储进文件夹01中即可 组装如图,请点击查看大图并对应步骤进行拼装
至此音乐盒拼装完成 注意事项1. 如果发生:只能增加音量不能减少音量,只能增加歌曲号不能减少歌曲号,或反之。 原因:uiStep()中阈值设定不合理。
在uiSetup中更改阈值设定 操作说明上电之后是默认在第一首歌的位置暂停,之后垂直方向按下拨轮开始播放第一首。 长按拨轮更改播放模式,如循环播放,单曲暂停等。 左右方向长按拨轮为改变音量。 程序说明主程序部分 int vol=uiStep(); //检测输入动作
// Serial.print("vol:");
// Serial.println(vol);
if(vol==1) key=true;
else key=false;
if(!key && key_cache) //按下松开后
{
key_cache=key; //缓存作判断用
music_status=!music_status; //播放或暂停
if(music_status == true) //播放
{
Serial.println("play");
// audio_choose(1);
audio_play();
}
else //暂停
{
Serial.println("pause");
audio_pause();
}
}
else
{
key_cache=key; //缓存作判断用
}
if(vol==0)
{
// Serial.println("no");
music_vol_time_cache=millis();
music_vol_time=music_vol_time_cache;
music_vol_sta=false;
}
else if(vol==2)
{
music_vol_time=millis()-music_vol_time_cache;
// if(music_vol_time>200)
delay(500);
if(uiStep()==0 && !music_vol_sta)
{
Serial.println("next");
music_num++; //歌曲序号加
if(music_num>music_num_MAX) //限制歌曲序号范围
{
music_num=1;
}
audio_choose(music_num);
audio_play();
// delay(500);
music_status=true;
eeprom_WRITE();
}
else if(music_vol_time>1500)
{
music_vol_sta=true;
music_vol++;
if(music_vol>30) music_vol=30;
audio_vol(music_vol);
Serial.println("++");
delay(100);
eeprom_WRITE();
}
}
else if(vol==3)
{
music_vol_time=millis()-music_vol_time_cache;
// if(music_vol_time>200)
delay(500);
if(uiStep()==0 && !music_vol_sta)
{
Serial.println("perv");
music_num--; //歌曲序号加
if(music_num<1) //限制歌曲序号范围
{
music_num=music_num_MAX;
}
audio_choose(music_num);
audio_play();
// delay(500);
music_status=true;
eeprom_WRITE();
}
else if(music_vol_time>1500)
{
music_vol_sta=true;
music_vol--;
if(music_vol<1) music_vol=1;
audio_vol(music_vol);
Serial.println("--");
delay(100);
eeprom_WRITE();
}
}
if(millis()-timer_draw>init_draw) //OLED显示部分
{
u8g.firstPage();
do {
draw();
}
while( u8g.nextPage() );
timer_draw=millis();
}
}
视频 |