Robot para riego de plantas en Arduino, Javascript y Node

Clase 31 de 37Curso Básico de Programación

Contenido del curso

Resumen

¿Cómo programar un robot que reacciona a la luz?

Programar un robot que reacciona a la luz puede parecer complicado, pero es sorprendentemente sencillo cuando se tiene el conocimiento y las herramientas adecuadas. Este contenido te guiará paso a paso, utilizando el entorno de Arduino y JavaScript, para llevar a cabo esta tarea emocionante y educativa.

¿Qué es el firmware Standard Firmata?

Antes de comenzar con la programación, es esencial asegurarse de que el Arduino tiene instalado el firmware Standard Firmata. Este firmware permite la conexión entre Arduino y Johnny-Five, que es una biblioteca en Node.js para controlar hardware. Para verificar si el firmware está instalado, conecta tu Arduino mediante USB a tu computadora y observa si se encienden los LED indicativos.

¿Cómo configurar tu entorno de trabajo?

Asegúrate de que tu archivo JavaScript esté en la misma carpeta donde instalaste los módulos de Node.js y la librería Johnny-Five. Esto es crucial para que las funciones de la librería estén disponibles para tu script. Crea un archivo banderita.js en esta carpeta para comenzar a escribir tu código.

¿Cómo inicializar Johnny-Five?

Para trabajar con Johnny-Five y Arduino, sigue los siguientes pasos:

  1. Importa la librería Johnny-Five:

    const j5 = require('johnny-five');
  2. Crea una instancia del objeto Board, que establecerá la conexión entre Node.js y tu Arduino:

    const board = new j5.Board();
  3. Usa board.on("ready", ...) para ejecutar funciones cuando el Arduino esté listo.

¿Cómo encender un LED en el puerto 13?

Una vez que tu placa esté inicializada, puedes proceder a encender un LED en el puerto 13, que es la forma más sencilla de comprobar que todo está funcionando correctamente:

board.on("ready", function() { const led = new j5.Led(13); led.on(); });

¿Cómo mover un servo motor?

Para mover un servo motor a diferentes posiciones, sigue este procedimiento:

  1. Declara una variable para el servo:

    const motorcito = new j5.Servo(9);
  2. Utiliza el método to para moverlo a la posición deseada:

    motorcito.to(90);

Prueba cambiando los valores para observar los movimientos del servo.

¿Cómo integrar una fotorresistencia?

La fotorresistencia es esencial para detectar la presencia de luz y actuar en consecuencia. Configura tu sensor como se muestra:

  1. Define la configuración del sensor:

    const config = { pin: "A0", freq: 50 };
  2. Crea el sensor:

    const sensor = new j5.Sensor(config);

¿Cómo visualizar la luz recibida?

Para monitorear la cantidad de luz capturada por la fotorresistencia, usa console.log para imprimir el valor del sensor continuamente:

sensor.on("data", function() { console.log("Luz:", this.value); });

¿Cómo crear un ciclo de ondeo de bandera?

Ahora que tienes los elementos básicos configurados, puedes hacer que tu robot ondee una bandera cuando la luz supere cierto umbral:

  1. Define una función que actúe sobre el servo:

    function ondear(){ let luz = sensor.value; if (luz > 800) { motorcito.to(170); } else { motorcito.to(30); } }
  2. Usa setInterval para llamar a esta función periódicamente:

    setInterval(ondear, 1000);

Tu robot responderá a los cambios de luz ondulando la bandera fácil y eficientemente.

¿Cómo ajustar el circuito de la fotorresistencia?

Es crucial conectar correctamente la fotorresistencia y el circuito. Utiliza una resistencia pull-down de 10k ohms para asegurar que sólo la luz activada se mida correctamente. Asegúrate de que el flujo de electricidad pase correctamente desde los 5V del Arduino y regrese al negativo del circuito.

Recuerda, la ingeniería de hardware requiere paciencia y pruebas. Cada circuito y sensor puede comportarse de manera diferente ante condiciones variables.

¿Cómo continuar aprendiendo y creando?

La programación y la electrónica ofrecen oportunidades ilimitadas para la creatividad y la innovación. Experimenta sustituyendo la fotorresistencia por otros sensores, como sensores de humedad, para expandir tus proyectos. Platzi te invita a seguir explorando carreras en programación, videojuegos, y muchas otras áreas del conocimiento técnico.

Comprométete a seguir desarrollando tus habilidades, comparte tus logros, y ¡nunca dejes de aprender!