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