基于LabVIEW的简易键盘电子琴设计

2017-08-29 11:27舒景东
山西电子技术 2017年4期
关键词:程序框图前面板电子琴

舒景东,刘 龙

(武汉大学 电气工程学院,湖北 武汉 430072)

基于LabVIEW的简易键盘电子琴设计

舒景东,刘 龙

(武汉大学 电气工程学院,湖北 武汉 430072)

本文主要论述了以LabVIEW为开发软件设计简易八音键盘电子琴的原理。播放声音的子VI使用正弦波形模块产生特定频率的波形输入到播放波形模块,最后LabVIEW通过调用电脑扬声器发出对应的声音。将用于检测“键按下”的事件结构放入While循环结构中实现循环检测,“键按下”的事件结构通过搜索一维数组实现特定按键的判别,调用播放声音的子VI实现电子琴的功能。

LabVIEW;键盘;电子琴

LabVIEW是美国NI公司开发的功能强大的数据采集处理软件,同时也是有效的通用编程系统,提供图形化的编程界面,采用的图形化程序语言称为“G”语言,类似于Simulink,将不同模块连接起来构成一个完整的程序,编程方式基于数据流,程序的执行顺序由数据流向决定[1]。LabVIEW集成了众多函数库,包括串口控制,数据采集与分析、数据存储及显示等。还提供断点和探针用于程序调试,可以单步运行程序。目前电子琴实物体积都比较大,而LabVIEW的各种声音处理模块和输入输出模块为设计电子琴提供了方便,图形化界面不仅有利于编程,还便于程序的使用,基于LabVIEW的简易电子琴具有使用和携带简便的特点。

1 电子琴原理

电子琴目前常用的音源采样方式是PCM,将乐器的声音数字化后存入存储器,用户按下按键,控制芯片控制DA电路和扬声器将对应数字信号转化成声信号[2]。老式电子琴采用振荡器和分频器实现声音的合成。振荡器可以产生一定频率的振荡信号,再经过分频器从而得到不同频率的信号,经过运放电路,最后使扬声器发出所需声音。键盘用于控制进入扬声器的振荡信号,最终实现电子琴的功能。

2 LabVIEW介绍

LabVIEW工作界面包括前面板和后面板,后面板也称程序框图面板,前面板展示控件的用户界面,程序框图面板用于程序的设计。在前面板上右键可以调出控件选择面板,控件选择面板提供数值、布尔、字符串与路径等控件。这些控件具有不同的样式可供选择,包括新式、银色、系统、经典等;控件选择面板中还有.Net与ActiveX、信号处理、附加工具包、用户控件几类可供选择。将选中的控件拖放到前面板上,部分控件在程序框图面板有对应的模块,双击前面板上的这些控件可以定位到程序框图面板中对应模块。

在后面板即函数框图面板通过菜单栏上的查看选项卡可以打开函数选板,不仅包括用于编程的普通函数控件如数组、布尔、定时、字符串等,还包括如下类别的函数:互连接口、用户库、信号处理、数学、仪器I/O、自建VI、测量I/O、数据通信、Express、附加工具包。在前面板和后面板都可以从菜单栏中的查看选项卡打开工具选板,实现设置断点、探针、编辑文本、获取颜色、连线等操作。可以选择新建空白项目或者从软件提供的模板,范例项目开始编程,还可以选择创建新VI。前面板放置控件主要用于输入数据和显示数据,后面板用于函数框图的设计,包括节点、数据端口、连线。节点的类型包括函数、子VI程序、数据等;端口指节点上用于实现数据传输的接口;连线指程序框图中用于连接不同模块,从而实现数据传输的数据连线。LabVIEW中可以根据需要将显示对象转换成控制对象,也可以将控制对象转换成显示对象。

3 简易键盘电子琴的设计

电子琴发出的不同的声音是由不同频率波形经过放大电路再经扬声器后产生的,一定频率的声音对应特定的音调。音调越高代表声音信号的频率越高。不同曲调的第一个音阶具有不同的频率。本文使用的八度音阶与频率的对应关系如表1所示[3]。

