Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

M1 Rover: Robot Autónomo para Exteriores en Terrenos Difíciles

Componentes y Suministros

Controlador de motor dual H-Bridge SparkFun L298 × 1
Motor DC (genérico) × 4
Arduino UNO × 1
LED (genérico) × 8
Resistencia 221 ohm × 8
Servomotor Tower Pro MG996R × 1
Sensor ultrasónico HC-SR04 × 1

Aplicaciones y Servicios Online

Sobre el Proyecto

Después de construir varios robots para interiores, decidí crear un robot para exteriores capaz de desplazarse por terrenos irregulares. Lo llamé "M1-Robot".

El motor del M1-Robot puede controlar fácilmente cuatro motores DC mediante Arduino, lo que lo convierte en el corazón perfecto para proyectos robóticos más potentes. Diseñé desde cero el M1, un robot 4x4 todoterreno.

No es solo un coche RC; puede programarse para ser autónomo, seguir instrucciones, controlarse desde un ordenador remoto o manejarse con mandos y joysticks personalizados como un coche teledirigido.

Paso 1: Diseño

Diseñar tu propio producto o prototipo es muy divertido, pero se complica cuando decides hacerlo a escala real. Elegí Google SketchUp 2017 como herramienta de diseño potente y sencilla, que permite exportar planos para corte láser o impresión 3D.

Dediqué las primeras tres semanas al diseño y construcción del chasis del robot. Como material, utilicé una tabla de madera de 3 mm de espesor.

El cableado final no es muy estético, ya que por limitaciones de tiempo tuve que meter todo el "roadkill" dentro del chasis.

El nombre "M1Rover" me pareció adecuado porque planeo desarrollar versiones posteriores en secuencia: M2, M3, etc. Está diseñado como un kit: solo hay que ensamblarlo con tornillos.

Paso 2: Componentes y Características

Paso 3: El Controlador de Motor

Los puentes H se usan típicamente para controlar velocidad y dirección de motores, pero también sirven para otros proyectos como regular el brillo de arrays LED de alta potencia.

Paso 4: Ensamblaje del Chasis

El chasis se cortó con láser en varias piezas. Como mencioné, el modelo se diseñó como un kit fácil de montar; solo hay que seguir las instrucciones.

El diseño también era importante: en un coche RC deben incluirse luces delanteras y traseras. En la parte frontal del M1-Robot coloqué 4 LEDs blancos, cada uno con su resistencia de 220 ohm; en la trasera, 2 LEDs rojos con sus resistencias. Estos LEDs se controlan desde la misma aplicación.

Paso 5: Circuitos

El circuito era un poco complejo porque al controlar muchos componentes electrónicos a la vez hay que cuidar la secuencia de cada uno.

Paso 6: Software

Al escribir el código del M1-Robot consideré muchos aspectos; con software GUI se puede obtener más información sobre el estado del robot.

Código básico para el kit de inicio, controlable desde móvil o portátil vía Bluetooth:

int frontled = 3; //led
int rearled = 4;
int outPin1 = 5; //motor1
int outPin2 = 6; //motor1
int outPin4 = 11; //motor2
int outPin3 = 12; //motor2
char bt = 0; //BT
int buzzerPin = 2;
const int pingPin = 9; // Trigger Pin del sensor ultrasónico
const int echoPin = 8; // Echo Pin del sensor ultrasónico

