Archivo de la categoría: Taller

Librerías (Gestor de Librerías)

Las librerías son trozos de código hechos por terceros que usamos en nuestro sketch. Esto nos facilita mucho la programación y hace que nuestro programa sea más sencillo de hacer y de entender. Debemos ser capaces de buscar una librería, instalarla, aprender el funcionamiento y usarla en un sketch.

Las librerías son colecciones de código que facilitan la interconexión de sensores, pantallas, módulos electrónicos, etc. El entorno de arduino ya incluye algunas librerías de manera que facilita, por ejemplo, mostrar texto en pantallas LCD.

Existen infinidad de librerías desarrolladas por terceros en internet con sus correspondientes forks, que nos ayudarán a conectar prácticamente cualquier dispositivo a los Arduinos de forma muy sencilla.

Las librerías normalmente incluyen los siguientes archivos comprimidos en un archivo ZIP o dentro de un directorio.

  • Un archivo .cpp (código de C++)
  • Un archivo .h o encabezado de C, que contiene las propiedades y métodos o funciones de la librería.
  • Un archivo Keywords.txt, que contiene las palabras clave que se resaltan en el IDE (opcional).
  • Muy posiblemente la librería incluye un archivo readme con información adicional de lo que hace y con instrucciones de como usarla.
  • Directorio denominado examples con varios sketchs de ejemplo que nos ayudará a entender cómo usar la librería (opcional).

Como instalar librerías: http://arduino.cc/en/Guide/Libraries

Hay varios métodos de instalar librerías:

  • Mediante el IDE de Arduino de forma automática. Admite la instalación desde un fichero zip o desde una carpeta ya descomprimida.

instalar libreria

  • Instalación Manual. Descomprimiendo en un directorio la librería y copiandolo en el directorio de librerías. Generalmente Mis Documentos – Arduino – libraries, pero la ruta se define desde propiedades. En esta ruta se guardan las librerías “contribuidas por el usuario” como lo denomina el IDE.
  • Desde el gestor de librerías. A partir de la versión 1.6.2 del IDE de Arduino se incorpora el gestor de librerías que facilita el trabajo. Esta herramienta es accesible desde Programa → Incluir Librería → Gestionar Librerías. Desde aquí podemos ver las librerías instaladas, buscar librerías disponibles, instalar librerías y actualizarlas.
    Esta herramienta también nos permite gestionar las librerías instaladas manualmente.
    Desde C:\Users\nombre_usuario\AppData\Local\Arduino15, podemos ver en formato json el listado de librerías y placas disponibles desde el gestor de librerías y tarjetas.

Este enlace explica como actualizar una librería: https://github.com/firmata/arduino#updating-firmata-in-the-arduino-ide—arduino-164-and-higher

El propio IDE de Arduino ya trae integradas varias librerías, pero además podemos descargar otras e incorporarlas a nuestro IDE y luego usarlas en nuestros programas.

Las librerías instaladas por nosotros se guardan en el directorio indicado desde las preferencias del IDE.

2016-03-19 (7)

El listado de librerías incluidas en el IDE y algunas de terceros podemos verlo en este enlace y acceder a la documentación de cada una de ellas para saber como usarlas: http://arduino.cc/en/Reference/Libraries

La librerías incluidas en el IDE tienen ejemplos para comprender su uso. Toda la información en: http://www.arduino.cc/en/Tutorial/LibraryExamples

Por ejemplo, la librería para trabajar con pantallas LCD. En este enlace está la ducumentación para el uso de esta librerías así como los métodos que nos facilita para trabajar con este tipo de pantallas: http://arduino.cc/en/Reference/LiquidCrystal

En el Arduino Playground también tenemos un listado mucho más amplio de librerías, ordenadas por categorías: http://playground.arduino.cc/Main/LibraryList

También tenemos información de como interactuar con diferente HW en http://playground.arduino.cc/Main/InterfacingWithHardware y un conjunto de ejemplos y snippets para usar con Arduino en http://playground.arduino.cc/Main/InterfacingWithHardware

IMPORTANTE: Para añadir una librería a nuestro proyecto simplemente se añade a nuestro código la palabra clave #include seguido del nombre de la librería.

Para finalizar con las librerías, generalmente cada dispositivo que compramos, shield, sensor, actuador, etc… viene con su propia librería que debemos instalar para poder usarlo. Estas librerías podemos verlas, modificarlas o incluso añadir funcionalidades.

Por ejemplo si compramos una sonda de temperatura y humedad de tipo DHT11 como esta: http://www.adafruit.com/product/386, para usarla necesitaremos su libreria correspondiente.

En la web del fabricante o el vendedor deberemos tener disponible la librería y el datasheet del dispositivo, en este caso.

Práctica: Instalar mediante cualquiera de los tres métodos la librería MSTimer2:

