摘要:本文主要介绍了一种非人型打击类机器人。机器人工作方式类似于弹钢琴,用机械臂敲击音键来演奏。整体以STM32单片机为控制核心,机械敲击臂以舵机为活动关节并受芯片控制,它具有人机交互功能,用户可以使用操作界面来控制机器人、管理系统的音乐程序文件,不但可以保存文件而且用户还可以修改它的内容,并且支持用户使用界面自定义编写程序文件,在演奏时这些文件里的内容由微控制器处理后被翻译成指令,并通过串口来控制电机敲打出音乐。
1.引言
现在社会越来越智能化,更多的机器人出现在人们的视野里,进入人们的生活,无论是工业、农业还是日常生活起居都随处可见它们的身影。机器人已经从科幻小说里的未来之物变成人们生活中不可缺少的东西。智能化作为近些年来十分火热的话题,许多的产品都在朝这个方向发展,其目的在于给人们带来舒适便捷的使用感。在智能机器人这方面,虽不断有新的重大突破,但是在音乐这方面却鲜有可以进行人机交流互动的,并且可以让使用者切实感受到这款机器人的操作简单易懂还可以激发兴趣的产品还少之又少,一般的音乐播放器只是将音频播放出来而已,而我们这次要做的智能化的音乐机器人是现场演奏,音色相比扩音器里出来的更加真实。它有一个机械敲击臂,使用舵机控制,可以绕支点旋转并且上下敲击,下面放有发音板,板上有不同的音键,它可以像弹钢琴一样演奏。还有就是它的人机交互功能,支持用户通过操作界面自编程谱曲,是这款机器人的一大亮点。
2.总体方案
2.1系统总体结构
音乐机器人主要由两部分组成,即它的机械结构和控制系统。机械结构主要包括机械敲击臂、发音板和外部整体固定框架。机械臂采用双自由度控制,即使用两个舵机分别控制两个关节运动;发音板上面固定有音键,敲击臂这就是敲击这些音键来演奏的。控制系统的功能就是按照指令控制机械结构,使用可触摸液晶显示屏作为人机交互媒介,控制部分以stm32单片机为其控制核心,负责存储文件、读取内部的音乐文件并且翻译使用者需要执行的音乐程序,并驱动电机配合演奏。
2.2工作原理
可以说这款机器人能够完美演奏很大程度上是依赖于其控制系统,这也是此项目的重点所在。使用操作界面编写音乐文件和读取文件类似于电脑上“编写保存文件”和“打开读取文件”的功能,使用者通过操作界面编写的曲子将会由系统保存起来,当需要演奏时从中选取指定的文件,执行文件时系统会将文件内容翻译成控制指令,就相当于给机器人输入了编程指令,按照指令控制敲击臂做出动作来敲击发音板。这是音乐机器人工作的整体思路。整个项目的控制系统可以拆分成不同的功能单元,为实现机器人的工作,主要有主控单元、供电单元、电机驱动单元、人机交互单元、文件管理单元。主控单元控制整个机构;供电单元为整个工作系统提供合适的电压;人机交互单元可以使用户操作机器,完成文件的浏览、编辑和执行,同时支持演奏时控制暂停、切换文件等功能;文件管理单元用来保存、调用和管理文件;电机驱动单元接收控制芯片的命令控制电机配合演奏。总体结构框图如图1所示。
图1音乐机器人控制原理图
3.机器人结构设计
执行机构是由机械部分来完成的,使用敲击臂敲击发音板来演奏。敲击臂采用两个舵机来作为活动关节,其一可以使其在水平面内绕一点旋转,另一个可以使其在竖直方向上做上下敲击的动作,结构如图2所示。因为敲击臂的活动范围是扇形,所以发音板每个音符所对应的键位呈环形在敲击臂周围。
图2机械臂结构
敲击臂为木制,木质的敲击臂轻盈,价格便宜,每次敲击对下面的发音板也比较友好。发音板的音符键为铝制,可以选择不同的音级数,比如选择七音或者八音。发音板的结构类似于市面上的七音琴,木质支架铝制音键,利用铝制音键的长短不同来发出不同的音。在驱动电机的选择上使用的是舵机,无论从活动范围还是控制精度而言,舵机都是最佳选择。
4.机器人控制方法的实现
当机器人开启后,机器人初始化完成,显示屏上便出现操作界面,并支持编写一些简单的文本,用户可以新建文件并且编写保存,也可以选择文件来执行,在执行时,文本会被系统翻译成相应的音符,其节拍停顿都可以由文本内容决定。
4.1硬件选择
1)主控单元
控制芯片是整个控制系统的核心,几乎所有任务都是靠芯片来调度的,包括显示编辑储存的文件,人机交互界面的控制,文件对应程序的执行和电机的控制。综合来看,我们选择了意法半导体公司出品的STM32F407芯片,STM32F407是一款拥有高性能、低成本、低功耗的芯片,采用Cortex-M4内核,主频高达到168Mhz(可获得210DMIPS的处理能力),主要优点如下:
a)价格低廉。
b)更先进的内核。STM32F4采用CortexM4内核,带FPU和DSP指令集。
c)增强的外设功能。对于相同的外设部分,STM32F4具有更快的模数转换速度、更低的ADC/DAC工作电压、32位定时器、带日历功能的实时时钟(RTC)、IO复用功能大大增强、4K字节的电池备份SRAM以及更快的USART和SPI通信速度。
d)可在线调试。无需仿真器,只需一个串口便可下载代码。
2)人机交互单元
操作界面使用的屏幕是TFTLCD电阻式触摸屏,相比较于手机上常用到的电容式触摸屏,电阻式虽然透光性不好且不支持多点触摸,但是它精度高,抗干扰能力和稳定性都比后者要强,对工作环境要求比较低,可以在有灰尘等不友好的环境下正常工作,价格更加便宜,控制芯片的选择上使用的是ADS7843。
3)文件管理单元
目前市面上有很多外部存储设备,其中最适合单片机系统的莫过于SD卡了,SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,并且有几种体积的尺寸可供选择,能满足不同应用的要求。拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
4)电机控制单元
在舵机的选择上,决定选用数字舵机,相较于传统的模拟舵机,数字舵机可以在将动力脉冲发送到舵机马达之前,对输入的信号根据设定的参数进行处理;而且数字舵机的脉冲频率更高,这也意味着它的反应变得更快,精度更好。还有防抖动等优点。
5)供电单元
整个操作系统需要5V电压,内部有电源转换开关,分别给控制芯片和舵机供电。可以直接接市电使用。还有一个蓄电池,作为备用电源使用,在使用市电的时候蓄电池处于充电状态,没电的时候可以打开蓄电池来给机器人供电。
4.2控制系统软件设计
1)主要操作流程
当按下开机按钮后,系统程序开始初始化,如果失败则会提示重新启动,初始化成功之后,便可以通过触摸屏来操作整个系统,通过显示屏看到SD卡里的文件,这时候可以进行文件的编辑保存或者新建文件,可以在演奏的时候在屏幕上进行其他操作,比如当前正在执行文件的暂停与停止。主要流程如图3所示。
图3控制系统流程图
2)文件管理系统
负责读取、管理外部存储设备的文件,选用的是FatFs,FatFs是一个完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C语言编写,所以具有良好的硬件平台独立性,可以移植到8051、ARM等系列单片机上而只需做简单的修改。它支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读和写。使用者无需理会FatFs的内部结构和复杂的FAT协议,只要会使用FatFs提供的一系列应用接口函数,如f_open(打开/创建一个文件)、f_close(关闭一个文件)、f_read(读文件)、f_write(写文件)、f_rename(重命名/移动一个文件或文件夹)等,就算完全不懂C语言,也可以使用,就像在电脑上对文件操作一样简单。
3)文本内容翻译
MIDI乐器数字接口,是20世纪80年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI传输的不是声音信号,而是音符、控制参数等指令,它指示设备要做什么,怎么做,如演奏哪个音符、多大音量等。它们被统一表示成MIDI消息。
借鉴于此,我们采用txt格式文本来作为音乐存储文件。文本可以由乐谱转化而来,即便用户要自己编写,规则也很简单,就是用各种数字和符号代替乐谱中的各种信息,简单展示一下乐谱和其对应的文本文件所对应的内容,如图4所示。
图4歌曲曲谱和其对应的txt文本
系统把发音板上的每个音符键坐标化,从0度到N度,每个音符对应一个坐标。在文件里,数字对应的是不同的音符,执行文件时,系统又把每个数字转换成角度控制舵机,需要敲击那个音符的时候,控制芯片发送的命令就是转动到对应的角度,节拍快慢就是舵机的转速控制,下面的发音板可以更换,选择具有更多音符键的发音板可以演奏出比较复杂的曲子。
5.总结
本文介绍了一种打击型音乐演奏机器人的设计方案和控制方法的实现。可以将想要播放的音乐现场演奏,具有非常强烈的新鲜感。可移动的敲击臂采用舵机精确控制其转动角度和上下敲击幅度,保证演奏中不会出现失误。无论是用户操作机器人还是文件管理系统的使用都是简单易懂,音乐程序文件的编写规则更是如此。此项目结合了机械设计、电机控制甚至音乐等多方面的知识,对于一些简单的音乐演奏完全满足要求,并且具有一定的新颖性。经测试验证,在演奏一些简单的乐曲时,机器人工作状态良好,完全符合设计要求,兼具娱乐和教育的功能。