Arduino, aplicaciones actuales y potenciales, para contrarrestar los efectos del cambio climático en la agricultura www.zonaelectronica.com www.webelectronica.com.ar Francisco Di Zonno +58.414.246.48.25 [email protected] [email protected] Del uC al Arduino Un proceso evolutivo La evolución de los automatismos es la consecuencia de la evolución de varias ciencias y/o disciplinas. 1.- La Electricidad 2.- La Electrónica 3.- La Informática La electricidad nos ha permitido elevar el nivel de confort en nuestras viviendas y edificaciones. La electricidad ha dado paso a la entrada de los electrodomésticos: Lavadoras, Neveras, Lavaplatos, Hornos, Cocinas eléctricas,… Máquinas capaces de realizar tareas cotidianas de forma casi autónoma, elevando nuestro nivel de confort que en otros tiempos eran inimaginables. Del uC al Arduino La Evolución de la Electrónica, ha marcado el desarrollo de muchos sistemas, permitiendo realizar programaciones y/o rutinas, que regulan cada proceso que se quiera controlar. Del uC al Arduino La Informática Del uC al Arduino La Internet Web 1.0. Se basa en la Sociedad de la Información, en medios de entretenimiento y consumo pasivo (medios tradicionales, radio, TV, email). Las páginas web son estáticas y con poca interacción con el usuario (web 1.0, páginas para leer). Web 2.0. Se basa en la Sociedad del Conocimiento, la autogeneración de contenido, en medios de entretenimiento y consumo activo. En esta etapa las páginas web se caracterizan por ser dinámicas e interactivas (web 2.0, páginas para leer y escribir) en donde el usuario comparte información y recursos con otros usuarios. World Wide Web (WWW o la Web) - 1990 Web 3.0. Las innovaciones que se están produciendo en estos momentos se basan en Sociedades Virtuales, realidad virtual, web semántica, búsqueda inteligente. Del uC al Arduino Las redes de telefonía Del uC al Arduino Tecnología wireless de baja potencia Del uC al Arduino La idea propuesta por Kevin Ashton en 1999 Se estima que 50 mil millones de dispositivos estarán conectados en el año 2020 Del uC al Arduino La Internet de las Cosas (IoT) es una red de tecnología que monitorea el estado de los objetos físicos, captura DATA, y transmite la información usando redes IP a programas de Aplicaciones. Del uC al Arduino Dispositivos IoT Lo que hace a los dispositivos IoT diferentes de un sensor “ordinario” es básicamente la habilidad de éste de comunicarse (usualmente) en forma directa o indirecta a la Internet. Las preguntas serian: ¿Cuáles son las principales razones para que un dispositivo se tenga que conectar a Internet o un servicio de Internet? ¿Qué clase de servicio será ese? ¿Qué tipo de servicio debería obtener? Del uC al Arduino IoT – Un mundo de muchas posibilidades Del uC al Arduino Algunos productos Del uC al Arduino Algunos actores Philips HUE, bombillos LED conectados a Internet Apple – HomeKit Google - Brillo & Weave SmartThings - Samsung Del uC al Arduino Actores principales Microcontroladores Del uC al Arduino Microcontrolador (μC) Un microcontrolador es un circuito integrado que contiene internamente todos los componentes básicos de un computador: •CPU •Memoria •Unidades de E/S Este se utiliza para controlar el funcionamiento de Sistemas Electrónicos con tareas determinadas. Del uC al Arduino Microcontroladores (μC) hoy en día Sistemas embebidos (embedded) Del uC al Arduino Dispositivos Interactivos Dispositivo electrónico capaz de “sentir” el medio ambiente usando sensores, que convierten las señales externas en señales eléctricas. Procesar la información recibida que se obtiene de los sensores con comportamientos que están implementados en el software. Interactuar o actuar con el mundo exterior usando actuadores que convierten señales eléctricas en acciones físicas. Del uC al Arduino Ambiente de Desarrollo Integrado - IDE Tareas Típicas de un IDE 1.- Área para escribir el código “fuente”. 2.- Compilar, ensamblar y encadenar el código fuente con los programas que conviertan el código fuente en “unos y ceros” que es lo que finalmente entiende el microcontrolador. 3.- Probar el programa utilizando simuladores. 4.- “Quemar” o grabar el código en la memoria de programa del microcontrolador y verificar que se ejecuta correctamente en la aplicación definitiva. ARDUINO PINGUINO MPLAB X PICAXE Editor Del uC al Arduino Del uC al Arduino ¿Qué es ARDUINO? Arduino es una plataforma de desarrollo de computación física, de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (para esa placa). Software libre Hardware libre Del uC al Arduino ARDUINO 2005 / 2016 David Mellis Gianluca Martino David Cuartielles Tom Igoe Massimo Banzi Arduino nació como un proyecto colaborativo y educativo - año 2005 Del uC al Arduino Del uC al Arduino El Ecosistema ARDUINO Consiste de: o o o o o o La placa Arduino El IDE Arduino El lenguaje Arduino Software (Bibliotecas) de terceros Shields o extensiones Componentes electrónicos Del uC al Arduino Arduino - USA Del uC al Arduino Arduino - USA Del uC al Arduino Arduino - USA Del uC al Arduino Arduino UNO R3 Del uC al Arduino Arduino – Shields - Extensiones Del uC al Arduino Trabajando con ARDUINO Pasos: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Conseguir un Arduino y un cable USB Descargar el IDE de Arduino Instalar - descomprimir el IDE Conectar la placa a la PC Ejecutar el IDE Arduino Crear o abrir el programa, ejemplo Blink Seleccionar la placa (tarjeta Arduino) Seleccionar el puerto serie (COM) Subir (Cargar) el sketch a la placa Verificar el funcionamiento del programa Del uC al Arduino ARDUINO - IDE Barra de menues Barra de herramientas Pestañas Editor de texto Área de mensajes Consola Los programas en Arduino se llaman SKETCHs Del uC al Arduino Abrir el sketch de ejemplo BLINK Del uC al Arduino “Cargar” el sketch y ver el funcionamiento en la tarjeta Del uC al Arduino ARDUINO – IDE Ejemplos Del uC al Arduino ARDUINO - IDE Bibliotecas (Libraries) Del uC al Arduino ARDUINO – Sketch o programa base Del uC al Arduino Transducción Conversión de un tipo de energía en otra Energía Física Sensores Actuadores Energía Eléctrica Del uC al Arduino Tareas en las que usamos el Arduino 1.- Salidas Digitales 2.- Entradas Digitales 3.- Salidas Analógicas 4.- Entradas Analógicas Del uC al Arduino Salidas Digitales Salida Digital: Cualquier dispositivo que pueda ser encendido-apagado, puede ser un potencial transductor de salida digital Simples: LEDs, Buzzer Complejas: Motores, Solenoides, Bombillos, Calentadoras de Café Relés y transistores Del uC al Arduino Proyecto – Hola Mundo Salidas Digitales LED Intermitente (Blink) Algoritmo - Encender el LED - Esperar un tiempo - Apagar el LED - Esperar otro tiempo - Repetir siempre /* Encender y apagar un LED durante 1 segundo, repetidamente */ // El pin 13 del Arduino está conectado a un LED // Rutina de inicialización. void setup() { // Inicializa el pin 13 como salida pinMode(13, OUTPUT); } // La rutina loop de ejecuta continuamente void loop() { digitalWrite(13, HIGH); // Enciende el LED delay(1000); // Retardo de 1 segundo digitalWrite(13, LOW); // Apaga el LED delay(1000); // Retardo de un segundo } Del uC al Arduino Entradas Digitales Entrada Digital: Suiche Suiche normalmente abierto Suiche normalmente cerrado Suiche momentáneo ON–OFF Apagado-Encendido Del uC al Arduino /* Encender un LED cuando se pulsa un botón */ // Declarar unas variables de memoria int buttonPin = 2; int ledPin = 13; int buttonState = 0; Entradas Digitales void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { // leemos el estado del pulsador buttonState = digitalRead(buttonPin); // Verfificamos si el pulsador está presionado if (buttonState == HIGH) { // encendemos el LED digitalWrite(ledPin, HIGH); } else { // apagamos el LED digitalWrite(ledPin, LOW); } Del uC al Arduino } No todo es blanco y negro, hay grises Sensores Transducción: Transformación o conversión de una forma de energía de entrada, en otra diferente de salida Del uC al Arduino Entradas Analógicas Resistencias Variables Convierten un cambio mecánico, de iluminación, de temperatura y de otras formas de energía en un cambio en la resistencia eléctrica que ofrece. Fotoceldas, fotorresistencias Potenciómetros, reóstatos Resistores Flex Resistores de fuerza Termistores Del uC al Arduino Convertidores Análogos a Digitales Permiten leer un nivel de voltaje en un momento dado y convertirlo a un valor digital que puede ser manipulado o almacenado en el microcontrolador o Computadora Suministran una señal digital en un momento y la convierten en un equivalente analógico para manipular objeto que produce una acción Del uC al Arduino Entradas Analógicas int sensorPin = A0; int ledPin = 13; int sensorValue = 0; void setup() { pinMode(ledPin, OUTPUT); } void loop() { // leer el valor del sensor sensorValue = analogRead(sensorPin); // encender el LED digitalWrite(ledPin, HIGH); // detener el programa por un tiempo definido delay(sensorValue); // apagar el LED digitalWrite(ledPin, LOW); // detener el programa por un tiempo definido delay(sensorValue); } Del uC al Arduino Salidas Analógicas Salida Analógicas: Cuando queremos realizar algo mas que simplemente encender o apagar un elemento, es decir, generar un voltaje de salida variable Ejemplos: Cambiar el brillo de un LED Control de la velocidad de un motor DC Generar tonos Servomecanismos Del uC al Arduino ARDUINO – Salidas Análogas PWM: Modulación por ancho de Pulso Voltaje Efectivo Voltaje Efectivo D = t/T Ciclo de Trabajo Es una señal cuadrada formada por pulsos de frecuencia constante de aproximadamente de 490 Hz. Del uC al Arduino ARDUINO – Salidas Analógicas // Efecto dimmer con un LED const int LED = 3; // Se usa el pin 3 PWM int i = 0; // Se usa para llevar un contador // ascendente y descendente void setup() { pinMode(LED, OUTPUT); } void loop(){ for (i = 0; i < 255; i++) { // loop de 0 to 254 (fade in) analogWrite(LED, i); delay(10); } for (i = 255; i > 0; i--) { // loop de 255 to 1 (fade out) analogWrite(LED, i); delay(10); } } Del uC al Arduino ARDUINO Aplicaciones El Invernadero electrónico. El objetivo es regular la temperatura dentro del invernadero gracias al uso controlado de lámparas, y con sistema de servomotores para abrir las ventanas y encender ventiladores. Mantener constante el nivel de humedad del suelo con un sistema de riego con bomba de agua y recibiendo los datos de temperatura ambiente, humedad del aire y luminosidad. Sistema controlado a través de un sitio web en forma remota. Del uC al Arduino Nduino: Medidor de bajo coste basado en Arduino para agricultura de precisión Este aparato está destinado a determinar los requerimientos de nitrógeno de las plantas (cereales, fundamentalmente) directamente en el campo, con el fin de afinar la fertilización nitrogenada. Mide el contenido en clorofila de la hoja, y como este se relaciona con el estado de nutrición nitrogenada de la misma, permitiendo calcular el estado nutricional de las plantas al menos en Del uC al Arduino cuanto a nitrógeno se refiere. Garduino: Un huerto controlado con Arduino. Creando un sistema controlado de irrigación, iluminación y temperatura Del uC al Arduino Vinduino: Proyecto de ahorro de agua de un viticultor. Monitoreo de la humedad del suelo a diferentes profundidades para determinar cuándo regar, y - más importante - la cantidad de agua que se necesita. Permite ahorros de hasta un 25%. Del uC al Arduino Drones ArduPilot Del uC al Arduino FARMBOT Primera maquina CNC de cultivos bajo filosofía Open-Source Del uC al Arduino FarmBot Del uC al Arduino ARDUINO – Recursos Scratch for Arduino – S4A mBlock Del uC al Arduino ARDUINO para todos Del uC al Arduino Gracias Francisco Di Zonno +58.414.246.48.25 www.zonaelectronic.com www.weblectronica.com.ar [email protected] [email protected] @fdizonno Del uC al Arduino