1. 功能描述
本文提供的示例所实现的功能为:用手机APP,通过WiFi通信遥控斜三角履带底盘样机实现移动,包括前进、停止、后退、原地左转、原地右转。
2. 电子硬件
在这个示例中,采用了以下硬件,请大家参考:
Basra主控板(兼容Arduino Uno)、Bigfish2.1扩展板、7.4V锂电池、WiFi无线路由器、2510通信转接板、USB摄像头
硬件连接步骤:
(1)在2510通信转接板的4针接口上,按如图方式插上3根杜邦线。
(2)杜邦线的另一端插接在WiFi模块的串口针上。
(3)连接USB线。
(4)连接摄像头。
(5)将整套装置固定在样机上(注意:图中MEGA2560主控板部分与本文所述功能无关,请忽略)。
3. 示例程序
编程环境:Arduino 1.6.8
编写下面的代码(203_WiFi_Protocol.ino),并在主控板中烧录(在烧录程序时,需要将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
通信协议:
* 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 <Servo.h>
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.available())
{
//get data from wifi
int inData = Serial.read();
if (inData == 0xff && !revStart)
{
revStart = true;
}
else if(revStart)
{
inputData = 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);
}
|
4. 安卓手机APP配置及操作
(1)安装WIFIRobot.apk到安卓手机内。
(2)打开主控板的开关启动设备,并使用手机连接GL-AR150-xxx(xxx为随机数字与字母)密码:goodlife
(3)打开“WIFIROBOTS”APP。
(4)选择设置(以V1.06版界面为例,你也可以安装其他版本,设置方法相同)
(5)按照下图所示进行参数配置,点击确定
(6)手机屏幕上可以实时显示摄像头拍摄到的画面,图像显示的分辨率可通过在电脑端调整WiFi分辨率进行设置。通过按钮可以操作控制机器人运动。
5. 资料内容
|