文/宋雨露 朱清慧
智能机器人是一个集多功能于一体的控制系统,而音乐机器人是通过研发者写入控制程序,能够实现自动演奏音乐的一类仿真机器。本设计以单片机为控制核心,通过驱动步进电机和电磁铁实现2-3种敲击木琴的演奏模式,即基于传感器的手动即时演奏、基于蓝牙通讯的手机APP的片段演奏、基于单片机的整曲演奏。
简易钢琴装置的设计需要单片机、步进电机、步进电机驱动、红外传感器模块、蓝牙模块、开关电源、限位开关、电磁铁、继电器模块、小木槌和木琴等器件。简易钢琴的硬件控制框图如图1所示。
(1)根据简易钢琴装置控制系统小巧轻便的特点,考虑到系统控制功能的实现情况,选择STC89C52RC单片机作为装置的主控芯片。
(2)电机主要用来带动木锤作平行于琴键的定位运动,需要能准确启、停,且要求运行平稳。本设计根据这些要求选择步进电机42BYG进行驱动,选用TB6600步进电机驱动器,实现正反转控制和速度控制。
(3)电磁铁在本装置中用来控制木锤的上下敲击动作,选择Makeblock公司的一款电磁铁;另外还给电磁铁配备了继电器模块实现单片机对电磁铁的控制。
(4)手指检测传感器用来检测到手指落下的位置并能发送给单片机从而驱动木锤敲击实际的键盘,要具有一定的抗干扰能力和较高的灵敏度,选择7组红外单向反射式传感器,有效距离2cm-30cm可满足设计所需,可通过调整电位器旋钮改变检测距离。
(5)根据要求要实现通过手机虚拟键盘弹奏钢琴并由蓝牙模块发送给单片机,从而控制钢琴自动演奏。选择一款常用的HC-05蓝牙模块作为地面通讯站。
根据系统硬件框图和所选择的器件,在Proteus中将步进电机、步进电机驱动、电磁铁、继电器、红外传感器、蓝牙模块、限位开关等分别与单片机连接,绘出系统整体电路原理图如图2所示。其中单片机的TXD和RXD与串行模拟终端连接,以进行蓝牙通讯仿真调试。
通过蓝牙串口助手可以连接蓝牙串口模块进行通信,实现手机串口连接。如图3为蓝牙串口助手的主界面图,在这里可以进行模式的选择,和蓝牙模式的控制,在使用这些按键的时候首先要对地面站进行设置,地面站会发送十六进制的数给单片机以完成操作。如图4为蓝牙通讯地面站设置图。
本设计主要是完成了一个初始化,两个子程序,三种控制。如图5为系统的主流程图。系统初始化主要包括定时器初始化,计数器初始化,变量初始化,中断初始化。蓝牙通讯控制程序:主要完成手机与蓝牙的通讯连接,并可以用手机选择控制方式和演奏。红外感应随动控制程序是先初始化,然后跟随手指敲击键盘,系统完成演奏。
在Keil软件中对程序流程图对单片机进行了程序编写和编译,并导入Proteus中进行了软、硬件交互仿真,完全实现了系统功能。
本装置将木琴固定在最前端,对应木槌的位置放置轨道,轨道上有步进电机(四条线接步进电机驱动器),电磁铁(两条线:一条线接开关电源COM,一条线接继电器COM),限位开关(上端口接+5V,下端口接P1.3);接着固定7个红外传感器(VCC接+5V母线,GND接地线,OUT分别连接P0.0-P0.6),继电器(输入:DC+接开关电源+20V,DC-接地,IN接P1.2;输出:COM接电磁铁);然后是开关电源(输入220V,输出20V),步进电机驱动器(输入:DIR+,ENA+,Pul+接+5V,DIR-接P1.1控制正反转,Pul-接P1.0控制速度,输出:分别接步进电机的四条线),最后固定单片机开发板,把蓝牙模块连接上去(RXD接P3.1,TXD接P3.0,VCC接+5V,GND接地)。如图6所示为简易钢琴装置调试图。
图1:简易钢琴的硬件框图
图2:系统整体连线图
图3:蓝牙串口助手的主界面图
图4:蓝牙通讯地面站设置图
首先测得琴键之间的距离,计算出一个脉冲运转的距离为0.002cm。接着根据同相相阻的原理,确定步进电机的接线。然后从限位开关的三个端口选出两个端口接入电路,电机反转直到机械手臂碰到限位开关停止,说明是正确的接法。最后用电源给继电器供电,发现继电器动作,但是电磁铁无法正常吸合,后来改用+12V供电,电磁铁才能正常吸合。
在编写蓝牙控制程序的时候计算波特率,把11.0593Mhz误作12Mhz的,这样再利用51波特率设置软件计算出计数器初始值设置是错误的,造成了敲击时候的混乱。在敲击程序里面,设置延时敲击,系统通过提高电机速度、延时敲击来平衡音符之间时间间隔。由实际情况定义电动机移动一格子需要的脉冲,取1210个脉冲每一格。
图5:系统的主流程图
图6:简易钢琴装置调试图