1. 功能描述
本文提供的示例所实现的功能为:用APP,通过WiFi遥控203号样机实现移动,包括前进、停止、后退、原地左转、原地右转。
2.
在这个示例中,采用了以下硬件,请大家参考:
Basra主控板(兼容 Uno)、Bigfish2.1扩展板、7.4V、WiFi无线路由器、2510通信转接板、摄像头
本部分及后面的APP设置内容,可与 一文对照阅读,为样机安装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 Robotme(Beijing) chnology Co., Ltd. All Rights Reserved. Distributed under MIT license.See file LICENSE for detl 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.re(); 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文件
- LT1969 的典型应用 - 双路 700MHz、200mA、可调电流运算放大器
- LTC4270/LTC4271 的典型应用 - 12 端口 PoE/PoE+/LTPoE++ PSE 控制器
- DER-445 - 20 W 功率因数校正、非隔离、TRIAC 调光 LED 驱动器
- 使用 Infineon Technologies AG 的 OM7631NM 的参考设计
- Sg2526软启动电路原理图典型应用
- RH1009 典型应用 - 2.5V 参考
- EVAL-AD7142EB,SPI 接口评估板允许用户评估用于电容式触摸传感器的 AD7142 可编程控制器的特性
- 平板支撑和俯卧撑运动的辅助训练器
- LT3091IDE 负载共享无镇流器的典型应用(使用 IMONP)
- LT3970IDDB-3.3 2.5V 降压转换器的典型应用