基于安卓手机的无线随动控制系统设计

2017-04-21 00:44余丽杰孙玉国焦金辉
电子科技 2017年4期
关键词:安卓角速度蓝牙

余丽杰,孙玉国,焦金辉,勾 灿

(上海理工大学 光电信息与计算机工程学院,上海 200093)

基于安卓手机的无线随动控制系统设计

余丽杰,孙玉国,焦金辉,勾 灿

(上海理工大学 光电信息与计算机工程学院,上海 200093)

无线随动控制在虚拟现实,运动捕获等领域有重要应用。设计了一种基于安卓手机的角位置无线随动控制系统。采用安卓手机内部的微机电(MEMS)传感器感知物体旋转的角速度并作为该系统的控制指令,蓝牙模块HC-06作为无线通信媒介,跟随端利用STC125A60S单片机结合积分分离式的PID算法控制两相混合式步进电机做跟随转动。实验结果表明,该随动控制系统运行稳定,角位置跟随误差<0.5°。

随动控制;MEMS传感器;单片机;步进电机;PI

在模拟驾驶训练、虚拟现实、运动捕获以及智能家居等领域,很多场景下需要实时获取控制手柄的转动角度与转动角速度信号,并驱动模拟平台同步转动。这是一个典型的随动控制系统[1-2],若采用传统的自整角方案,则控制系统体积较大、成本较高,并在诸多场景下,有必要利用无线传输的方法实现物体旋转运动的跟随控制[3]。

考虑到某些场合对跟随精度及控制距离没有过高的要求,本文提出了一种基于安卓手机及蓝牙技术的无线随动控制系统设计[4-6]。安卓手机作为控制端,通过其自带的MEMS传感器实时获取物体的旋转角度与旋转角速度,再经手机自带的蓝牙模块将同步控制指令发送到跟随端。跟随端采用传统的步进电机驱动方式,驱动可靠、成本较低,并将步进电机的输出轴与一个绝对式光电编码器的码盘同轴连接,用以检测电机运动的角速度及角位置。本文给出了相应的控制系统架构,以及软硬件实现方法。

1 控制系统架构

如图1所示,该无线随动控制系统由控制端和跟随端两部分组成。控制端为安卓智能手机,负责旋转角度与角速度信号的采集与无线发射。跟随端由HC-06蓝牙模块[7-8],STC12单片机,两相混合式步进电机及其驱动器,绝对式光电编码器构成,负责控制步进电机的转速与转向并获取其角位置信息[9]。

系统具备上电自检功能,当应用程序启动手机蓝牙与HC-06建立连接时,手机当前方位角度值会被发送至单片机,单片机读取与步进电机同轴的绝对式光电编码器位置信息后控制步进电机转动至相同方位。

图1 随动控制系统框图

2 角速度信息的获取

Android系统提供了对传感器的支持,如果手机设备的硬件提供了这些传感器,Android应用可通过传感器来获取设备的外界条件,包括手机的运行状态、当前摆放方向等[10]。Android系统提供了驱动程序去管理这些传感器硬件,当传感器硬件感知到外部环境发生改变时,Android系统负责管理这些传感器数据[11]。本设计中主要应用到了Android手机内的方向传感器和陀螺仪传感器,分别获取移动设备在二维空间的旋转角度值和旋转角速度值。在Android开发时,两种传感器数据的获取方法相同。本设计中获取角速度信息的关键代码如下:

SensorManager=(SensorManager)get SystemService(SENSOR_SERVICE);∥获得传感器管理服务

Sensor sensor_gyr=sensorManager.Get DefaultSensor(Sensor.TYPE_GYRO SCOPE);

sensorManager.registerListener(mySensorEventListener,sensor_gyr,SensorManager.SENSOR_DELAY_ NORMAL); ∥注册传感器的监听器

