Archivo de la categoría: Comunidad

Qué es Arduino

Esta conferencia sobre IoT con Arduino fue expuesta el 1 de abril de 2017 con motivo del Arduino Day. Puedes ver el video de la conferencia completa en http://www.innovarioja.tv/index.php/video/ver/1661


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

Definición de Arduino en la web oficial: https://www.arduino.cc/en/Guide/Introduction

Otras definiciones de Arduino:

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.

En palabras de David Cuartielles: “Actualmente todo lo que nos rodea en la vida es digital (entendido como hacer operaciones matemáticas complejas y comunicar con otros dispositivos), cualquier cosa lleva un microchip, desde el microondas a un coche. Arduino lleva uno de esos microchips y te permite aprender a manejar como funciona el mundo en el que vivimos hoy en día y cómo interactúa el hombre con el mundo digital. Arduino es la puerta hacia tomar control de cómo funcionan las cosas actualmente y en el futuro. Así que encender el ordenador y empezar a programar.

El HW Arduino:

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

El software hecho para Arduino es portable, es decir, el mismo firmware que hemos hecho para un Arduino/Microcontrolador, sirve para otras placas Arduino u otras placas compatibles Arduino como el ESP8266.

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.

La expresión local de la comunidad Arduino son los makerspaces como el UR-maker de la Universidad de La Rioja: http://www.unirioja.es/urmaker/

Para recibir información de los eventos de la comunidad maker de Logroño inscribirse en la lista de correo noticias@aprendiendoarduino.com o mandar un correo a aprendiendoarduino@gmail.com para inscribirse.

En resumen:

Arduino = HW + SW + Comunidad

¿Para qué sirve Arduino? Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, 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 pasar por un display lo tecleado.

Librerías Arduino

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. En este curso no veremos como hacer o modificar una librería pero en este curso debemos ser capaces de buscar una librería, instalarla, aprender a usar cualquier librería 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.

En este momento hay 883 librerías oficiales de Arduino, listado: http://www.arduinolibraries.info/ y cada semana aumenta.

Programación Arduino

El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es una adaptación que proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC (compilador de C y C++) en los microcontroladores AVR de Atmel y muchas utilidades específicas para las MCU AVR de Atmel como avrdude: https://learn.sparkfun.com/tutorials/pocket-avr-programmer-hookup-guide/using-avrdude

Aunque se hable de que hay un lenguaje propio de programación de Arduino, no es cierto, la programación se hace en C++ pero Arduino ofrece unas librerías o core que facilitan la programación de los pines de entrada y salida y de los puertos de comunicación, así como otras librerías para operaciones específicas. El propio IDE ya incluye estas librerías de forma automática y no es necesario declararlas expresamente. Otra diferencia frente a C++ standard es la estructuctura del programa.

Toda la información para programar Arduino se encuentra en el reference de la web de Arduino: https://www.arduino.cc/en/Reference/HomePage

Aplicaciones Arduino

Desde los inicios de Arduino y el HW Open Source, la industria encontró una forma sencilla y barata de implementar el Internet de las cosas y la Industria 4.0. Con estas herramientas es posible realizar tareas como:

  • Machinery automation.
  • Installation Control. (Thermal, Climate conditioning, Water treatment, Chemical products, Food, etc.).
  • Industrial monitoring.
  • Data acquisition.
  • etc.

Qué es Arduino

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

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

¿Para qué sirve Arduino? Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, 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 pasar por un display lo tecleado.

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

HW Arduino

