刘宇璇 马磊 张磊
摘 要:随着物联网技术迅速发展,Android平台凭借其特有的开放性和便利性不仅仅成为普遍的通信设备,而且成为了具有广泛应用价值的控制、管理的平台。本系统以Android手机为平台借助蓝牙技术完成了机械臂系统的设计,提供一种无线控制机械臂的新思路。首先介绍系统的总体设计,接下来详细阐述系统的软硬件设计和总结。其中Android手机端与8位单片机STC12C5A32S2分别视为上位机和下位机。其工作流程为,通过Android手机APP的上位机利用蓝牙通信与下位机端连接,再通过蓝牙转串口将命令发送给32S2单片机,单片机根据接到的指令执行相关动作,发送信号控制舵机。最终结果表明:六自由度机械臂可以接收Android平台发出的信号并且可以实现舵机角度和转速控制调节等功能。
关键词:Android;机械臂;单片机;蓝牙
随着机器人控制技术的发展成熟,尤其是机械臂在工业、军事、以及生产生活发挥了重大作用,机械臂将不断走进我们的生活,应用范围不断扩大,带给人们更多便利。Android手机操作平台是真正意义上的开放性综合移动平台。使用Android的意义不仅在于利用好手机平台的现有功能,更是通过对其架构的分析和探索,使得机械臂控制更容易嫁接到其他Android系统的产品上,从而进一步扩大它的应用范围和领域。随着物联网的普及,传感器与舵机作为控制界面与物联网系统的连接媒介也必将越来越受到广泛关注,Android平台控制系统将会很有前景与研究价值。
1 系统总设计内容与设计方案
1.1 设计内容
本次设计要求实现Android手机可以通过蓝牙设备远程调节和控制六自由度机械臂转动角度和转速。
1.2 设计方案
本设计以STC12C5A32S2单片机为该系统的主控制器,它通过控制舵机驱动来实现控制舵机的转动角度和转动速度,运行最终完成机械臂的各种运行功能,并通过手机界面设置各种参数来完成对机械臂运行功能的设置。手机蓝牙与单片机的蓝牙模块配对,单片机对手机端传送各种指令分析处理,根据不同指令跳转到相应的子程序控制舵机驱动,并发送信号控制舵机使机械臂完成不同运行动作。
2 系统硬件设计
2.1 硬件电路结构
整个系统的硬件可以分为4个模块:电源电路、单片机最小系统、电机驱动模块、蓝牙模块。由7V锂电池作为电源,给系统供电,调节舵机电压为7V,单片机电压为5V,以确保单片机、舵机驱动、蓝牙模块HC-06的正常运行。单片机STC12C5A32S2是整个系统的主控制器。
2.2 单片机控制流程
将程序烧录到單片机中,蓝牙模块接受从Android手机上的数据指令,并通过串口通信的方式传输给STC12C5A32S单片机。STC12C5A32S2对于舵机的转速调整,采用脉宽调制(PWM)办法,控制舵机的时候,不同占空比的方波信号能对电机起到调速作用,添加延迟,从而达到调速的目的。
3 系统软件设计
3.1 软件工作流程
(1)获取并检查蓝牙设备;(2)确保正常开启服务,点击连接设备与下位机蓝牙设备连接,改变UUID值可明确连接方式,本设计中利用蓝牙串口进行连接;(3)采用数字输入或滑动确定信号参数,发送数据并提示是否成功,下位机收到数据后反馈信号,上位机提醒正常收到,设备正常工作;(4)改变参数时重复第4步,点“停止”按钮停止工作时,传输参数为零的数据包尾,传达命令暂停控制字。
3.2 蓝牙通讯
在Android的蓝牙应用程序中,使用RFCOMM协议的Socket来进行服务器与客户端的通信。首先 需要在Windows环境下利用Android studio工具搭建好Android开发环境。目前Android手机普遍自带蓝牙,在AndroidManifest.xml中声明蓝牙权限。蓝牙模块分析手机端发送的字符的ASCII码值,并且通过串口相应的传递给单片机,串口传来的数据被单片机分析后,单片机发送信号控制舵机。手机蓝牙发过来的信号被蓝牙模块接收后,将暂存在51单片机的寄存器中,单片机进行信号解码处理处理后,发送信号给舵机。
3.3 监听界面获得数据
public void onClick(DialogInterface dialog,int which){}
//这个方法是实现了DialogInterface.OnClickListener的必然产物,作用是用来监听出现在dialog上面按钮的单击状态。dialog显示内容里面也可以有Button,但是这些button监听必须通过向构造函数里面的EditText那样先获取才能监听。
if(which == DialogInterface.BUTTON_POSITIVE){}
//DialogInterface.BUTTON_XXXXX这个常量POSITIVE一般是确定按钮,但是实际按钮具体显示是可以在dialog.setPositiveButton进行设置的。
4 总结
本文设计实现了一种基于Android平台的六自由度的机械臂远程控制系统,介绍了系统的硬件组成与软件开发。系统利用基于Android平台的智能手机作为客户端,用户利用蓝牙向控制端单片机发送控制指令,并将控制指令转化为信号发送给机械臂舵机以实现转动角度和转速的调节。测试显示运行结果正确,性能稳定可靠。该系统可以推广到物联网和家庭自动化的远程控制中。
参考文献
[1]张拓.基于Android平台的蓝牙应用开发[J].信息与电脑:理论版,2015,(18):64-67.
[2]刘少军,王瑜瑜.基于 Android 手机蓝牙控制的智能小车设计与实现[J].电子测量技术,2016,39(9):114-117.
[3]高宋伟,徐洪智,黄艳,等.基于Android的蓝牙通信程序设计[J].电脑编程技巧与维护,2015,(11):44-46.
(作者单位:西南交通大学 电气工程学院)