跑跑啦航模

  履带式底盘比轮式底盘具有更强的越障能力和地形适应性,适合户外探险、物资运输、搜救侦察等场景。本文以金属履带底盘为基础,制作一台高性能履带小车。

一、履带底盘选择

  市面上的履带底盘按材质分为:

  1. 塑料履带底盘:便宜(30-80元),适合室内和草地。履带易磨损,承重差。

  2. 金属履带底盘:价格100-300元,铝合金或不锈钢履带板,承重5-10公斤,适合户外。

  3. 3D打印履带:可自定尺寸,但强度和耐磨性不如金属。

  推荐:购买成品金属履带底盘套件,通常包含底盘架、左右各一条金属履带、驱动轮、承重轮和履带张紧机构。淘宝搜索"金属履带底盘套件"即可。

二、电机选型

  履带底盘需要的扭矩比轮式大很多,电机选型要特别注意:

  微型履带(1-2kg小车):N20减速电机,减速比1:50-1:100

  中型履带(3-5kg小车):JGB37-520直流减速电机,1:34或1:56减速比

  大型履带(5kg以上):带编码器的775电机 + 行星减速器

  电机一定要带编码器!没有编码器反馈,履带小车因为摩擦大、阻力不均匀,几乎走不了直线。

三、控制方案

  差速转向原理:

  履带小车没有转向轮,转弯依靠左右履带的速度差:

  前进:左右同速正转

  后退:左右同速反转

  左转:左履带慢/停/反转,右履带正转

  右转:右履带慢/停/反转,左履带正转

  原地旋转:左右履带等速反向

// 履带小车差速控制代码(Arduino)
// 通过编码器反馈实现PID速度闭环

const int ENCA_L = 2;  // 左电机编码器A相(中断引脚)
const int ENCB_L = 3;  // 左电机编码器B相
const int ENCA_R = 18; // 右电机编码器A相
const int ENCB_R = 19;

volatile long leftPulses = 0;
volatile long rightPulses = 0;

float Kp = 1.0, Ki = 0.1, Kd = 0.05;
float leftIntegral = 0, rightIntegral = 0;
float lastLeftError = 0, lastRightError = 0;

void setup() {
  pinMode(ENCA_L, INPUT_PULLUP);
  pinMode(ENCB_L, INPUT_PULLUP);
  pinMode(ENCA_R, INPUT_PULLUP);
  pinMode(ENCB_R, INPUT_PULLUP);
  
  attachInterrupt(digitalPinToInterrupt(ENCA_L), readLeftEncoder, RISING);
  attachInterrupt(digitalPinToInterrupt(ENCA_R), readRightEncoder, RISING);
  
  // 初始化电机PWM引脚等...
}

void setMotorSpeed(int targetLeft, int targetRight) {
  // 使用PID计算PWM值
  static unsigned long lastTime = 0;
  unsigned long now = millis();
  float dt = (now - lastTime) / 1000.0;
  lastTime = now;
  
  // 获取当前速度(编码器脉冲/时间)
  float leftSpeed = leftPulses / dt;
  float rightSpeed = rightPulses / dt;
  leftPulses = 0;
  rightPulses = 0;
  
  // 左电机PID
  float leftError = targetLeft - leftSpeed;
  leftIntegral += leftError * dt;
  float leftDerivative = (leftError - lastLeftError) / dt;
  float leftOutput = Kp*leftError + Ki*leftIntegral + Kd*leftDerivative;
  lastLeftError = leftError;
  
  // 右电机PID(同上)
  float rightError = targetRight - rightSpeed;
  rightIntegral += rightError * dt;
  float rightDerivative = (rightError - lastRightError) / dt;
  float rightOutput = Kp*rightError + Ki*rightIntegral + Kd*rightDerivative;
  lastRightError = rightError;
  
  // 输出PWM
  analogWrite(MOTOR_L_PWM, constrain(leftOutput, 0, 255));
  analogWrite(MOTOR_R_PWM, constrain(rightOutput, 0, 255));
}

void readLeftEncoder() {
  if(digitalRead(ENCB_L) == HIGH) leftPulses++;
  else leftPulses--;
}

void readRightEncoder() {
  if(digitalRead(ENCB_R) == HIGH) rightPulses++;
  else rightPulses--;
}

四、GPS户外导航(进阶)

  加装GPS模块(如NEO-6M或NEO-8M),配合电子罗盘,可以实现户外自动驾驶。基本原理:

  1. GPS获取当前经纬度和目标经纬度。

  2. 计算目标方位角。

  3. 电子罗盘读取当前朝向。

  4. PID控制履带差速调整航向。

  5. 到达目标点后停止。

  注意:GPS在室内无信号,必须在室外使用。精度约2-5米。

五、常见问题

  Q:履带经常脱落?

  A:调整履带张紧度,驱动轮和承重轮必须对正。履带过松容易脱落,过紧会增加摩擦损耗。

  Q:履带小车跑偏严重?

  A:必须使用编码器闭环控制。开环控制下,左右电机哪怕1%的转速差异也会导致偏航。

跑跑啦航模详情

联系手机15058675618 qq售后群号241350086 微信号paopaola_com
长距离FPV无人机,高清传感器模块,终身保修和升级服务。