
本教程将指导你从零开始组装一台四轮驱动的智能小车机器人。完成后,你将拥有一台可以前进、后退、转弯的机器人底盘,为后续的循迹、避障等高级功能奠定基础。
完成后你将拥有:
请确认以下零件齐全:
| 零件名称 | 数量 | 说明 |
|---|---|---|
| 亚克力底盘(上层/下层) | 各1块 | 机器人骨架 |
| TT 减速电机 | 4个 | 驱动轮子 |
| 65mm 橡胶车轮 | 4个 | |
| L298N 电机驱动模块 | 1个 | 控制电机方向和速度 |
| Arduino Uno 主板 | 1块 | 大脑 |
| 18650 电池盒 | 1个 | 电源 |
| M3 螺丝螺母套装 | 若干 | 固定零件 |
| 铜柱 M3×30mm | 4根 | 连接上下层底盘 |
| 跳线 | 若干 |
步骤1:安装电机
步骤2:安装车轮
将 4 个橡胶车轮压入电机轴,确保车轮安装牢固,用手转动车轮应该感觉阻力均匀。
步骤3:安装铜柱
在底盘下层的四个角安装 M3×30mm 铜柱,这些铜柱将支撑上层底盘。
L298N 是一款经典的双路 H 桥电机驱动芯片,可以同时控制两路电机的方向和速度。
将 L298N 模块固定在底盘上层,注意散热片朝向外侧以便散热。
L298N 引脚说明:
| L298N 引脚 | Arduino 引脚 |
|---|---|
| ENA | 数字引脚 5(PWM) |
| IN1 | 数字引脚 6 |
| IN2 | 数字引脚 7 |
| IN3 | 数字引脚 8 |
| IN4 | 数字引脚 9 |
| ENB | 数字引脚 10(PWM) |
| GND | GND |
// 四轮小车基础控制 // 小米创客 kidsbits 出品// 电机引脚定义 const int ENA = 5; // 左电机使能(PWM速度控制) const int IN1 = 6; // 左电机方向1 const int IN2 = 7; // 左电机方向2 const int IN3 = 8; // 右电机方向1 const int IN4 = 9; // 右电机方向2 const int ENB = 10; // 右电机使能(PWM速度控制)
void setup() { pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(ENB, OUTPUT); }
// 前进 void moveForward(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); }
// 后退 void moveBackward(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); }
// 左转 void turnLeft(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); }
// 右转 void turnRight(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); }
// 停止 void stopMotors() { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); }
void loop() { // 测试运动序列 moveForward(150); // 以 150/255 的速度前进 delay(2000); // 前进 2 秒 stopMotors(); delay(500); turnLeft(150); // 左转 delay(800); stopMotors(); delay(500); moveForward(200); // 加速前进 delay(2000); stopMotors(); delay(2000); // 停止 2 秒后重复 }
上传代码后,将电池装入电池盒并接通电源,观察小车的运动:
analogWrite() 的参数值(0-255)挑战1:遥控小车 通过蓝牙模块(HC-05)和手机 App 遥控小车运动。
挑战2:循迹小车 安装红外循迹传感器,让小车自动沿黑线行驶。
挑战3:避障小车 安装超声波传感器,让小车自动检测并绕开障碍物。