• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 政法军事 > 正文

    带蓝牙控制的SD卡音乐播放器

    时间:2020-09-14 07:54:25 来源:达达文档网 本文已影响 达达文档网手机站


    打开文本图片集

    摘要:使用单片机技术和SD卡存储和读取技术设计一种简易音乐播放器。利用蓝牙通信技术将无线信号转化为串口可识别的TTL电平,与自制单片机SD卡读取音乐播放器电路实现半双工通信。通过带蓝牙模块的安卓智能手机与STC12C5A60S2单片机主控板的蓝牙模块进行配对连接,建立无线通信链路。使用自制的安卓应用程序进行控制指令发送,控制音乐播放器工作。

    关键词:单片机 SD卡 蓝牙 音乐播放

    中图分类号:TN312.8 文献标识码:A 文章编号:1007-9416(2015)01-0000-00

    Abstract:For single-chip computer technology and the SD card to store and read the technical design of a music player. Using Bluetooth technology in the wireless signals into serial TTL level can be identified, and self-made STC12C5A60S2 single-chip SD card read music player circuit realization of half duplex communication. Pairing connected via Bluetooth module with Bluetooth module of the intelligent mobile phone and the MCU main control board, establishing a wireless communication link. The use of homemade Android application for sending control commands to control the music player, work.

    Key words:Single chip microcomputer; SD card; Bluetooth; music player

    随着电子产业的快速发展,人们对消费类电子产品的需求越来越高,便携式的音乐播放器越来越受大众的青睐。但是目前市场上的音乐播放器一般都是自带控制按键类型的。这一类音乐播放器有一种问题,那就是按键使用久了容易出现按键失灵的问题,从而影响了音乐播放器的使用,乃至使得用户放弃使用音乐播放器。随着智能控制时代的来临,好玩的灵感以及实用的功能是大众追求的目标。

    本文是设计制作一个简单、精致的音乐播放器,利用文件存储技术,将音乐文件存储在MicroSD卡当中,MicroSD卡的格式为FAT32。采用价格低廉的单片机STC12C5A60S2实现对SD卡内部的音乐文件进行读取,音乐文件的歌名信息读取后显示在NOKIA5110液晶上,在电路板上设计三个控制按键,用于调试控制音乐的播放/暂停、上一曲和下一曲。在音乐播放状态下,单片机将读取的音乐音频信号转化为DA信号输出,信号经过电路中的功率放大模块后播放歌曲。同时,利用手机安卓应用界面连接单片机控制板上的蓝牙模块,当蓝牙配对成功后,即可使用手机安卓应用程序上的三个控制按钮实现对音乐播放器的播放/暂停、上一曲和下一曲的操作控制。整个系统方便实用、经济实惠、性价比高,可以免除传统按键永久失灵的问题,能够让用户持久使用并且音质较好。

    1系统硬件组成

    本文采用STC12C5A60S2单片机作为系统的主控MCU;显示部分采用NOKIA5110液晶显示器,方便显示多种数据和符号,解决数码管只能显示数字的弊端;音乐数据存储介质采用MicroSD卡,能够直接方便的从电脑拷贝需要播放的音乐文件,可替换性强;音频输出采用自行搭建的DA网络电路,控制音频信号的输出;功放部分采用TDA2822功放电路,实现音乐的播放以及声音大小的调整等;无线通信部分采用HC-06蓝牙模块,实现单片机控制板与手机安卓应用程序的通信。

    1.1 STC12C5A60S2单片机

    STC12C5A60S2是宏晶公司自主开发的单时钟单片机,具有高速、低功耗、超强抗干扰等特点。比传统的8051单片机速度快8-12倍且指令完全兼容。该单片机内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,能够应用在电机控制等多重干扰的场合,对干扰信号具有强抑制性。

    1.2 NOKIA5110液晶显示器

    NOKIA5110液晶是诺基亚公司生产的可用于其5110、6150,6100等系列移动电话的液晶显示模块。该液晶显示器是一种具有84x48的点阵的LCD,支持多种串行通信协议,具有 4Mbps的数据写入传输速率。采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式[1]。

    1.3 Micro SD卡

    Micro SD卡是把有序和随机的存取能力高度结合的闪存卡. 这些Micro SD卡是完全兼容一些新的消费标准的.在Micro SD卡的系统描述中会有Micro SD卡系统标准的定义.耗电量低,宽电压范围支持移动,电池电源.可用于音频播放器,掌上电脑,电子书,电子百科全书,电子词典。用于非常有效的数据压缩方案.比如:MPEG格式, Micro SD卡将为多媒体数据的传输提供足够的容量[2]。

    1.4 TDA2822芯片

    TDA2822是一款宽电压供电的功放芯片。对于小型应用场合非常适宜,提供单音道和双路立体声两种工作模式可供用户选择[3]。

    1.5 蓝牙模块

    蓝牙(Bluetooth)通信的技术标准是实现最高数据传输速度1Mb/s的短距离(10米以内)传输,用户可利用2.4GHz的ISM频带来实现无线电信号的收发。蓝牙模块体积小、携带方便、容易集成到现有电路环境中。本文采用的HC-06蓝牙模块具有成本低、体积小、收发灵敏度高等优点,采用了BlueCore4-Ext芯片,遵循了蓝牙V2.0+EDR蓝牙规范。在空旷的情况下,传输距离最高可达10米。配对后可当全双工串口使用,仅支持8位数据位、1位停止位、无奇偶校验位的通信格式,且无需了解任何的蓝牙协议即可使用,使用起来简单、方便。可与各种带蓝牙的电脑、蓝牙主机模块、大部分带蓝牙的手机、PDA、PSP等智能终端配对,但从机之间不能实现配对。使用时只需把RXD、TXD与单片机的TXD、RXD脚相连,再接上电源、地即可。

    2系统硬件电路设计

    图1 系统硬件总体设计方框图

    如图1所示,本设计由安卓手机应用控制端,蓝牙模块、按键模块、电源模块、STC12C5A60S2单片机模块、NOKIA5110液晶模块、DA网络和TDA2822功放模块组成。首先由单片机对Micro SD卡模块里的音乐文件进行读取,然后做相应的处理后输送至单片机p0口的DA网络进行数模转换,得到的音频信号经过TDA2822功放模块放大后经扬声器播放音乐信号。按键模块上的三个按键可以对音乐信号进行播放/暂停、上一曲和下一曲的操作控制。相关的音乐播放文件名和音乐频谱实时显示在NOKIA5110液晶上面。同时可以使用手机安卓应用程序代替按键对音乐的播放进行控制。

    2.1 Micro SD卡模块电路设计

    Micro SD卡与单片机的电路如图2所示。其中cs接单片机p1.4口,MOSI接单片机p1.5口,4脚接3.3v电源,clk接单片机p1.7口,MOSO接单片机p1.6口。

    图2 Micro SD卡模块接口电路图

    2.2 STC12C5A60S2单片机外围电路设计

    本设计的控制核心是STC12C5A60S2单片机,如图3所示,该图包括单片机复位电路,晶体振荡回路2个基本的外围电路,单片机采用标准5V电压供电;单片机P2口连接NOKIA5110液晶,用来显示读取到的SD卡音乐文件信息和音乐频谱数据。

    图3 STC12C5A60S2单片机最小系统图

    2.3 液晶显示电路设计

    本文用NOKIA5110液晶显示屏作为相关信息的显示设备。主要用来显示读取到的SD卡音乐文件信息和音乐频谱数据。液晶与单片机的连接如图3所示,单片机的p2.3,p2.4,p2.5,p2.6,p2.7,接液晶的1到5脚。

    2.4 DA网络电路设计

    采用100k和51k高精度电阻组成DA网络,与单片机的p0口连接,用于接收音频数字信号并将其转化为模拟信号输出给功放电路。

    2.5 蓝牙模块电路设计

    蓝牙模块的功能是将无线信号转换为单片机可识别的TTL电平信号,与单片机的通信方式为串口通信。蓝牙模块与单片机接口很简单,蓝牙模块总共四个引脚,引脚排列顺序为VCC、GND、TX、RX。蓝牙与单片机通信通过蓝牙TX与单片机RX和蓝牙RX与单片机TX各分别相连接。波特率设置为9600,实现串口通信。

    3系统软件部分设计

    系统软件的设计可以分为三个部分:数值预设部分、音乐信息采集与处理部分、信息显示与蓝牙控制部分。系统软件设计流程图如图4所示这三个部分相辅相成,在程序调试运行的时候,能最快的找出错误的所在,并进行改正。

    图4 系统软件设计流程图

    3.1 数值预设部分

    首先定义了P3.5,P3.6, P3.7等3个子接口作为键盘的按键信号输入端,定义整型i和浮点f等2个公用体;对液晶显示器进行清屏操作,然后定义2段中文字符“音乐播放器”和“作者:钟伟雄”以及1段作者单位的图片转码,显示欢迎信息,延时0.5s后进入设置状态;通过P3.5可以对音乐文件信息进行播放/暂停操作P3.6, P3.7可以对音乐进行上一曲和下一曲的播放操作,如图5所示:

    图5 液晶显示欢迎信息状态图

    3.2 音乐信息采集与处理部分

    该部分采用子程序形式完成,主程序通过调用方式实现信息的采集与处理。在该部分,定义Delay1us (void),LCD_5110(void),SD_MMC(void),FAT32(void)等4个子函数,通过FAT32(void)建立识别SD卡文件信息的FAT32文件系统,提供对SD卡文件根目录的搜索与读取准备;通过SD_MMC(void)对SD卡提供驱动程序,实现单片机SD卡文件的读取工作;通过LCD_5110(void)对从SD卡采集到的音乐文件信息进行显示;在单片机读取音乐文件信息后,将数据输出到单片机的P0口,让DA网络对音乐数据进行DA转换,形成波形文件输出。

    3.3 信息显示与蓝牙控制部分

    如图6所示,在该部分,液晶显示曲目,歌曲名称和演唱者;同时在液晶的下方显示音乐播放的频谱以及播放的时间,频谱采用快速傅里叶FFT算法,实现歌曲输出音频与液晶状态频谱的完美结合。如图7所示,带蓝牙通信组件的安卓手机通过自主开发安卓应用程序界面可以对音乐播放器实行控制。首先点击手机屏幕最下方的连接按钮,当系统电路板上的HC-06蓝牙模块上的配对指示灯由不断闪烁状态转变为常亮状态的时候,表示系统与手机端已经建立无线通信链路,此时,可以使用手机端对音乐播放器进行指令控制了。当用户按下手机端的播放/暂停按钮的时候,播放器就开始播放SD卡内部的第一首歌曲并在液晶屏幕显歌曲相关信息,当用户按下手机端的下一曲按钮的时候,音乐播放器立即响应指令,切换到下一曲并播放,同时液晶显示歌曲播放相应的信息,当用户按下手机端的上一曲按钮的时候,音乐播放器立即切换回到上次播放的歌曲并播放,同时液晶显示歌曲播放相应的信息。

    图6 液晶播放状态图 图7 安卓手机控制界面图

    3.4 安卓应用程序连接控制分析

    (1)在Android应用程序中,如果需要与蓝牙设备进行通信,在应用程序的配置文件Android Mainfest.xml中必须声明权限:

    //请求蓝牙设备允许被搜索。

    //允许程序连接到已经配对的蓝牙设备。

    (2)蓝牙搜索和配对程序。

    //MY_UUID是专属于应用的识别码

    private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

    private static String address = "20:13:06:21:12:92"; //蓝牙模块的唯一地址

    final BroadcastReceiver r = new BroadcastReceiver() { //实例化函数—广播接收者

    public void onReceive(Context context, Intent intent) { //移除接收器的注册

    String action = intent.getAction(); //将接收端的数据赋值给定义的变量

    if (BluetoothDevice.ACTION_FOUND.equals(action)) { //当搜寻到装置时

    device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);//取得蓝牙装置物件

    //判断那个装置是否是你要连接的那个装置,根据蓝牙名称判断

    if (device.getName().equals("HC-06")){

    try { //抛出异常

    btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);//连接到该装置

    OpenFlag = 1; //已连接到装置,见标志位置1

    } catch (IOException e) { //处理异常

    OpenFlag = 0; //未连接到装置

    handler.sendEmptyMessage(0);//发送一个0交给handler处理

    }

    try { //抛出异常

    btSocket.connect(); //连接

    handler.sendEmptyMessage(1); //发送一个1交给handler处理

    } catch (IOException e) { //处理异常

    handler.sendEmptyMessage(2); //发送一个2交给handler处理

    try { //抛出异常

    btSocket.close(); //断开

    } catch (IOException e1) { //处理异常

    handler.sendEmptyMessage(3); //发送一个3交给handler处理

    }

    }

    }

    }

    }

    };

    protected void onCreate(Bundle savedInstanceState) { 定义创建函数

    super.onCreate(savedInstanceState); //调用创建函数

    ……略

    } catch (IOException e1) { //处理异常

    handler.sendEmptyMessage(3); }//发送一个3交给handler处理

    }

    }

    }

    4 结语

    从系统设计本身来说,功能相对比较简单。不过,其硬件成本相对低廉,对于一些不想去花大钱买音响系统的用户来说,只要将歌曲拷贝到本系统的Micro SD卡上,再花几十元买个音质好点的喇叭,完全可以享受到远程遥控音乐播放的乐趣。而且经过笔者自己在家里安装实验,音质的效果是非常不错的,足以和市面上大几百的音响系统想媲美,而且功耗极低,一个6000mah的锂电池可以让该播放器播放音乐2000小时。同时又可以不用接触系统,实现系统的手机无线遥控,系统整个控制过程非常流畅,也不存在按钮失灵现象,真正做到播放器功能的延伸。

    另外,本音乐播放器还可以进一步改良扩展,可以将WIFI信号控制引入,利用电脑对音乐播放器进行控制。

    参考文献

    [1]陈军统,潘再平,杨舒捷.基于9S12XS128单片机煤气报警器设计[J].制造业自动化,2012.34(3):

    132-135.

    [2]田媛.语音控制播放系统的研究与设计[J].包头职业技术学院学报,2013,14(3):15-17.

    [3]郑海平.立井提升条件下煤矿用运管车的研发与应用[J].电子世界,2014(2):97.

    [4]薛小铃,刘志群.单片机接口模块应用与开发详例[M].北京:北京航空航天大学出版社,2010.

    [5]Jasmine Blancehette,Mark Summerfield.C++ GUI QT4 programming(The second Edition) [M].2004:36-68.

    [6]郭天祥.单片机C语言教程[M].电子工业出版社,2009.

    [7]於少峰,严菊明,胡晨.基于AC97标准的嵌入式音频系统设计与实现[J].电子器件,2004(04).

    收稿日期:2014-12-14

    作者简介:钟伟雄(1983—),男,畲族,福建诏安人,硕士,实验师,研究方向:电子技术。

    相关热词搜索: 蓝牙 播放器 控制 音乐 SD

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网