1. 功能描述
本教程将详细指导您如何通过手机APP,借助WiFi通信实现远程遥控203号样机的移动控制。该样机支持执行以下五种基本动作:前进、停止、后退、原地左转、原地右转,让您轻松完成远程操控任务。
2. 电子硬件
本示例需要提前准备以下硬件组件,请确保物料齐全:
- Basra主控板(兼容Arduino Uno)
- Bigfish2.1扩展板
- 7.4V锂电池
- WiFi无线路由器
- 2510通信转接板
- USB摄像头
提示:本部分及后续的APP设置可配合教程【U011】如何使用探索者通信模块-WiFi无线路由器一起操作,为样机安装WiFi无线路由器和摄像头。
硬件连接步骤
-
连接杜邦线到2510通信转接板:在2510通信转接板的4针接口上,按照图中所示方式插入3根杜邦线。
-
连接杜邦线到WiFi模块:将杜邦线的另一端插接到WiFi模块的串口针脚上。
-
连接USB线:使用USB线将主控板与WiFi模块相连。
-
连接摄像头:将USB摄像头插入主控板或扩展板对应的USB接口。
-
将整套装置固定在样机上:将以上连接好的硬件模块牢固地安装在203号样机上。注意:图中MEGA2560主控板部分与本教程所述功能无关,请忽略。
小提示:连接前请确认所有硬件供电正常,7.4V锂电池已充满电。如果遇到连接不上,请检查杜邦线是否插紧、WiFi模块的串口针脚是否正确对应。
3. 示例程序
编程环境:Arduino 1.6.8
编写以下代码(文件名:203_WiFi_Protocol.ino),并烧录至Basra主控板。注意:烧录程序时,需先将2510通信转接板取下再烧录,完成后即可通过手机控制机器人实现远程监控。
/**************** wifi protocol *********************
版权说明:Copyright 2022 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.
Distributed under MIT license.See file LICENSE for detail or copy at
https://opensource.org/licenses/MIT
by 机器谱 2022-9-28 https://www.robotway.com/
通信协议:
* ff 00 00 00 ff
控制停止的WiFi通信协议
* ff 00 01 00 ff
控制前进的WiFi通信协议
* ff 00 02 00 ff
控制后退的WiFi通信协议
* ff 00 03 00 ff
控制左转的WiFi通信协议
* ff 00 04 00 ff
控制右转的WiFi通信协议
****************************************************/
#include
int moveDirection; // 1-forward, 2-backward, 3-left, 4-right, 5-stop
int inputData[4]; //data from wifi
void setup()
{
Serial.begin(9600);
}
void loop()
{
WiFi_Rescue_Robot();
}
void WiFi_Rescue_Robot()
{
WifiControl();
Move(moveDirection);
}
void WifiControl()
{
//operate wheel
if(inputData[0] == 0x00)
{
if(inputData[1] != moveDirection)
{
moveDirection = inputData[1];
}
}
}
void serialEvent()
{
static int i;
static boolean revStart;
while (Serial.a vailable())
{
//get data from wifi
int inData = Serial.read();
if (inData == 0xff && !revStart)
{
revStart = true;
}
else if(revStart)
{
inputData[i] = inData;
i++;
if(i > 3)
{
if(inputData[3] == 0xff)
{
i = 0;
revStart = false;
}
else
{
i = 0;
revStart = false;
}
}
}
}
}
void Move(int direction)
{
switch (direction)
{
case 0x01:MoveForward();break;
case 0x02:MoveBackward();break;
case 0x03:MoveLeft();break;
case 0x04:MoveRight();break;
case 0x05:MoveStop();break;
default:MoveStop();break;
}
}
void MoveForward()
{
//motor_0 clockwise
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
//motor_1 clockwise
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
void MoveBackward()
{
//motor_0 clockwise
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
//motor_1 clockwise
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
void MoveRight()
{
//motor_0 clockwise
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
//motor_1 clockwise
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
void MoveLeft()
{
//motor_0 clockwise
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
//motor_1 clockwise
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
void MoveStop()
{
//motor_0 clockwise
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
//motor_1 clockwise
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
常见问题:
- 问:烧录程序时为什么需要取下2510通信转接板?
答:因为2510通信转接板上的WiFi模块会占用主控板的串口,容易导致程序烧录冲突。取下转接板烧录完成后插回即可正常工作。 - 问:代码中的通信协议如何对应运动方向?
答:协议帧格式为"ff 00 [指令] 00 ff",其中指令码含义为:0x00停止、0x01前进、0x02后退、0x03左转、0x04右转。手机APP发送对应的数据帧,主控板解析后执行相应动作。 - 问:上传程序后电机不转怎么办?
答:请检查电池供电是否正常,电机驱动引脚(5、6、9、10)是否与电机正确连接,并确认程序中的引脚编号与硬件接线一致。
4. 安卓手机APP配置及操作
- 安装APP:将WIFIRobot.apk安装到安卓手机中。
-
连接WiFi:打开主控板上的开关启动设备。在手机WiFi列表中找到名为GL-AR150-xxx(xxx为随机数字与字母)的网络,密码为goodlife,点击连接。
-
打开APP:在手机上启动“WIFIROBOTS”应用。
-
进入设置:点击APP界面中的设置按钮(以V1.06版界面为例,其他版本设置方法类似)。
-
配置参数:按照下图所示进行参数配置,然后点击确定保存。
小提示:参数配置需与代码中的串口波特率(9600)以及IP地址(通常为WiFi路由器的IP,默认为192.168.xxx.xxx)保持一致。如不确定,请查看路由器背面标签或参考【U011】教程。
-
实时监控与控制:配置成功后,手机屏幕会实时显示摄像头拍摄的画面。画面分辨率可通过在电脑端调整WiFi路由器的视频分辨率设置来更改。使用屏幕上的方向按钮即可控制203号样机运动。
常见问题:
- 问:APP无法连接设备怎么办?
答:请先确认手机已成功连接到GL-AR150-xxx的WiFi网络;然后检查主控板是否已上电并正常运行(LED灯亮起);最后核对APP中的IP地址是否与路由器分配的地址一致。可尝试重启主控板和APP。 - 问:画面卡顿或延迟很大怎么办?
答:可以降低摄像头的分辨率,在电脑端登录WiFi路由器管理页面,将视频输出分辨率调低(如QVGA)。同时确保WiFi信号稳定,避免障碍物遮挡。
5. 资料内容
本教程配套的资料包包含以下内容:
- ① WiFi视频遥控-例程源代码(即上文中的203_WiFi_Protocol.ino文件)
- ② WiFi无线路由器-安卓APK文件(即WIFIRobot.apk)
