基于单片机的蓝牙移动机器人设计

2020-12-28 11:58程丽霞
机械工程与自动化 2020年6期
关键词:波特率移动机器人蓝牙

程丽霞

(太原工业学院 机械工程系,山西 太原 030008)

0 引言

第一代机器人出现在20世纪60~70年代,以示教再现型为主;20世纪80年代,机器人在发达国家的工业中得到大量应用,如搬运、装配、焊接机器人等;20世纪90年代,机器人开始在军用、医疗、娱乐等多种领域中得到应用;进入21世纪后,智能型机器人成为了重点的研究方向,我国的机器人技术应用市场也在逐步形成。本文设计了一款可以对手机发出的指令进行接收并执行的六轮蓝牙移动机器人,该移动机器人同时具有红外避障的功能,增加了小车的行车安全性。

1 移动机器人总体方案

目前已有的移动机器人分为轮式机器人、腿式机器人和轮腿式机器人。轮式机器人可以对简单地形进行探索或者对地面移动速度较高的目标进行观察分析,但是对于爬坡等复杂地形探测却无能为力。腿式机器人适用于对复杂地形的探索,具有较好的爬坡性能,缺点在于机动速度极低。轮腿式机器人是轮式和腿式机器人的结合体,拥有了这两种机器人的优点,主要在火星车、月球车等航天探测工具上应用。本文设计了一种具有蓝牙模块、红外避障功能的四轮移动机器人,采用STC89C52系列单片机作为小车的控制芯片,采用L298N作为电机驱动模块,以红外避障传感器作为感知模块;在软件方面,采用keil U4软件进行编程和编译,调试时采用stp-isp烧录软件。在小车启动时,通过手机的蓝牙功能与小车的蓝牙模块对接,观察到蓝牙指示灯亮以后,开始发送移动指令;在小车行驶时,通过红外传感模块对前方障碍进行探测,并用手机软件控制小车的前进方向,从而实现主动避障的功能;在驱动方面,选择了直流电机,在保证小车动力的前提下提高了小车运动的平稳性。

2 硬件部分设计

采用四轮驱动结构可以增大小车的横向阻力,由于采用了更多的电机,爬坡能力较两轮驱动有所提高。蓝牙模块的设计是为了实现手机和小车之间的信号连接以及传输,从而实现控制端和接收端的无线通讯功能,实质就是利用单片机串口进行通讯。HC-06蓝牙模块是一种性能很好的蓝牙串口模块,可以同手机、笔记本电脑等各种智能终端进行配对,它能支持的波特率范围可以达到4 800 Bd~1 382 400 Bd,同时可以承载3.3 V~6 V电压的单片机系统。图1为HC-06模块与单片机的连接示意图。

图1 HC-06模块与单片机的连接示意图

在红外避障模块中采用了红外光电传感器,其原理是:红外线处于一直发射的状态,当接收器没有收到前方反射回来的红外信号时,红外光电传感器判断前方没有阻碍物,此时单片机调用小车前进程序,小车继续前进;如果小车前方的传感器接收到反射回来的红外信号,此时红外传感模块会给单片机发出信号,单片机接到信号后,则调动小车的转向程序运行,直到红外模块不能接收或者接收不到反射回来的红外信号,单片机停止调用小车的转向程序,转而调用小车的前进程序,如此完成一系列的直行和避障转弯等功能。

电机驱动模块选取了L298N,它自带稳压模块,是一种可以通过大电流并可以承受高电压的驱动电机模块,通过该模块可以直接驱动蓝牙小车的电机,其输入输出都在3.6 V~6 V的范围内,采用6 V电源输入刚好符合电路总电压的最低要求,可直接供电,同时驱动模块配有散热片,有效地保证了用电安全以及续航能力,从而维持小车的平稳运行。本设计采用了工作电压为3.6 V~6 V的直流步进电机,当步进电机的驱动模块接收到一次脉冲信号后,电机按照设定的转动方向转额定的角度即步距角,通过发射脉冲信号的数量达到精准定位的目的,同时可以通过控制发射脉冲信号的间隔即频率来控制转速。

