查看: 2891|回复: 2

【CurieNano教程4】播放Intel 广告音乐 “灯!等灯等灯!”

[复制链接]
  • TA的每日心情
    开心
    2017-5-15 14:59
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2017-5-10 23:24:30 | 显示全部楼层 |阅读模式
    分享到:
    概述:

    I2S总线是一种音频传输总线。Curie的库中包含I2S库,却没有提供播放音频的例程。这里我提供一个CurieNano循环播放 Intel 的广告音乐“灯 等灯等灯”的例程。



    目的:
            提供一个使用Arduino 101播放音乐的例程。




    元件:
    CurieNanoI2S2.jpg

    图:需要的所有元件

    1、CurieNano
    2、I2S解码板,淘宝链接:
    item.taobao.com/item.htm?id=537469228933这是一个给树莓派2用的高音质音频解码板,但树莓派3用不了,有树莓派2的同学可以考虑买一个,顺便尝试用Arduino101播放音频。
    3、3.5mm口耳机
    4、 5根母母杜邦线
    5、 Micro USB线(常见的一种手机充电线,用于为CurieNano上传程序)






    电路:
    CurieNanoI2S.jpg

    图:接线图

    接线方法如下表:
    I2S解码板CurieNano
    VCC5V
    GNDGND
    BICK2号引脚
    LRCK4号引脚
    DATA7号引脚

    另外注意:
    • 在I2S解码板上将GND与MCLK用跳线帽短接
    • I2S解码板上有两个拨动开关,分别拨动到Normal lantency和I2S即可
    • 将耳机插在I2S解码板上





    代码:


    该例程循环播放Intel的广告音乐“灯 等灯等灯”,虽然音质不怎么样。

    音频数据是存储在data数组中的,我获取音频数据的方法是,用Python的wave库读取音频文件,打印结果后粘贴到Arduino IDE中。
    1. // 要运行此程序,必须升级Arduino101的2.x版本
    2. #include <CurieI2SDMA.h>

    3. // 注:data数组存储音频数据,因为太长,此处贴不下,完整代码请下载附件
    4. const uint32_t data[] = {10582250,10540250,10250450, ...... };

    5. void setup() {
    6.   CurieI2SDMA.iniTX();
    7.   CurieI2SDMA.beginTX(6000, 32,1, 1);
    8. }

    9. void loop() {
    10.   CurieI2SDMA.transTX((void*)data,sizeof(data),sizeof(uint32_t));
    11.   delay(1000);
    12. }
    复制代码
    完整代码下载:
    游客,如果您要查看本帖隐藏内容请回复


    科普:什么是DMA?

    DMA是“直接存储器存取”的简称,指的是大量数据在IO与存储器间存取时,可以不经过CPU转手的技术,这极大地解放了CPU。举个例子,你用电脑把一个电影从U盘拷到硬盘时,打开任务管理器看看,你的CPU是空闲的,这就是DMA的优点。

    该程序使用 CurieI2SDMA 库,只需在存储器里准备好数据,再告诉I2S的DMA控制器数据在哪个地址,以及数据长度多少,然后命令 DMA开始即可。DMA控制器会自动地把所有数据按顺序输出到I2S总线。



    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-5-12 11:09:19 | 显示全部楼层
    你的作品和你的昵称好和谐
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|电路城

    GMT+8, 2021-4-14 21:06 , Processed in 0.074106 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.