Arduino

proyectos divertidos con Arduino Rodrigo S. A. circuitos, detalles y código Importante Este libro se encuentra regis

Views 546 Downloads 12 File size 296KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

proyectos divertidos con Arduino

Rodrigo S. A.

circuitos, detalles y código

Importante Este libro se encuentra registrado en Derecho de Autor y posee tramitación de ISBN en curso. El libro no puede ser copiado total o parcialmente sin autorización de la editorial y el autor. Siendo un material de referencia, la editorial y el autor no son responsables por el montaje de los proyectos. Se recomienda supervisión absoluta de un mayor de edad.

Prólogo De chico compraba revistas de electrónica que apenas lograba comprender, desarmaba dispositivos y ya programaba computadoras en el colegio primario. Tenía grandes proyectos, pero pocos recursos para llevarlos a cabo. Recuerdo haber fabricado unas luces audio-rítmicas con leds, un amplificador de guitarra y emisores de radio FM. Recuerdo el olor del estaño derretido en la oscuridad de los meses de verano. Recuerdo quedarme parado en los puestos de revistas, mirando ejemplares de electrónica. En definitiva: era un nerd. Con mis antecedentes no es complicado entender todo lo que vino a representar Arduino. Ya de adulto y con una sólida carrera en la industria 1

Proyectos divertidos con Arduino

del software, cuando compré la primera placa Arduino, la puse sobre el escritorio y quedó ahí, sin ser tocada por un mes. ¿Cuál era el motivo? ¿Era intimidante o muy compleja? No ¿Faltaba documentación? Tampoco ¿Necesitaba otras partes difíciles de conseguir? Menos. En realidad eran tantas, pero tantas las cosas que podía hacer que no me decidía a empezar por ninguna en particular. Pero claro que empecé. No con un gran proyecto, sino con algo bien sencillo. La idea era familiarizarme con la placa. Aprender a programarla. Conectar sensores, interruptores y luces. Empecé con un juego. Un sencillo juego estilo pong con dos interruptores y una pantalla de leds. Algo vintage, quizás en honor a la época donde más necesitaba un entretenimiento semejante dado que los locales de videojuegos estuvieron prohibidos durante mi infancia en Buenos Aires. De ahí pasé a cosas más complejas: un tracker con GPS, una alarma para reemplazar un complicado sistema X10 y muchos otros proyectos, algunos de los cuales fueron destacados en webs y publicaciones de los Estados Unidos.

2

Proyectos divertidos con Arduino

En el medio de mi incursión con Arduino salió NodeMCU y se abrió otro set de posibilidades a través de la conectividad con Internet. Y en algunos casos tuve que echar mano al Raspberry Pi – que es otra placa, no cubierta en este libro que permite llevar a cabo tareas mucho más complejas dado que es una minicomputadora con salidas HDMI, puertos USB y ejecuta una versión del sistema operativo Linux. La decisión de escribir este libro tiene que ver con la pasión. Es sencillo transmitir lo que a uno lo apasiona y ante lo que uno no es indiferente. Si estás acá, leyendo esto, te prometo que se acabó el palabrerío y que en breve vamos a pasar directo a la acción. Así que prepará los cables, calentá el soldador y ajustate el cinturón. Rodrigo S. A.

3

Proyectos divertidos con Arduino

Ante consultas por el dictado de cursos y clases de Arduino en México, España, Argentina o Estados Unidos o el armado de proyectos a medida pueden comunicarse con la editorial [email protected] quien me reenviará los datos de contacto

4

Proyectos divertidos con Arduino

