3.3 功能及总体设计
本作品主要分为两部分进行设计:远程无线遥控部分和红外循迹部分。远程无线遥控部分主要是通过WiFi无线模块ESP8266连接手机热点,并与贝壳物联网进行连接,通过贝壳物联网,在手机或者计算机上进行机器人的远程遥控操作、获取对话数据;红外循迹部分主要是通过机器人自身进行检测、调节,通过机器人底部五个红外循迹模块进行检测,可以实时地调整路线,以达到更好的循迹功能。
3.3.1 功能介绍
远程遥控功能使用贝壳物联网中的智能设备对接,通过设备窗口将机器人与操作界面进行关联,操作界面中有执行(play)、停止(pause)、前进(up)、后退(down)、左转(left)、右转(right)等几个主要操作按钮。而红外循迹模块功能,通过安置在底部的红外循迹传感模块实现,最左边和最右边的传感器主要用来判断路口形状,包括╋字形路口、┳形路口、┫形路口、┓形路口、┣形路口、┏形路口和直行路口。左2和右2的传感器主要进行角度的调整,循迹功能整体遵守的原则是左手原则,即左行大于直行,直行大于右行,没有路径就掉头,最终到达终点。
3.3.2 总体设计
总体设计主要分为两个模块设计和小车框架设计。小车总体框架由1个小车身板、2个舵机、3个车轮组成;远程无线遥控模块主要用的是ESP8266,将它与Arduino UNO开发板进行连接;5个红外循迹模块成箭头形,安放在车身前沿;除此之外,还有Arduino UNO开发板和供电装置,为了方便起见,供电设备使用充电宝。
1.整体框架图
项目的整体框架如图3-1所示。
图3-1 整体框架图
2.系统流程图
系统的流程如图3-2所示。
图3-2 系统流程图
用黑色电工胶带贴好行走路线,开启手机热点。将Arduino UNO开发板与供电装置相接后,开启透传模式的ESP8266就会自动连接上手机热点,等待贝壳物联网上的账户上线之后,就可以通过控制按钮遥控小车机器人。如果没有控制信号,机器人就会停在原地。将机器人遥控到所贴的路线处,按下play按钮,机器人执行循迹功能,直至走到终点。在执行循迹功能的过程中,如果有其他控制信号输入,小车机器人将执行控制信号。
3.总电路图
系统的总电路如图3-3所示。电路图中主要的器件有Arduino UNO开发板、舵机、红外循迹模块TCRT5000、WiFi模块ESP8266、面包板和公母线,在Fritzing电路图中,以引脚相同的器件表示所用的元件。端口引脚连接说明如表3-1所示。
图3-3 总电路图
表3-1 端口引脚连接
3.3.3 模块介绍
本项目主要包括以下三个模块:主程序模块、SD卡模块和输出处理模块。下面分别给出各部分的功能、元件、电路图和相关代码。
1.红外循迹模块
1)功能介绍
在接收到play信号之后,循迹功能开启,5个红外传感器开始工作。元器件包括2个舵机、5个红外循迹模块TCRT5000、Arduino UNO开发板。电路如图3-4所示。循迹模块的端口引脚连接说明如表3-2所示。实物连接如图3-5所示。
表3-2 循迹模块的端口引脚连线
图3-4 红外循迹模块
图3-5 实物连接图
2)相关代码
需要说明,小车走迷宫原理有两个关键部分:一是小车需要正确辨别遇到的各种路口(╋字形路口、┳形路口等共8种情况);二是在第一遍走迷宫时,要设计一个算法对不能到达迷宫的路线予以排除,并记录最优路径。
2.远程无线遥控模块
1)功能介绍
WiFi模块ESP8266主要用来和手机的热点相连,进而和贝壳物联网进行对接。元器件包括:WiFi无线模块ESP8266和Arduino UNO开发板。ESP8266的接线如图3-6所示。遥控模块端口的引脚连接说明如表3-3所示。
图3-6 WiFi无线模块ESP8266接线图
表3-3 遥控模块端口的引脚连接说明
2)相关代码
3)ESP8266透传设置(手动设置)
该设置的硬件包括USB转TTL模块和ESP8266-01(固件版本v0.9以上)。软件包括网络串口调试助手v519和USB转TTL模块驱动。接线如表3-4所示。
表3-4 接线模块
串口调试工具使用及AT命令如图3-7所示。先确定USB转TTL连接的端口,再打开串口调试工具,设置如图3-7中的串口参数,进行确定。
图3-7 串口参数
AT命令输入界面如下,逐个输入命令,如图3-8所示。
图3-8 AT命令图
设置WiFi应用模式为Station,依次输入以下命令(v0.9.5.2版):
完成以上命令后重启,自动进入透传模式,并连接贝壳物联的服务器。在手机上下载贝壳物联的APP,界面如图3-9所示。
本节所使用的主要是智能对接模块,单击进入该模块,其界面如图3-10所示。
图3-10中的界面显示了搜索到的公开智能设备,我们的设备名为puzzle,由于没有打开,所以列表中未显示。查看设备就可进入设备详情界面,如图3-11所示。
本节主要使用的是遥控命令,目前显示在线状态,可使用,如图3-12所示。
图3-12是遥控命令界面,本节所使用的play、up、down、left、right、pause等操作按钮在这里都有显示。up为前进,down为后退,left为左拐,right为右拐,pause为暂停,play为启用循迹功能。
以上展示的都是在手机界面进行操作的,同时还可以在计算机上登录贝壳物联网,操控小车机器人。界面都是类似的。首先是进入公开智能设备列表,找到你的设备,如图3-13所示。之后进入设备信息界面,如图3-14所示。
图3-9 贝壳物联的APP图
图3-10 智能对接模块图
图3-11 设备信息图
图3-12 遥控命令图
图3-13 公开智能设备图
图3-14 Arduino详细界面图
单击“遥控”,进入图3-15所示的界面,待连接成功后,即可遥控小车机器人。
图3-15 遥控小车机器人图