一种用于柔性薄膜电子琴的琴键功能的检测装置及方法
技术领域
本发明涉及键盘乐器的测试领域,尤其涉及一种用于柔性薄膜电子琴的琴键功能的检测装置及方法。
背景技术
电子琴具有音域较宽、和声丰富、可模仿多种音色、音量调节自由、可配备类似打击乐音响的节拍伴奏、还可以加装效果器(实现如混响、回声、延音、震音轮和调制轮等多项功能)等诸多特点,在现代音乐演奏中应用非常广泛。现有的电子琴多采用具有一定体积的按键和琴键,搭配电子琴外壳,体积上比较庞大,手卷电子琴在卷折时体积仍然很大,无法实现便携化。同时,各种电子琴琴键的检测通过单片机进行行列扫描,扫描不仅耗费单片机机时,还要为键盘阵列提供外部电源。有鉴于此,柔性薄膜电子琴应运而生,弹奏时通过按压薄膜琴键产生一定的电压信号,完成传感器的自驱动。但是实际设计或生产过程中,存在多种原因可能使系统运行不稳定,导致琴键无法输出,因此,需要能够对柔性薄膜电子琴的琴键功能进行有效可靠检测的装置及方法。
发明内容
本发明所要解决的技术问题是柔性薄膜电子琴的琴键功能检测装置和检测过程中耗费单片机机时且检测条件要求高的问题。
本发明解决上述技术问题所采用的技术方案为:
本发明提供一种用于柔性薄膜电子琴的琴键功能的检测装置,包括控制器,用于控制整个系统;控制器连接有音源存储装置,音源存储装置用于存储并供控制器读取测试音乐数字乐谱;控制器上还连接有驱动装置,舵机阵列固定在支架上,支架可稳定置于需要检测的薄膜电子琴的琴键上方,控制器控制驱动装置驱动舵机阵列来敲击薄膜电子琴的琴键;控制器还连接有琴键信号判断装置,用于判断敲击琴键时该琴键是否有输出,进而判断该琴键是否正常。
进一步地,所述舵机阵列包括多个微型直线舵机,所述微型直线舵机的数量与需要检测的薄膜电子琴琴键的数量相同,每个所述微型直线舵机位于其对应琴键的上方。
进一步地,所述微型直线舵机靠近琴键的一端连接有延长轴,所述延长轴可拆卸地连接在所述微型直线舵机的直线运动轴上。
进一步地,所述微型直线舵机的初始角度为90°-120°。
进一步地,所述驱动装置包括驱动阵列和开关阵列,所述开关阵列用于选择所述驱动阵列输出的PWM信号送给一个或多个所述微型直线舵机,所述驱动阵列通过开关阵列控制所述微型直线舵机以敲击相应琴键。
进一步地,所述每个驱动阵列带动四个微型直线舵机,该四个微型直线舵机分别对应白键低音区、白键中音区、白键高音区及黑键区的各一个琴键。
进一步地,所述琴键信号判断装置包括琴键信号输入接口和比较器阵列;所述琴键信号输入接口与柔性薄膜电子琴共用接口,敲击琴键时琴键传感器通过所述琴键信号输入接口输出信号,经过信号处理电路处理为模拟电压信号;所述比较器阵列包括比较器和参考电压可调电路,所述琴键信号输入接口的模拟电压信号与比较器阵列的参考电压进行比较,从而将模拟信号转换0/1电平信号,并由所述控制器判断琴键输出情况。
进一步地,所述控制器还连接有设定装置,所述设定装置采用矩阵键盘,用于定时、选择测试音乐数字乐谱、参考电压的设定。
进一步地,所述控制器还连接有外接显示装置,所述外接显示装置为液晶显示模块,用于人机交互显示以及测试结果的显示。
本发明还提供一种利用前述检测装置的检测方法,包括以下步骤:
步骤一:系统初始化,所述控制器进行系统初始化,包括初始化系统时钟、内部定时器、GPIO和专用的SDIO和专用的FSMC液晶显示接口;
步骤二:进行系统设置及选择测试音乐,通过所述设定装置进行系统各参数设置以及选择测试音乐;
步骤三:读取数字乐谱并触键,所述控制器读取所述步骤二所选测试音乐的数字乐谱,依照顺序触发所述微型直线舵机完成触键动作;
步骤四:读取并存储比较器阵列值,比较器输出端直接连接在单片机控制的I/O端口上,控制器1通过读取相应的I/O端口值,即可读取出比较器输出值并存储于控制器内部的数组缓冲区;
步骤五:判定琴键是否输出并记录错误,判别琴键是否存在输出,并进行相应的操作:如果测试到某一个音符,控制所述微型直线舵机敲击相应的琴键,再读取与相应的比较器输出端相连接的I/O端口值;如果该端口输出为高电平,则说明没有琴键输出,则需要记录该错误,记录完毕执行步骤六;如果输出为低电平,则说明琴键有输出,直接执行步骤六;
步骤六:判断音乐检测是否完毕,判断乐谱音符是否全部测试完毕,如果没有完毕,返回执行步骤三直至全部测试完毕;如果乐谱音符全部测试完毕,执行步骤七;
步骤七:显示测试结果并返回进入等待状态,测试完毕后,则送将测试结果液晶显示,如果存在错误,则显示出错误的琴键值,之后进入等待状态,等待按键操作。
与现有技术相比,本发明的优点在于该琴键检测装置和方法构造简单,成本低,不易受外界因素干扰,运行稳定,能够快速准确测试全键盘琴键,且易于操作。
附图说明
图1为本发明琴键功能的检测装置的结构框图;
图2为本发明琴键功能的检测装置中支架4与舵机阵列5的结构示意图;
图3为本发明琴键功能的检测方法的流程图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
如图1和图2所示,一种用于柔性薄膜电子琴的琴键功能的检测装置,包括控制器1,用于控制整个系统;控制器1上连接有音源存储装置2,音源存储装置2用于存储并供控制器1读取测试音乐数字乐谱;控制器1上还连接有驱动装置3,驱动装置3与舵机阵列5连接,舵机阵列5固定在支架4上,支架4可稳定置于需要检测的薄膜电子琴的键盘9上方,控制器1控制驱动装置3驱动位于支架4上的舵机阵列5来敲击薄膜电子琴的琴键;控制器1还连接有琴键信号判断装置6,用于判断敲击琴键时该琴键是否有输出,进而判断该琴键是否正常。
在本发明实施例中,控制器1为STM32单片机控制器,采用LQFP144封装的高性能单片机STM32F103RET6,该单片机拥有112个I/O端口,多个定时器、SCI通信接口、专用的SDIO(Secure Digital Input and Output Card安全数字输入输出卡),即SD卡接口,以及专用的FSMC(Flexible Static Memory Controller可变静态存储控制器)液晶显示接口,主频最高72MHz。在本系统中,用于对整个系统的控制,包含测试音乐数字乐谱的选择及读取、液晶显示、舵机驱动阵列信号的产生及控制、开关阵列控制等。
在本发明实施例中,支架4为四脚支撑的长方形台,支架4的长度略大于电子琴的长度,支架4的宽度大于琴键的长度,支架4可采用塑料或者金属等材料制成。舵机阵列5包括若干微型直线舵机502,微型直线舵机502的数量与需要检测的薄膜电子琴琴键的数量相同,在本发明实施例中电子琴有88个琴键,则对应的微型直线舵机502为88个。每个微型直线舵机502位于其对应琴键的上方,以保证微型直线舵机502能够准确敲击相应琴键。
微型直线舵机502靠近琴键的一端连接有延长轴503,延长轴503可拆卸地连接在微型直线舵机502的直线运动轴504上,例如可拆卸地套接或者卡接于直线运动轴504上,延长轴503可以是圆柱形、棱柱形或者其他任意能够延长直线运动轴504的延长部件。
在本发明实施例中,微型直线舵机502的最大直线行程为10mm,最大旋转角度为180°,速度0.11sec/60°,供电电压3.7-5V,尺寸21mm(长)×15mm(宽)×12mm(高)。延长轴503为圆柱形塑料轴,套接在直线运动轴504上,延长轴503在微型直线舵机502的带动下,可进行往复运动,运动行程最大为10mm。为保证系统正常工作,微型直线舵机502在初始状态时,延长轴503靠近琴键的一端与琴键表面之间的垂直距离约8mm,以确保微型直线舵机502在工作状态时,延长轴503在微型直线舵机502的带动下能够敲击到琴键。
选用的微型直线舵机502的运动速度为0.11sec/60°,如果以延长轴503靠近琴键的一端与琴键表面之间的垂直距离10mm,即微型直线舵机502的最大运动行程来计算,完成一次向下敲击琴键的动作所需最长时间为Tmax=0.11sec/60°×180°=0.33s。如果加上返回原始位置的时间,则单一琴键敲击一次的时间共需0.66s。为了使微型直线舵机502的运动能够达到乐谱演奏中的快速击键要求,即在运动速度不变的前提下,缩短行程才能减少单击一次琴键的时间,增大微型直线舵机502的初始角度,会增大微型直线舵机502的初始位移,从而减小微型直线舵机502的实际位移量,不仅实现节省时间的效果同时保证有效敲击琴键。在本发明实施例中,优选将初始角度调整为90°-120°。
微型直线舵机502采用PWM(Pluse Width Modulation脉冲宽度调制)驱动,每次控制微型直线舵机502敲击琴键时,控制器1控制输出的PWM波形均需保持一定的时间,微型直线舵机502的直线运动速度和PWM波信号的占空比正相关,因此还可通过增加占空比来提高微型直线舵机502的直线运动速度。
这样,通过增大微型直线舵机502的初始角度和增加占空比的方式可以显著缩短微型直线舵机502的直线运动所需要的时间,从而保证微型直线舵机502能够准确地按照数字乐谱完成测试音乐的自动演奏。
驱动装置3包括驱动阵列301和开关阵列302。在本发明实施例中,驱动阵列301采用L298N芯片,开关阵列302用于选择L298N芯片输出的PWM信号送给一个或多个微型直线舵机502,即驱动阵列301通过开关阵列302控制舵机阵列5的各微型直线舵机502以敲击相应琴键。L298N芯片的输出数为4,即每个L298N芯片可带动四个微型直线舵机502,则在本发明实施例中,需要22个L298N芯片。考虑到单个L298N芯片的负载情况,以及在音乐弹奏时,中音区琴键的使用频率较高,而高音区琴键和低音区琴键使用频率相对较低,如果同一L298N芯片带动的微型直线舵机502对应的是连续相邻的四个琴键,同时敲击该相邻的四个琴键时,尤其是常用的中音区相邻琴键时,单个L298N芯片容易因频繁使用负载过大引起部件过热而导致损坏。因此,在本发明实施例中,每个L298N芯片带动的四个微型直线舵机502分别对应白键低音区、白键中音区、白键高音区及黑键区的各一个琴键,从而有效降低了单个L298N芯片带动的四个微型直线舵机502同时敲击琴键的可能性,避免负载过大引起部件过热而导致损坏。当然微型直线舵机502也可以在以上四区中作其他种组合方式,例如单个L298N芯片的四个微型直线舵机502对应两个相邻或者不相邻的低音区琴键以及两个中音区琴键,或者其他组合方式,原则上,单个L298N芯片带动的四个微型直线舵机502应尽量对应在演奏中较少同时敲击的四个琴键。
音源存储装置2是用于存储若干首音乐的数字乐谱的装置,可采用SD卡等闪存卡,或者其他可由控制器1读取的存储装置。在本发明实施例中,采用SD卡作为音源存储装置2,控制器1选择并读取SD卡中存储的测试音乐数字乐谱,并按照该数字乐谱通过驱动装置3驱动舵机阵列5敲击琴键。
琴键信号判断装置6包括琴键信号输入接口601和比较器阵列602。琴键信号输入接口601与柔性薄膜电子琴共用接口,柔性薄膜电子琴的琴键连接有传感器,敲击琴键时琴键传感器通过琴键信号输入接口601输入的信号,经过信号处理电路放大处理为1-2V的模拟电压信号。在本发明实施例中,比较器阵列602包括高精度LM2901芯片和参考电压可调电路。一个LM2901芯片内部集成四个比较器,可以构成四个比较器电路,每个琴键对应一个比较器电路,在本发明实施例中,需要22个LM2901芯片。工作状态时,微型直线舵机502敲击琴键,琴键传感器相应输出电压信号,并经过信号处理电路将电压放大处理为1-2V的模拟电压信号,接入比较器的输入端。琴键信号输入接口601的1-2V模拟电压信号与比较器阵列602的参考电压进行比较,从而将模拟信号转换0/1电平信号。由于比较器输出端需要加5.1K上拉电阻,所以当比较器输入端存在1-2V电压信号时,比较器输出为低电平,表示该琴键测试功能正常;比较器输入端无信号,比较器输出为恒定高电平,表明琴键异常。控制器1通过检测比较器输出的电平,即能判别琴键信号输入接口601是否存在输出信号,进而判断琴键是否有输出。
控制器1还连接有设定装置7和外接显示装置8。在本发明实施例中,设定装置7采用矩阵键盘,例如4×4键盘阵列,用于定时、选择测试音乐数字乐谱、参考电压等多项参数的设定。外接显示装置8为液晶显示模块,在本发明实施例中,采用内部带驱动器的320×240像素的TFT点阵液晶,可将其接口与控制器1的专用FSMC液晶显示接口连接,实现显示内容的高效传输,用于人机交互显示以及测试结果的显示。
如图3所示,一种用于柔性薄膜电子琴的琴键功能的检测方法,采用前述检测装置,包括以下步骤:
步骤一:系统初始化。
控制器1进行系统初始化,包括初始化系统时钟、内部定时器、GPIO(GeneralPurpose Input Output通用输入输出)和专用的SDIO和专用的FSMC液晶显示接口。
在本发明实施例中,STM32单片机控制器用于整个系统的控制,包含针对琴键信号输入接口601的信号读取、测试音乐数字乐谱的选择及读取、液晶显示、舵机驱动信号的产生及控制、开关阵列控制等。检测过程中,需要使用该单片机的I/O端口、定时器、专用的SDIO,即SD卡接口,和专用的FSMC液晶显示接口,因此,需要初始化上述设备。
步骤二:进行系统设置及选择测试音乐。
通过设定装置7进行系统各参数设置以及从音源存储装置2中选择测试音乐。
步骤三:读取数字乐谱并触键。
控制器1读取步骤二所选测试音乐的数字乐谱,依照顺序通过驱动装置3触发微型直线舵机502完成触键动作。
步骤四:读取并存储比较器阵列值。
比较器输出端直接连接在单片机控制的I/O端口上,控制器1通过读取相应的I/O端口值,即可读取出比较器输出值并存储于控制器1内部的数组缓冲区;
步骤五:判定琴键是否输出并记录错误。
判别琴键是否存在输出,并进行相应的操作。如果测试到某一个音符,控制微型直线舵机502敲击相应的琴键,再读取与相应的比较器输出端相连接的I/O端口值。如果该端口输出为高电平,则说明没有琴键输出,则需要记录该错误,之后执行步骤六;如果输出为低电平,则说明琴键有输出,直接执行步骤六。
步骤六:判断音乐检测是否完毕。判断乐谱音符是否全部测试完毕,如果没有完毕,返回执行步骤三直至全部测试完毕;如果乐谱音符全部测试完毕,执行步骤七。
步骤七:显示测试结果并返回进入等待状态。
测试完毕后,则将测试结果送至外接显示装置8,如果存在错误,则显示出错误的琴键值,之后进入等待状态,等待按键操作。