public void onSensorChanged (SensorEve nt event){

if (event.sensor.getType()==Sensor.TYPE_

GYROSCOPE) {

gsensor[0]=event.values[0];

gsensor[1]=event.values[1];

gsensor[2]=event.values[2];

}∥监听传感器各种事件

protected void onPause(){

super.onPause();

sensorManager.unregisterListener(this);

}∥解除注册传感器监听器

3 跟随端控制系统设计

3.1 硬件电路设计

如图2所示,串口蓝牙模块HC-06的TXD,RXD管脚分别连接到STC12单片机的P3.0,P3.1管脚,用于实现控制端与随动端的数据通信。单片机的P2.0,P2.1与P2.2管脚分别与M415B步进电机驱动器的PUL, DIR,ENA管脚连接,分别为脉冲信号,方向信号与使能信号控制端。通过改变输出脉冲频率实现对步进电机转速的控制,改变输入DIR的电平信号控制步进电机的转向。另外,为了实时检测并反馈步进电机转动的角位置及角速度,在电机输出轴上安装了10 bit、1 024线的绝对式光电编码器[12],构成闭环控制系统。

图2 跟随端控制系统连线

3.2 软件设计

首先,通过配置STC12内部的串行控制寄存器SCON和波特率选择特殊功能寄存器PCON来设置串口工作模式和波特率,使之与蓝牙模块相匹配从而实现两者正常通信。单片机每次从绝对式编码器读取的位置都是唯一的,单位时间内电机转轴的角度变化量就是轴的角速度

ω=2π×(NNUM-LLNUM)/1 024×T

(1)

式中,ω为角速度;NNUM为本次读取的位置值;LNUM为上次读取的位置值;T为读取周期。

本部分设计的核心在于步进电机增量式PID调速算法的实现。增量式PID离散化公式为

(2)

Δuk=uk-uk-1=Kp(ek-ek-1)+Kiek+Kd(ek-2ek-1+ek-2)

(3)

uk=uk-1+Δukuk-1Kp(ek-ek-1)+Kiek+Kd(ek-2ek-1+ek-2)

(4)

PID算法中P、I、D三者并不是都必须出现的,本设计只使用PI控制就能满足要求。在一般的 PID 控制算法过程中,当输入量发生大幅度的改变时,由此形成的较大偏差将不能很快的被消除,且在积分项的作用下,会产生较大的超调,甚至形成震荡。此时,可以采用积分分离的方式处理,在被控量的调节初期,将积分项取消,当被控量接近给定量时,加上积分项的作用,由此可将上式的控制公式改为:此可将上式的控制公式改为

Δuk=uk-uk-1=Kp(ek-ek-1)+NKiek+Kd(ek-2ek-1+ek-2)

(5)

在运用PID算法控制时,需要一个精确的控制周期。可利用控制器的定时器功能产生一个周期性的中断,在周期性中断中进行PID算法的运算和对电机的控制输出。在中断程序中首先要读取电机的当前转速和目标转速,然后利用PID算法计算控制器的输出量,由于是利用输出脉冲频率调节电机转速,所以PID算法计算数据应该是脉冲的频率。定时器周期性中断程序流程图如图4所示。

图3 控制算法流程图

图4 定时器周期性中断程序流程图

4 实验结果与分析

安卓手机控制界面如图5所示,该应用程序的主要功能为实时显示手机运动的角度信息及步进电机跟随的角度信息,并可感应手机运动的方向,相应的按钮颜色变红。

打开安卓应用程序与蓝牙模块配对连接,并将手机水平放置到JZJ-1准直仪转台上,以不同的速度来回转动平台到一定位置,读取跟随端步进电机转过的实际角度值。重复以上步骤,每组测试进行5次、取平均值。实验结果如表1所示,该系统的跟随误差<0.5°。

图5 安卓应用程序界面

转动角度/(°)跟随角度/(°)误差/(°)360359.52-0.48270270.350.35180179.78-0.229090.180.183030.370.37-30-30.19-0.19-90-89.740.25-180-180.15-0.15-270-270.40-0.40-360-360.26-0.26

5 结束语

本文设计了一种以安卓手机控制的无线随动系统。该系统基于Java编程,自主开发了安卓应用程序,可实时获取手机运动时产生的角速度值及角度值,并可通过蓝牙与单片机实现数据的收发;构建了随动端闭环控制,采用积分分离的增量式PI控制算法,最终实现无线控制步进电机的跟随运动。实验结果表明,该随动系统运行稳定,跟随误差<0.5°。与传统的随动控制系统相比,该设计更加智能便捷,有更广泛的应用。在今后的工作中将对跟随系统的动态特性做更深入的研究。

[1] 李曦.基于ARM的随动系统测控装置设计[D].南京:南京理工大学,2013.

[2] 王桂霞,李媛.位置随动控制系统设计与实现[J].机电设备,2007,24(12):29-32.

[3] 任强,周升良,孙玉国.基于MEMS的角位置无线随动控制系统设计[J].传感器与微系统,2013,32(9):122-124.

[4] 高子龙.基于DSP的随动控制系统实验台的设计与研究[D].南京:南京理工大学,2013.

[5] 潘晓伟.基于TMS320F28335的随动控制系统设计及其控制算法研究[D].南京:南京理工大学,2012.

[6] Giap N H,Shin J H,Kim W H.A study on autotuning controller for servo system[J]. Intelligent Control and Automation,2014(5):102-110.

[7] 陈志崇,张祺.基于Android的蓝牙通信接口[J].电子世界,2013(3):16-17.

[8] 李振荣.基于蓝牙的无线通信芯片关键技术研究[D].西安:西安电子科技大学,2010.

[9] 代杰,樊瑜浸,张学丽,等.基于单片机的光电编码器位置检测系统设计[J].计算机测量与控制,2011,19(1):17-19.

[10] 李刚.疯狂Android讲义[M]. 2版.北京:电子工业出版社,2013.

[11] Morgenthal G,Höpfner H. The application of sma- rtphones to measuring transient structural displacement[J].Journal of Civil Structural Health Monitoring, 2012,2(3):149-161.

[12] 蒋利勇,李伟光.绝对式光电编码器的接口装置设计与应用[J].装备制造技术,2007(5):62-64.

[13] 吴强,韩震宇,李程.基于增量式PID算法的无刷直流电机PWM调速研究[J].机电工程技术,2013(3):63-65.

[14] 魏丽君.基于增量式PID算法的高精度温控系统的设计[J].智能电网,2013(2):37-42.

[15] 李敬一,王会彬.基于PID算法的步进电机位置控制[J].军民两用技术与产品,2015(7):55-57.

Design of Wireless Servo-control System Based on Android Phone

YU Lijie,SUN Yuguo,JIAO Jinhui,GOU Can

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

Wireless servo-control has important application in fields of virtual reality, motion capture and so on. Design a wireless servo-control system of angular velocity based on Android phone. Use the micro-electro-mechanical sensor inside android phone to sense object’s rotating angular velocity that as the control signal, bluetooth module HC-06 as the wireless communication medium, and STC125A60S SCM to control following rotation of the two-phase hybrid stepping motor in follow-up end with the PID algorithm of integral separation. The experimental results show that this servo-control system works stably, and the angular position following error is less than 0.5°.

servo-control; MEMS sensor; SCM; stepping motor; PID

2016- 05- 05

上海市大学生创新基金资助项目(SH2014042)

余丽杰(1993-),女,硕士研究生。研究方向:精密机械运动控制。

10.16180/j.cnki.issn1007-7820.2017.04.040

TN926+.22;TP212

A

1007-7820(2017)04-159-04

猜你喜欢
安卓角速度蓝牙
iPhone不卡的秘密曝光:安卓也能享受
蓝牙音箱的直线之美
文物表情包
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
圆周运动角速度测量方法赏析
紧急:蓝牙指尖陀螺自燃!安全隐患频出
一种基于安卓系统的手机侧抓包分析方法
半捷联雷达导引头视线角速度提取
基于构架点头角速度的轨道垂向长波不平顺在线检测