APP下载

机器人手机编程系统设计

2017-06-19陈诚斌苏凯雄

网络安全与数据管理 2017年11期
关键词:舵机蓝牙语句

陈诚斌,苏凯雄,刘 梦,赵 阳,邱 瑾

(福州大学 物理与信息工程学院,福建 福州 350100)



机器人手机编程系统设计

陈诚斌,苏凯雄,刘 梦,赵 阳,邱 瑾

(福州大学 物理与信息工程学院,福建 福州 350100)

设计了一种基于手机Android系统、机器人ARM核心控制板、蓝牙系统的手机端编程系统。该系统将机器人常见控制指令函数封装成库,存储在机器人控制器内存中,Android手机端使用自主定义的控制指令,通过与机器人的蓝牙连接,将手机编程的指令传输给机器人,存储在机器人的EEPROM中,最后由机器人调取完成相应控制。该系统控制简单,一定程度上摆脱了传统的电脑编程,利用智能手机的便捷性,使得机器人编程变得更加便捷简单,并通过实验证明了设计方法的有效性。

Android;机器人;手机编程;蓝牙

0 引言

图1 控制流程

目前,机器人产业蓬勃发展,于此同时,教育机器人、玩具机器人层出不穷,以乐高为首的国内外机器人厂商纷纷推出自己的产品。目前市面上主流机器人产品主要编程采用的是图形化编程[1]、计算机语言编程、实体编程[2]等编程方式,运用在教育、开发等领域。然而机器人开发过程中,需要掌握一定的计算机编程规范,并且需要拥有电脑、实体编程开发套件等,有一定的硬件要求。在现在青少年机器人创客教育中,人手一台电脑进行学习开发使得开发的便携性受到一定的制约。现如今Android手机拥有便携性强、普及度高、开发性强、操作简单等优点。本文借助Android手机的方便性,主要从软件方面解决使用手机上位机对机器人进行动作的编写、参数的整定、路程的规划、指令的执行等控制。

1 机器人手机编程控制系统的总体设计

本方案机器人控制系统采用ARM内核的STM32作为主控制器,将底层部分程序封装成功能库,与外界仅留下蓝牙通信接口,通过手机与机器人蓝牙直连。整体控制如图1所示。编程时,通过蓝牙建立手机与机器人的连接,将用户手机编程信息传送并存储在机器人EEPROM。当接收到手机发出的执行指令后,机器人会挂起蓝牙连接,程序内部会顺序读取EEPROM的数据,与自建程序指令集进行比对,匹配出相应的程序或参数指令予以调用并执行,执行完成之后,再次建立连接,等待新一轮的指令。

2 机器人控制系统硬件设计

2.1 UI设计

友好的交互方式是解决机器人与人本身交互的必要环节[3]。本设计使用TFT触摸屏作为设计的显示单元,显示主体如图2所示。主菜单显示多程序运行界面、电压检测、指南针显示、陀螺仪显示、蓝牙通信等功能。该控制器可以存储多个程序,用户可选择何时运行哪个程序。摆脱了以往控制器只能存储单个程序,需要更换程序就不得不连接重新下载的麻烦。同时控制器自带的自检程序可以检测几乎所有的硬件,可以非常方便地诊断机器出现的各种问题,并将数据显示在UI界面上。

图2 UI界面

2.2 A/D电压检测

在机器人设计中要实时监控机器人的动力电源使用情况。本设计基于STM32自带的ADC模块,由于STM32的ADC只能在0~3.3 V之间测试,所以,本设计以分压扩充量程,采用一个I/O即PA1作为ADC通道脚使用,又通过外扩展电路扩充量程,具体如图3所示。本设计实现对0~30的电压点测试,并返回电压值,以伏特为单位,本设计主要用于电源电压的测试,来判断是否需要充电。

图3 A/D硬件电路图

2.3 舵机控制

在机器人控制中,舵机控制是其中重要一环。数字舵机将由数据线上输入的方波与自身内部产生的一个标准波形进行比较,一般频率为50 Hz[4]。比较后数字舵机控制电机转动,两波形占空比的差值决定了电机转动角度。单片机的定时器输出引脚可输出一定频率的方波,即可控制舵机。本设计开放11路I/O口输出,用标准的舵机三线接口与外界舵机连接,硬件连接时,将0~180度舵机的正负直接连电源正负,数据端连接控制引脚PWM占空比来控制舵机转向。

2.4 EEPROM

EEPROM在本设计中尤为重要,本设计中EEPROM的芯片型号为24C02。该芯片的总容量是256 B,芯片通过I2C总线与外部连接[5]。通过STM32来实现对24C02的读写。串行EEPROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便、体积小、数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。

2.5 蓝牙

蓝牙技术是短距离低功耗的一种无线通信技术,其作为一种无线通信技术标准,采用快速确认和调频方案,从而实现蓝牙模块良好的抗干扰能力和系统稳定性,可以完成固定设备、移动设备之间的短距离数据交换。随着无线通信技术的发展,蓝牙的使用越来越普遍[6]。本设计采用手机与蓝牙通信,实现程序编写后传送,并且有着参数回传显示的功能。

3 手机编程系统软件端设计

3.1 机器人控制端软件库设计

机器人将调用内部程序库中对机器人开放的端口和功能模块[1]接口,通过自身设计的特定编程方式将软件库进行组合,完成用户对机器人的编程。所以本设计将所有机器人的开放接口、端口以及功能模块进行模块化封装,封装成库之后,方便调用。根据C语言各类基本语句,封装了循环语句、条件语句、开关语句,并且预留了辅助控制语句字段,方便手机端调用。