Qué es arduino Arduino es una plataforma electrónica de código abierto basada en hardware y software fácil de utilizar. Las placas Arduino permiten leer entradas como por ejemplo un dedo presionando un interruptor o bien la humedad del ambiente y convertir esto en una salida como por ejemplo, encender una luz o publicar un Tweet. Para indicarle al Arduino qué hacer se le otorgan una serie de instrucciones en lenguaje de programación Arduino al microcontrolador de la placa. El proyecto Arduino comenzó en el año 2003 como un programa para estudiantes en… Italia ¿Quién lo hubiera dicho? A mí particularmente no me extraña dado que Italia es un país con muchísimos logros en todas las áreas, artes, industria, etc. El nombre de hecho viene de un bar 5

Proyectos divertidos con Arduino

en Ivrea, Italia, donde se juntaban los fundadores. La placa original la fabrica Smart Projects en Italia, pero también hay modelos lanzados por SparkFun Electronics y Adafruit Industries. El hecho de haber lanzado Arduino bajo licencia Open Source logró que fuera el centro de numerosos proyectos de todo tipo: desde hobbys personales, hasta complejos sistemas científicos. Asimismo logró una competencia de precios tal que hoy en día es muy, pero muy económico comprar una placa Arduino.

6

Proyectos divertidos con Arduino

Variantes de arduino Las placas Arduino más comunes son:

Arduino UNO Es el punto de entrada a Arduino. Por su tamaño es fácil de manipular. No hace falta soldar y trae conectores muy sencillos. Trae memoria flash de 32KB, EEPROM de 1KB y 2KB de SRAM. Trae 14 pines de Input Output digitales, 6 inputs analogicos y una línea de comunicación serial.

Arduino Mega La principal diferencia son las características técnicas. Esta placa trae 256kb de memoria flash programable. 8KB de RAM y 4KB de SRAM. Por parte de los pins trae 54 pins digitales que pueden 7

Proyectos divertidos con Arduino

ser utilizados como Input o Output. 16 pins análogos y 4 líneas de comunicación serial.

Arduino Nano Es más económica y chica que el Arduino Uno. Trae 14 pines digitales y 6 analógicos. Una de sus versiones con ATmega168 tiene 0.512KB EEPROM, 1KB SRAM y 16kb Flash. La otra con ATmega328P tiene 1KB EEPROM, 2KB SRAM y 32kb Flash.

Arduino Lilypad Tiene un diseño circular plano y se suele utilizar para crear dispositivos que “se visten” En este libro no hay proyectos con esta placa. En cualquier caso sus especificaciones son Procesador ATmega168V 6 inputs análogas. 14 IO 6 PWM digitales. 0.512KB EEPROM, 1 SRAM, 16KB Flash.

Arduino Pro Micro Tiene procesador ATmega32U4 con HID 8

Proyectos divertidos con Arduino

interface para simular operaciones de teclado y mouse. 5 PWM pins, 12 inputs/outputs digitales. Luego hay dos placas muy interesantes que no son oficialmente Arduino, pero que pueden ser tomadas como tales.

NodeMCU Vendría a ser un Arduino + WiFiHeltec WiFi Kit Se podría tomar como un Arduino Nano + WiFi + Display Oled, todo integrado en un dispositivo. En este libro voy a usar Arduino Nano y NodeMCU. Por su precio, tamaño y disponibilidad. No obstante, si tenés otra placa Arduino, podés usarla para reemplazar el Arduino Nano, siempre y cuando respetes en qué pin conectar cada cable. En el caso de los proyectos con NodeMCU, recomiendo usar únicamente esa placa.

9

Proyectos divertidos con Arduino

Requerimientos Cada proyecto tiene sus propios requerimientos. El más básico solo una placa Arduino y tres leds. Los más avanzados requieren Relays, sensores de sonido, módulos detectores de movimiento, etc, pero nada es muy caro ni complicado de conseguir. Si bien la mayoría de los proyectos pueden montarse provisoriamente en un breadboard – placa para hacer conexiones con cables cuyos extremos son pines - sin necesidad de soldar, se recomienda tener también un soldador y estaño a fin de poder montar mejor cada circuito y eventualmente poder agregarles un gabinete. En cuanto a los gabinetes, varios proyectos incluyen archivos para imprimir los mismos en 10

