基于模式识别的木琴演奏机器人

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:yhmlivefor52
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本设计是实现用机器人模仿演奏者现场敲击木琴的动作和顺序的装置。使用PC端的声卡和LabVIEW软件作为音频信号的采集和处理装置,并编辑成谱。通过串口通信将处理好的音谱发送给Mcu,MCU读取并转换数据。MCU根据得到的数据控制2自由度舵机作为执行装置,来模仿演奏者的敲击动作,重现演奏过程。
  关键词:机器人;木琴演奏;模式识别;LabVIEW;舵机控制
  中图分类号:TP399 文献标识码:A
  文章编号:1009-3044(2020)10-0218-03
  随着社会科技化进程的推进,像LabVIEW,MATLAB之类的上位机软件的应用越来越多,版本更新的功能也越来越强大。它们拥有强大的数字处理和运算能力,可以在频域上精准的分析音频信号。同时越来越多的人使用机器人代替人类的劳动,像扫地机器人,炒饭机器人等。基于这样的大背景下,将软硬件相结合,能够更好地为人们服务。
  1总体设计思路
  我们使用PC机自带的录音设备,用LabVIEW软件调用Windows底层函数使用计算机的声卡,利用LabVIEW的处理能力将声卡传人的数据进行频域上的分析,将输入的这一段音频信号和已经设定后的频率区间做比对,在相应的区间内输出相应的值并按先后顺序编辑成一维数组,之后通讯发送给单片机,单片机开始读取数据,将数据转换成控制舵机的PWM的脉宽,控制舵机敲击木琴。从而实现由音频信号控制舵机动作再重现音频信号的过程。
  2基本方案
  2.1采集
  计算机的麦克风和声卡可以将语音信号转换为电信号,经过A/D转换器,以数字信号传人计算机。在LabVIEW里面有一系列使用Windows底层函数编写的与声卡有关的函数,可在函数选板的[编程]-[图像与声音]-[声音]-[输入]的子选板中查找使用。在LabVIEW中调用这些函数可将声音输入Lab-VIEW,然后对声音进一步处理如图1所示(以滤取两个频段为例)。
  2.2数字滤波
  滤波器类型选用低通滤波器,低通滤波器有许多不同的逼近方法,我们选择BuUerworth(巴特沃斯)逼近。Butterworth滤波器的平方幅度响应为:
  wc:低通滤波器的截止频率。
  n:滤波器的阶数。
  同时也使用FFT数字滤波控件(快速傅里叶变换)。Lab-VIEW提供了MATLABScript节点连接主流算法仿真分析软件MATLAB,可以在节点中编辑程序,能够很好地解决复杂数值的运算,充分发挥了MATLAB强大的数据处理能力,流程如图2所示。
  数字滤波器滤波时,模拟信号量化后,利用数字系统进行数字运算实现滤波。低通数字滤波器的特性就是只能让低频分量通过,阻止高频分量的通过。在BuUerworth滤波器将接收到的输入信号进行FFT处理,处理的结果经过D/A转换输出信号。
  2.3模式识别
  “模式识别”是本设计的一大特色。我们使用LabVIEW来对声音进行处理,在频域上分析捕捉固定的频段如图3f以两路为例)。因为取得的声音信号是混合信号,所以需要用到提取混合单频信息vI控件,选用vI控件的detected signal多频导出模式并且设置频率范围,我们所需要的木琴频段为166Hz-2100Hz,各个音阶的频率为264Hz(doul,297Hz(re),330Hz(mi),352Hz(fa),396Hz(s01),440Hz(1a),495Hz(si)。通过连线数据到时间信号输入,然后通过混合单频信息通道提取出需要的信号。混合单频信息返回vI提取出的每个单频信号的频率、幅值和相位。其数组的元素是时间信号输入中某个信号的混合单频信息。由于采集的每个音频不是整数,因此要标定某个区间为某个音阶。利用取整函数将其转化为整型,并按先后顺序排成数组编辑成谱。
  可通过下列方程表示实数多频信号(包含N个单频):
  2.4舵机控制
  LabVIEW将处理好的数据(乐谱)利用串口通讯发送给MCU,接着MCU开始执行数据控制舵机转动固定角度进行敲击。我们使用的是2自由度舵机,下舵机控制左右旋转,上舵机控制上下敲击。这时候就要考虑到旋转的最小角度是否符合要求,因为下舵机扫过的是一个扇形区域,距离舵机越远两个音符之间相对的舵机旋转角越小,距离舵机越近旋转角越大。因此舵机分度越小,敲击动作就越精确效果越好。装置最终的固定需要不断地根据实际情况进行调整,才能找到最合适的位置。
  我们将木槌固定在舵机臂上,通过改变PWM波的占空比来控制2自由度舵机模仿演奏者的敲击动作。控制内核采用STC89C52RC单片机,开启两个定时器中断Timer_O和Timer_1。Timer_O控制下舵机左右旋转,Timer_l控制上舵机上下敲击。舵机型号我们选用Tower pro SG-5010 180度舵机,控制信号周期为20ms中置脉宽为1.5ms 0.02ms,旋转脉宽范围为0.5ms-2.5ms。因为STC89C52RC单片机内部没有自带的PWM,我们通过STC89C52RC的GPIO输出高低电平来模拟PWM波。通过控制高电平在一个周期内输出的时间长短来调节占空比大小,进而控制舵机旋转的角度。
  设置定时器中断时间计算:
  为了方便计算以及设置定时器裕量,设定時间为200us进入一次定时器中断。
  在中断中设置100次重复计数变量。通过接收的一维数组(乐谱)中的数据大小来控制是第多少次进入中断翻转GPIO的电平,来实现周期为20ms的PWM波的输出。
  用按键来取反主通道标志,当主通道标志置位时,单片机main函数读取并执行接收到的数据,每读取一个数据,下舵机开始动作,转动到目标位置后,置位下舵机完成标志,复位上舵机完成标志,并关闭Timer_O,开启Timer_l。上舵机控制函数当检测到下舵机的完成标志置位时开始动作,敲击后返回初始状态,置位上舵机完成标志,复位下舵机完成标志,并关闭Timer_1,开启Timer_O。当单片机检测到上舵机完成标志置位后,开始读取下一个数据,依次循环直至读完数组,完成所有动作。之后main函数复位主通道标志,返回待命状态,这样就完成了一个完整的敲击过程。
  3结束语
  以软硬件结合的方式,实现音阶的捕捉与再现,用机器代替人来工作是本设计的主体思想。LabVIEW软件是使用图形化的语言,是一个既操作简便,又功能强大的软件,在LabVIEW中提供了许多的Script,为嵌入其他的软件提供平台。可以通过USB与MCU进行数据传输,将LabVIEW的实时数据发送给MCU。进而控制执行装置按设定好的方式动作,实现“重现”的目的。本设计还可以用于其他方面,像敲扬琴、敲石琴、打鼓等。另外还可以嵌入到各种乐器或音频设备里面,将设备智能化,科技化。例如嵌入到钢琴内部,根据捕捉到的钢琴的音阶来弹钢琴。还可用于判断演奏者有没有揍错音阶,作为初等音乐考试评判设备。
其他文献
与普通的神经网络非常相似,CNN卷积神经网络也由具有可学习的权重和偏置常量的神经元组成。每个神经元都接收一些输入并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧依旧适用。该文介绍了基于CNN卷积神经网络的手势识别系统,首先对不同的手势图片进行采集,将采集结果作为训练集和测试集,系统将会对其进行识别。
通过对2015—2016赛季CBA总决赛四川队和辽宁队5场比赛双方队伍结构、技战术运用进行统计与分析,研究认为:四川队在阵容结构,战术安排和运用等方面优于辽宁队。其中心理素质过
摘要:针对k-means聚类算法对初始聚类中心敏感,容易陷入局部最优的情况,提出一种改进的基于k-means算法的新闻聚类方法。在用传k-means算法对新闻数据集进行多次聚类的基础上,使用證据累积算法对k-means算法的聚类结果进行融合,以平滑k-means算法的结果,减少波动。实验结果表明提出的方法使聚类结果的准确率从53.33%提升至77.78%。  关键词:k-means;新闻;聚类分析
针对旅游点评类文本存在数据量庞大等问题,本文构建一种SVM与Bootstrapping相融合的旅游点评文本情感分析算法。首先对2019年上半年携程旅游与马蜂窝旅游评论数据进行采集,以
现代教育理念中要求新媒体教学体现高度数字化和互动性的特点,这给运用传统媒介方式实施教学带来了不小的冲击。其实随着教育形式的日趋多元化,采用传统媒介和新媒介实施教学
教育信息化2.0"双提升"工程的发展,促进新媒体新技术在教学中的有效应用。电子白板作为新的教学辅助工具,不仅可以实现师生互动,还有效地提升了教师的教学能力。文章以基于电
这是四川省皮革行业一年一度的理事大聚会;这是四川省皮革学会一年一度的理事大聚会,这是四川省皮革行业协会和四川省皮革学会首次共聚一堂、总结过去、展望未来、共创四川皮
摘要:目前大多数入侵检测系统都是基于一个特定的预定义模式(特征值)来匹配已知的攻击功能。基于特征值的方法的主要局限性在于它不识别新的攻击,甚至不识别已知漏洞中的微小变化。该文基于机器学习技术,采用k-means聚类算法和支持向量机分类算法,能够自动构造正常分组有效载荷的分布并检测其偏差。实验表明,机器学习算法比大多数使用的开源snort系统有更高的检测精度。  关键词:入侵检测;机器学习;分类算法
某型舰炮在进行电气设备检查时发现其监控柜上的"27V"电源指示灯不亮。该文分析了相关电路原理,对产生故障的原因进行了判断,并给出了不同原因导致本故障的排除流程,最后对排