1. 功能描述 本文提供的示例所实现的功能为:用手机app,通过wifi通信遥控203号样机实现移动,包括前进、停止、后退、原地左转、原地右转。
2. 电子硬件 在这个示例中,采用了以下硬件,请大家参考:
basra主控板(兼容arduino uno)、bigfish2.1扩展板、7.4v锂电池、wifi无线路由器、2510通信转接板、usb摄像头
本部分及后面的app设置内容,可与 【u011】如何使用探索者通信模块-wifi无线路由器 一文对照阅读,为样机安装wifi无线路由器和摄像头。
硬件连接步骤:
(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
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.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)
{
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. 资料内容 ① wifi视频遥控-例程源代码
② wifi无线路由器-安卓apk文件
阿根廷失联潜艇“失而复得” 水下传感功不可没
Twin Builder—系统级多物理域数字孪生平台
Apollo首届生态大会:拉开新一代智能交通大幕
利用汽车开发标准避免与错误软件相关风险
板材测量系统与机械设备通过激光器并开发应用程序来进行补偿
WiFi视频遥控履带底盘实现移动功能
激光位移传感器的工作原理及优缺点解析
如何用语言模型(LM)实现建模能力
高速路上ETC系统的实现
如何延长投影机灯泡使用时间
NB-IoT的HARQ是一种将前向纠错编码和ARQ相结合的技术
AR/VR行业的规范标准在何处?
fedora的优缺点是什么_fedora的u盘挂载
控制步进电机各种电流应用介绍
内部人士透露:华为预留了相当一部分给后续的P50和Mate50
3种新兴内存技术将改变您的处理数据方式
基于CAN总线的驻车电流采集节点的硬件电路设计
2018年全球企业市值100强:苹果登顶中国企业共有14家
随着科学技术的发展,全息技术也在不断完善
久岩传感 振弦式传感器渗压计的埋设与安装方式