在机器人控制端,本设计将以下几个部分封装成函数库以供调用。

(1)基础动作控制函数,如控制机器人前后左右运动、机器人电压检测采集、机器人自身方位数据采集、机器人姿态数据采集等。此函数库将机器人原有的较为复杂的控制指令以及一些融合滤波算法封装成库,实现其功能,只开放调用接口。主要用途是用户在编写机器人动作控制指令时,方便机器人控制端调用函数库来实现动作实现。

(2)机器人外部接口控制函数,如舵机控制、A/D采集、I/O控制、RS485接口、I2C接口、串口、PWM、外部中断等函数库。此类函数库主要方便在于使用外设时,能快速配好使用参数,读取外设参数值或生成所需要的参数值控制外设,简化单片机外围功能模块的配置,方便调用。

(3)机器人内部常用函数,如延时、内部中断、EEPROM读写、参数显示等功能函数库。此类函数库一般是单片机内部实现使用,可以实现一些特定的功能。

(4)一些C语言自带的基本语句、特殊字段、数组、字符串等,此类库函数较为特殊。由于是通过手机编程实现机器人控制,不能直接在PC端对机器人进行函数编写,使得一些基础语句以及数组等的控制,需要通过特定的函数库来实现,才能实现如循环语句、条件语句等C语言功能。

3.2 手机Android端软件设计

手机端分为两部分。第一部分是机器人软件编写。手机程序编写采用的是顺序编写,编程逻辑与PC端基本相同。手机端定义了各种不同字段,与机器人控制端的各个库函数一一对应。在用户编写完程序后,手机端会通过蓝牙将用户编写的程序以数据编码的形式传到机器人控制端,让机器人控制端进行操作。第二部分是机器人的状态查询部分,可以显示机器人电压、各个外设的状态等。

3.3 手机编程实现设计

在进行手机编程时,机器人端主函数主要实现与机器人建立连接的手机通信以及对机器人的EEPROM进行读写的操作。

图4 手机编程程序框图

首先,机器人会与手机建立连接。之后机器人端会循环等待手机端发来的编程指令。当手机端编程结束后,机器人端将按顺序接收机器人编程指令,同时按顺序擦写EEPROM,将手机传来的指令编码按行写入EEPROM中。手机端传送完毕时,机器人端会暂时挂起蓝牙通信,与此同时,将EEPROM中的数据编码进行解码,与机器人的函数库进行一一匹配,并且按EEPROM的顺序执行,达到手机编程的目的。完成手机编程后再继续蓝牙连接,等待新的通信指令。其框图如图4所示。

4 结论

本文设计了机器人手机编程系统的基本构架,实现了机器人通过手机编程进行控制。通过搭建机器人控制库平台、机器人内部库函数设计、控制系统程序读取方法三个方面的重新设计,可以根据不同编程水平的人群,不用PC,使用手机进行个性化的编程设计,完成特定机器人动作设定。手机编程较PC编程更为简单、方便,调试更加简洁,较容易入门。

[1] 赵子建,梁建宏,张代兵.模块化机器人图形化编程系统的开发与研究[J].机器人技术与应用,2016(1): 32-35.

[2] 康亮环,曹东刚.CONENTITY:一种基于进程的自主并发实体编程模型及其实现[J].中国科学(信息科学),2013(1): 126-142.

[3] 杨雪娇,郝业,阮军洲.ANDROID平台增加专用无线模块的设计与实现[J].计算机与网络,2016,42(7): 64-67.

[4] 和江,文建刚,侯文.基于模糊神经网络PID算法的舵机控制与仿真[J].中北大学学报(自然科学版),2016,37(2): 150-156.

[5] 陈长生.基于ARM9的IIC串行通信[J].电脑知识与技术,2010,6(6): 1490-1493.

[6] 吕艺.蓝牙模块无线通信设计与实现[J].科技经济导刊,2016(8): 31.

Design of robot mobile programming system

Chen Chengbin, Su Kaixiong, Liu Meng, Zhao Yang, Qiu Jin

(School of Physics and Information Engineering, Fuzhou University, Fuzhou 350100, China)

A mobile phone terminal programming system based on mobile phone Android system, robot ARM core control panel and Bluetooth system is designed. In the system, the common robot control command functions are packaged into a library, which is stored in the memory of a robot controller. The Android mobile terminal uses its own defined control instruction, to transmit mobile phone programming commands to the robot by connecting with the robot’s Bluetooth. The commands are stored in the EEPROM of robot. And finally, the robot will complete corresponding control. The control system is simple, and get rid of the traditional computer programming to some extent, the robot programming becomes more simple and convenient by using the convenience of smart phones. Through the experiment,the validity of the proposed method has been proved.

Android; robot; mobile phone programming; Bluetooth

TP311

A

10.19358/j.issn.1674- 7720.2017.11.017

陈诚斌,苏凯雄,刘梦,等.机器人手机编程系统设计[J].微型机与应用,2017,36(11):57-59.

2017-01-05)

陈诚斌(1992-),男,硕士,主要研究方向:智能硬件、数字通信。

苏凯雄(1959-),男,硕士,教授,主要研究方向:无线通信、卫星通信、数字电视广播、多媒体应用系统。

刘梦(1996-),女,本科,主要研究方向:数字信号与处理。

猜你喜欢

舵机蓝牙语句
蓝牙音箱的直线之美
重点:语句衔接
含齿隙弹载舵机的全局反步模糊自适应控制
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
紧急:蓝牙指尖陀螺自燃!安全隐患频出
基于云模型的舵机同步控制
我喜欢