Ver los ejemplos incluidos en la librería MSTimer2 y como hacer el programa blink con MSTimer2.

Diferentes Arduinos para diferentes necesidades

Primer Arduino:

Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras necesidades o el proyecto que queramos hacer.

Un shield es una placa compatible que se puede colocar en la parte superior de los arduinos y permite extender las capacidades del arduino. De estas hablaremos en más adelante.

Arduino Uno: http://arduino.cc/en/Main/ArduinoBoardUno

Es la placa estándar y posiblemente la más conocida y documentada. Salió a la luz en septiembre de 2010 sustituyendo su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de utilizar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Diecimila. Viene con un Atmega328 con 32Kbytes de ROM para el programa.

Esquematico: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Microcontrolador: http://www.atmel.com/devices/atmega328p.aspx

Planos del Arduino UNO: https://www.arduino.cc/en/Main/ArduinoBoardUno#documentation

Arduino Mega: http://arduino.cc/en/Main/ArduinoBoardMega2560

Es un Arduino más potente y el que más pines i/o tiene, apto para trabajos algo más complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega2560 con más memoria para el programa, más RAM y más pines que el resto de los modelos.

Esquematico: http://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Microcontrolador: http://www.atmel.com/devices/atmega2560.aspx

Planos del Arduino MEGA: http://www.arduino.cc/en/Main/ArduinoBoardMega2560

Arduino Ethernet: http://arduino.cc/en/Main/ArduinoBoardEthernet

Incorpora un puerto ethernet, está basado en el Arduino Uno y nos permite conectarnos a una red o a Internet mediante su puerto ethernet.

Arduino Due: http://arduino.cc/en/Main/ArduinoBoardDue

Arduino con la mayor capacidad de procesamiento, basado en un microcontrolador de 32 bit y arquitectura ARM: Atmel SAM3X8E ARM Cortex-M3 CPU. Este arduino funciona a 3.3V y debe tenerse en cuenta dado que gran parte de los shields, sensores, actuadores para Arduino funcionan a 5V, pero cada vez se ven más elementos donde se puede elegir el voltaje entre 3.3 y 5V.

Importante: 12-bit ADC

Microcontrolador: http://www.atmel.com/devices/sam3x8e.aspx

Arduino Leonardo: http://arduino.cc/en/Main/ArduinoBoardLeonardo

La diferencia de este arduino con el resto es que trae un único MCU ATmega32u4 que tiene integrado la comunicación USB, lo que elimina la necesidad de un segundo procesador. Esto tiene otras implicaciones en el compartimento del arduino al conectarlo al ordenador, lo que no lo hace apto para iniciarse con él.

Microcontrolador: http://www.atmel.com/devices/atmega32u4.aspx

Arduino Micro: http://arduino.cc/en/Main/ArduinoBoardMicro

También basado en el ATmega32u4 pero mucho más compacto.

Arduino Mini: http://arduino.cc/en/Main/ArduinoBoardMini

Versión miniaturizada de la placa Arduino UNO basado en el ATMega328. Mide tan sólo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son las misma que Arduino UNO. Necesita un programador para conectarlo al ordenador: http://arduino.cc/en/Main/USBSerial

Arduino Lilypad: http://arduino.cc/en/Main/ArduinoBoardLilyPad

Diseñado para dispositivos “wearables” y e-textiles. Para coser con hilo conductor e instalarlo sobre prendas.

Y los nuevos Arduinos incorporados recientemente:

Y aún tenemos más arduinos oficiales:

Y para el que quiera más… http://playground.arduino.cc/Main/SimilarBoards

Como distinguir un arduino oficial de una copia: http://arduino.cc/en/Products/Counterfeit

Guia para comparar Arduino:  https://learn.sparkfun.com/tutorials/arduino-comparison-guide

Plataformas open source para wearables: https://openwearabletech.com/open-source-wearable-platforms-review/

Otra guia interesante sobre los modelos de Arduino: http://portalarduino.com/tarjetas-arduino (Ver interfaz de programación de cada Arduino)

Qué Puedes Hacer con un Arduino

La respuesta es que puedes hacer/construir casi de todo. Arduino es una plataforma para programar un microcontrolador y por lo tanto puede hacer todo lo que puede hacer una MCU, todo depende de nuestra imaginación. Un arduino puede ser un sistema autónomo programado que realice una o varias tareas específicas.

Un ejemplo de lo que puede hacer Arduino es ver los proyectos publicados en Internet como Arduino. Proyectos con Arduino: http://www.instructables.com/tag/type-id/category-technology/channel-arduino/