3 控制系统设计

为了实现移动机器人的各项功能,控制芯片采用了STC89C52单片机,它是一种高性能低消耗的控制设备,工作频率在0 Hz~40 MHz之间,具有32个通用I/O口,适合多数设备工作。控制系统由蓝牙模块、电机驱动模块、避障模块协同完成相应的功能,其功能流程如图2所示。

图2 控制系统功能流程

蓝牙遥控红外避障主要程序如下:

TMOD=0x20;

TH1=0xFd;//11.0592MHz晶振,9600波特率

if(flag_bz==1)//切换到避障模式

if(Left_1_led==1&&Right_1_led==1)//两边传感器均未检测到信号

run();//调用前进函数

if(Left_1_led==1&&Right_1_led==0)//右边检测到红外信号

leftrun();//调用小车左转函数

delay(40);

if(Right_1_led==0&&Left_1_led==0)//两边传感器同时检测到信号

backrun();//调用电机后退函数

delay(40);

rightrun();//调用电机右转函数

4 调试

我们选用了stc-isp软件作为程序烧录软件,选择对应的单片机型号,打开已编译好的程序,连接好端口后,选择合适的通讯波特率,点击烧录。在工作前,分别对蓝牙传输部分、避障部分、电机驱动部分以及单片机最小系统进行调试。在蓝牙模块中,对模块的正常功能进行测试,每隔一秒发送一次AT命令,直到电脑显示蓝牙连接成功。在修改蓝牙串口通讯的波特率时,发送:AT+BAUD1命令,之后发送返回:OK1200命令。这是我们对波特率的第一次修改,之后检测观察蓝牙是否配对成功,如果不可以,则继续修改波特率。以此类推发送:AT+BAUD2;返回:OK2400。一般波特率不超过115 200 Bd,以9 000 Bd为最佳。因为过高的波特率会干扰电脑信号,还会造成单片机系统的不稳定。采用115 200 Bd波特率的单片机来编程,满足蓝牙和单片机的使用要求,即使突然掉电,已经设好的波特率仍然可以被保存下来,下次通电不用重设。通过串口助手发送:AT+NAMEbolutek,可以修改蓝牙的名称,参数名即为手机上显示的蓝牙名称,返回OKbolutek,掉电可以保存。在修改蓝牙配对密码时,发送:AT+PINXXXX,XXXX为设置的密码,返回OKsetpin,首次连接密码为1234。在使用蓝牙模块时,对应安卓手机系统需大于2.0,之后要确定蓝牙模块与手机的波特率是否契合。调试L298N电机模块时外接5 V电压,观察四个输入口的电平是否正常,正常则有红灯亮起,如不正常,可以重新对接口处的杜邦线进行焊接。之后对单片机最小系统功能进行调试,调试完成后观察蓝牙模块和单片机是否能进行正常的收发信号互动,若不能接收,可能单片机烧损或连线虚。在调试避障模块时,用电位器对避障范围(信号强度)进行调试,避障模块上安有指示灯,逆时针调节电位器,增加信号强度(检测距离增加),反之减少。在对小车进行整体调试时,单片机与继电器的指示灯常亮,蓝牙模块指示灯常亮。当小车前进时,在左前方有障碍物时,左侧红外传感器灯亮,小车向右转弯,反之向左。

5 结语

本文设计的基于单片机的蓝牙移动机器人,可通过蓝牙模块与手机终端进行信号传输,同时可以在手机上遥控小车的前进方向,并实现自动避障的功能,为以后远程控制智能车提供了研究基础。

猜你喜欢
波特率移动机器人蓝牙
UART 波特率检测电路的FPGA 设计算法与实现
蓝牙音箱的直线之美
移动机器人自主动态避障方法
CAN 总线波特率自适应程序设计
可以同时应用于不同终端设备的波特率发生器
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
波特率自适应的CAN驱动在嵌入式Linux下的实现①
基于Twincat的移动机器人制孔系统
极坐标系下移动机器人的点镇定