¿Cómo hacer un robot que evite obstáculos usando Arduino? El mundo avanza a gran velocidad y la tecnología también avanza 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 ayuda externa es el campo de investigación más emergente. Hay muchos tipos de robots móviles, por ejemplo, intérpretes de autolocalización y mapeo (SLAM), seguimiento de líneas, Sumo Bots, etc. Un robot que evita obstáculos es uno de ellos. Utiliza una técnica para cambiar de camino si detecta algún obstáculo en su camino. (Imagen cortesía: resumen del circuito)En este proyecto, se diseña un robot evita 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 utilizando el sensor ultrasónico?Como conocemos el resumen de nuestro proyecto, avancemos un paso y recopilemos información para comenzar el proyecto.Paso 1: Recolectar los componentesLeer másIngrese a la expansión Gungeon que Advanced Gungeons & Draguns ha lanzadoEl mejor enfoque para iniciar cualquier proyecto es hacer una lista de componentes completos al principio y realizar un breve estudio de cada componente. Esto nos ayuda a evitar los inconvenientes a mitad del proyecto. A continuación se proporciona una lista completa de todos los componentes utilizados en este proyecto.Paso 2: estudiar los componentesAhora que tenemos una lista completa de todos los componentes, avancemos un paso y realicemos un breve estudio del funcionamiento de cada componente.Arduino nano es una placa microcontroladora compatible con protoboard que se utiliza para controlar o realizar diferentes tareas en un circuito. quemamos un Código C en Arduino Nano para indicarle 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 NanoLeer másCómo desinstalar completamente Steam JuegosEl L298N es un circuito integrado de alta corriente y alto voltaje. Es un puente completo dual diseñado para aceptar 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 a través de 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 cuenta con un Puente H que se encarga del control del sentido de rotación en los motores invirtiendo el sentido 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 una corriente máxima de hasta 2 A. El Pin de entrada 1 y el Pin de entrada 2 para el primer motor y el Pin de entrada 3 y el Pin de entrada 4 son para el segundo motor.Controlador de motor L298NLa 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 nuevamente en señal eléctrica. Cuando el transmisor envía una onda ultrasónica, se refleja después de chocar con un determinado objeto. La distancia se calcula utilizando el tiempo que tarda la señal ultrasónica en ir desde el transmisor y regresar al receptor.Sensor ultrasónicoPaso 3: ensamblar los componentesAhora que conocemos el funcionamiento de la mayoría de los componentes utilizados, comencemos a ensamblar todos los componentes y produzcamos un robot que evite obstáculos.Tome las ruedas de un automóvil y pegue una placa de pruebas en su parte superior. Monte el sensor ultrasónico en la parte delantera de los chasis y una tapa de batería detrás de los chasis.Fije la placa Arduino Nano en la placa y conecte el controlador del motor justo detrás de la placa, en los chasis. Conecte los pines de habilitación de ambos motores al Pin6 y al Pin9 de Arduino nano. Los pines In1, In2, In3 e In4 del módulo controlador del motor están conectados al pin2, pin3, pin4 y pin5 del Arduino nano respectivamente.El pin de activación y eco del sensor ultrasónico está conectado al pin 11 y al pin 10 del Arduino nano respectivamente. El Vcc y el pin de tierra del sensor ultrasónico están conectados a los 5V y a tierra del Arduino Nano.El módulo controlador del motor funciona con batería. La placa Arduino Nano obtiene la energía del puerto de 5 V del módulo 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.Asegúrese de que sus conexiones sean las mismas que se muestran a continuación en el diagrama del circuito.Diagrama de circuitoPaso 4: Comenzando con ArduinoSi aún no está familiarizado con el IDE de Arduino, no se preocupe porque a continuación se explica un procedimiento paso a paso para configurar y utilizar el IDE de Arduino con una placa de microcontrolador.Descargue la última versión de Arduino IDE desde Arduino.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 puertoHaga clic en el menú Herramienta. y ponga el tablero en Arduino Nano en el menú desplegable.Tablero de configuraciónEn el mismo menú Herramientas, configure el puerto en el número de puerto que observó antes en el Dispositivos e impresoras.Puerto de configuraciónEn el mismo menú Herramientas, configure el procesador en ATmega328P (gestor de arranque antiguo).ProcesadorDescargue 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.SubirPara descargar el código, haga clic aquí.Paso 5: comprender el códigoEl 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; // Pins for First Motor int motor1pin1=2; int motor1pin2=3; int enable2pin=9; //Pins For Second Motor int motor2pin1=4; int motor2pin2=5; const int trigPin = 11; // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor long duration; // variables to Calculate the distance float distance; 2. configuración nula() es una función que se utiliza para configurar todos los pines utilizados, como APORTE y PRODUCCIÓN. La velocidad en baudios se define en esta función. La velocidad en baudios es la velocidad de comunicación mediante la cual la placa del microcontrolador se comunica con los sensores integrados en ella.void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(enable1pin, OUTPUT); pinMode(enable2pin, OUTPUT); pinMode(motor1pin1, OUTPUT); pinMode(motor1pin2, OUTPUT); pinMode(motor2pin1, OUTPUT); pinMode(motor2pin2, OUTPUT); }3. bucle vacío() es una función que se ejecuta repetidamente en un ciclo. En esta función le indicamos a la placa microcontroladora cómo y qué operaciones realizar. Aquí, primero, el pin de disparo se configura 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 utiliza en una fórmula para calcular la distancia entre el 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 girará bruscamente a la derecha.void loop() { digitalWrite(trigPin, LOW); // Sending and Detecting the Ultrasonic Signal delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // Calulating the timme taken by the ultrasonic wave to reflect back distance = 0.034*(duration/2); // Calulating the distance betweek thee robbot and the obstacle. if(distance>50) // Move Forward if distance is greater than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, HIGH); digitalWrite(motor2pin2, LOW); } else if(distance<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); }AplicacionesAsí que aquí estaba el procedimiento para hacer un robot que evita obstáculos. Esta tecnología para evitar obstáculos también se puede utilizar en otras aplicaciones. Algunas de estas aplicaciones son las siguientes.Sistema de rastreo.Propósitos de medición de distancias.Esto se puede utilizar en robots aspiradores automáticos.Esto se puede utilizar en Sticks para personas ciegas. Tecnología
Tecnología Cómo conectar la Smart Band No.1 F1 con la aplicación móvil noviembre 18, 2023La aparición de innovaciones de alta tecnología ha introducido el uso de Smart Bands en… Read More
Tecnología Cómo conectar un ‘Mando de PS3 para jugar con tu ordenador’ noviembre 12, 2023Los juegos de PC son la plataforma de juegos preferida por muchos entusiastas de los… Read More
Tecnología Solución: error de socket: 10060, 0x800CCC0E noviembre 16, 2023Error de enchufe 10060 generalmente indica que todo lo que está intentando conectarse al servidor… Read More