¿Cómo hacer un robot para evitar obstáculos usando Arduino?

El mundo se mueve rápidamente y la tecnología también se mueve con él en el campo de la robótica. Las aplicaciones de la robótica se pueden ver en todo el mundo. El concepto de robots móviles o autónomos que se mueven sin ninguna ayuda externa es el campo de investigación más inmersivo. Hay muchos tipos de robots móviles, por ejemplo, intérpretes de localización y mapeo automático (SLAM), seguimiento de línea, bots de sumo, etc. Un robot que evita obstáculos es uno de ellos. Utiliza una técnica para cambiar el camino si detecta algún obstáculo en su camino.



(Imagen cortesía: resumen del circuito)

En este proyecto, se diseña un robot evitador de obstáculos basado en Arduino que utilizará un sensor ultrasónico para detectar todos los obstáculos en su camino.



¿Cómo evitar obstáculos usando un sensor ultrasónico?

Como conocemos el resumen de nuestro proyecto, avancemos un paso y recopilemos información para comenzar el proyecto.



Paso 1: recopilar los componentes

El mejor enfoque para iniciar cualquier proyecto es hacer una lista de componentes completos al inicio y hacer un breve estudio de cada componente. Esto nos ayuda a evitar los inconvenientes en medio del proyecto. A continuación se proporciona una lista completa de todos los componentes utilizados en este proyecto.



  • Chasis de rueda de coche
  • Batería

Paso 2: estudiar los componentes

Ahora, como tenemos una lista completa de todos los componentes, avancemos un paso y revisemos un breve estudio del funcionamiento de cada componente.

Arduino nano es una placa de microcontrolador compatible con protoboard que se utiliza para controlar o realizar diferentes tareas en un circuito. Quemamos un Código C en Arduino Nano para decirle a la placa del microcontrolador cómo y qué operaciones realizar. Arduino Nano tiene exactamente la misma funcionalidad que Arduino Uno pero en un tamaño bastante pequeño. El microcontrolador de la placa Arduino Nano es ATmega328p.

Arduino Nano



El L298N es un circuito integrado de alta corriente y alto voltaje. Es un puente completo doble diseñado para aceptar la lógica TTL estándar. Tiene dos entradas de habilitación que permiten que el dispositivo funcione de forma independiente. Se pueden conectar y operar dos motores al mismo tiempo. La velocidad de los motores se varía mediante los pines PWM. La modulación de ancho de pulso (PWM) es una técnica en la que se puede controlar el flujo de voltaje en cualquier componente electrónico. Este módulo tiene un puente en H que se encarga del control de la dirección de rotación en los motores invirtiendo la dirección de la corriente. El pin de habilitación A y el pin de habilitación B se utilizan para cambiar la velocidad de ambos motores. Este módulo puede funcionar entre 5 y 35 V y corriente máxima de hasta 2 A. La patilla de entrada 1 y la patilla de entrada 2 y para el primer motor y la patilla de entrada 3 y la patilla de entrada 4 son para el segundo motor.

Controlador de motor L298N

La placa HC-SR04 es un sensor ultrasónico que se utiliza para determinar la distancia entre dos objetos. Consta de un transmisor y un receptor. El transmisor convierte la señal eléctrica en una señal ultrasónica y el receptor convierte la señal ultrasónica de nuevo en la señal eléctrica. Cuando el transmisor envía una onda ultrasónica, se refleja después de chocar con cierto objeto. La distancia se calcula utilizando el tiempo que tarda la señal ultrasónica en ir desde el transmisor y volver al receptor.

Sensor ultrasónico

Paso 3: ensamblar los componentes

Ahora que sabemos el funcionamiento de la mayoría de los componentes utilizados, comencemos a ensamblar todos los componentes y produzcamos un robot que evite obstáculos.

  1. Tome las ruedas de un coche y pegue una placa en la parte superior. Monte el sensor ultrasónico en la parte delantera de los chasses y una tapa de batería detrás de los chasses.
  2. Fije la placa Arduino Nano en la placa y conecte el controlador del motor justo detrás de la placa, en los chasses. Conecte los pines de habilitación de ambos motores al Pin6 y Pin9 de Arduino nano. Los pines In1, In2, In3 e In4 del módulo del controlador del motor están conectados al pin2, pin3, pin4 y pin5 del Arduino nano respectivamente.
  3. El pin de disparo y eco del sensor ultrasónico está conectado al pin11 e in10 del Arduino nano respectivamente. El Vcc y el pin de tierra del sensor ultrasónico están conectados a 5V y tierra del Arduino Nano.
  4. El módulo del controlador del motor se alimenta con la batería. La placa Arduino Nano obtiene la energía del puerto de 5V del módulo del controlador del motor y el sensor ultrasónico obtendrá su energía de la placa Arduino nano. el peso y la energía de las baterías pueden convertirse en el factor determinante de su rendimiento.
  5. Asegúrese de que sus conexiones sean las mismas que se muestran a continuación en el diagrama del circuito.

    Diagrama de circuito