Proyectos divertidos con Arduino

impresoras 3D. Si tenés impresora 3D perfecto. En caso contrario, podés enviar los archivos a cualquier empresa que haga impresiones 3D y en última instancia podés arreglartelas con cartón, acrílico, madera o cajas genéricas de proyectos electrónicos para crear tus propios gabinetes. Sin ir más lejos, antes de tener una impresora 3D, en varios de mis propios proyectos usaba madera o cartón y plasticola. ¿Qué impresora 3D conviene comprar? Hay muchos modelos, pero recomiendo especialmente alguna basada en el modelo Prusa.

11

Proyectos divertidos con Arduino

Proyectos del libro Si bien tiene algo de teoría, este es un libro con la premisa de aprender haciendo. Ya desde el primer proyecto es posible aprender cómo funciona un semáforo en sus dos aspectos: hardware y software. Asimismo tiene aplicación práctica ya que puede ser usado para carreras de autos o bien con fines decorativos. Debajo, la lista completa de los proyectos contenidos en el libro.

Semaforo de leds La idea de este proyecto es familiarizarse con el Arduino IDE para la programación del Arduino y a la vez desarrollar un proyecto práctico que puede ser utilizado en carreras de autos a control remoto o simplemente como un objeto artístico12

Proyectos divertidos con Arduino

decorativo para el escritorio.

Juego de Fútbol Al proyecto anterior de control de leds vía Arduino se le puede agregan dos botones, un buzzer y algo de programación para desarrollar un pequeño juego de mano sobre penales de Fútbol. Pura diversión de los años setenta y de paso un poco de apreciación por lo que lograban esos handheld games. Clapper La idea de este proyecto es utilizar el Arduino para controlar dispositivos mayores, como una luz o un radiograbador. Arduino detectará un aplauso – o cualquier otro sonido fuerte – y encenderá lo que sea que se encuentre conectado al Relay. Ideal para encender el velador sin necesidad de buscar el cable.

Alarma Ya sea para controlar el acceso no autorizado a una casa o a un locker de colegio, esta minialarma 13

Proyectos divertidos con Arduino

con sensor de movimiento es a la vez un proyecto entretenido y de una aplicación muy práctica.

Display de noticias Claro que es posible agarrar el Smartphone y leer las noticias, pero qué tal si un display permanente de leds van rotando las noticias más importantes del día. ¿Y qué tal si es posible configurar esas noticias bajo ciertos rubros? De esto se trata el Display de noticias.

Jukebox Los Jukebox son esas máquinas que había antes en los bares y que permitían seleccionar canciones con una botonera. Con un módulo de mp3, un Arduino, un display y botones vamos a aprender a fabricar nuestro propio Jukebox.

Sintetizador Un sintetizador es un instrumento musical que genera señales eléctricas que se convierten en música. Con ayuda de unos botones, 14

Proyectos divertidos con Arduino

potenciómetros y buzzers vamos a generar un mini sintetizador musical.

Rastreador de ubicación Quizás querés saber adónde fue una persona o un vehículo en tu ausencia. No hace falta ser espía y tener acceso a equipamiento ultra secreto. Con un Arduino y un módulo GPS es fácil determinar la ubicación y guardarla para su análisis posterior.

15

Proyectos divertidos con Arduino

Montaje Armar la electrónica Tras conseguir los requerimientos, la primera parte consiste en armar la electrónica. Ya sea en un breadboard – que es una placa con conectores temporales a fin de evitar soldaduras – o definitivamente los cables soldados, recién cuando está todo conectado al Arduino se pasa al paso siguiente que consiste en subir el código.

Instalar el Arduino IDE Para subir el código de programación al Arduino es necesario utilizar un software llamado Arduino IDE. El mismo se descarga gratis desde la web https://www.arduino.cc/en/Main/Software 16

