机器人的类型很多,从简单的玩具车到先进的工业机器人。我们已经介绍了使用不同技术的多种类型的机器人,并对其进行了介绍:
- 使用8051单片机的线跟随机器人
- 使用Arduino的Line Follower机器人
- 使用Arduino的DTMF控制的机器人
- 使用8051单片机的手机控制机器人
- 使用Arduino的计算机控制机器人
- 射频控制机器人
- 使用8051的避免边缘机器人
- 使用Arduino的基于加速度计的手势控制机器人
- 使用Arduino的蓝牙控制玩具车
现在,我们在“机器人项目”部分中添加了一个机器人,这次我们将使用Arduino和Blynk App制造一个由Wi-Fi控制的机器人。可以使用任何支持Wi-Fi的Android智能手机对基于Arduino的机器人进行无线控制。
为了演示Wi-Fi受控机器人,我们使用了一个名为“ Blynk ”的Android移动应用。Blynk是与Arduino非常兼容的应用程序,用于创建基于IoT的项目。该应用程序可以从Google Play商店下载,并且可以轻松配置。
配置Blynk应用的步骤:
1.首先从Google Play商店下载它,然后将其安装在Android手机中。
2.之后,需要创建一个帐户。您可以使用当前的Gmail帐户。
3.现在选择Arduino Board并为您的项目命名。
4.记下Auth令牌代码或直接将其邮寄到您的电子邮件帐户,然后将其复制并粘贴到Arduino Sketch(程序代码)中。
5.在Arduino草图中输入此身份验证令牌代码。
//您应该在Blynk应用中获取身份验证令牌。//转到项目设置(螺母图标)。char auth =“ caa17a11c0124d4083d0eaa995f45917”;
6.然后在Blynk应用程序中单击创建按钮。
7.现在选择操纵杆小部件,单击操纵杆,配置操纵杆(请参见最后的视频),然后单击“后退”按钮。
8.之后,按屏幕右上方的“播放”按钮。
最后,在Video中清楚地解释了使用Blynk App的所有这些过程。
所需组件:
- Arduino UNO
- ESP8266 Wi-Fi模块
- USB电缆
- 连接线
- L293D
- 直流电动机
- 电池
- 10K POT(可选)
- 机器人底盘加轮
- 滚轮
- 安卓手机
- Blynk应用
电路说明:
Wi-Fi控制机器人的电路图如下所示。我们主要需要一个Arduino和ESP8266 Wi-Fi模块。ESP8266的Vcc和GND引脚直接连接到3.3V,Arduino的GND和CH_PD也连接到3.3V。ESP8266的Tx和Rx引脚直接连接到Arduino的引脚2和3。软件串行库用于允许在Arduino的引脚2和3上进行串行通信。我们已经详细介绍了ESP8266 Wi-Fi模块与Arduino的接口。
甲L293D电机驱动器IC用于驱动直流电机。电机驱动器IC的输入引脚直接连接到Arduino的引脚8、9、10和11。直流电动机连接在其输出引脚上。在这里,我们使用了9伏电池来驱动电路和直流电动机。
工作说明:
Wi-Fi控制的机器人的工作非常容易,我们只需要在要移动机器人的方向上拖动或滑动操纵杆即可。就像我们要沿前进方向移动机器人一样,我们需要沿前进方向拖动操纵杆“圆圈”。同样,我们可以通过向各个方向拖动操纵杆来向左,向右和向后移动机器人。现在,一旦释放操纵杆,它将回到中心位置,并且机器人会停止。
Blynk应用程序通过Wi-Fi介质将值从“两轴操纵杆”发送到Arduino。Arduino接收这些值,将它们与预定义的值进行比较,然后朝该方向相应地移动机器人。
编程说明:
该程序几乎可以在Arduino IDE中使用。我们只需要下载Arduino的Blynk库即可。并进行一些修改后,用户可以制作自己的Wi-Fi控制机器人。
首先,我们包含了在Arduino IDE中运行此代码所需的所有库,然后从Blynk应用程序的 auth 字符串中输入Auth Token 。在这里,我们将Wi-Fi串行引脚与Arduino的Software Serial连接。选择引脚2作为RX,选择引脚3作为TX。
#define BLYNK_PRINT串行//将其注释掉以禁用打印并节省空间#include
然后,我们为电动机定义了输出引脚(8,9,10,11),并编写了一些方向函数以使机器人沿特定方向移动: void forward(),void reverse(),void right() 和 void left()
此后,在 设置 功能中,我们初始化所有必需的设备,例如为电动机引脚提供方向指示,开始串行通信,提供Wi-Fi用户名和密码。
void setup(){//设置控制台波特率Serial.begin(9600); 延迟(10); //设置ESP8266波特率//对于软件Serial EspSerial.begin(9600)建议使用9600; 延迟(10); Blynk.begin(auth,wifi,“用户名”,“密码”); // wifi用户名和密码pinMode(m11,OUTPUT); pinMode(m12,OUTPUT); pinMode(m21,输出); pinMode(m22,输出); }
现在,我们检查了一些控制机器人的条件。在这里,我们选择了虚拟引脚1(V1),以从Blynk App获取输入以控制机器人。由于我们在应用程序中使用了marge选项,因此我们将在同一引脚获得x和y轴值。
BLYNK_WRITE(V1){int x = param.asInt(); int y = param.asInt(); if(y> 220)forward(); 否则if(y <35)向后(); 否则if(x> 220)right(); 否则if(x <35)left(); 否则Stop(); }
最后,我们需要循环运行 blynk函数 来运行系统。
void loop(){Blynk.run(); }