Paso 4: Empezando con Arduino

Si aún no está familiarizado con Arduino IDE, no se preocupe porque a continuación se explica un procedimiento paso a paso para configurar y usar Arduino IDE con una placa de microcontrolador.

  1. Descargue la última versión de Arduino IDE de Arduino.
  2. Conecte su placa Arduino Nano a su computadora portátil y abra el panel de control. en el panel de control, haga clic en Hardware y sonido . Ahora haga clic en Dispositivos e impresoras. Aquí, busque el puerto al que está conectada su placa de microcontrolador. En mi caso es COM14 pero es diferente en diferentes computadoras.

    Encontrar puerto

  3. Haga clic en el menú de herramientas. y coloque el tablero en Arduino Nano en el menú desplegable.

    Tablero de ajuste

  4. En el mismo menú de herramientas, establezca el puerto en el número de puerto que observó antes en el Dispositivos e impresoras .

    Puerto de configuración

  5. En el mismo menú de herramientas, configure el procesador ATmega328P (antiguo cargador de arranque).

    Procesador

  6. Descargue el código adjunto a continuación y péguelo en su IDE de Arduino. Clickea en el subir para grabar el código en la placa del microcontrolador.

    Subir

Para descargar el código, haga clic aquí.

Paso 5: comprensión del código

El código está bien comentado y se explica por sí mismo. Pero aún así, se explica a continuación.

1. Al comienzo del código, se inicializan todos los pines de la placa Arduino Nano que están conectados al sensor ultrasónico y al módulo controlador del motor. Pin6 y Pin9 son pines PWM que pueden variar el flujo de voltaje para variar la velocidad del Robot. Dos variables, duración, y distancia se inicializan para almacenar datos que luego se utilizarán para calcular la distancia del sensor ultrasónico y el obstáculo.

int enable1pin = 6; // Pines para el primer motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pines para el segundo motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pin de disparo de Sesnor ultrasónico const int echoPin = 10; // Pin de eco de sesión ultrasónica de larga duración; // variables para calcular la distancia flotante;

2. configuración vacía () es una función que se utiliza para establecer todos los pines utilizados, como ENTRADA y SALIDA. La velocidad en baudios se define en esta función. La tasa de baudios es la velocidad de comunicación mediante la cual la placa del microcontrolador se comunica con los sensores integrados en ella.

configuración vacía () {Serial.begin (9600); pinMode (trigPin, SALIDA); pinMode (echoPin, INPUT); pinMode (enable1pin, SALIDA); pinMode (enable2pin, SALIDA); pinMode (motor1pin1, SALIDA); pinMode (motor1pin2, SALIDA); pinMode (motor2pin1, SALIDA); pinMode (motor2pin2, SALIDA); }

3. bucle vacío () es una función que se ejecuta repetidamente en un ciclo. En esta función le decimos a la placa del microcontrolador cómo y qué operaciones realizar. Aquí, primero, el pin de disparo está configurado para enviar una señal que será detectada por el pin de eco. Luego, el tiempo que tarda la señal ultrasónica en viajar desde y hacia el sensor se calcula y se guarda en la variable duración. Luego, este tiempo se usa en una fórmula para calcular la distancia del obstáculo y el sensor ultrasónico. Luego se aplica la condición de que si la distancia es superior a 5 cm, el robot avanzará en línea recta y si la distancia es inferior a 50 cm, el robot dará un giro brusco a la derecha.

bucle vacío () {digitalWrite (trigPin, LOW); // Envío y detección de la señal ultrasónica delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, BAJO); duración = pulseIn (echoPin, HIGH); // Calcular el tiempo que toma la onda ultrasónica para reflejar la distancia hacia atrás = 0.034 * (duración / 2); // Calcular la distancia entre el robot y el obstáculo. if (distancia> 50) // Avanzar si la distancia es superior a 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, ALTO); digitalWrite (motor1pin2, BAJO); digitalWrite (motor2pin1, ALTO); digitalWrite (motor2pin2, BAJO); } else if (distancia<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Aplicaciones

Así que aquí estaba el procedimiento para hacer un robot para evitar obstáculos. Esta tecnología para evitar obstáculos también se puede utilizar en otras aplicaciones. Algunas de estas aplicaciones son las siguientes.

  1. Sistema de rastreo.
  2. Propósitos de medición de distancia.
  3. Esto se puede utilizar en robots aspiradores automáticos.
  4. Esto se puede utilizar en Sticks para ciegos.