Principalmente podemos usar Arduino como una herramienta de prototipado, para hacer un despliegue rápido de una idea o medir de una manera objetiva los resultados. Con Arduino podemos hacer “smart” las cosas, es decir, que se conecten a internet. Qué cosas podemos hacer: twitterar, mandar correos, publicar en otras redes sociales, poner datos en tiempo real en internet o en un servidor privado, compartir su estado, etc…

Proyectos curiosos con Arduino:

Arduino se ha popularizado por el creciente movimiento del DIY (https://es.wikipedia.org/wiki/H%C3%A1galo_usted_mismo, https://en.wikipedia.org/wiki/Do_it_yourself), como un elemento barato para hacer pequeños proyectos de “bricolaje”, pero Arduino va mucho más allá.

Existen multitud de entornos de aplicación de Arduino: automatización industrial, domótica, herramienta de prototipado, plataforma de entrenamiento para aprendizaje de electrónica, tecnología para artistas, eficiencia energética, monitorización, adquisición de datos, DIY, aprendizaje de habilidades tecnológicas y programación, etc…

Robótica es otros de los entornos donde Arduino tiene mucha aplicación, incluso ya hay un arduino robot: http://arduino.cc/en/Main/Robot o kits de robótica: http://www.dx.com/p/arduino-compatible-bluetooth-controlled-robot-car-kits-146418#.Vvlc3uKLTcshttp://www.amazon.com/Makeblock-Starter-Robot-V2-0-Electronics/dp/B00H3D8L9O

Y por supuesto en institutos, formación profesional y universidad ha entrado con mucha fuerza como herramienta pedagógica.

También existen muchos productos y proyectos comerciales basados en Arduino, lo que nos da una idea de la amplitud de los entornos donde podemos usar arduino:

Un ejemplo de uso de Arduino en arte se pudo ver en el museo wurth (http://www.museowurth.es/) en el mes de febrero de 2016 en la exposición light kinetics: http://www.museowurth.es/light_kinetics.html.

Este video es una muestra del montaje: https://vimeo.com/149774067, vemos que para las obras de arte usa un arduino mega http://www.arduino.cc/en/Main/ArduinoBoardMega2560 y para una de las obras usa un sensor de 9 grados de libertad con acelerometro, gisroscopio y magnetometro https://www.sparkfun.com/products/10724 que manda os datos a un ordenador y este mediante software controla los módulos DMX que se conectarán al ordenador con un adaptador USB a DMX.

El programa Arduino at heart tiene productos comerciales con el sello Arduino: https://www.arduino.cc/en/ArduinoAtHeart/Products

Pero el principal aspecto de aplicación de Arduino está en el Internet de las cosas (IoT) o Internet de todo o dispositivos conectados o M2M. Internet de las cosas (IoT, por su siglas en inglés) es un concepto que se refiere a la interconexión digital de objetos cotidianos con Internet. Otro aspecto que está ahora de actualidad es el IoT en la industria, que también se le denomina “Industria Conectada” o Industria 4.0, se trata de ampliar el concepto de IoT a la industria.

Otros productos por los que conocemos Arduino son las impresoras 3D y los drones. El código o sketchs que funcionan dentro de un Arduino usado en un drone o en una impresora 3D están disponibles y podemos ver como son y modificarlos.

Firmware para impresoras 3D del proyecto reprap:

Interesante tutorial paso a paso para montar una impresora 3D: https://www.cooking-hacks.com/documentation/tutorials/3d-printer-step-by-step-tutorial-guide-prusa-it3 que usa el firmware Marlin.

Firmware usado con Drones con MCUs iguales a las de Arduino:

Rover con Arduino:

Qué es Arduino. HW Libre.

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

Hardware Libre: http://es.wikipedia.org/wiki/Hardware_libre

Arduino es una plataforma abierta que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen sobre los sensores y escriben sobre los actuadores.

El hardware consiste en una placa con un microcontrolador generalmente Atmel AVR, puertos de comunicación y puertos de entrada/salida. Los microcontroladores más usados en las plataformas Arduino son el Atmega168, Atmega328, Atmega2560, ATmega8 por su sencillez, pero se está ampliando a microcontroladores Atmel de Arquitectura ARM e Intel.

Por otro lado Arduino nos proporciona un  software consistente en un entorno de desarrollo (IDE) para la programación de arduino y un bootloader cargado en el microcontrolador para facilitar el uso de Arduino. La principal característica del software y del lenguaje de programación de Arduino es su sencillez y facilidad de uso.

Arduino promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona. Para alguien que quiere hacer un proyecto, el proceso pasa por comprar una placa Arduino, descargarnos e instalar el IDE, buscar un poco por internet y simplemente hacer “corta y pega” del código que nos interese y cargarlo en nuestro HW mediante el IDE. Luego hacer los cableados correspondientes con los periféricos y ya tenemos interaccionando el software con el Hardware. Todo ello con una inversión económica mínima: el coste del Arduino y los periféricos.

¿Para qué sirve Arduino? Arduino se puede utilizar para desarrollar elementos autónomos, o bien conectarse a otros dispositivos o para interactuar tanto con el hardware como con el software en un ordenador, móvil, etc… Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz que haya, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado, y convertir la información en una acción como puede ser encender una luz y sacar por un display lo tecleado.

Con Arduino  es posible automatizar cualquier cosa, hacer agentes autónomos (si queréis llamarles Robots también), controlar luces y dispositivos, o mil cosas que queramos fabricar, podemos optar por una solución basada en Arduino.

Arduino es una tecnología que tiene una rápida curva de entrada con básicos conocimientos de programación y electrónica, que permite desarrollar proyectos en el ámbito de las Smart Cities, el Internet de las cosas, dispositivos wearables, salud, ocio, educación, robótica, etc…

Como define Arduino la web oficial: https://www.arduino.cc/en/Guide/Introduction

Definicion de Wikipedia: https://es.wikipedia.org/wiki/Arduino

Que es arduino en un minuto (video): http://learn.onemonth.com/what-is-arduino

Hay otro factor importante en el éxito de Arduino, es la comunidad que apoya todo este desarrollo, comparte conocimiento, elabora librerías para facilitar el uso de Arduino y publica sus proyectos para que puedan ser replicados, mejorados o ser base para otro proyecto relacionado.

En resumen:

Arduino = HW + SW + Comunidad

Mitos sobre Arduino que todo el mundo cree y no son verdad: https://www.baldengineer.com/5-arduino-myths.html

Al trabajar con Arduino, se manejan conceptos de diferentes tecnologías que a priori no tienen nada que ver entre ellos: electronica digital y analogica, electricidad, programación, microcontroladores, tratamiento de señales, protocolos de comunicación, arquitectura de procesadores, mecánica, motores, diseño de placas electrónicas etc…

Antes de Arduino: Eran necesarios los programadores para cada MCU, lenguaje de programación ensamblador usando las instrucciones propias de la MCU y materiales caros.

Ejemplos:

Una plataforma muy extendida para aprender a programar microcontroladores era Basic Stamp. Interesante comparación entre Basic stamp y arduino: http://todbot.com/blog/2006/09/25/arduino-the-basic-stamp-killer/

Por último para entender bien lo que es Arduino, es recomendable ver el documental de Arduino de unos 30 minutos de duración. Arduino the Documentary: http://blog.arduino.cc/2011/01/07/arduino-the-documentary-now-online/

Agenda Arduino/Genuino Day 2016 Logroño

Web oficial del Arduino Day: https://day.arduino.cc

Cuando: Sábado 2 de abril de 2016

Donde: Think Tic (Avda. Zaragoza 21, Logroño)

Inscripciones: aquí

Si trabajas o eres una empresa que distribuyes o desarrollas con productos Arduino/Genuino y quieres mostrar lo que haces en el taller del Arduino/Genuino Day, ponte en contacto con aprendiendoarduino@gmail.com para participar.

Evento: De 9.30 a 13.30 – TALLER INICIACIÓN “Conoce Arduino y da tus primeros pasos sin necesidad de Programar” en el Aula 7 del Think Tic.

Como: Ven con tu portátil, tu Arduino/Genuino y el cable USB para conectarlos. Da tus primeros pasos con Arduino sin necesidad de saber programar.
También puedes traer algunos LEDs, resistencias, sensores, jumpers, protoboard, etc… para usarlos con Arduino y modulos wifi o ethernet para conectar tu Arduino a Internet.

Por Qué: Para celebrar el Arduino/Genuino Day en Logroño con un taller para iniciarse en el mundo del Hardware Libre con Arduino/Genuino

Detalle: Taller de 4 horas con el objetivo conocer Arduino/Genuino y hacer funcionar los primeros programas en Arduino.

Contenido del tallerTodo el contenido del taller está disponible públicamente con licencia CC en https://aprendiendoarduino.wordpress.com/arduino-day/, así como la documentación, tutoriales y código.

Qué Veremos en el Taller:

  • Qué es Arduino/Genuino y el HW libre
  • Diferentes Arduinos para Diferentes Necesidades
  • Shields Arduino
  • Software Arduino
  • Instalación Software Arduino (IDE)
  • Primeros Programas con Arduino
  • Librerías Arduino
  • Comunidad Arduino
  • Proyectos con Arduino
  • IoT y Arduino
  • Muestra de productos y desarrollos de Arduino

NOTA: Imprescindible que cada participante traiga su propio portátil.

Si no dispones de un Arduino, disponemos de unas pocas unidades para que puedas seguir el taller.

Cartel del evento

GENUINODAY_flyer_personalizado_v2