一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 2189|回复: 1

[其他DIY] Arduino_N9200B音乐频谱(机智云)

[复制链接]
发表于 2018-1-16 21:06 | 显示全部楼层 |阅读模式
本帖最后由 g54188 于 2018-1-20 19:23 编辑

一、 项目简介
本制作是踩在别人的肩膀上走过来的,音乐控制代码主要是采用清风duino基于arduino Pro Mimi_语音播放彩灯系统(http://club.gizwits.com/thread-8024-1-1.html基础上修改过来的,现在把不成熟的制作过程分享给大家,希望对需要的朋友有所帮助。

通过ardiuno单片机,语音模块(实际就是一个可以用单片机编程控制的MP3模块),RGBLED(WS2812b)彩条,机智云平台,用机智云DEMO手机APP作为控制界面,机智云APP充当了一个远程遥控器控制N9200B的播放,快进,后退等,然后通过N9200B的声音输出控制彩条WS2812B随音乐的变化而变化发出不同的彩色光达到音乐频谱的效果,无音乐时彩灯会随机变化色彩。

N9200B可以单独作为一个MP3用,接外接键盘控制,也可以配合MCU做其他之用,也可以不需要N9200B用其他的声音源来做一个简单的音乐频谱显示,本制作只是一种尝试还可以加上LCD显示播放状况,曲目多少等等,希望大家有更好的方案或者更好的改进,可与大家共同学习研究。
视频
http://v.youku.com/v_show/id_XMzMyNDA5OTgyNA==.html?spm=a2h3j.8428770.3416059.1
二、所用材料




  • 1ARDUINO_MIMI(也可以用其他的ARDUINO)一块
  • 2N9200B,语音(MP3)模块一块
  • 3esp82866_12F 一块(后缀F以后的都可以)
  • 4:WS2812B彩条20-30粒(多少看自已喜好了)
  • 5:小音箱一对或者8欧姆3W喇叭一个
  • 6:导线若干;5v/2-3A电源一个(本制作所需要的总电流在600MA左右)

三、开发环境




  • 1Arduino  IDE 184版本(当然从106185的都可以,我用的184版本的)
  • 2esp烧写软件ESPl_v3.6.1.0

四、制作过程
1:首先在机智云注册账号,进入后创建新的产品,加入数据点,创建好数据点后点击MCU开发,选择硬件方案: MCU,硬件平台: ArduinoUNOR3。填上你的 Product Secret然后生成程序,这里就OK了;
使用机智云的代码自动生成工具,方法请参阅bigfanofloT老师的“史上最详细的Arduinouno R3接入机智云教程”一文。

2:下载机智云官方esp8266固件
固件图.jpg
烧写ESP8266 注意新版固件烧写地址好像是01000,(未实验过,这里提醒下大家)
我用的是

多大

多大
GAgent_00ESP826_04020023_17032418_combine.bin 烧写地址是0X00000
shaox.jpg
到此基本的准备和程序就差不多了。下面是我的数据点
sj.jpg
sj1.jpg
N9200引线功能图表
n92.jpg
五、接线与N9200B控制命令

//**控制指令**//




  • 选择SD卡      0x04, 0xFB, 0x01, 0x0B, 0x0B
  • 选择U盘播放   0x04, 0xFB, 0x01,0x0A, 0x0A
  • 选择FLASH播放 0x04, 0xFB, 0x01, 0x0C, 0x0C
  • 全盘循环     0x0B, 0xF4, 0x02, 0x01, 0x00, 0x02
  • 单曲循环     0x0B, 0xF4, 0x02, 0x01, 0x01, 0x03
  • 全盘顺序     0x0B, 0xF4, 0x02, 0x01, 0x05, 0x07
  • 全盘随机     0x0B, 0xF4, 0x02, 0x01, 0x03, 0x05
  • 播放         0x04, 0xFB, 0x01, 0x01, 0x01
  • 暂停         0x04, 0xFB, 0x01, 0x02, 0x02
  • 停止         0x04, 0xFB, 0x01, 0x03, 0x03
  • 下一曲       0x04, 0xFB, 0x01, 0x05, 0x05
  • 上一曲       0x04, 0xFB, 0x01, 0x04, 0x04
  • 音量加       0x06, 0xF9, 0x01, 0x02, 0x02
  • 音量减       0x06, 0xF9, 0x01, 0x03, 0x03
  • 插播         0x04, 0xFB, 0x01, 0x01, 0x01
  • 上一目录     0x04, 0xFB, 0x01, 0x12, 0x12
  • 下一目录     0x04, 0xFB, 0x01, 0x13, 0x13
//**查询指令**//




  • 播放状态     0x04, 0xFB, 0x01, 0x00, 0x00
  • 在线设备    0x04, 0xFB, 0x01, 0x08, 0x08
  • 短文件名    0x04, 0xFB, 0x01, 0x15, 0x15
  • 循环模式    0x0B, 0xF4, 0x01, 0x00, 0x00
  • 当前曲目    0x04, 0xFB, 0x01, 0x0E, 0x0E
  • 当前设备    0x04, 0xFB, 0x01, 0x09, 0x09
  • 查询音量    0x06, 0xF9, 0x01, 0x00, 0x00
  • 查询总曲目   0x04,0xFB, 0x01, 0x0D, 0x0D
  • 目录总曲目   0x04,0xFB, 0x01, 0x18, 0x18
  • 目录首曲目   0x04,0xFB, 0x01, 0x17, 0x1
jx.jpg
其他关于程序,程序也就是东拼西都出来的这里就不具体将了,请参考清风duino基于Arduino Pro Mimi_语音播放彩灯系统
程序里有详细的注释,本人文笔有限不对的地方请见谅,谢谢大家观赏。

手机APP效果图
aa.jpg
彩灯.jpg
控制器.jpg
上面数据点的总开关没有实际用处,把它改为电源总开关
#define   LED           13 //定义控制脚
控制函数;
bool varR_Switch = 0;   //总开关
  if(myGizwits.hasBeenSet(EVENT_Switch))
  {
    myGizwits.read(EVENT_Switch,&varR_Switch);//Address for storing data
  if(varR_Switch == 1){

digitalWrite(LED, HIGH);   // sets the user LED on
  }
  else
  {
    digitalWrite(LED, LOW);    // sets the user LED off
  }
  }

完整的ARDUINO程序,程序里有详细的注释
N9200MP3_ws2812.zip (33.48 KB, 下载次数: 6, 售价: 1 人民币)
发表于 2018-1-18 08:59 | 显示全部楼层
学习学习,谢谢谢
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-1-12 13:58 , Processed in 0.037792 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表