亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

智能手机重力感应控制机器人小车:Arduino + 蓝牙 + RemoteXY

组件与物料清单

组件数量备注
Arduino UNO1主控板
HC-06 蓝牙模块1或HC-05,波特率9600
L298N 电机驱动板1驱动两路直流减速电机
两轮差速底盘1含电机、车轮、万向轮、电池盒

软件与服务

制作步骤

步骤1:硬件组装与接线

使用任意两轮差速底盘搭建车体。电子元件接线如下图:

智能手机重力感应控制机器人小车:Arduino + 蓝牙 + RemoteXY

核心连接:

步骤2:在RemoteXY编辑器创建界面

访问 RemoteXY编辑器,拖拽控件:

智能手机重力感应控制机器人小车:Arduino + 蓝牙 + RemoteXY

步骤3:导入Arduino IDE并添加库

下载生成的.ino文件,在Arduino IDE打开。需安装RemoteXY.h库:

https://remotexy.com/en/library/

此时可上传代码,配合手机APP测试蓝牙连接,但电机尚未驱动。

步骤4:添加电机驱动逻辑

在生成的框架代码中补充电机控制函数,将摇杆X/Y映射为左右电机差速转向。完整代码见下方。

步骤5:手机APP连接测试

  1. 安装RemoteXY APP:下载链接
  2. 打开APP,点击蓝牙连接,选择模块名(通常为"HC-06"或"INVOR")
  3. 倾斜手机,小车随重力感应移动!

完整Arduino代码

/////////////////////////////////////////////
// RemoteXY include library
/////////////////////////////////////////////
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>

#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

// RemoteXY配置数据(由编辑器自动生成)
unsigned char RemoteXY_CONF[] = {
  3,0,23,0,1,5,5,15,41,11,
  43,43,1,2,0,6,5,27,11,5,
  79,78,0,79,70,70,0
};

struct {
  signed char joystick_1_x;  // -100..100
  signed char joystick_1_y;  // -100..100
  unsigned char switch_1;    // 1=ON, 0=OFF
  unsigned char connect_flag;
} RemoteXY;

/////////////////////////////////////////////
// 电机引脚定义
/////////////////////////////////////////////
#define PIN_MOTOR_RIGHT_UP 7
#define PIN_MOTOR_RIGHT_DN 6
#define PIN_MOTOR_RIGHT_SPEED 10

#define PIN_MOTOR_LEFT_UP 5
#define PIN_MOTOR_LEFT_DN 4
#define PIN_MOTOR_LEFT_SPEED 9

#define PIN_LED 13

unsigned char RightMotor[3] = {PIN_MOTOR_RIGHT_UP, PIN_MOTOR_RIGHT_DN, PIN_MOTOR_RIGHT_SPEED};
unsigned char LeftMotor[3]  = {PIN_MOTOR_LEFT_UP, PIN_MOTOR_LEFT_DN, PIN_MOTOR_LEFT_SPEED};

void Wheel(unsigned char *motor, int v) {
  if (v > 100) v = 100;
  if (v < -100) v = -100;
  
  if (v > 0) {
    digitalWrite(motor[0], HIGH);
    digitalWrite(motor[1], LOW);
    analogWrite(motor[2], v * 2.55);  // 0-100映射到0-255
  } else if (v < 0) {
    digitalWrite(motor[0], LOW);
    digitalWrite(motor[1], HIGH);
    analogWrite(motor[2], (-v) * 2.55);
  } else {
    digitalWrite(motor[0], LOW);
    digitalWrite(motor[1], LOW);
    analogWrite(motor[2], 0);
  }
}

void setup() {
  pinMode(PIN_MOTOR_RIGHT_UP, OUTPUT);
  pinMode(PIN_MOTOR_RIGHT_DN, OUTPUT);
  pinMode(PIN_MOTOR_LEFT_UP, OUTPUT);
  pinMode(PIN_MOTOR_LEFT_DN, OUTPUT);
  pinMode(PIN_LED, OUTPUT);
  
  RemoteXY_Init();
}

void loop() {
  RemoteXY_Handler();
  
  // LED指示连接状态
  digitalWrite(PIN_LED, RemoteXY.switch_1 ? HIGH : LOW);
  
  // 差速转向算法:Y轴前进后退,X轴左右转向
  // 左电机 = Y + X,右电机 = Y - X
  Wheel(RightMotor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
  Wheel(LeftMotor,  RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}

原理图

智能手机重力感应控制机器人小车:Arduino + 蓝牙 + RemoteXY

进阶玩法建议

制造工艺

  1. 蓝牙控制树莓派机器人:语音反馈功能构建指南
  2. 用 Python 构建 Wi-Fi 控制的树莓派机器人:分步指南
  3. 仅用 Arduino 构建 DTMF 解码器 – 无需额外 IC
  4. 用 Arduino 打造绚丽显示器 Ambilight 系统
  5. SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
  6. Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
  7. Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
  8. 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
  9. Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
  10. MobBob:3D 打印智能机器人,Android 手机无缝控制,语音视觉一体
  11. Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程
  12. 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机