摘 要:设计了一种基于单片机的可以自动关闭手机音乐播放器的耳机装置。该装置以STC12LE2052单片机为主控器,以三轴数字陀螺仪L3G4200D为位置检测传感器,通过检测耳机使用者头部的运动状态,由主控器判断人是否进入睡眠状态,如进入睡眠状态则向手机发送信号,将音乐停止。
关键词:耳机;L3G4200D;STC12LE2052
当人戴上耳机听音乐时,某些时候,尤其是在晚上,会因为困倦进入睡眠状态,而忘记关闭手机的音乐播放器,这样不仅浪费了手机的电量,还会影响人们的睡眠质量,更加严重的是,如果使用者长时间甚至一整夜都没有关闭音乐播放器,会对其听力产生不良影响。
目前,国内外普遍采用手机播放器的睡眠定时功能来避免这一情况的出现,但是,这一方法存在一定缺陷:使用者可能会定时过短,即其还没有进入睡眠状态音乐播放器就关闭了;也可能会定时过长,即其已经进入睡眠状态很久音乐播放器才关闭。
针对这一问题,本文设计了一种基于单片机的智能耳机,它通过检测耳机使用者头部的运动状态,来判别其是否进入睡眠状态,当处理器判定其进入睡眠状态后,会发送关闭手机音乐播放器的命令,将其关闭,这样较好地解决了使用者不能准确设定定时时间的问题。
1 系统设计和工作原理
本系统以单片机STC12LE2052为主控器,以三轴数字陀螺仪L3G4200D为位置检测模块,加以耳机控制电路模块和电源模块组成。该系统的工作原理如下:按下电源供电开关,系统开始工作,利用三轴数字陀螺仪L3G4200D获取耳机使用者头部位置X、Y、Z三轴方向的角度变化信息,这些信息通过I2C总线传送到单片机STC12LE2052上,由单片机对信息进行处理。结合人的生理习惯:当耳机使用者未进入睡眠状态时,其头部会在较短的时间内运动,且运动角度变化较大;一旦耳机使用者进入或即将进入睡眠状态,其头部角度变化(正常睡眠呼吸时头部的起伏)很小,且距下一次头部较大角度移动会相隔较长时间。因此,若在一定时间内,所检测的耳机使用者头部角度变化持续小于设置的某一微小睡眠阈值时[1],则单片机认为耳机使用者已经进入了睡眠状态,此时单片机通过耳机控制电路模块向手机发送关闭信号,当手机内的耳机检测电路检测到来自耳机控制电路模块的关闭信号后,手机的音乐播放器则暂停播放。系统结构框图如图1所示。
2 硬件设计
2.1 位置检测模块
位置检测模块采用L3G4200D芯片。L3G4200D是意法半导体(ST)推出的一种采用一个感应结构检测三条正交轴向运动的低功耗三轴数字陀螺仪,可以精确地检测角速率。用户可以设定量程,量程范围从±250 dps~ ±2 000 dps[2],低量程数值适用于高精度慢速运动测量,而高量程则适用于测量超快速的运动;它体积很小,仅为4 mm×4 mm×1 mm;具有I2C/SPI数字输出口,提供一个16位数据输出;工作电压2.4 V~3.6 V;并具备省电睡眠模式。
位置检测模块电路如图2所示,L3G4200D的串行时钟(SCL)口和串行数据(SDA)口与单片机连接;CS口控制I2C/SPI模式选择(1:启用I2C模式;0:启用SPI模式),本系统中CS口通过上拉电阻接VCC,启用I2C模式;SDO口可以修改L3G4200D作为I2C从站时的地址(当SDO接VCC时,其地址为1101001b;当SDO接GND时,其地址为1101000b);PLL口外接滤波电路(C1,C2,R7的典型值分别为470 nF,10 nF,10 kΩ)。
2.2 STC12LE2052简介
STC12LE2052单片机是高速、低功耗的新一代兼容8051内核单片机。其共20个引脚,15个通用I/O口;内部集成MAX810专用复位电路;具有2路PWM/PCA(可编程计数阵列);用户可用程序空间为2 KB;片上集成256 B RAM;支持ISP(在系统可编程)/IPA(在应用可编程);工作电压2.4~3.8 V[3];具有DIP/SOP/TSSOP(超小封装6.4 mm×6.4 mm)3种封装形式[4]。
本系统以STC12LE2052单片机为主控芯片,系统主控电路如图3所示。单片机的P1.0口和P1.1口分别与L3G4200D的SDA口和SCL口相连,通过软件模拟I2C总线进行两芯片间的通信;XTAL1口和XTAL2口外接晶振电路;RST口外接复位电路;P1.2口做命令输出口,连接到耳机控制电路模块。
2.3 耳机控制电路模块
耳机控制电路模块的电路图如图3所示。在该电路中采用国际标准的3.5 mm四段式手机耳机插头,其共有四条引线,依次是:L左声道、R右声道、控制端和公共地,控制端和公共地回路间并接有按键和麦克,按键控制着手机音乐播放器的开与关和来电的接听与挂断(耳机进入音乐模式后,当手机内的耳机检测电路检测到有按键按下时,会将音乐暂停;耳机进入通话模式后,当手机内的耳机检测电路检测到有按键按下时,会将MIC通路激活打开使其正常工作)。本系统中增加了一个与按键并联的三极管开关,其发射极与控制端相连,集电极与公共地相连,基极与单片机的P1.2口相联,由单片机控制三极管开关的开启与关闭,从而达到代替人工手动控制按键的目的。
3 系统软件设计
3.1 初始化
初始化函数主要实现对L3G4200D工作模式的设置,其主要函数参考以下语句:
Single_WriteL3G4200D(CTRL_REG1,0x0f);
//普通模式,X、Y、Z启用
Single_WriteL3G4200D(CTRL_REG2,0x00);
//选择高通滤波模式和高通截止频率
Single_WriteL3G4200D(CTRL_REG3,0x08);
//DRDY/INT2数据准备
Single_WriteL3G4200D(CTRL_REG4,0x00);
//选择量程,(00:250 dps)
Single_WriteL3G4200D(CTRL_REG5,0x00);
//高通滤波使能(默认全0)
3.2 程序流程
系统程序流程图如图6所示,程序初始化后,由单片机依次读取L3G4200D所检测的X、Y、Z各轴的坐标位置,每隔0.3 s读取一次,读取10次后,计算3 s内X、Y、Z各轴的最大位移量。如果X、Y、Z各轴3 s内的最大位移量全部小于所设定的睡眠阈值,则计数值加1;如果X、Y、Z任意一轴3 s内的最大位移量大于所设定的睡眠阈值,则计数清零。当计数达80(240 s)时,认为耳机使用者已经进入睡眠状态,此时由单片机的P1.2口发送瞬时高电平,将三极管开关瞬时开启,从而向手机发送关闭音乐播放器的信号。最后,为了节约电量,单片机和L3G4200D进入睡眠状态。
本设计为使用者提供了一种通过监测人是否进入睡眠状态来决定是否自动关闭手机音乐播放器的耳机装置。该装置成本低,电路较为简单,具有较为实用的功能,但还存在一些不足:对于睡眠阈值的设定以及计数到多长时间认为人进入睡眠状态等问题,还需进一步结合医学和大量临床实验来确定;由于不同品牌,不同型号手机之间的耳机检测电路存在一些差异,可能会导致手机不能识别关闭音乐播放器的信号。
参考文献
[1] 冒晓莉,杨博,杨静秋,等.基于MSP430单片机的节能型数字调频发射机[J].电子技术应用,2013,39(5):138-140.
[2] 意法半导体公司.L3G4200D芯片手册[Z].
[3] 吕高.基于STC12LE2052AD和nRF2401模块的无线通讯设计[J].电力学报,2007,22(4):488-490.
[4] 宏晶公司.STC12LE2052AD芯片手册[Z].