Proyectos divertidos con Arduino

En el caso que tras la edición de este libro la dirección hubiera cambiado, basta con realizar una pequeña búsqueda online para averiguar la nueva dirección para la descarga gratuita del software. El software viene en tres versiones: Windows, Linux y MacOs. En el caso de Linux es importante verificar los permisos del puerto USB. En el caso de Windows y MacOs no hay mayores inconvenientes.

Configurar el Arduino IDE

17

Proyectos divertidos con Arduino

Los dos aspectos a configurar son: el tipo de placa Arduino y el puerto USB a utilizar. Tras conectar el Arduino a la computadora, el IDE va a mostrar los puertos disponibles en la pestaña Herramientas/Puerto. Basta con ir ahí y seleccionar el Puerto al que se conectó el cable USB. Si hay varios, ir probando de a uno. En cuanto al tipo de placa, esta se selecciona desde Herramientas/Placa. Para NodeMCU es necesario realizar un paso adicional: ir a Archivos, Preferencias, Dirección adicional del administrador de placas. Puede ser que esta leyenda varíe, pero es fácil de ubicar. Ahí se copia y pega esta dirección http://arduino. esp8266.com/stable/package_esp8266com_index. json y luego aparecerá en Herramientas/Placa NodeMCU.

Copiar el código al Arduino IDE Si bien es posible tipear cada línea de código de cada proyecto en la pestaña de código del Arduino IDE, lo mejor es descargar los archivos .ino y no tener que tipear. Por otro lado se descartan 18

Proyectos divertidos con Arduino

errores de tipeo dado que los archivos a descargar están probados. Para obtener los archivos de cortesía de Arduino IDE, PHP y los gabinetes de impresión 3D basta con escribir un comentario del libro en Amazon y luego enviar un email a [email protected] Los links para los comentarios son: Amazon España http://www.Amazon. es/gp/customer-reviews/write-a-review. html?asin=B07PVZ6ZRQ Amazon México http://www.Amazon. com.mx/gp/customer-reviews/write-a-review. html?asin=B07PVZ6ZRQ Amazon.com http://www.Amazon. com/gp/customer-reviews/write-a-review. html?asin=B07PVZ6ZRQ Tras abrir el código o tipearlo, para subirlo 19

Proyectos divertidos con Arduino

al Arduino es necesario tener conectado el cable USB, seleccionado el puerto y el tipo de placa y finalmente clickear en el botón de la flecha hacia la derecha que debería decir Subir o Upload. Sobre los gabinetes para imprimir en 3D En el caso que se necesiten los archivos de los gabinetes para imprimir en 3D, se pueden solicitar al mismo email de antes.

Depuración de errores Si bien el código de estos proyectos fue probado, es posible que se produzca algún error ya sea de tipeo o bien al intentar modificar los proyectos. En cualquier caso es bueno saber que Arduino puede ir dando mensajes a la computadora a través de una comunicación serial. Todos los proyectos tienen código para ir informando por serie el punto de ejecución y la forma de visualizar esto es ir al Arduino IDE, Herramientas, Monitor Serial. Luego es necesario comprobar que la velocidad indicada en el código sea la misma que 20

Proyectos divertidos con Arduino

la indicada en el selector desplegable del Arduino IDE y luego irán apareciendo los mensajes que entrega el Arduino cuando se ejecuta el código. En el ejemplo que sigue debajo, la velocidad es 9600 y al ser ejecutado imprimirá “Rastreador de Ubicación” en la ventana de monitor serial. Serial.begin(9600); Serial.print(“Rastreador de ubicación”);

21

Proyectos divertidos con Arduino

Programación Este capítulo puede ser pasado por alto en el caso que solo te interese llevar adelante los proyectos del libro tal como están. Ahora bien, si te interesa aprender a modificar los proyectos y llevar adelante los tuyos, es imperativo conocer algo sobre la programación del Arduino.

