本帖最后由 暴走的阿Sai 于 2016-10-31 10:41 编辑
在上一个教程我们通过Audio.playFile这个函数简单的进行音频解码。这个函数的实际上是去调用了另外一个CPU核去解码,另外一个CPU还在空闲,所以我们可以这个教程就结合,做一个简单的实验在音频解码的同时控制LED,模拟机器人说话时眼睛亮灯的场景
准备材料:
器件 | 数量 | Fireduino开发平台 | 1块 | SD卡 | 1块 | 小音箱 | 1个 | LED | 1个 | 220欧姆电阻 | 1个 | 杜邦线 | 若干 |
连线图:
音频文件:
音频文件.rar
(8.43 MB, 下载次数: 69)
实现效果:
1,机器人播放语音时LED常亮
2,机器人播放音乐时眼睛闪烁
代码:
- /*
- 作者:暴走的阿Sai
- 时间:2016年9月28日
- 发表地址:[url]www.t-firefly.com[/url]
- 程序说明:
- 播放SD卡上的音频文件
- */
- #include "TF.h" //添加调用TF卡相关函数的头文件
- #include "Audio.h" //添加调用音频相关函数的头文件
- void setup() {
- SD.begin(); //初始化SD卡
- Audio.begin(AUDIO_SD);//使用SD卡上的音乐文件播放
- pinMode(8,OUTPUT);
- }
- void led_on()
- {
- digitalWrite(8,HIGH);
- }
- void led_off()
- {
- digitalWrite(8,LOW);
- }
- void led_flash()
- {
- digitalWrite(8,HIGH);
- delay(200);
- digitalWrite(8,LOW);
- delay(200);
- }
- void loop() {
- Audio.playFile("\\Hello.wav");// 播放SD卡根目录的Hello.wav
- while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
- {led_on();}
- led_off();
- delay(1000);
-
- Audio.playFile("\\Speak.wav");// 播放SD卡根目录的Speak.wav
- while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
- {led_on();}
- led_off();
- delay(1000);
-
-
- Audio.playFile("\\Music.mp3");// 播放SD卡根目录的Music.mp3
- while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
- {led_flash();}
- led_off();
- delay(500);
-
- }
复制代码
如图用面包板实验
可以制作一个机器人头部,安装LED进去:
把LED安装到机器的头部,效果如视频:
Fireduino开发板购买地址
———————————————————————————
【教程传送】Arduino单片机创客进化之路教程汇总贴
【Fireduino QQ交流群】:450340779
——————————————————————————— Firefly微信公众号 阿Sai微博 ———————————————————————————
|