1. 功能描述
本文示例所实现的功能为:用手机APP,通过WiFi通信遥控R261样机行星探测车移动,以及打开、关闭行星探测车太阳翼。
2. 电子硬件
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 |
Basra主控板(兼容Arduino Uno)
|
扩展板 |
Bigfish2.1扩展板
|
通信 | WiFi无线路由器 |
2510通信转接板 | |
电池 | 7.4V锂电池 |
其它 | 摄像头、安卓手机 |
3. 示例程序
编程环境:Arduino 1.8.19
下面提供一个实现WiFi视频遥控行星探测车移动以及打开、关闭行星探测车太阳翼功能的参考程序(Wifi_Control.ino):
/*------------------------------------------------------------------------------------
版权说明:Copyright 2023 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 机器谱 2023-09-22 https://www.robotway.com/
------------------------------*/
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[i] = inData;
i++;
if(i > 3)
{
if(inputData[3] == 0xff)
{
dataComplete = true;
i = 0;
revStart = false;
}
else
{
i = 0;
revStart = false;
}
}
}
}
}
//小车主程序
void car_control(){
if(dataComplete){
dataComplete = false;
//控制小车前,后,左,右
if(inputData[0] == 0x00)
{
if(inputData[1] != moveDirection){
moveDirection = inputData[1];
}
}
else if(inputData[0] == 0x02){
if(inputData[1] == 0x01){
if(inputData[2] != DownDireciton){
DownDireciton = inputData[2];
if(DownDireciton == 0 && !isPanelDown){
expandSolarPanelsAndMast();
isPanelDown = true;
}
else if(DownDireciton == 10 && isPanelDown){
stopSolarPanelsAndMast();
isPanelDown = false;
}
}
}
}
Move(moveDirection);
}
else{
//小车自主控制部分
automatic_control();
}
}
4. 安卓手机APP配置及操作
① 将文末资料中的WIFIRobotV1.06.apk下载安装到手机上,并打开按以下参数进行设置。
② 打开手机wifi并连接GL-AR150-fxx(xx为随机数字与字母),密码:goodlife
③ 关闭软件(需清除后台应用)重新进入,点击“开始”,并开始操作。
④ 可看到如下所示界面按钮:前、后、左、右。
⑤ 点击“速度调整”:“左侧速度”为调整直流电机转速;“右侧速度”为打开、关闭行星探测车太阳翼。
⑥ 关闭“速度调整”,点击“重力感应”,通过调整手机角度可使行星探测车移动。
程序源代码及样机3D文件等资料下载地址:行星探测车-WiFi视频遥控