1. 引言
信息是现代化社会的重要组成部分,而娱乐也同样渗透着人类生活的方方面面,电子信息产品更是把娱乐推向了新的高度。无弦激光音乐琴就是一种现代化的电子信息产品,通过对电路进行光控,利用光学控制原理制作而成。演奏者只需用手遮住一束光,无弦激光音乐琴就会发出声音,相当于拨动一根琴弦。经过不停地对光控制,可以“演奏”出不同的音阶和乐曲。在日常生活中,激光琴并没有和手进行直接接触,所以不用担心破坏琴键,也不用担心染上细菌 [1] 。是一种理想的集观赏与娱乐为一体的琴,也可作为辅助教学仪器或者儿童玩具,提升学习者的兴趣,具有十分重要的商业价值。作为一种新的乐器品种,使传统乐器在音响、演奏方式和现场效果方面产生耳目一新的效果。譬如由美国的Dan Millicent和Tim Walsh开发出来的激光竖琴 [2] ,以五颜六色的激光束替代传统的竖琴弦,只要演奏者轻触光束,便发出悦耳的竖琴的音响。演出时,舞台的灯光与竖琴“光弦”发出的激光交相辉映 [3] ,让观众仿佛置身于梦幻般的音乐空间。目前激光琴的主要研发和应用都集中在美国和西欧国家。在威斯康星大学麦迪逊工程博览会上首次以激光吉他的雏形露面,立即引起美国一些大型公司,如通用电器公司和通用汽车公司的关注 [4] ,商业市场潜力巨大。但激光吉他和弦的演奏问题和音响的强弱控制问题还未解决。“触发类”激光琴目前还仅限于“实验样品”阶段。
本文设计了一种基于STC89C52单片机的无弦激光音乐琴,可实现日常生活中音乐琴的演奏,具有自动检测功能,反应速度灵敏,成本低。
2. 系统设计
无弦激光音乐琴由多路激光模块、激光传感器模块、控制器模块以及音乐响应模块四个模块组成。总体设计方案如图1所示。
图1中,多路激光模块采用7个功率约5 mW的半导体激光器,每个激光器产生的光束分别代表音乐上最基本的音符。激光传感器模块采用7个型号为5528的光敏电阻,当激光的光线被遮挡时,光敏电阻因光感应效应产生相应的阻值变化,进而将光强的变化信息传导给控制器进行分析。控制器模块采用STC89C52单片机 [5] ,单片机根据激光传感器发送的信息,经过一系列的信息处理和数据计算,发送指令到音乐芯片模块。音乐响应模块采用一款常用的音频功放芯片LM386作为驱动核心部件,处理信息后结合功放模块和蜂鸣器实现音符的输出。
为了使系统能对激光遮挡信号作出灵敏的反应,设计了系统电路图,如图2所示。
Figure 1. Schematic design of string-less laser music piano
图1. 无弦激光音乐琴设计示意图
Figure 2. Circuit diagramof string-less laser music piano
图2. 无弦激光音乐琴电路图
图2中,p 1.0~1.6口为7个半导体激光器供电,时钟电路为整个系统产生时钟脉冲,7个5528光敏电阻作为激光传感器模块分别接到控制器的p 2.2~2.8口 [6] ,光敏电阻基于内光电效应,光照愈强,光生电子-空穴对就越多,阻值就越低,而在无光照状态时,呈高阻状态 [7] 。当激光直接照射时,电阻处于低阻值状态,将低电平0发送至单片机;当遮挡激光时,电阻值迅速升高,将高电平1发送至单片机。实现了控制器对各个光敏电阻电平信号的灵敏读取,并在内部进行运算,作出相应的指令。
无弦激光音乐琴主程序主要是对系统进行初始化,调用数据处理子程序。程序框图设计如图3所示。
图3中,先选择是否播放已存储好的音乐,完毕后,根据个人的选择执行高/中/低音三个音阶,并有相应指示灯亮起,根据激光传感器模块反馈的信息判断是否七束激光中有激光被遮挡,若p 2.2 = 1,则第一束激光被遮挡,系统进行判断,并进行计算,驱动音乐芯片发出“Do”的声音,以此类推,可发出Re、Mi、Fa、So、La、Si音调 [8] 。
在程序设计中,并非直接操作端口或寄存器,而是设置标志位,根据标志位再由单片机执行判定操作。程序示例如下。
bit FT_1 ms, FT_250 ms
bit F_play song, F_Play Tone, F_KeyDelay, F_Tone, F_keyUp, F_Music_Ide
Unsigned char Freq_H, Freq_L, SongLen, PlayIde, i
Figure 3. Program flowchartof string-less laser music piano
图3. 无弦激光音乐琴程序框图
3. 实验及结果分析
无弦激光音乐琴性能好坏的重要影响因素是音符频率,因此,对无弦激光音乐琴的音符频率进行相应实验是非常必要的。采用设计的无弦激光音乐琴在学校实验室进行音符频率实验,实验室环境相对安静,无外界环境干扰,控制无弦激光音乐琴发出21个不同音符,利用泰克TDS2012C型数字存储示波器对3个音阶7种音调共计21个不同的音符的频率进行测量,将各个音符频率测量值与音符频率理论计算值进行对比,观察实际测量值是否与理论计算值相吻合,由此判断无弦激光音乐琴的发声效果。列出Do的低、中、高三个音阶波形图分别如图4、图5、图6所示。
Figure 4. frequency diagram of bass Do
图4. 低音Do时频率图
Figure 5. Frequency diagram for alto Do
图5. 中音Do时频率图
Figure 6. Frequency diagram of treble Do
图6. 高音Do时频率图
无弦激光音乐琴的音符频率应在人耳能听到的声音频率范围内,即20 Hz~20 kHz。通过STC80C52自带的16位定时器实现不同音符的固定频率。一般音乐电路是以正弦波信号驱动喇叭以产生音乐,而在数位电路里则是以脉冲信号驱动 [9] 。例如标准音la的频率f = 440 Hz,对应的周期为T = 1/f = 1/440 = 2272 μs,单片机上对应蜂鸣器的I/O口来回取反时间应为t = T/2 = 1136 μs,也就是单片机上定时器应有的中断触发时间。一般情况下,奏乐时,单片机定时器为工作方式1,以晶振的十二分频信号为计数脉冲,晶振频率为f0 = 12 MHz,则定时器的预置初值由下式来确定:
式中TALL = 216 = 65536,THL为定时器待确定的计数初值。则定时器在工作方式1下的高低计数器的预置初值为
根据以上的求解方法,可以求出其他音调相应的计数器预置数值。
图4中,在实际发出低音Do时,测得频率为266.662 Hz,而理论计算低音Do的频率为262 Hz,相差4.662 Hz。图5中,在实际发出中音Do时,测得频率为530.098 Hz,约为低音Do的2倍,符合音符变化规律,而理论计算低音Do的频率为523 Hz,与实际测量值相差7.098 Hz。图6中,在实际发出高音Do时,测得频率为1047.94 Hz,约为中音Do的2倍,符合音符变化规律,而理论计算低音Do的频率为1046 Hz,与实际测量值相差1.94 Hz。
对3个音阶,7个音调的实际测量频率值如表1所示。
Table 1. Comparison of measured data of c-key scale and frequency
表1. C调音阶–频率实测数据对照
表1是用示波器对无弦激光音乐琴各个音调的频率测量值,由表1分析可知,无弦激光音乐琴各个音调对应的实测频率数据与理论计算所得数据基本相符,同一音阶下,从音调Do到音调Si频率值不断增加;同一音调下,中音频率为低音频率值的2倍,高音频率值为中音频率值的2倍,与理论计算规律相符。由于导线电阻、焊接焊锡的多少会导致电路中的电阻不同,而且蜂鸣器的线圈电阻为16 ± 2 Ω,也会造成误差,所以,实测频率值与理论计算频率值有所偏差,差值最大的音调为中音Do,与理论计算值523 Hz相差了7.098 Hz,但对音效影响不大。
将实验中对21个不同音符的实际测量频率值与理论计算频率值做对比之后发现实际测量频率值基本吻合,频率相差最大的音符为中音Do,最大值为7.098 Hz,选出中音的7个音调对比结果如图7所示。
Figure 7. Comparison diagram of actual measured frequency and theoretical calculated frequency
图7. 实际测量频率值与理论计算频率值对比图
图7中,横坐标1~7分别表示中音Do、Re、Mi、Fa、So、La、Si,纵坐标表示音符频率值,曲线B是实测音符频率曲线,曲线C1是理论计算音符频率曲线。由图可以看出两条曲线基本吻合,在中音Do处差别最大。
综上实验,在不同的音符下,无弦激光音乐琴的实测音符频率与理论计算音符频率数值基本相符合,实测频率值与理论计算频率值最大相差7.098 Hz,可以实现正常音乐演奏。
4. 结论
本文从硬件电路和软件编程两个方面设计了基于STC89C52单片机的无弦激光音乐琴。由多路激光模块发出激光,激光传感器模块对激光信号进行检测后将电平信号传输给单片机,单片机作为控制器模块对信号进行分析处理后调动音乐响应模块进行相应音频输出。电路设计实现了从信号探测到相应音频输出功能。通过对多路激光模块和音乐响应模块的实时控制提高了系统的稳定性和功能性,采用STC89C52单片机实现了对信号快速精确的分析和处理。完成了无弦激光音乐琴系统的研制,尺寸为长10 cm × 宽5 cm × 高11 cm。经过实验测试,可实现3个音阶,7个音调的发声,音色清晰,实测音调频率与理论计算音调频率偏差不大于7.098 Hz,系统稳定,音乐响应状况良好,具有较大的应用推广价值。
致谢
感谢大学生创新创业训练计划项目(1070214114)的资金支持。