表1 八音阶对应频率

为了便于LabVIEW程序的调试和维护,将简易电子琴播放声音的功能封装成一个子VI。首先进入程序框图面板,打开函数选板,选择播放波形,正弦波形,数值常量,簇常量放入框图面板,再从控件选板中选出数值输入控件放入前面板,回到程序框图面板,将上述控件如图1连接。然后在前面板指定连接到正弦波形控件的数值输入控件为子VI的输入端口,还可重新绘制子VI的图标,然后保存为VI,在被其他VI调用时,其作为子VI运行。

图1 播放某一频率的VI

新建一个VI文件,作为主程序,添加事件结构,再增加事件分支1,事件源为本VI,事件为“键按下”,分支0默认为超时。切换到分支1,在事件结构中,添加初始化键盘模块,连接到8个输入数据采集模块,再分别将输入数据采集模块的输出端口——按下的按键,连接到搜索一维数组模块的一维数组端口;将8个枚举常量分别连接到8个搜索一维数组模块的元素端口;再将值为0的数值常量连接到搜索一维数组的开始索引端口;搜索一维数组的输出端口即元素索引连接到相等判别模块,相等判别模块的另外一个输入端连接一个值为0的数值常量,相等判别模块的输出为布尔量。切换到前面板,放置8个布尔圆形指示灯和8个确定按钮,并将8个确定按钮都转换成显示控件,回到后面板,放置8个条件结构,真分支内放置前述播放声音的子VI,并且根据音阶的不同,设置不同的频率输入。最后将相等判别模块输出的信号连接到确定按钮,圆形指示灯以及条件结构;将事件结构放入While循环,设置为一直运行,保证循环检测按键。切换到前面板,点击运行按钮即可开始运行程序,按下键盘上从A到K的几个按键,电脑会发出对应的声音,同时确定按钮变成深色,下方的圆形指示灯亮起。前面板和后面板如图2,3所示。

图2 主VI前面板程序

图3 主VI后面板程序

4 结论

LabVIEW作为图形化编程软件,有效提高了编程的直观性,提升了编程的效率,基于LabVIEW的简易键盘电子琴核心模块为实现声音信号合成的正弦波形生成模块和实现键盘信号捕捉的事件结构,简易电子琴用户界面友好,在此基础上还可以结合其他硬件实现更加丰富的发音。

[1] 张国华,朱丽琴.基于LabVIEW可弹奏电子琴的设计[J].电子世界,2013(12):123-124.

[2] 王随.嵌入式电子琴辅助系统的设计与实现[D].南京:东南大学,2015.

[3] 兰羽,周茜.基于Multisim八音阶电子琴的设计与仿真[J].电子设计工,2012(12):52-54.

Design of Simple Keyboard Electronic Organ Based on LabVIEW

Shu Jingdong, Liu Long

(SchoolofElectricalEngineering,WuhanUniversity,WuhanHubei430072,China)

This paper mainly discusses the principle of designing simple octave keyboard electronic organ based on the development software of LabVIEW. The VI which plays sounds uses sine wave module to generate specific frequency then input into signal of broadcast waveform module, finally LabVIEW plays the corresponding sounds by calling computer loudspeaker. The event structure which is used to detect the "pressing button" is put into the While loop structure to achieve cycle detection, and the "pressing button" event structure identifies the specific key by searching one-dimensional array, and calls voice sub VI to achieve the function of the electronic organ.

LabVIEW; keyboard; electronic organ

2017-07-25

舒景东(1996- ),男,湖南怀化人,本科在读,研究方向:物联网。

1674- 4578(2017)04- 0066- 03

TP391.9

A

猜你喜欢
程序框图前面板电子琴
颜值高和散热强可以并存3款高品质机箱推荐
“顺势而下”破解程序框图
基于AT89C51单片机的电子琴设计
电竞潮牌范航嘉GX520S机箱评测
电竞潮牌范 航嘉GX520S机箱评测
算法与程序框图常考类型
程序框图问题的精彩交汇
电子琴
程序框图题盘点
个性化的机箱选择