Archivo de la categoría: Arduino Day

Presentación Taller Arduino Day 2016

GENUINODAY_banner_720x300

Toda la documentación está liberada con licencia Creative Commons: Reconocimiento – No Comercial – Compartir Igual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

Comunidad Arduino

ArduinoCommunityLogo_EPS

Un factor del éxito de Arduino ha sido la comunidad que está apoyando este proyecto y que día a día publica nuevo contenido, divulga y responde a las dudas. En Internet hay disponible todo tipo de cursos, tutoriales, herramientas de consulta, proyectos, etc… que ayudan a que se pueda usar Arduino con facilidad.

El primer sitio donde empezar para trabajar con Arduino es http://www.arduino.cc/ y despues seguir por el playground de Arduino.

Arduino playground es un wiki donde todos los usuarios de Arduino pueden contribuir. Es el lugar donde publicar y compartir código, diagramas de circuitos, tutoriales, trucos, cursos, etc.. y sobretodo el lugar donde buscar cuando tengamos dudas, un problema, una librería adecuada para nuestro proyecto, etc… Es la base de datos de conocimiento por excelencia de Arduino.

Arduino playground: http://playground.arduino.cc/

Algunos apartados importantes en playground.

Foro Arduino: http://forum.arduino.cc/. Otro lugar donde poder buscar información y preguntar las dudas que tengamos.

Más lugares donde resolver nuestras dudas o buscar soluciones a nuestros problemas:

También podemos seguir a Arduino en las redes sociales:

Otro lugar de encuentro de la comunidad son diversos portales donde se publican proyectos con Arduino:

Por último, también hay espacios locales para la comunidad, son los llamados hacklabs hackerspace, makerspace, etc.. que aunque hay ciertas diferencias entre unos y otros, se trata de un sitio físico donde gente con intereses en ciencia, nuevas tecnologías, y artes digitales o electrónicas se puede conocer, socializar y colaborar. Puede ser visto como un laboratorio de comunidad abierta, un espacio donde gente de diversos trasfondos puede unirse. Pone al alcance de aficionados y estudiantes de diferentes niveles la infraestructura y ambiente necesarios para desarrollar sus proyectos tecnológicos.

Hacklab: https://es.wikipedia.org/wiki/Hacklab

Mejores prácticas Hackerspaces: https://elplatt.com/new-hackerspace-design-patterns

Listado de Hackerspaces: https://hackerspaces.org/wiki/List_of_ALL_Hacker_Spaces

También hay otro espacio local algo diferente que son los fablabs: es un espacio de producción de objetos físicos a escala personal o local que agrupa máquinas controladas por ordenadores.

Fablab: https://es.wikipedia.org/wiki/Fab_lab

Qué es un fablab: http://fab.cba.mit.edu/about/charter/

Este podcast explica las diferencias entre estos espacios: http://make.cesargarciasaez.com/2016/02/01/la-hora-maker-010-fablabs-makespaces-hackerspaces-y-hacklabs/

Simulador Arduino

Fritzing es el programa por excelencia para la realización de esquemas eléctricos en proyectos con Arduino. Es software open source. Dispone bibliotecas con la mayoría de componentes (http://fritzing.org/parts/), incluido por supuesto los propios Arduinos, placas de conexiones, led, motores, displays, etc. Además permite hacer esquemas eléctricos, diseñar nuestro PCB final… un sinfín de opciones que convierten a este programa en una herramienta muy útil.

También nos permitirá obtener el esquema eléctrico, listado de componente usados y el diagrama para poder fabricar la PCB. Luego podemos solicitar que nos hagan la pcb con el servicio Fritzing Fab: http://fab.fritzing.org/fritzing-fab. Por ejemplo, nos permitiría diseñar un shield propio.

También podemos explorar proyectos: http://fritzing.org/projects/

Para aprender más sobre Fritzing: http://fritzing.org/learning/

Fritzing no es un simulador, pero las nuevas versiones de Fritzing permite guardar el código de un diseño e incluso cargarlo en Arduino.

Web Principal: http://fritzing.org/home/

Descarga: http://fritzing.org/download/

Solicitar fabricar diseño realizado con Fritzing: http://fab.fritzing.org/fritzing-fab

123D Circuit.io: Herramienta online gratuita de Autodesk que permite dibujar esquemas de forma similar a Fritzing. Además permite simulación de circuitos, e incluso podemos realizar la “programación virtual” de las placas Arduino y comprobar el funcionamiento, es un simulador online.

Una genial iniciativa que, de momento, aún tiene unos cuantos problemas. La simulación es lenta y como programa de dibujo sigue siendo mejor Fritzing. No obstante, una aplicación muy interesante que desde luego merece la pena echar un vistazo.

Web principal que merece la pena ser visitada y ver todo lo que ofrece: http://123d.circuits.io/

Web del simulador: http://www.123dapp.com/circuits

Una herramienta muy interesante que ofrece 123d.circuits es el debugger, con ella podemos parar la ejecución de un programa y ver los valores de las variables, algo que con arduino no podemos hacer.

Los ejemplos de #aprendiendoarduino para parcticar: https://123d.circuits.io/users/127626/designs

Para más información consultar la ayuda: https://support.circuits.io/hc/en-us

Otras herramientas: existen muchas otras herramientas para diseño de circuitos y pcbs, así como para simulación.

Práctica: Simulación en 123d.circuits.

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.

Primer programa/sketch de Arduino

En lugar del clásico “hola mundo” que es el primer programa cuando se aprende un lenguaje de programación, en Arduino el equivalente es el sketch blink.

Nuestro primer programa será hacer parpadear el led integrado que lleva Arduino (built-in led).

Este es el esquema a usar, pero el led marcado como L está también conectado al pin 13 (en el caso del Arduino UNO) y no es necesario poner un led adicional.:

Pasos a seguir:

  • Abrir la aplicación Arduino
  • Abrir el ejemplo blink

blink

  • Seleccionar la placa y el puerto adecuado

blink2

  • Cargar el programa pulsando el botón “subir”. El programa se compilará y luego se verá parpadeando los leds Tx y Rx de Arduino, indicando que se está cargando el fichero binario (.hex) en la flash del Arduino. Cuando aparezca el mensaje “subido” habremos acabado.
  • Unos segundos después veremos el LED parpadeando.

Una explicación completa del proyecto y enlaces a las funciones usadas está en: http://arduino.cc/en/Tutorial/Blink

Constantes definidas en el IDE Arduino: https://www.arduino.cc/en/Reference/Constants

Demos un paso más y modifiquemos el sketch para que parpadee más rápido y más lento. Modificar el valor de delay y volver a compilar y subir a Arduino.

Vamos a ampliarlo y modificar el programa para que cada vez que encienda y apague saque por el puerto serie la cadena “encendido”, “apagado” cuando corresponda. Luego guardarlo en nuestro entorno de trabajo.

Será necesario usar la librería Serial: http://arduino.cc/en/Reference/Serial

Solución: https://github.com/jecrespo/Aprendiendo-Arduino/blob/master/Ejercicio01-Blink/Ejercicio01-Blink.ino

El IDE trae muchos ejemplos que podemos ver y probar: https://www.arduino.cc/en/Tutorial/BuiltInExamples