- Arduino案例实战(卷Ⅳ)
- 李永华
- 1972字
- 2021-03-23 22:59:52
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所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P85_3211.jpg?sign=1739694556-eIWBED24x3wFZ6GoPKVNs5NRucsMEUAb-0-bf92a4781f3f8c051c859ab6f88bd905)
图3-1 整体框架图
2.系统流程图
系统的流程如图3-2所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P86_3217.jpg?sign=1739694556-HL9yG6kOH41x76qz8HmWRkTgLiQDCltJ-0-6f48386a0d6ee4a95dc170e57626ae89)
图3-2 系统流程图
用黑色电工胶带贴好行走路线,开启手机热点。将Arduino UNO开发板与供电装置相接后,开启透传模式的ESP8266就会自动连接上手机热点,等待贝壳物联网上的账户上线之后,就可以通过控制按钮遥控小车机器人。如果没有控制信号,机器人就会停在原地。将机器人遥控到所贴的路线处,按下play按钮,机器人执行循迹功能,直至走到终点。在执行循迹功能的过程中,如果有其他控制信号输入,小车机器人将执行控制信号。
3.总电路图
系统的总电路如图3-3所示。电路图中主要的器件有Arduino UNO开发板、舵机、红外循迹模块TCRT5000、WiFi模块ESP8266、面包板和公母线,在Fritzing电路图中,以引脚相同的器件表示所用的元件。端口引脚连接说明如表3-1所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P87_3223.jpg?sign=1739694556-vt3QQdd9sIuFLKAFeC0P8DcKSh55lvc9-0-3fc223b0b93dc2c8a83541ee8311eb7d)
图3-3 总电路图
表3-1 端口引脚连接
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T88_11151.jpg?sign=1739694556-KsmHkVRpcgGNDHw3Nti6N0c4XYcDR6hk-0-23eb7984a397aaa079dd2a199afe6cc7)
3.3.3 模块介绍
本项目主要包括以下三个模块:主程序模块、SD卡模块和输出处理模块。下面分别给出各部分的功能、元件、电路图和相关代码。
1.红外循迹模块
1)功能介绍
在接收到play信号之后,循迹功能开启,5个红外传感器开始工作。元器件包括2个舵机、5个红外循迹模块TCRT5000、Arduino UNO开发板。电路如图3-4所示。循迹模块的端口引脚连接说明如表3-2所示。实物连接如图3-5所示。
表3-2 循迹模块的端口引脚连线
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T88_11153.jpg?sign=1739694556-XBmmIR7nPsAONWwIwpaRFHH0tKDmDjBz-0-d603f9a152d2742c6b6eb9fddbf4cf89)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P89_3256.jpg?sign=1739694556-kdALnBjcmFE7JafH5JUYatDDQJ79Kv84-0-7246030cb33e67a60bdfd00f4111877f)
图3-4 红外循迹模块
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P89_3259.jpg?sign=1739694556-Fwv3uNVtAIYzaYFc5CG2mHAAHsRKRVDe-0-5bec9fd6e0a46478f52f04249b48d418)
图3-5 实物连接图
2)相关代码
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P90_11154.jpg?sign=1739694556-TgOj8pzHoceb55DcY9v2YuGn8nKN73FY-0-ad0007303a809dab6444d24afec9e4c8)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P91_3280.jpg?sign=1739694556-ULbVpc84hT6usevpTsuwn8jY5KAOiSf9-0-c2f9c093f7d98e12c19f94d3e44181c9)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P92_11155.jpg?sign=1739694556-RB8ifC6OF22DZPafHj1RVTC2TekrKU7N-0-2bd3fc8291d2398701f069a2ec65e5de)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P93_11156.jpg?sign=1739694556-eBQN8j27Kf34BtJwmJcQ7BVvoEDgilqh-0-a3c3aa91439b6e8bb14540b5e0c090c2)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P94_11157.jpg?sign=1739694556-XrtlpaXRxRdJq7M6U58PDsVZFVS2l6hS-0-a4942b0e459c03844e64de18caaa5cd7)
需要说明,小车走迷宫原理有两个关键部分:一是小车需要正确辨别遇到的各种路口(╋字形路口、┳形路口等共8种情况);二是在第一遍走迷宫时,要设计一个算法对不能到达迷宫的路线予以排除,并记录最优路径。
2.远程无线遥控模块
1)功能介绍
WiFi模块ESP8266主要用来和手机的热点相连,进而和贝壳物联网进行对接。元器件包括:WiFi无线模块ESP8266和Arduino UNO开发板。ESP8266的接线如图3-6所示。遥控模块端口的引脚连接说明如表3-3所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P95_3305.jpg?sign=1739694556-CZg1xfDtnNaed831WvbKA0qB7MryG080-0-cb8ba6a5b781cc65c457fdc52dfd7d6e)
图3-6 WiFi无线模块ESP8266接线图
表3-3 遥控模块端口的引脚连接说明
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T95_11160.jpg?sign=1739694556-sCtECp4mdxw4lHWfuxSD9JNi3FwvvevR-0-05acd3aac2a1558d5cbd257c3696bbf6)
2)相关代码
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P95_11161.jpg?sign=1739694556-ZznBIxzPwQ6Nh2fSP1RRQ8gBqECixiGJ-0-207193e0b6ca88a593ed8189971e7935)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P96_11162.jpg?sign=1739694556-LTYKzQCYscM01BEd7z387boUS6Rn9vVv-0-cb6b06b2b644db647121cca0bc9643fe)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P97_11163.jpg?sign=1739694556-9C3NZegWDYHNrRN39pS0WhBSsDa0A7OD-0-0b16afb560b637513b84d335ab77a7cf)
3)ESP8266透传设置(手动设置)
该设置的硬件包括USB转TTL模块和ESP8266-01(固件版本v0.9以上)。软件包括网络串口调试助手v519和USB转TTL模块驱动。接线如表3-4所示。
表3-4 接线模块
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T98_11166.jpg?sign=1739694556-0FvOusuiyQWxjKkcddEVSeClHdofBtvt-0-88ea42fdb87fffb46188596aea9722c4)
串口调试工具使用及AT命令如图3-7所示。先确定USB转TTL连接的端口,再打开串口调试工具,设置如图3-7中的串口参数,进行确定。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P98_3380.jpg?sign=1739694556-qGMbUXI1cTNktseSMISlYEiuEGBksnUT-0-139c9e99d265df0e50e03b2faa0e1816)
图3-7 串口参数
AT命令输入界面如下,逐个输入命令,如图3-8所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P99_3386.jpg?sign=1739694556-DJO5YSKtAqFatG3bV00y5SR83OPQjKcU-0-77f386482da4f040f8c7788211490f66)
图3-8 AT命令图
设置WiFi应用模式为Station,依次输入以下命令(v0.9.5.2版):
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P99_11167.jpg?sign=1739694556-gp2z8u1BFNwmeUjIGJfMUN9xQ4hrPHZu-0-9c91cd2480362934237fce4049676656)
完成以上命令后重启,自动进入透传模式,并连接贝壳物联的服务器。在手机上下载贝壳物联的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所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3393.jpg?sign=1739694556-KNoQtpRl2AzBS24htt40bcpZg7j4hPar-0-4c4547b274961c80dca9a03e1940d460)
图3-9 贝壳物联的APP图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3396.jpg?sign=1739694556-XQbak61cKGddeke6ET7WnXUvFEaqmhii-0-0203e467fd13df761d26818e73921ad7)
图3-10 智能对接模块图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3399.jpg?sign=1739694556-aLjqj3X75BmxkHvoVbP4AkIwP1jhkKLh-0-7530d22b3cda6c3d06677f8fa0bfd9f7)
图3-11 设备信息图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3403.jpg?sign=1739694556-KgJP8uvhe9MXEt5BXHQIwbgaR925j7cx-0-892db054a1a263c6b7f3191d50a340a9)
图3-12 遥控命令图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P101_3408.jpg?sign=1739694556-ilQJMKw0hnedPwLOGrUaNAek7GE4BhPF-0-07af86a67b0315040c3d85c7b26ab616)
图3-13 公开智能设备图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P101_3412.jpg?sign=1739694556-T6PsEHBqXfUxYhxXW5zWRIlC3kcVvMKT-0-58732ffd269972e8ef98f953391d302f)
图3-14 Arduino详细界面图
单击“遥控”,进入图3-15所示的界面,待连接成功后,即可遥控小车机器人。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P102_3418.jpg?sign=1739694556-5uZJzHThGo9tUbYzgw6whnd8jxzwNst3-0-1c8379a081a588f8e5de2a2ecbe7f917)
图3-15 遥控小车机器人图