void setup() {
  Serial.begin(9600);
  pinMode(outPin1,OUTPUT);
  pinMode(outPin2,OUTPUT);
  pinMode(outPin3,OUTPUT);
  pinMode(outPin4,OUTPUT);
  pinMode(frontled,OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    bt = Serial.read();
    digitalWrite(frontled, 1);
    long duration, inches, cm;
    pinMode(pingPin, OUTPUT);
    digitalWrite(pingPin, LOW);
    delayMicroseconds(2);
    digitalWrite(pingPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(pingPin, LOW);
    pinMode(echoPin, INPUT);
    duration = pulseIn(echoPin, HIGH);
    inches = microsecondsToInches(duration);
    cm = microsecondsToCentimeters(duration);
    if (cm > 10) { // distancia para detenerse
      if(bt == 'F') { // avanzar
        digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW);
        digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW);
      } else if (bt == 'B') { // retroceder
        digitalWrite(outPin1,LOW); digitalWrite(outPin2,HIGH);
        digitalWrite(outPin3,LOW); digitalWrite(outPin4,HIGH);
      } else if (bt == 'S') { // parar
        digitalWrite(outPin1,LOW); digitalWrite(outPin2,LOW);
        digitalWrite(outPin3,LOW); digitalWrite(outPin4,LOW);
      } else if (bt == 'R') { // derecha
        digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW);
        digitalWrite(outPin3,LOW); digitalWrite(outPin4,LOW);
      } else if (bt == 'L') { // izquierda
        digitalWrite(outPin1,LOW); digitalWrite(outPin2,LOW);
        digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW);
      } else if (bt == 'I') { // adelante-derecha
        digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW);
        digitalWrite(outPin3,LOW); digitalWrite(outPin4,HIGH);
      } else if (bt == 'G') { // adelante-izquierda
        digitalWrite(outPin1,LOW); digitalWrite(outPin2,HIGH);
        digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW);
      }
    } else {
      digitalWrite(buzzerPin, HIGH); delay(500);
      digitalWrite(buzzerPin, LOW); delay(500);
    }
  }
}

long microsecondsToInches(long microseconds) { return microseconds / 74 / 2; }
long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; }

El código Arduino es compatible con cualquier controlador porque todos los componentes electrónicos están programados para funcionar mediante órdenes de puerto serie: módulo Bluetooth, PC, móvil.

Paso 7: Paquetes

STARTER

Este paquete M1-Robot incluye componentes básicos; la placa superior permite montar fácilmente cualquier hardware de sensado, manipulación o computación. Solo hay que conectar sensores a la alimentación integrada del Rover para empezar.

EXPLORER

El paquete Explorer permite funcionalidad autónoma básica en interiores y exteriores; en lugar de cámara IP usé una cámara de móvil conectada a internet mediante dirección IP.

MAPPING

El paquete Explorer permite seguimiento GPS básico; es muy genial ver las rutas de coordenadas en tiempo real cuando el vehículo está en exterior.

MANIPULATION

Interacción con el mundo mediante brazo robótico y pinza de dos dedos de 50 mm.

Consejo importante:

No todos los servos tienen 180° de rotación completos. Muchos no. Puedes escribir un test para determinar los límites mecánicos. Usa servo.writeMicroseconds en lugar de servo.write; prefiero esto porque permite usar 1000-2000 como rango base. Muchos servos soportan fuera de ese rango, de 600 a 2400.

Prueba distintos valores y mira dónde suena el zumbido que indica límite. Luego mantente dentro de esos límites al escribir. Puedes establecerlos con servo.attach(pin, min, max).

Edición: si quieres, puedes fijar min y max en microsegundos en el attach y luego usar simplemente servo.write. Usa map() para convertir el valor 0-180° que pasas a microsegundos.

Pronto se sobrecalentará si lo mantienes en el tope final: consume mucha corriente y se calienta rápido; es muy fácil "quemar" un servo cargándolo así durante un tiempo.

Encuentra el rango real de movimiento y asegúrate de que el código no intente pasarlo; la función constrain() de Arduino es útil:

servo.write(constrain(angle, 10, 160)); // limita el ángulo entre 10..160

Piezas Personalizadas y Carcasas

m1rover_dxf_hackaday_4o7WTGHUGE.dxf

Esquemáticos

M1 Rover: Robot Autónomo para Exteriores en Terrenos Difíciles

Proceso de manufactura

  1. Raspoulette: Sistema autónomo de puerta de gallinero alimentado por energía solar – Prototipo
  2. Construye un Rover con Windows IoT Core en Raspberry Pi 2 – Guía de Principiante a Avanzado
  3. Simple Pi Robot: Construye un Rover Autónomo 2‑WD con Raspberry Pi
  4. Construye tu Juego "UFO Attack" con Arduino UNO y Pantalla MAX7219
  5. Reloj 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC
  6. Librería Completa para Motor Paso a Paso Bipolar en Arduino
  7. Monitor de Salud Fluvial: Sistema de Calidad de Agua con Arduino
  8. Púa de Velocidad y Pedal Stomp para Guitarra DIY – Construye tu Propia Púa Motorizada Impresa en 3D
  9. Entendiendo los Motores Lineales: De Energía Eléctrica a Movimiento Lineal Preciso
  10. Motores servo: funcionamiento, tipos y por qué son importantes
  11. Motores de Relectancia Variable: Tipos, Funcionamiento y Aplicaciones