Tabla de contenido:
Video: EL ROBOT EMOCIONAL PARA EVITAR OBSTÁCULOS: 11 Pasos
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
El robot emocional. Este robot muestra emociones con neopíxeles (LED RGB) como tristeza, felicidad, enojo y miedo, también puede evitar obstáculos y hacer ciertos movimientos durante su emoción determinada. El cerebro de este robot es un mega Arduino. tenga en cuenta que este es mi primer robot programado que he construido, y me enamoró de la programación, el código en sí es muy básico y muy probablemente podría simplificarse.
Paso 1: PIEZAS
-3.2 pies de una tira de neopixel
-Sensor ultrasónico HC-SR04 (o cualquier otro sensor ultrasónico)
-interruptor de inclinación
-3 batería de iones de litio de 3,7 v (18650)
-convertidor de impulso (explicado en el paso de potencia)
-resistor de foto (cualquier valor)
-sensor de sonido analógico
-2 motores dc 6v
-l293d (controlador de motor)
-lámina de plástico
-cartulina
-rueda giratoria
Paso 2: Neopixels
Debido a que tenía un presupuesto ajustado, la forma más sencilla y barata de hacer que las emociones de mis robots cobren vida son los neopíxeles, todo lo que tienen son 3 entradas y salidas. los tres pines de la entrada están etiquetados como 5v, DIN (entrada de datos) y GND (tierra); la salida se etiqueta igual que la entrada pero en lugar de los datos en su DO (salida de datos). La forma en que conecta estos led es conectarlos en paralelo entre sí, por lo que 5v se conecta a 5v en el otro led y GND se conecta al otro led GND, DO del primer led se conecta al DIN del segundo led y luego este proceso continúa hasta que alcanza la longitud deseada de la tira de LED. Una tira completa de neopíxeles solo requiere un pin de salida digital de la entrada, esto se debe a que DO y DIN están conectados en una cadena larga, por lo que todos comparten datos entre sí. Esto es necesario porque necesitamos encender y apagar leds específicos en momentos específicos. Un instructivo útil sobre esto es AYUDA DE NEOPIXEL
Paso 3: el esquema
El circuito es muy simple ya que la mayor parte del robot se acaba de programar, los motores funcionan cerca de 7v con un controlador de motor l293d para controlar que los motores vayan hacia adelante o hacia atrás. Las otras conexiones son los sensores del Arduino. ¡Y eso es!
Paso 4: el código
Lo primero que hice fue descargar las bibliotecas necesarias para facilitar un poco la codificación, las bibliotecas que utilicé son "FastLED.h" y "NewPing.h". El led rápido es para los leds y el nuevo ping es para los sensores ultrasónicos. Lo siguiente que hice fue hacer todas las definiciones para los pines que usé, después de eso fue la configuración nula, aquí es donde configuré los modos de pin y el neostrip "FastLED.addLeds (leds, NUM_LEDS);" Definí los NUM_LEDS como 56, ya que utilicé 56 leds, las configuraciones de los leds se explicarán en el paso frontal. Luego creé un montón de funciones para que mi robot se mueva hacia adelante y hacia atrás y también tenga cierta emoción, después de eso llego al bucle vacío, aquí es donde llamo a todas mis funciones en una secuencia determinada que quiero, por ejemplo, si quisiera que mi robot sonriera, pondría smile ();. Si quisiera que se encienda un led, pondría, leds [45] = CRGB:: Verde;, esto pondrá el led 45 en verde. Cuando pongo el color en negro, simplemente significa apagado. Ahora tenga en cuenta que este es uno de mis primeros programas, por lo que obviamente no es perfecto, pero aún así funcionó.
EL CÓDIGO
Paso 5: la cara
Para la cara utilicé 56 leds, que es casi una tira de neopixel completa de 3.2 pies. Corté la tira en 7 tiras de 8 leds, usé las 3 primeras tiras para los ojos y las 4 últimas para la boca. Conecté las tiras en una especie de conexión en forma de serpiente, con suerte entenderás mejor con el diagrama. Cuando terminé la cara, puse una fina lámina de plástico (de unos 2 mm de grosor) sobre las tiras de led.
Paso 6: función feliz
Esta función es la más fácil de todas, ya que no usa ningún sensor, en cambio, tan pronto como enciendes el bot, te sonríe instantáneamente. Pero no solo sonríe; cuando sonríe, también está en modo de evitación de obstáculos. El modo de evitación de obstáculos se representa en mi código como la función de itinerancia. El modo de evitación de obstáculos o itinerancia funciona mediante el uso de dos sensores ultrasónicos en el lado del robot, cuando el sensor llega 30 cm a cualquier cosa, retrocede y se desplaza hacia la derecha o hacia la izquierda, según el sensor más cercano al objeto.
Paso 7: función triste
Para que el robot se entristeciera, tuve que pensar en un rasgo de personalidad para este robot, así que decidí ponerlo triste cuando está en un ambiente oscuro. Para hacer esto, utilicé una fotorresistencia para detectar la luz. Cuanto más oscuro sea el entorno, mayor será la resistencia y cuanto más claro sea el entorno, menor será la resistencia. El circuito funciona como un divisor de voltaje que es un circuito con dos resistencias conectadas en serie a + 5v y GND, en el punto medio de la conexión de la resistencia se encuentra un voltaje que puede ser determinado por esta ecuación: voltaje de entrada * (R2 / R1 + R2). cuando el Pin Analógico Arduino lee este valor, convierte el voltaje en un rango de 0 a 1023.
Paso 8: Función Angry
Para hacer que el robot se enojara, decidí darle la vuelta / derribarlo. Esto funciona mediante el uso de un interruptor de inclinación, y un interruptor de inclinación es básicamente un interruptor normal, pero en lugar de tener un botón o un balancín, tiene una bola de mercurio que, si se inclina en un cierto ángulo, conectará los dos contactos y se encenderá; por lo que el valor de esto es 0 o 1, 0 para apagado y 1 para encendido. Cuando el robot está enojado, también ignora el modo de evitación de obstáculos y golpea cualquier cosa a la vista en la dirección de avance, debido a su enojo.
Paso 9: función asustada
La función final del robot es la función de miedo, que utiliza un sensor de sonido que se coloca justo encima del robot. Siempre que el robot escuche un ruido de carga, se asustará y temblará mientras retrocede. El sensor de sonido funciona mediante el uso de un micrófono de condensador que es un micrófono, cuando detecta sonidos o vibraciones creará un pequeño voltaje, generalmente alrededor de 100 mv, este voltaje luego se amplifica y se lee a través del pin analógico del Arduino, cuanto mayor es el voltaje o cuanto más alto sea el sonido, mayor será el valor analógico, y viceversa.
Paso 10: Poder
Ahora que construiste todo lo que necesitas para alimentarlo, originalmente intenté hacerlo con 8 pilas AA, pero era demasiado voluminoso y poco práctico. Luego usé 3 baterías de iones de litio que tienen aproximadamente 3.5v cada una, conecté una batería a un convertidor de refuerzo que es un amplificador de voltaje, esto aumentó mi 3.5v a 5v para alimentar el Arduino, luego usé dos de las baterías y lo conecté directamente a los motores y LED, esta no es una buena idea ya que el voltaje no estaba regulado, pero no tenía un regulador de voltaje por ahí, si intentas construirlo, te recomiendo usar un regulador de voltaje que pueda hacer 5v en alrededor de 2-3 amperios, un ejemplo de esto es el LM78S05. O puede usar el LM7805 para alimentar el Arduino y, en su lugar, obtener un convertidor reductor o un convertidor reductor para reducir el voltaje y alimentar los LED y los motores.
Paso 11: ¡Diviértete
Espero que construyas este robot y te diviertas, también espero que le des tu propio giro a este robot y crees tus propias emociones para hacerlo VIVO !!!