![Arduino案例实战(卷Ⅳ)](https://wfqqreader-1252317822.image.myqcloud.com/cover/543/26793543/b_26793543.jpg)
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=1739291819-9Y2PvyeL3TXCfgtlUze4nJ8mhjLJo9HI-0-3e1c7f0e177c76d89e38e8c815f551e8)
图3-1 整体框架图
2.系统流程图
系统的流程如图3-2所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P86_3217.jpg?sign=1739291819-adbUUu9ZpvspJqbyQXz38nB3C3Q773cr-0-19f257ca911b72de7fdbb78a0b3c88a5)
图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=1739291819-rPvVKZ8a87mFWiESiJ3MarzycOqN5VwH-0-e938b44dcd3fadb73d98c608d8b7ce52)
图3-3 总电路图
表3-1 端口引脚连接
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T88_11151.jpg?sign=1739291819-aNHNBBfMgKHAr5fFs3rfI2rZNlYyVxhK-0-31eff6e392f7ab6ec3467eb209333c97)
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=1739291819-qjEwUk4Xc0FSTcF0JcWvmZpudFatkPBa-0-2a5b859eb765ed304a6b7997f872840a)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P89_3256.jpg?sign=1739291819-jXraiot3T2LVPmKfaGHD1TGOPy6RNPCg-0-0e3d5064552b6488f54aed58e2307c44)
图3-4 红外循迹模块
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P89_3259.jpg?sign=1739291819-Ugaqbh2ahxK1Nhn0llh4nVAcREzSCPIE-0-fc4887618286d7e2bb177ba268db9419)
图3-5 实物连接图
2)相关代码
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P90_11154.jpg?sign=1739291819-4fEoe7HM5n6pgpdr0nlrTySPtRugtYxR-0-efdbfa3c0411d855665ba204c93aa047)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P91_3280.jpg?sign=1739291819-8LIeT42A9z2d6uwlR75Gse38y9pV3E8B-0-5638db3c9963123f352dd43da71f1795)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P92_11155.jpg?sign=1739291819-Zy9KCsa8vrMOcqu6msVDYKwQtJEjuWzG-0-3a194e0a03a5cc3d700615ca64e6e9e4)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P93_11156.jpg?sign=1739291819-fdW0XAMoEKp44nBvQZKlXx4abYqkfHe4-0-fe30f42089563aa1c0ff36271069db85)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P94_11157.jpg?sign=1739291819-9khS6qZglMlS53TXbCPveBy76dStKPfN-0-ad616fb8f8ccf7accb03e19bc497502c)
需要说明,小车走迷宫原理有两个关键部分:一是小车需要正确辨别遇到的各种路口(╋字形路口、┳形路口等共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=1739291819-kMzLrqvc487xCbpALfqjRRXBtKK3mK7r-0-cf320bea438f6c28ad7db7594548b38e)
图3-6 WiFi无线模块ESP8266接线图
表3-3 遥控模块端口的引脚连接说明
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-T95_11160.jpg?sign=1739291819-Myhcbldapp64K3ILiIWi9jwFVE2sWhCK-0-bb81628c2ccd6d658b63f5d1f5c26b9b)
2)相关代码
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P95_11161.jpg?sign=1739291819-bCN1ShznNPOZkNCITD8K4PE22kkfHnki-0-e2693a3b8769e2787df540a736c77373)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P96_11162.jpg?sign=1739291819-gWPusalP7J6GDdWg7w4NY8yXjN7h6KjF-0-146995d55b232e1f8c648b0e1b5e9181)
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P97_11163.jpg?sign=1739291819-iZZk1F8azT38VlB3hRICihHF0yX9s9o5-0-f0b68ba5fbe0ea568039ead8ac2bbe4e)
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=1739291819-MSV98kHS3rIzfIBFo3vcDqnT3MFWYIyg-0-6fcef4b4de17f4df9ae6b9dbc0696656)
串口调试工具使用及AT命令如图3-7所示。先确定USB转TTL连接的端口,再打开串口调试工具,设置如图3-7中的串口参数,进行确定。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P98_3380.jpg?sign=1739291819-qsb2gRUB2CpLEiUJmjkeViutKLVFTR94-0-b13bf3525ee6cbf9f1c3ff12cbb1e4da)
图3-7 串口参数
AT命令输入界面如下,逐个输入命令,如图3-8所示。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P99_3386.jpg?sign=1739291819-VsfB6uY8wjnRQhgnb48D16nzZAi8xar5-0-f7baf1018102400ea1ff7f756a6f4424)
图3-8 AT命令图
设置WiFi应用模式为Station,依次输入以下命令(v0.9.5.2版):
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P99_11167.jpg?sign=1739291819-2tNJA0IJibVsZIoukJS6k2Dn8n0ncxME-0-2771a069f7550997a676e5793b715dec)
完成以上命令后重启,自动进入透传模式,并连接贝壳物联的服务器。在手机上下载贝壳物联的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=1739291819-VshagM8SOCCpynvTM1Hyw8eJoYvurAOJ-0-c1246bf9a8e6a1141d45cf7b66683eef)
图3-9 贝壳物联的APP图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3396.jpg?sign=1739291819-vrL7fZ4LMr5D1wTLTITzjI4x5Vv4TCWA-0-ad1b086d5bf8f2550c6820a0d920ee66)
图3-10 智能对接模块图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3399.jpg?sign=1739291819-TqsfFR97LdTwb82i1SlAQ5uxUgUWnfO3-0-32756a8230f85ed609cb9bc3cab0b3f8)
图3-11 设备信息图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P100_3403.jpg?sign=1739291819-2Ef5YyKAddIhppwxgLKkqr4tPmAghDTl-0-c5f915091153ad8cbd45c4dfd1d3f3d7)
图3-12 遥控命令图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P101_3408.jpg?sign=1739291819-sV4avxS5JiSrHukIcXJL785kpMK2mVHc-0-42d2c9a5c4eea4bfa219b99505e26210)
图3-13 公开智能设备图
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P101_3412.jpg?sign=1739291819-FeMN8Fq40sgllYxbShUvFksKAtDe7W2m-0-ee0dff8308f3642ce4515d0dfaaa3c3e)
图3-14 Arduino详细界面图
单击“遥控”,进入图3-15所示的界面,待连接成功后,即可遥控小车机器人。
![](https://epubservercos.yuewen.com/1759EC/15253385105228106/epubprivate/OEBPS/Images/Figure-P102_3418.jpg?sign=1739291819-4oxzxRdzPRKHbWG7Gfp55VKW0ag2wDgJ-0-018757be93c70bad52ca76353ee2ee0a)
图3-15 遥控小车机器人图