Firefly开源社区

打印 上一主题 下一主题

Arduino单片机创客进化之路——音频篇2.2《双核应用:模拟机器人说话》

Arduino单片机创客进化之路——音频篇2.2《双核应用:模拟机器人说话》

发表于 2016-10-31 10:41:28      浏览:12181 | 回复:5        打印      只看该作者   [复制链接] 楼主
本帖最后由 暴走的阿Sai 于 2016-10-31 10:41 编辑

在上一个教程我们通过Audio.playFile这个函数简单的进行音频解码。这个函数的实际上是去调用了另外一个CPU核去解码,另外一个CPU还在空闲,所以我们可以这个教程就结合,做一个简单的实验在音频解码的同时控制LED,模拟机器人说话时眼睛亮灯的场景


准备材料:
器件数量
Fireduino开发平台1块  
SD卡1块  
小音箱1个
LED1个
220欧姆电阻1个
杜邦线若干


连线图:



音频文件:
音频文件.rar (8.43 MB, 下载次数: 69)


实现效果:
1,机器人播放语音时LED常亮
2,机器人播放音乐时眼睛闪烁

代码:
  1. /*
  2. 作者:暴走的阿Sai
  3. 时间:2016年9月28日
  4. 发表地址:[url]www.t-firefly.com[/url]
  5. 程序说明:
  6. 播放SD卡上的音频文件
  7. */
  8. #include "TF.h" //添加调用TF卡相关函数的头文件
  9. #include "Audio.h" //添加调用音频相关函数的头文件

  10. void setup() {
  11.   SD.begin(); //初始化SD卡
  12.   Audio.begin(AUDIO_SD);//使用SD卡上的音乐文件播放
  13.   pinMode(8,OUTPUT);
  14. }
  15. void led_on()
  16. {
  17.   digitalWrite(8,HIGH);
  18.   }

  19. void led_off()
  20. {
  21.   digitalWrite(8,LOW);
  22.   }  

  23. void led_flash()
  24. {
  25.       digitalWrite(8,HIGH);
  26.       delay(200);
  27.       digitalWrite(8,LOW);
  28.       delay(200);   
  29.   }  
  30. void loop() {
  31.     Audio.playFile("\\Hello.wav");// 播放SD卡根目录的Hello.wav
  32.     while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
  33.     {led_on();}
  34.     led_off();
  35.     delay(1000);
  36.    
  37.     Audio.playFile("\\Speak.wav");// 播放SD卡根目录的Speak.wav
  38.     while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
  39.     {led_on();}
  40.     led_off();
  41.     delay(1000);
  42.             
  43.             
  44.     Audio.playFile("\\Music.mp3");// 播放SD卡根目录的Music.mp3
  45.     while(Audio.getStatus() != AudioStop)//等待音频播放完成,单独使用一个核,不影响其他操作
  46.     {led_flash();}
  47.     led_off();
  48.     delay(500);
  49.               
  50. }
复制代码

如图用面包板实验



可以制作一个机器人头部,安装LED进去:



把LED安装到机器的头部,效果如视频:


Fireduino开发板购买地址

———————————————————————————
【教程传送】Arduino单片机创客进化之路教程汇总贴
【Fireduino QQ交流群】:450340779

———————————————————————————
   Firefly微信公众号          阿Sai微博
———————————————————————————
Firefly官网:http://www.t-firefly.com
Firefly开源社区:http://developer.t-firefly.com





暴走的创客!
回复

使用道具 举报

6

积分

0

威望

0

贡献

游客

积分
6
发表于 2016-10-31 14:35:48        只看该作者  沙发
支持一个
回复

使用道具 举报

29

积分

0

威望

0

贡献

游客

积分
29
发表于 2016-10-31 17:04:23        只看该作者  板凳
比自己用arm7+vs1053方便多了!支持下!
回复

使用道具 举报

100

积分

0

威望

0

贡献

技术小白

积分
100
发表于 2016-11-22 10:50:06        只看该作者  地板
双核使用只有这个例程吗?我看都封装到库里面了,如果想用多线程怎么使用?
回复

使用道具 举报

6

积分

0

威望

0

贡献

游客

积分
6
发表于 2016-11-23 08:56:39        只看该作者  5#
支持
回复

使用道具 举报

53

积分

0

威望

0

贡献

游客

积分
53
发表于 2017-3-9 13:52:54        只看该作者  6#
小牛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表