本帖最后由 机器谱Robotway 于 2022-12-16 14:16 编辑
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. 资料内容
|