使用NodeMCU的无线控制机器人
扫描二维码
随时随地手机看文章
因为机器人,自动化才成为可能,现在他们正在做工业中的大部分工作。机器人被编程来完成重复的任务,但它们也可以被手动操作来完成一些复杂的任务,比如手术。但现在,随着人工智能和物联网的引入,机器人能够自己做出决策,并能够在没有任何人为干预的情况下执行许多任务。
机器人可以通过蓝牙、LoRa、Wifi等多种方式进行无线控制。在本教程中,我们将使用NodeMCU制作一个可以通过互联网浏览器无线控制的网络控制机器人汽车。该网页还将显示机器人与障碍物的实时距离。那么,我们开始吧。
组件的要求
•NodeMCU (ESP-12e)
•L293D或L298电机驱动IC
•2个直流电机
•超声波传感器(HC-SR04)
•12 v电池
•5v电源(选配)
L298D电机驱动模块有一个内置的5v电源,但如果你使用的是L293D IC,那么你必须使用7805 IC制作一个5v电源电路。
线路图
使用NodeMCU的Wi-Fi控制汽车的完整电路图如下:
电路连接如下:
NodeMCU的L298的IN1引脚->的D6
NodeMCU的L298的IN2引脚-> D7
L298的IN3引脚-> NodeMCU的D1
NodeMCU的L298的IN4引脚-> D3
传感器的触发脚- NodeMCU的> D4
NodeMCU的> D8传感器回波引脚
NodeMCU的Vin -> 12v电池
传感器5v和GND -> L298模块5v和GND。
L298模块12v -> 12v电池
为了调整电机的速度,使用驱动模块的使能引脚并将其连接到NodeMCU的PWM引脚(D2, D5),否则使用跳线将它们连接到5v。
Web控制的Robot的最终设置如下所示
代码与说明
要用Arduino IDE编程NodeMCU,请进入File - > preferences - >Settings。
在“附加板管理器URL”字段中输入,然后单击“确定”。
现在转到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中输入esp, esp8266将在下面列出。现在选择最新版本的板并点击安装。
安装完成后,进入“工具>单板> NodeMCU 1.0(ESP-12E模块)”。现在您可以使用Arduino IDE对NodeMCU进行编程。
我们需要两个库来制作基于本地web服务器的NodeMCU。从给出的链接下载这些库,然后进入
ESPAsyncTCP
ESPAsycnWebServer
完整的代码在本教程的末尾给出,在这里我们一步一步地解释代码。
1. 首先,使用#include<>包含所有必需的库
2. 设置Wi-Fi证书,并声明传感器和电机驱动器所需的所有NodeMCU引脚。
3. 现在,我们将制作一个HTML页面,其中将有5个按钮来移动机器人向前,向后,向右,向左和停止。该网页还显示了任何障碍物与机器人的距离。此HTML代码将使用programm关键字存储在Program内存中。
4. 然后在HTML内容中编写一个脚本,该脚本可以在预定义的时间之后运行,以更新汽车与墙壁的距离。Setinterval函数负责在不刷新页面的情况下定期更新距离。这里我们每隔5秒更新一次距离。
5. 现在,创建一个函数来计算到墙的距离。我们可以用声速乘以接收到声音的时间来计算距离。
6. 在void setup函数中,将模块与Wi-Fi连接,并检查来自服务器的传入消息。初始化波特率为115200的串行通信,检查给定的Wi-Fi网络并打印IP地址。
现在,将带有输入字段的网页发送到客户机计算机。
检查来自客户机-服务器的输入URL,并根据方向将GPIO设置为HIGH/LOW。
同样,调用server.on()获取其他方向和更新网页上显示的距离
使用NodeMCU测试Wi-Fi控制机器人
使用USB线将NodeMCU与笔记本电脑/PC相连,在工具菜单中选择单板并上传代码。确保您的模块和笔记本电脑/PC连接到相同的Wi-Fi网络。
现在,打开串行监视器。在这里,您将看到NodeMCU的IP地址。复制此IP并粘贴到浏览器的地址栏中。
在浏览器中输入IP地址后,屏幕上就会加载包含所有5个按钮的网页。
现在,你可以在任何地方使用网络浏览器控制你的机器人汽车。为了使汽车更先进,你可以在机器人的所有侧面添加更多的超声波传感器,也可以通过使用我们在智能公告板项目中使用的HTML表单发送速度值来调整汽车的速度。
本文编译自iotdesignpro