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

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

Componentes y materiales

Arduino Nano R3 × 1
Controlador motor dual H-Bridge L298 (SparkFun) × 1
Sensor ultrasónico HC-SR04 × 1
Módulo Bluetooth HC-05 × 1
LED RGB difuso ánodo común × 1
Conversor de nivel lógico bidireccional (SparkFun) × 1
Resistencia 330 Ω × 1
Protoboard × 1
Fuente protoboard 5V/3.3V (SparkFun) × 1
Motor DC 12 V × 2
Cables jumper macho/hembra × 1

Aplicaciones y servicios online

Sobre el proyecto

El proyecto usa un móvil para comunicarse con un robot por Bluetooth. Tras más de 12 años, retomé la construcción de un robot durante el confinamiento por Covid-19. La electrónica y robótica son mis aficiones favoritas.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

El robot recibe comandos Bluetooth desde el móvil mediante el módulo HC-05 y los ejecuta. Usé la app ArduinoBlueControl para el control.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

El cerebro es el Arduino Nano. Recibe señales del HC-05 por comunicación serie y controla los motores vía módulo L298N para moverse adelante, atrás, izquierda y derecha.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

Importante: Conecta correctamente los pines TX/RX del HC-05 al Arduino Nano. Se usa un conversor de nivel lógico para la interfaz.

El sensor HC-SR04 detecta obstáculos en el camino. Al detectar uno durante el avance, el robot se detiene. Un LED RGB indica el estado del robot.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

El robot usa una base de 2 ruedas con motores con reductor. La electrónica va en protoboard con fuente de 3.3V y 5V. El Arduino no puede mover los motores directamente por su alta demanda de corriente, así que el L298N gestiona la potencia. Las señales PWM del Arduino controlan la velocidad via pines ENA/ENB del L298N.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto
Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

Vídeo del robot en funcionamiento:

(Vídeo no incluido en el texto original)

Este robot puede ampliarse para domótica, vehículos de evasión de obstáculos en fábricas, y más.

Código

Código Arduino Robot Controlado por Bluetooth C/C++
/* Bluetooth Controlled Obstacle Avoidance Robot
   Preparado por: Alok Talukdar
   Fecha: 09.05.2020 */
#include <SoftwareSerial.h>

// Pines L298
#define IN1 5  // motor derecho
#define IN2 4  // motor derecho
#define IN3 3  // motor izquierdo
#define IN4 2  // motor izquierdo
#define ENA 9  // PWM motor derecho
#define ENB 10 // PWM motor izquierdo

// Pines LED RGB
#define redLED 8
#define greenLED A0
#define blueLED 11

// HC-SR04
const int trigPin = 6;
const int echoPin = 7;
int i, j, k = 0;
float duration, distance;

// HC-05 Bluetooth
SoftwareSerial mySerial(12, 13); // 12=RX, 13=TX
String data;
int btVal;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  mySerial.begin(9600);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT);
  pinMode(redLED, OUTPUT); pinMode(blueLED, OUTPUT); pinMode(greenLED, OUTPUT);
  digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
  analogWrite(redLED, 255); // LED común ánodo: 255=apagado
  digitalWrite(blueLED, HIGH);
  digitalWrite(greenLED, HIGH);
}

void loop() {
  while (mySerial.available()) {
    data = mySerial.readStringUntil('\n');
  }
  btVal = data.toInt();
  switch (btVal) {
    case 1: forward(); digitalWrite(greenLED, LOW); analogWrite(redLED, 255); digitalWrite(blueLED, HIGH); dist(); break;
    case 2: reverse(); digitalWrite(greenLED, HIGH); analogWrite(redLED, 255); digitalWrite(blueLED, LOW); break;
    case 3: left(); break;
    case 4: right(); break;
    case 5: stoprobot(); digitalWrite(greenLED, HIGH); analogWrite(redLED, 0); digitalWrite(blueLED, HIGH); break;
    default: digitalWrite(greenLED, HIGH); analogWrite(redLED, 255); digitalWrite(blueLED, HIGH); break;
  }
  if (mySerial.available() < 0) { /* Serial.println("No Bluetooth Data"); */ }
}

// Funciones de control de motor
void forward() {
  for (i = 0; i <= 100; i++) {
    analogWrite(ENA, i); analogWrite(ENB, i);
    digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
  }
}
void reverse() {
  for (j = 0; j <= 100; j++) {
    analogWrite(ENA, j); analogWrite(ENB, j);
    digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
    digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
  }
}
void left() {
  analogWrite(ENA, 127); analogWrite(ENB, 0);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH);
}
void right() {
  analogWrite(ENA, 0); analogWrite(ENB, 127);
  digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void stoprobot() {
  analogWrite(ENA, 0); analogWrite(ENB, 0);
  digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
void dist() {
  digitalWrite(trigPin, LOW); delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration * 0.0343) / 2; // cm, velocidad sonido 340 m/s
  if (distance < 20) { // <20 cm = PARAR
    stoprobot();
    digitalWrite(greenLED, HIGH); analogWrite(redLED, 0); digitalWrite(blueLED, HIGH);
  }
  delay(1000);
}

Esquemáticos

Diagrama de circuito del robot.

Robot Evita-Obstáculos Controlado por Bluetooth: Vehículo Inteligente de Control Remoto

Proceso de manufactura

  1. Robot móvil que evita obstáculos basado en visión en Raspberry Pi
  2. Construya un robot Raspberry Pi controlado por Bluetooth con retroalimentación de audio
  3. Construya un robot con streaming de vídeo controlado por Internet con Arduino y Raspberry Pi
  4. Robot Controlado por Gestos con Raspberry Pi
  5. Construye un Robot Controlado por WiFi con Raspberry Pi y Smartphone Android
  6. Construye un Robot Controlado por Voz con Windows 10 IoT Core en Raspberry Pi 2
  7. Construye un Robot Raspberry Pi Controlado por Wi‑Fi con Python – Guía Paso a Paso
  8. ROObockey: Robot de Hockey Callejero con Asistencia de Precisión y Control Remoto
  9. Sistema de Evitación de Obstáculos con IA y Arduino: Aprendizaje por Refuerzo Q-Learning
  10. Construye un robot controlado por voz con Arduino Nano
  11. Brazo Robótico Controlado por Ethernet: Control Remoto Simplificado