El HW de Arduino es básicamente una placa con un microcontrolador. Un microcontrolador (abreviado µC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

Características de un Microcontrolador:

  • Velocidad del reloj u oscilador
  • Tamaño de palabra
  • Memoria: SRAM, Flash, EEPROM, ROM, etc..
  • I/O Digitales
  • Entradas Analógicas
  • Salidas analógicas (PWM)
  • DAC (Digital to Analog Converter)
  • ADC (Analog to Digital Converter)
  • Buses
  • UART
  • Otras comunicaciones.

Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras necesidades.

Las shields son placas de circuitos modulares que se montan unas encima de otras para dar funcionalidad extra a un Arduino. Esta Shields son apilables.

Las shields se pueden comunicar con el arduino bien por algunos de los pines digitales o analógicos o bien por algún bus como el SPI, I2C o puerto serie, así como usar algunos pines como interrupción. Además estas shields se alimenta generalmente a través del Arduino mediante los pines de 5V y GND.

Cada Shield de Arduino debe tener el mismo factor de forma que el estándar de Arduino con un espaciado de pines concreto para que solo haya una forma posible de encajarlo.

Las placas y shields oficiales de Arduino pueden verse en:

Cabe destacar alguna placas Arduino:

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

Es con mucha diferencia el más potente y el que más pines i/o tiene, apto para trabajos ya 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 MKR1000https://www.arduino.cc/en/Main/ArduinoMKR1000
    Versión para IoT con procesador Atmel ARM Cortex M0+ de 32bits ATSAMW25 que es el mismo procesador que Genuino Zero pero con wifi integrado, chip de cifrado y antena integrada.

  • Arduino Yun – http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun
    Con MCU Atmel AVR de 8 bits ATmega32U4 y procesador MIPS Qualcomm Atheros AR9331 a 400 MHz con wifi integrado y SO linux Linino basado en OpenWRT y ethernet. Su principal característica es la capacidad de comunicar la MCU con el SO linux mediante un puerto serie interno.

Placas Compatibles Arduino

El HW Arduino no solo se queda en las placas oficiales, sino que en los últimos años han aparecido muchas placas de prototipado basadas en los mismos o diferentes microcontroladores que bien por acuerdos con Arduino, por los propios fabricante de los microcontroladores o por la propia comunidad de usuarios, estas placas tienen soporte del IDE de Arduino y es posible programarlas como el resto de Arduinos oficiales con el mismo lenguaje de programación.

Placas no oficiales Arduino con soporte para el IDE de Arduino son: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Cabe destacar las siguientes placas no oficiales:

SW Arduino

El software de Arduino es un IDE, entorno de desarrollo integrado (siglas en inglés de Integrated Development Environment). Es un programa informático compuesto por un conjunto de herramientas de programación.

El IDE de Arduino es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Además incorpora las herramientas para cargar el programa ya compilado en la memoria flash del hardware.

Es destacable desde la aparición de la versión 1.6.2 la incorporación de la gestión de librerías y la gestión de placas muy mejoradas respecto a la versión anterior y los avisos de actualización de versiones de librerías y cores.

Todos lo cambios en la versiones pueden verse en: https://www.arduino.cc/en/Main/ReleaseNotes

Código fuente del IDE de Arduino está disponible en: https://github.com/arduino/Arduino/  y las instrucciones para construir el IDE desde código fuente pueden verse en: https://github.com/arduino/Arduino/wiki/Building-Arduino

Podemos también ver los problemas/bugs detectados de la versión actual y hacer un seguimiento de ellos en: https://github.com/arduino/Arduino/issues

La dirección para descargarse el IDE de Arduino es: https://www.arduino.cc/en/Main/Software

Además del IDE instalado en local, hay disponible un IDE on-line dentro del entorno Arduino Create https://create.arduino.cc/ que es una plataforma on-line integrada que permite escribir código, acceder a contenido, configurar placas y compartir proyectos, muy enfocado al Internet de las Cosas (IoT).

También existen otros IDEs alternativos como Atmel Studio http://www.atmel.com/Microsite/atmel-studio

Comunidad Arduino

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 el segundo sitio el playground de Arduino http://playground.arduino.cc/

Arduino playground es un wiki donde todos los usuarios de Arduino pueden contribuir. Es el lugar donde publicar y compartir código, diagrama 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… Esa la base de datos de conocimiento por excelencia de Arduino.

También existen lugares no oficiales de Arduino donde resolver nuestras dudas:

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.

Un ejemplo de ello es el URmaker: http://www.unirioja.es/urmaker/

Arduino vs Raspberry Pi

Desde hace tiempo han irrumpido en el mercado distintas soluciones de placas PC  también llamadas “Single Board Computer” (SBC), como Raspberry Pi, Beaglebone, etc…

Existe la creencia popular que Arduino es una Raspberry Pi pero con menos capacidades. Obviamente si comparamos los valores de memoria RAM, frecuencia de CPU y capacidad de almacenamiento, podemos creer que así es, pero se trata de dos placas con funcionalidades diferentes.

Las diferencias principales entre una Raspberry Pi y un Arduino son:

  • Número de entradas y salidas disponibles y sus capacidades de corriente y voltaje.
  • La programación, Arduino se usa para programación en tiempo real, en Raspberry Pi se usa para programación intensiva con gran cantidad de datos.
  • Como se ejecuta la aplicación del usuario

Raspberry Pi:

Arduino:

Analogía: Arduino es un Autómata programable y Raspberry Pi es un Ordenador, así que a la hora de decidirse que utilizar para un proyecto deberíamos pensar si usar un autómata o un ordenador.

Comparativa:

Conexiones Raspberry Pi:

Conexiones Arduino:

IMPORTANTE: Todos los pines de Raspberry Pi tienen un nivel lógico de 3.3V incluido puerto serie, bus I2C y SPI. Los pines de Raspberry Pi no soportan entradas de 5V. Para Arduino UNO el nivel lógico es de 5V.

Cada pin de Raspberry Pi soporta un máximo de 16mA hasta un total de 51mA para toda la placa. Arduino Uno soporta un máximo de 40mA por pin (20mA recomendado) y hasta 300mA en total para la placa.

Makerspaces y FabLabs

La cultura maker es una extensión basada en la tecnología de la cultura DIY (hágalo-usted-mismo). Intereses típicos de los que disfruta la cultura maker incluye actividades orientadas a la ingeniería, como la electrónica, la robótica, la impresión 3D, y el uso de herramientas CNC, así como las actividades más tradicionales, como la metalurgia, carpintería y tradicionales artes y artesanías. Enfatiza un enfoque de cortar y pegar para tecnologías estandarizadas  y anima a la reutilización de diseños publicados en los sitios web y publicaciones orientadas al maker. Hay un fuerte énfasis en el uso y el aprendizaje de habilidades prácticas y su aplicación a diseños de referencia.

La cultura Maker pone énfasis en el aprendizaje activo o learning-by-doing y de forma colaborativa. El “nosotros” es más inteligente que el “yo“. La colaboración en proyectos de gran interés personal a impulsar la necesidad de compartir las lecciones aprendidas.

La cultura Maker ha atraído el interés de los educadores preocupados por la separación de los estudiantes de los temas STEM (ciencia, tecnología, ingeniería y matemáticas) en los entornos educativos formales. Se considera que la cultura Maker tiene el potencial de contribuir a un enfoque más participativo y crear nuevos caminos hacia temas que los hagan más vivos y relevantes para los estudiantes.

Movimiento maker:

Arduino ha colaborado al auge de la cultura Maker ya sea como elemento para hacer proyectos como parte importante de las impresoras 3D.

Makerspaces

Gracias a Internet y a la globalización, los conocimientos de la cultura Maker y de la comunidad se han extendido muy rápidamente y cualquiera desde su casa con una conexión a Internet puede adquirir los conocimientos y herramientas para hacer un proyecto con Arduino o montar una impresora 3D.

Además de este espacio global, hay espacios locales para la comunidad que son los llamados makerspaces o también conocidos como hacklabs o hackerspace y 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.

MakerSpace es un espacio de aprendizaje colaborativo basado en las herramientas. Los Makespace son una combinación de equipos de fabricación, una comunidad de usuarios y mucha formación para permitir que los miembros de la comunidad se dediquen a diseñar, crear prototipos y fabricar trabajos manufacturados que no sería posible crear con los recursos disponibles si los individuos trabajan solos.

Los Makerspaces representan la democratización del diseño, la ingeniería, la fabricación y el aprendizaje. Estos son un fenómeno relativamente nuevo, pero están empezando a producir proyectos importantes.

En Estados Unidos, este movimiento surgió fuera de la comunidad académica y luego se ha ido implantando en diferentes instituciones educativas: Whale Lab del Weaton College, FabLab de la Stanford University, Thinkbox de Case Western Reserve University…; incluso se han desarrollado proyectos como Students as producer en la Lincoln University (Reino Unido).

Además del principal propósito, los makerspaces presentan las siguientes oportunidades:

  • Organizar cursos de tecnología (programación, electrónica y diseño mecánico a todos los niveles)
  • Impartir cursos enfocados a la innovación y diseño
  • Realización de actividades sociales
  • Participar en el desarrollo de proyectos grupales
  • Investigar, debatir y difundir temas relacionados con internet y las nuevas tecnologías.

Actualmente hay listados 2118 makerspaces en https://wiki.hackerspaces.org/

Más información de los makerspaces:

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

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

Fablabs

También hay otro espacio local de la comunidad Maker que son los fab labs: es un espacio de producción de objetos físicos a escala personal o local que agrupa máquinas controladas por ordenadores. Los Fab labs son unos espacios de experimentación en el campo de la producción que se integran dentro de los contextos locales donde se sitúan. Los proyectos que han sido desarrollados en los Fab labs incluyen turbinas solares e hidráulicas, ordenadores y redes de datos wireless (cliente ligero), instrumentos de análisis para la agricultura y la salud, casas personalizadas, máquinas de prototipado rápido y muchos otros.

El concepto de Fab lab aparece al principio de los años 2000 en el Center for Bits and Atoms (CBA) del Massachusetts Institute of Technology (MIT).

Fablab:

Qué es un fablab: http://fab.cba.mit.edu/about/charter/ y traducido https://talleresfablableon.wordpress.com/fab-charter/

Fablabs:

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

Diferencias entre Makerspaces, Hackerspaces, TechShop o FabLab: http://makezine.com/2013/05/22/the-difference-between-hackerspaces-makerspaces-techshops-and-fablabs/

Proyectos con Arduino

¿Qué puedo hacer con 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 es un sistema autónomo programado que realiza una o varias tareas específicas. Un arduino puede hacer las tareas de un autómata e intercambiar datos con un SCADA  (Supervisión,Control y Adquisición de Datos).

Proyectos sorprendentes con Arduino:

¿En qué entornos se puede usar Arduino? La respuesta es en muchos y cada vez en más entornos encuentran de gran utilidad Arduino.

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…

Educación: En la educación tanto en institutos en secundaria y bachillerato como en formación profesional y la universidad, Arduino ha entrado con mucha fuerza para entrenar habilidades y como herramienta pedagógica.

DIY: 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 más allá.

Herramienta de prototipado: Podemos usar Arduino como una herramienta de prototipado, para hacer un despliegue rápido de una idea o medir de una manera objetiva resultados.

Actualizar sistemas Antiguos: Con Arduino también podemos hacer “smart” las cosas, es decir, que se conecten a internet. Podemos actualizar un sistema antiguo a nuevas tecnologías.

Por ejemplo: https://www.autodeskresearch.com/publications/retrofab, después de escanear en 3D un elemento, se puede crear un modelo impreso en 3D y hacer sugerencias de rediseño creando una carcasa que ajuste al elemento original y que tenga una sere de actuadores, motores, leds, etc… que conectados a Arduino nos actualicen un elemento antiguo. Como por ejemplo controlar con el móvil una vieja tostadora o interconectar el despertador con la luz de la habitación.

Robótica: Es otros de los entornos donde Arduino es muy usado, http://www.dx.com/p/arduino-compatible-bluetooth-controlled-robot-car-kits-146418#.Vvlc3uKLTcs

Productos comerciales: existen muchos productos y proyectos basados en Arduino, lo que nos da una idea de la amplitud de los entornos donde podemos usar arduino. En las web de crowdfunding podemos encontrar muchos productos basados en Arduino:

Arte: Un ejemplo de uso de Arduino en el mundo del arte se pudo ver en el museo Wurth en el mes de febrero de 2016 en la exposición light kinetics. 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 un sensor de 9 grados de libertad con acelerometro, giroscopio y magnetometro https://www.sparkfun.com/products/10724 que manda os datos a un ordenador y este mediante software controla los módulos DMX para encender las luces.

IoT: Una de las principales aplicaciones 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.

Aplicaciones médicas Arduino: https://www.cooking-hacks.com/ehealth-sensors-complete-kit-biometric-medical-arduino-raspberry-pi/

Juguetes: https://www.bq.com/es/zowi

Haz tu propio juguete: http://www.instructables.com/id/Otto-Build-You-Own-Robot-in-Two-Hours/

Arduino en la Industria

Arduino cada vez se está implantando más y más en la industria y no solo como una herramienta de prototipado, sino que los sistemas de control (autómatas) se están abriendo cada vez más.

Prototipo de zapatillas John Luck con Arduino:

HW Usado:

Comunidad Arduino

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 el segundo sitio el playground de Arduino http://playground.arduino.cc/.

Arduino playground es un wiki donde todos los usuarios de Arduino pueden contribuir. Es el lugar donde publicar y compartir código, diagrama 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.

Otro lugar donde la comunidad colabora, se puede buscar información y preguntar las dudas que tengamos, es el foro Arduino: http://forum.arduino.cc/.

Y el nuevo lugar oficial donde la comunidad Arduino está colaborando es el project Hub: https://create.arduino.cc/projecthub. Project Hub es un espacio donde la comunidad Arduino publica sus proyectos y que deben pasar un filtro para ser publicados, lo que garantiza su calidad. Para poder publicarlo es imprescindible:

  • Lista de componentes y herramientas
  • Aplicaciones usadas
  • Descripción del proyecto
  • Esquemáticos
  • Código

Algunos proyectos interesantes del project hub:

Y por supuesto Arduino en las redes sociales:

Otros Sitios Donde la Comunidad Colabora

Dentro del software y hardware libre la comunidad y los fabricantes liberan generalmente en determinados espacios de Internet el código, los diseños de placa y los diseños 3D. Estos códigos y diseños son libres y liberados con licencias creative commons o similares y podemos copiarlos o modificarlos para un nuevo software o hardware basado en otro.

El lugar más habitual donde la comunidad, los desarrolladores de software y los fabricantes de HW publican el software es github https://github.com/. Cuando buscas en internet cualquier cosa sobre programación, software libre o Arduino es muy probable que acabemos en la página de https://github.com/ donde podemos acceder al código fuente.

Cuando trabajamos con Arduino es importante que conozcamos que es github y conocer un poco qué es y cómo hacer ciertas operaciones sencillas con esta web. Para conseguir software y ver el código, no es necesario crearse una cuenta, sólo es necesario cuando vamos a subir nuestro propio código.

GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.

Y no solo la gente que quiere compartir código pública en github, sino que los fabricantes de HW publican sus esquemáticos y también las librerías para usar su hardware.

Otra aportación de la comunidad es lo relativo a los diseños de placas o HW. Muchos usuarios hacen sus adaptaciones o nuevos diseños de PCB que luego publican de forma libre para que puedan ser copiados o modificados. Algunas webs de fabricación de PCBs o de SW de diseño de PCBs permite compartir libremente los diseños:

Ejemplos de placas:

Y los diseños 3D también son publicados para poder replicarlos o adaptarlos:

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

Soporte de la Comunidad

Existen múltiples herramientas de soporte y ayuda al programador, es importante saber usarlas, pero la más famosa y que sale muy a menudo cuando buscamos en Google u otro buscador es Stackoverflow: http://stackoverflow.com/

Stackexchange es un versión extendida de stackoverflow sobre preguntas y respuestas de temas concretos: http://stackexchange.com/

También existen lugares más específicos donde buscar ayuda o preguntar sobre Arduino o electrónica y resolver nuestras dudas:

Más información de como usar estas herramientas:

Pero además de stackoverflow tenemos muchas herramientas de soporte para consultar o preguntar las dudas que tengamos cuando se programa Arduino:

También está disponible al Arduino developers mail list: https://groups.google.com/a/arduino.cc/forum/#!forum/developers si estás interesado en modificar o extender el software de Arduino