Partes de un código Arduino En principio, cualquier código Arduino consta de dos partes: setup y loop. La primera parte solo se ejecuta una vez y como su nombre lo indica contiene el “setup” o la configuración inicial. La segunda parte se ejecuta repetitivamente o bien en “loop”.

22

Proyectos divertidos con Arduino

Esto es importante para determinar adónde colocar qué partes de nuestro código. En el primero de los proyectos por ejemplo se utilizan las líneas previas a la función setup para definir variables globales – que van a ser requeridas en todo el código – luego se usa la sección setup para definir la función de los pines, cuáles están en uso y si son de entrada o salida y finalmente se usa la sección loop para ir prendiendo y apagando las luces. Estas instrucciones se ejecutan secuencialmente y vuelven a iniciarse.

¿Cómo se define una variable? int ledVerde=2; Esto quiere decir que ledVerde es de tipo Integer y se le asigna el valor 2. Todas las líneas en el código Arduino tienen que finalizar con punto y coma.

¿Cómo se define un pin? 23

Proyectos divertidos con Arduino

pinMode(ledVerde, OUTPUT); Con pinMode se indica primero el número de pin y luego si el pin es de entrada o salida. El número de pin puede indicarse directamente en la función - pinMode(2,OUTPUT); - pero conviene tenerlo definido antes, para poder cambiarlo en un lugar para todo el código posterior. Los pines son conectores del Arduino cuyo fin es adosar luces, sensores y dispositivos externos varios. En un caso sencillo como el proyecto del semáforo, al pin 2 se conecta un extremo del led y el otro extremo del led se conecta al pin GROUND o tierra. El pin entonces es un pin de salida o OUTPUT dado que Arduino enviará un voltaje y no estará leyendo nada. En otro caso como la conexión de un interruptor, un extrema del mismo puede ir conectado al pin 2 y el otro a Ground. La definición en este caso será de INPUT dado que en lugar de enviar una señal, se recibe y lee una señal.

24

Proyectos divertidos con Arduino

¿Cómo se insertan comentarios? Utilizando dos barras iniciales se definen comentarios en el código, lo cual es ideal para documentar lo que se hace. Por ejemplo: // inicialización de los pines

¿Cómo se inserta una línea para depurar código? La función genérica de depuración ya está explicada anteriormente, pero el código necesario para obtener en la computadora información sobre lo que está pasando en Arduino es la siguiente: Serial.begin(115200); Serial.println(“Futbol”);

25

Proyectos divertidos con Arduino

La primera línea indica que se abre una línea de comunicación serial a 115200 de velocidad. La segunda línea enviará desde el Arduino al Arduino IDE (software instalado en la PC, Mac o Linux), la leyenda Futbol. La depuración puede ser utilizada para entender qué sector del código se está utilizando o bien para imprimir el valor de las variables o la temperatura de un sensor, por ejemplo.

Condicionales Los condicionales son sectores del código que solo se ejecutan cuando se cumple una condición. En Arduino IDE, el modelo del condicional sigue a continuación. Es importante notar que la comparación de igualdad se hace con DOS símbolos de igual, para diferenciarlo de la asignación. La condición en el ejemplo es: cuando el estado del Relay sea HIGH, cambiarlo a LOW y viceversa. if (relayState==HIGH){ digitalWrite(relay, LOW); 26

Proyectos divertidos con Arduino

} else{ digitalWrite(relay, HIGH); }

Loops Independientemente de que el código principal de Arduino se ejecute en Loop una y otra vez, quizás uno necesita adentro del código que otro sector se ejecute en loop y esto se hace con la instrucción while y una condición especificada entre paréntesis.

while(relayState==HIGH){

// aquí el código a repetir

}

For

27

Proyectos divertidos con Arduino

En el caso que sea necesario repetir un segmento de código iterando valores de un contador, es posible usar el siguiente código for(int i=1; i