Archivo de la etiqueta: Artículo

Top 5 Gadgets Electrónica

En mi recorrido con Arduino en los últimos años, he recibido muchas preguntas sobre electrónica de personas que programan pero les faltan unos conocimientos básicos de electrónica para saber cómo conectar sensores, actuadores y periféricos a Arduino. Para ellos he escrito varios artículos como estos:

Una vez que ya tienes los conocimientos básicos de electrónica el siguiente paso es empezar a hacer pequeñas modificaciones o reparaciones de placas electrónicas y luego ya lanzarnos a hacer nuestras propias placas, pero de este tema haré un artículo próximamente.

Si nos decidimos a hacer pequeñas reparaciones o modificaciones electrónica, os recomiendo algunos gadgets básicos de electrónica que todos debemos tener en casa. Se trata de unos accesorios muy económicos y que seguro usaremos con frecuencia si eres una aficionado a la electrónica y Arduino.

Pistola Manual de Soldadura

Una pistola de soldadura manual sencilla es uno de los gadgets imprescindibles que debemos tener en casa para hacer pequeñas reparaciones o montajes de nuestra placas que conectaremos a Arduino o Raspberry Pi.

Puedes comprarla por menos de 9€ con envío gratuito en https://www.gearbest.com/soldering-supplies/pp_009456656818.html?wid=1433363

Lupa Soldadura LED

Otro accesorio imprescindible en casa para hacer pequeñas reparaciones de soldaduras o montar tus propias placas electrónicas es una lupa de soldadura con iluminación LED y accesorios para sujetar las placas.

Es muy común que cuando compras shields para Arduino o breakout boards https://programmingelectronics.com/what-is-a-breakout-board-for-arduino/, estas vengan con los componentes sin soldar y este accesorio te va a ser de gran utilidad.

Puedes comprarla por menos de 14€ con envío gratuito en https://www.gearbest.com/magnifiers/pp_291442.html?wid=1433363

Pinzas de Acero Antiestáticas

Tener unas pinzas para manejar los elementos electrónicos, resulta imprescindible al trabajar con dispositivos SMD https://es.wikipedia.org/wiki/Tecnolog%C3%ADa_de_montaje_superficial, así como para poder soldar y desoldar en placas cualquier otro dispositivo.

Puedes comprarla por unos 5 euros en https://www.gearbest.com/other-tools/pp_638400.html?wid=1433363

Pistola de Pegamento Caliente

Aunque una pistola de pegamento caliente no es necesaria para tareas de soldadura o en general para trabajos con electrónica es un accesorio imprescindible para los makers que queremos hacer un proyecto completo.

La pistola de pegamento caliente se usa para pegar casi cualquier material como cartón y plástico. Se puede usar para ensamblar partes de por ejemplo un robot o un coche teledirigido donde vayamos a insertar la electrónica que hemos diseñado.

Puedes comprarla por unos 8.50 euros con envío gratuito en https://www.gearbest.com/soldering-supplies/pp_1577491.html?wid=1433363

Bomba Desoldar Manual

Por último, otro accesorio imprescindible en nuestra caja de herramientas es la bomba de desoldar que permite quitar la soldadura de un elemento calentando previamente y succionando con esta bomba manual. Totalmente necesaria para hacer reparaciones o cuando cometemos un error soldando.

Puedes comprarla por menos de 10 euros con envío gratuito en https://www.gearbest.com/soldering-supplies/pp_238769.html?wid=1433363

Anuncios

Arduino Day Logroño 2017

Si quieres estar al día de los eventos que se realizan en Logroño sobre temas relacionados con Arduino, comunidad Maker, HW libre, Impresoras 3D, etc… manda un correo a aprendiendoarduino@gmail.com o apuntate a la lista de correo noticias@aprendiendoarduino.com


El pasado 1 de abril de 2017 celebramos en tres localizaciones diferentes y con diversos eventos el ArduinoDay en Logroño.

El Arduino Day de Logroño comenzó a las 9.00 en el Think TIC con dos charlas relacionadas con el Internet de las Cosas (IoT).

La presentación de la jornada de Arduino Day en Logroño fue a cargo de Ernesto Rodríguez, responsable de vigilancia tecnológica del ThinkTIC del Gobierno de La Rioja.

La primera charla fue “IoT. Conectando cosas con Arduino” donde Enrique Crespo habló de los elementos necesarios para abordar un proyecto de IoT basado en Arduino. El vídeo de la charla puede verse en: http://www.innovarioja.tv/index.php/video/ver/1661

La presentación y documentación de la charla “IoT. Conectando cosas con Arduino” está publicada en http://www.aprendiendoarduino.com/iot-conectando-dispositivos-con-arduino/ y los apartados tratados fueron:

Acto seguido Diego Soto presentó la charla “Seguridad en IoT” donde trató uno de los aspectos más importantes del IoT, la seguridad y trato de concienciar de ello a los asistentes. El vídeo de la charla puede verse en: http://www.innovarioja.tv/index.php/video/ver/1662

Una vez acabadas las charlas paramos a tomar un café para coger fuerzas y empezar con los talleres. En el ThinkTIC se realizaron 3 talleres simultáneos.

Taller “Iniciación a la impresión 3D, mi impresora y yo!!!” por Vicente Roca donde explicó cómo montar una impresora 3D y habló de su experiencia.

Taller “Experiencia desde Cero con Arduino” por Julio Clavijo donde hizo una explicación para iniciar a los asistentes en el uso de Arduino.

Taller: “IoT. Conectando Cosas con Arduino” por Enrique Crespo que fue una continuación de la charla impartida a primera hora y se pusieron en práctica varios proyectos IoT basados en Arduino. La documentación de este taller está en http://www.aprendiendoarduino.com/taller-iot-conectando-dispositivos-con-arduino/ y el código usado en el taller está en https://github.com/jecrespo/aprendiendoarduino-iot

El siguiente evento fue en la Universidad de La Rioja, en el makerspace de la Universidad Área UR-maker. Donde Alpha Pernía presentó el makerspace y habló de la experiencia montando un makerspace.

El último evento se realizó en la Sociedad Gastronómica La Trastienda donde se hizo una merienda maker. Vicente Roca trajo su impresora 3D, Abel Yécora presento unas impresoras y un software para hacer figuras en 3D y José Domínguez presentó su proyecto maker de una máquina de boxeo con Arduino. Juan Nieto ha publicado más información de este evento y del Arduino Day en https://makerslarioja.wordpress.com/2017/04/03/arduino-day-2017-una-gran-fiesta/

Me gustaría destacar el proyecto que presentó José Domínguez y que podéis ver en este vídeo:

Agradecimientos

Por mi parte quiero agradecer al ThinkTIC y a Ernesto el apoyo que nos han dado para poder celebrar este evento. También agradecer a todo aquellos que han hecho posible el Arduino Day en el ThinkTIC: Diego Soto, Julio Clavijo, Vicente Roca,  Mario Ezquerro, Miguel Susunaga, Arturo Martínez y a todos los asistentes.

Por último gracias a los organizadores y colaboradores de los otros dos eventos en el Área UR-maker y La Trastienda: Alpha Pernía, Juan Nieto, Abel Yécora, José Domínguez, Carmen Méndez, etc…

Fotos

A las 9 de la mañana a punto de empezar el Arduino Day en Logroño.

Charla “IoT. Conectando cosas con Arduino” de Enrique Crespo

Charla “Seguridad en IoT” de Diego Soto:

Tomando un café antes de seguir con los talleres.

Taller “IoT. Conectando cosas con Arduino” de Enrique Crespo

Arduino Intel Edison + Intel IoT Analytics

Este artículo está motivado por mi asistencia al hackathon celebrado entre el 25 y 27 de marzo de 2017 en el World Hosting Days en Europa Park, Rust, Alemania. Más información: http://worldhostingdays.com/global/

Datos del hackathon: http://worldhostingdays.com/global/side-event/cloud-community-hackathon

En mi caso fui a participar en el proyecto conjunto de 1and1 e Intel donde el objetivo era comprobar las características del microprocesador Intel Edison manejando sensores y actuadores en combinación con el motor de analíticas de Intel para IoT hospedado en el cloud de 1and1. Los detalles del proyecto pueden verse en: http://worldhostingdays.com/global/project/1and1

El kit de herramientas que dispusimos fue:

  • Cloud infrastructure
    • Open IoT Connector hosted by 1&1 which connects devices to the cloud. http://streammyiot.com/
    • 1&1 Analytic Cloud Environment with MQTT broker and Node.js.

También dispusimos de la API para interactuar con el cloud de 1&1:

Arduino Edison

Intel Edison es un módulo de computación de Intel que es posible usarlo con el formato de Arduino. Está centrado en el IoT y wearables. Tiene un sistema linux yocto embebido pero es capaz de ejecutar los Sketch de Arduino que al ser compilados se guardan en un directorio del sistema de ficheros y es ejecutado. También dispone de conectividad Wi-Fi y Bluetooth.

El Intel Edison es un pequeño módulo desarrollado por Intel y orientado a la electrónica embebida incluso en proyectos comerciales. Es una pequeña placa llena de posibilidades y no es para menos ya que en su diminuto tamaño encontramos un Intel® Atom™ SoC dual-core con WiFi, Bluetooth LE integrado. Una funcionalidad importante es que dispone de un conector genérico de 70 pines para poder conectar todo tipo de periféricos y placas desarrolladas para esta plataforma.

Está pensado para aplicaciones de bajo consumo pero gracias al amplio soporte de software proporcionado por Intel, puede ser utilizado en poco minutos incluso por principiantes en electrónica.

Web Intel Edison:

Wikipedia: https://en.wikipedia.org/wiki/Intel_Edison

El kit de Arduino Edison incluye los pines hembra de Arduino, que permite conectar la mayoría de placas shields de Arduino al módulo de forma nativa. Todos los pines del 0 al 13 (junto con AREF y GND), pines analógicos 0 a 5, alimentación, ICSP y el UART están en el mismo sitio que el Arduino UNO R3 para guardar la máxima compatibilidad.  Además la placa del Intel Edison incluye un zócalo para tarjetas de memoria Micro SD, un conector Micro USB conectado al UART2 y un conector estándar USB 2.0. En la documentación se dispone de librerías para gestionar los pines de Arduino disponibles.

Arduino Edison HW guide: http://www.intel.com/content/dam/support/us/en/documents/edison/sb/edison-arduino-hardware-guide.pdf

Arquitectura Intel Edison (microprocesador):

  • Dual-core Intel® Atom™ processor at 500 MHz
  • 1 GB DDR3 RAM, 4 GB eMMC flash
  • 40 multiplexed GPIO interfaces
  • Bluetooth* 4.0, Wi-Fi*
  • Yocto Project*, Brillo*
  • Arduino* compatible
  • Open-source software development environment
  • C/C++, Python*, Node.js*, HTML5, JavaScript*

Características: http://download.intel.com/support/edison/sb/edison_pb_331179002.pdf

Arduino Edison: https://www.arduino.cc/en/ArduinoCertified/IntelEdison

Características de la placa:

  • 20 digital input/output pins, including 6 pins as PWM outputs.
  • 6 analog inputs.
  • 1 UART (Rx/Tx).
  • 1 I2C.
  • 1 ICSP (In-system programming ) 6-pin header (SPI).
  • Micro USB device connector OR (via mechanical switch) dedicated standard size USB host Type-A connector.
  • Micro USB device (connected to UART).
  • SD card connector.
  • DC power jack (7 to 15VDC input).

Documentación: https://software.intel.com/es-es/iot/hardware/edison/documentation

Intel ha desarrollado sus propias herramientas para programar el microprocesador Intel Edison, que ofrece más potencia a la hora de programarlo que con el lenguaje de Arduino y su IDE, pero tiene la desventaja de tener que aprender su SDK. El SDK puede encontrarse en descargas: https://software.intel.com/es-es/iot/hardware/edison/downloads

Al igual que el Arduino UNO el kit de Intel® Edison para Arduino hace posible tener 20 pines digitales de entrada/salida, 6 de los cuales pueden usarse como entradas analógicas. El Intel® Edison tiene 4 salidas PWM que pueden configurarse mediante jumpers para usarse en cualquiera de los 6 pines que soportan PWM en el Arduino UNO (pins 3, 5, 6, 9, 10, or 11).

Los pines de entrada/salida (I/O) y los analógicos pueden ser configurados para funcionar a 5V o 3.3V. Los pines en modo salida soportan hasta 24mA a 3.3V y 32mA a 5V

Arquitectura:

Para usar el microprocesador Intel Edison, hay también disponible una breakout board:

Breakout board: http://download.intel.com/support/edison/sb/edisonbreakout_hg_331190006.pdf

Esta breakout board ha sido diseñada para exponer los pines nativos a 1.8V del Intel® Edison y poder trabajar con ella. La placa se compone de una fuente de alimentación, una cargador de batería, USB OTG power switch, UART to USB bridge, USB OTG port y I/O header.

Pinout: http://www.intel.com/content/www/us/en/support/boards-and-kits/000006090.html

Hardware Guide: http://download.intel.com/support/edison/sb/edisonmodule_hg_331189004.pdf

Compra:

Comparativa de Intel Edison:

Edison no es una raspberry Pi, principalmente porque no hay una salida de video en Edison. Aquí hay una buena comparativa: https://www.sparkfun.com/news/1603

Más información de Intel Edison en: https://www.arduino.cc/en/ArduinoCertified/IntelEdison

Arduino Edison tiene una distribución de Yocto Linux corriendo en su interior. Más información sobre el proyecto Yocto en: https://en.wikipedia.org/wiki/Yocto_Project

Programación Arduino Edison

Arduino Edison es posible programarlo con el IDE de Arduino y es posible desde el sketch de Arduino hacer peticiones al kernel de Linux con llamadas al sistema.

Enlaces imprescindibles para empezar con Arduino Edison:

Para poder usar Arduino Intel Edison con el IDE de Arduino, es necesario instalar el paquete para las Intel i686 Boards.

Los entornos de desarrollo para Intel Edison son:

IDEs para hardware Intel: https://software.intel.com/es-es/iot/tools-ide/ide

Development environment:

Supported sensors:

Sensor kits:

Intel XDK IoT Edition (programar con node.js):

Procedure to Autostart the Arduino Sketch on Intel® Edison: https://software.intel.com/en-us/blogs/2015/08/01/procedure-to-autostart-the-arduino-sketch-on-edison

Modo AP en Intel Edison: https://software.intel.com/en-us/getting-started-with-ap-mode-for-intel-edison-board

Ejemplos de uso de Arduino Edison:

Arduino Galileo

Existen otros Arduinos con microprocesadores Intel, uno de ellos es el más reciente Arduino 101 que es el mismo concepto que Arduino UNO, pero con concepto de SoC del Arduino Edison también existe el Arduino Galileo. Este es un Arduino anterior y con menos capacidades que el Edison.

Para usar el Arduino Galileo con el IDE de Arduino es necesario instalarse el el paquete para las Intel i586 Boards.

Arduino Galileo (retirado): https://www.arduino.cc/en/ArduinoCertified/IntelGalileo

Arduino Galileo Gen2: https://www.arduino.cc/en/ArduinoCertified/IntelGalileoGen2

Web Intel: https://software.intel.com/es-es/iot/hardware/galileo

Wikipedia: https://en.wikipedia.org/wiki/Intel_Galileo

Arduino Galileo también usa Yocto Linux.

Edison vs Galileo:

Plataforma Cloud IoT de Intel

Una vez aclarado qué es Arduino Edison y que ya sabemos que podemos programarlo como cualquier otro Arduino, veamos cómo combinar nuestra experiencia con Arduino con la plataforma cloud IoT de Intel para hacer proyectos de IoT.

Intel al igual que otras muchas empresa ha desarrollado sus recursos para IoT. La Web de recursos para IoT de Intel: https://software.intel.com/es-es/iot/home

Visión de Intel en el IoT: http://www.intel.la/content/www/xl/es/internet-of-things/overview.html

La plataforma cloud IoT de Intel está disponible en http://streammyiot.com/ y es posible registrarse y usarla de forma gratuita.

Intel® IoT Analytics Platform:

  • Provides seamless Device-to-Device and Device-to-Cloud communication.
  • Ability to run rules on your data stream that trigger alerts based on advanced analytics.
  • Foundational tools for collecting, storing, and processing data in the cloud.
  • Free for limited and noncommercial use.

Con los datos recogidos con esta plataforma luego es posible extraerlos, transformarnos, cargarlos y utilizarlos. Cuando son enormes cantidades es cuando se usa el big data: https://software.intel.com/en-us/bigdata

Esta plataforma IoT está alojado el los servidores cloud de 1&1: https://www.1and1.com/dynamic-cloud-server

Para empezar a usar esta plataforma tenemos toda la documentación en:

Tutorial excelente para uso de Arduino edison con Intel IoT Analytics: http://www.instructables.com/id/Intel-IoT-Analytics-Dashboard/

Otro tutorial: https://medium.com/@shonsh/visualizing-sensor-data-using-intel-iot-analytics-d2d1de9ae118#.5ktwz5lyl

Otras plataformas de cloud analytics con las que conectar el Arduino Edison: https://software.intel.com/en-us/iot/cloud-analytics:

Uso de la Plataforma Intel IoT Analytics

Una vez aprendidos los conceptos vamos a ponerlos en práctica conectando el Arduino Edison a la plataforma Intel IoT Analytics, para ellos comencemos a recoger datos.

La programación del HW IoT tiene dos partes: recoger datos de los sensores y la de enviar los datos. Para empezar primero debemos configurar una cuenta de IoT analytics y luego seguir con la conectividad.

Pasos a dar para poner a subir datos a la plataforma:

IMPORTANTE

Para entender la estructura en que los datos se guardan en la plataforma leer: https://github.com/enableiot/iotkit-api/wiki/Api-Home#data-structure

Una vez instalado todo vemos el dashboard:

Para mandar datos desde Arduino Edison a la plataform Intel IoT Analytics podemos hacerlo vía HTTP o MQTT. En este caso vamos a usar HTTP.

Disponemos de un repositorio en github con muchos ejemplo para el IoT Kit Intel: https://github.com/enableiot/iotkit-samples

Y un muy buen ejemplo de uso de la API client for python lo tenemos en: https://github.com/enableiot/iotkit-samples/blob/master/api/python/iotkit_client.py

Estas mismas llamadas para guardar datos en la plataforma usando la API se pueden aplicar a Arduino para que guarde los datos.

Para obtener el token de usuario: https://github.com/enableiot/iotkit-api/wiki/Authorization

POST /v1/api/auth/token HTTP/1.1
Host: 109.228.56.48
Content-Type: application/json

{
    "username": "aprendiendoarduino@gmail.com",
    "password": “password"
}

 

Dar de Alta un dispositivo: https://github.com/enableiot/iotkit-api/wiki/Device-Management

PUT /v1/api/accounts/4d6398a7-49aa-45f0-8b53-54896778a736/devices/90-A2-DA-10-B3-BD/activation HTTP/1.1
Host: 109.228.56.48
Authorization: Bearer APIKEY
Content-Type: application/json

{ 
     "activationCode": "activationcode"
}

Añadir un componente a un dispositivo: https://github.com/enableiot/iotkit-api/wiki/Device-Management#add-a-component-to-a-device

POST /v1/api/accounts/4d6398a7-49aa-45f0-8b53-54896778a736/devices/90-A2-DA-10-00-00/components HTTP/1.1
Host: 109.228.56.48
Authorization: Bearer APIKEY
Content-Type: application/json
Cache-Control: no-cache

{ 
	"cid": "436e7e74-6771-4898-9057-26932f5eb7e1",
	"name": "temperatura",
	"type": "temperature.v1.0"
}

Código Arduino para poner en un actuador y que reaccione: https://github.com/enableiot/iotkit-samples/blob/master/arduino/IoTkit/examples/IoTKitActuationExample/IotKitActuationExample.ino

Data API para envío y recepción de datos: https://github.com/enableiot/iotkit-api/wiki/Data-API

Rule Management: https://github.com/enableiot/iotkit-api/wiki/Rule-Management

Alert Management: https://github.com/enableiot/iotkit-api/wiki/Alert-Management

Error Handling: https://github.com/enableiot/iotkit-api/wiki/Error-Handling

Hackathon WHD

Ahora que ya sabemos como manejar la plataforma y como mandar los datos desde el Arduino Edison, en el Hackathon del WHD planteamos un proyecto de una planta solar inteligente que en función de la demanda energética, es capaz de activar o desactivar paneles monitorizados en tiempo real y detectar cualquier incidencia o avería, dentro del proyecto de Intel y 1&1: http://worldhostingdays.com/global/project/1and1

El material usado en el hackathon fue:

Repositorio con documentación y ejemplo para el hackathon del WHD: https://github.com/srware/WHD.global-2017

Repositorio de todo el trabajo hecho en el hackathon: https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/04-Intel%20IoT%20Analytics

El grupo de Españoles trabajando con Arduino:

En el hackathon:

Para conectar a red Arduino Edison:

Cómo cargar un programa en el Edison: https://www.arduino.cc/en/Guide/IntelEdison

Comandos interesantes en yocto linux

  • configure_edison –help
  • iotkit-admin
  • systemctl stop iotkit-agent
  • systemctl start iotkit-agent
  • systemctl status iotkit-agent -l
  • iotkit-admin catalog
  • iotkit-admin register
  • iotkit-admin observation

Dentro del Arduino Edison debe estar instalada la versión de yocto con el iotkit, que es un agente al que puede llamar para hacer determinadas tareas en la plataforma IoT de Intel. Explicación: “The agent is a program that runs as a daemon on the device, listening for simple messages from other processes and handling the necessary message formatting and security to send observations to the cloud. The agent comes with another program, iotkit-admin, which provides many utility functions, such as testing the network, activating a device, registering time series, and sending test observations. The agent is controlled by systemctl, the systemd service manager.”

Cuando cargamos un sketch de Arduino en el Edison, este se pierde después de reiniciar la placa. Para que funcione en el reinicio poner este fichero en el systemctl: /etc/systemd/system/arduino-sketch.service

Contenido del fichero:

systemctl daemon-reload
systemctl status arduino-sketch.service
systemctl enable arduino-sketch.service

Para resolver los problemas con el timezone debo realizar estos pasos

  • timedatectl status
  • ls -l /etc/localtime
  • cd /usr/share/zoneinfo (ver dónde está configurado)
  • timedatectl set-timezone Europe/Paris (y pongo esta)

Para ver el catálogo: iotkit-admin catalog

Para registrar componentes:

  • iotkit-admin register panel_temperature temperature.v1.1
  • iotkit-admin register solar_radiation radiation.v1.0
  • iotkit-admin register onoffButton button.v1.1
  • iotkit-admin register alarm powerswitch.v1.0
  • iotkit-admin register status powerswitch.v1.0

Para cambiar protocolo:

  • iotkit-admin protocol ‘mqtt’
  • iotkit-admin protocol ‘rest+ws’

Con estos detalles que aprendimos de la gente de Intel que estuvo en el hackathon pudimos hacer nuestro proyecto de una planta solar conectada y el resultado se puede ver en https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/04-Intel%20IoT%20Analytics

Vídeo del resultado:

Y nuestra presentación: https://www.slideshare.net/jecrespo/whd-global-2017-smart-power-plant

Nuestro proyecto: https://www.1and1.com/cloud-community/develop/hackathon-projects/11-and-intel/smart-solar-power-plant/

Y finalmente nuestro proyecto fue presentado en el WHD:

Más fotos y publicaciones de

Durante el hackathon se presentó la cloud community de 1&1: www.1and1.com/cloud-community

Arduino.cc y Arduino.org. Los dos Arduinos

A principios de 2015 se produjo una división dentro de Arduino y desde entonces han aparecido bastante cambios para los usuarios de Arduino, principalmente que ha aparecido una nueva marca llamada “Genuino” y una nueva web oficial de Arduino www.arduino.org. Pero no solo es que haya dos páginas web oficiales de Arduino, sino que ahora hay dos entornos de programación y han aparecido nuevos modelos de placas Arduino pero fabricadas por diferentes empresas.

En este momento hay dos páginas oficiales de Arduino: www.arduino.cc y www.arduino.org, la primera es la que nació originalmente y la segunda es la que se creó a raiz del la división entre el equipo creador de Arduino y la empresa que fabricaba el Hardware en Italia.

Cada una de estas webs tienen placas Arduino diferentes, IDEs diferentes y marcas diferentes con la aparición de Genuino en Europa. Esto puede causar cierta confusión a los usuarios de Arduino y vamos a aclararlo en este post.

Un poco de Historia

Arduino LLC fue la compañía creada por Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe and Gianluca Martino en 2009 y es la propietaria de la marca Arduino. Las placas Arduino eran fabricadas por una spinoff llamada Smart Projects Srl creada por Gianluca Martino. En noviembre de 2014 cambiaron el nombre de la empresa que manufactura las placas Arduino de Smart Projects Srl a Arduino Srl y registraron el dominio arduino.org, esto fue el inicio de la división que se produjo poco después.

Hasta principios de 2015 la web oficial de Arduino era www.arduino.cc mantenida por los creadores de Arduino y todo su equipo. En febrero de 2015 se hizo público la ruptura entre los fundadores de Arduino y el fabricante de las placas de Arduino liderado por Gianluca Martino, comenzando este una nueva dirección del proyecto Arduino.

Más información en estos enlaces:

Otros enlaces muy interesantes que explican la historia de la separación de Arduino y el origen de Arduino con Wiring y su creador Hernando Barragán:

En mayo de 2015 Massimo Banzi anunció la nueva marca de Arduino y el nuevo desarrollo de Arduino en la Maker Faire Bay Area 2015. Ver: https://blog.arduino.cc/2015/05/22/the-state-of-arduino-a-new-sister-brand-announced/

A partir de esta ruptura, durante 2015 se vieron muchos cambios en ambas páginas web, mejoras notables en el IDE oficial de Arduino de www.arduino.cc y la aparición de dos nuevos IDEs de Arduino desde www.arduino.org, uno como un fork del original y otro un nuevo desarrollo de arduino.org llamado Arduino Studio escrito de nuevo completamente en javascript y basado en Brackets, pero que aun está en versión alpha.

Podemos resumir que ahora mismo hay dos empresas: Arduino LLC con Massimo Banzi y los demás co-fundadores de Arduino y Arduino SRL con Gianluca Martino y Federico Musto, este último no perteneciente al equipo original e incorporado posteriormente.

Las marcas Arduino

Puesto que las placas Arduino son open source, cualquiera puede hacer una placa Arduino compatible o incluso una copia exacta, sin embargo el nombre, la marca Arduino y el logotipo están protegidos: https://www.arduino.cc/en/Trademark/HomePage.

Ahora mismo en europa la marca y el logo arduino es usado por arduino.org y en USA es usado por arduino.cc. Por este motivo en europa arduino.cc ha sacado una nueva marca llamada GENUINO y un nuevo logo.

Genuino es una marca de arduino.cc creada por los fundadores de Arduino y usada para las placas y productos vendidos fuera de Estados Unidos.

Más información en: https://www.arduino.cc/en/Main/GenuinoBrand

Por lo tanto cuando vemos una placa genuino, se trata de una placa Arduino. Se puede decir que Arduino y Genuino son lo mismo pero por temas legales debe tener un nombre/marca diferente.

Las dos webs a fondo

www.arduino.cc es el sitio original de Arduino de los creadores de Arduino y www.arduino.org es un “fork” creado por la empresa que fabricaba las placas Arduino. Ambas páginas tratan sobre Arduino pero fabrican placas diferentes, nos ofrecen IDEs diferentes y contiene información de cada uno de sus productos.

Arduino.cc

Como hemos dicho es la web original de Arduino y la que conocen bien todos los que han trabajado con Arduino. Los elementos más importantes de esta web son:

La web de arduino.cc ha evolucionado mucho en los meses posteriores a la división de Arduino. Ha cambiado la imagen y han actualizado y añadido los contenidos. Se pueden ver las novedades en la entrada del blog de arduino.cc: https://blog.arduino.cc/2015/09/11/keeping-the-arduino-website-in-motion/

Arduino.org

Web oficial de la marca Arduino fuera de USA. Los elementos más importantes de esta web son:

El Hardware Arduino

La división de Arduino en dos partes ha provocado que haya dos tipos de placas con marcas diferentes como hemos visto. En la página arduino.org se encuentra disponibles productos que en el arduino.cc no están y viceversa.

arduino.cc tiene un acuerdos con adafruit y seeedstudio para manufacturar sus placas y también tiene nuevos acuerdos para usar MCUs de Intel además de los de Atmel, como el arduino 101 con chip intel curie.

Anuncios de los acuerdos de arduino.cc

Las placas oficiales para Europa de genuino son:

Para el mercado europeo no ofrece actualmente shields, pero pueden verse todas las placas y shields de Arduino en: https://www.arduino.cc/en/Main/Products

En cada uno de los enlaces tenemos amplia información de cada placa y todo tipo de documentación sobre ellas, que es imprescindible leer antes de comenzar a usarlas.

arduino.org es fabricante de sus placas en Italia y se habló de conversaciones para fabricar con Panasonic y Bosch para expandir por el mundo la fabricación de placas Arduino y reducir su coste según http://readwrite.com/2015/03/18/arduino-open-source-schism/

Las placas de arduino.org disponibles son:

Las shields oficiales de arduino.org están en http://www.arduino.org/products/shields donde también han aparecido novedades como la segunda versión del Ethernet Shield y del GSM Shield

Los IDEs de Arduino

Por supuesto Arduino no es solo Hardware, sino también el software que nos facilita programar el microcontrolador. Esta división en el hardware también se ha visto reflejada en la división de software apareciendo nuevos IDEs de arduino.cc y arduino.org.

Una consecuencia de esta división es que las placas de arduino.org pueden no funcionar con el IDE original de arduino.cc y al contrario. Pero si solo queremos usar un IDE o nos gusta uno más que otro, siempre se pueden hacer pequeñas modificaciones en el IDE para poder usar las placas de un arduino en el IDE del otro arduino.

El listado de placas soportadas por cada IDE difiere un poco:

Placas IDE arduino.cc Placas IDE arduino.org
 2016-03-19 (20)

2016-03-19 (21)

 2016-03-19 (19)

Lo más probable es que haya problemas con los Arduinos nuevos que vayan saliendo, pero con los arduinos anteriores a la división de Arduino seguirán siendo soportados en ambos IDEs.

También es posible que cada uno de los IDEs de arduino.cc y arduino.org tengan versiones diferentes de las librerías que tienen incluidas, esto nos puede traer problemas al usar un sketch en un IDE o en otro y habrá que tenerlo en cuenta.

Puede que nos aparezcan avisos de placas no certificadas al usar un IDE diferente del fabricante de la placa como el que se añadió en: https://github.com/arduino/Arduino/commit/39d1dfc9995e75e858fa238c7c8881ee2d7679c6

Esto se debe a que arduino.cc y arduino.org tienen su propio identificador de USB (vendor ID) y lo detectan los IDEs. También puede pasar con falsificaciones o clones de placas arduino. El vendor ID para arduino.cc es 0x2341 y por ejemplo para el Arduno UNO el product ID es 0x0001. El vendor ID para arduino.org es 0x2A03 que pertenece a la empresa Dog Hunter AG.

IDE Arduino.cc: Es el IDE original de Arduino pero que desde la aparición de la versión 1.6.2 hay grandes mejoras que incluyen la gestión de librerías y gestión de placas muy mejoradas respecto a la versión anterior y avisos de actualización de versiones de librerías y cores.

Arduino Create de Arduino.cc: Es un IDE online que actualmente está accesible  de forma privada en modo beta testing desde https://create-staging.arduino.cc/.

Un IDE online te permite tener siempre la versión actualizada del propio IDE, librerías y cores de las MCUs, así como guardar online los sketches en la nube.

Más información de Arduino Create:

Para usarlo es necesario usar un agente e instalarlo en el ordenador. Código fuente del agente: https://github.com/arduino/arduino-create-agent

IDE Arduino.org: Se trata de un fork del IDE de arduino.cc que a su vez deriva de Wiring http://wiring.org.co/. Este IDE no dispone de la gestión mejorada de librerías y placas.

Ambos IDEs son actualmente muy similares a simple vista, pero en el interior hay varias diferencias.

2016-03-19 (17)

Más información en: http://labs.arduino.org/Arduino%20IDE

IMPORTANTE: la versión del IDE de arduino.org es actualmente la 1.7.8, puede llevar a error y pensar que es una versión superior al IDE de arduino.cc que va por la version 1.6.8, pero no es cierto, se trata de un IDE difrente, es más, el IDE de arduino.org está menos evolucionado que el IDE de arduino.cc.

Ver Issue: https://github.com/arduino-org/Arduino/issues/2

IMPORTANTE: si ya tienes instalado el IDE de arduino.cc, el instalador del IDE de arduino.org trata de desinstalarlo como si fuera una versión anterior, cuando realmente es un IDE diferente. Por este motivo es mejor hacer una instalación manual del IDE de arduino.org en lugar de usar el instalador.

Las preferencias y la ruta donde se guardan los sketches y librerías en los dos IDEs difiere y su configuración es importante si vamos a tener en nuestro ordenador conviviendo ambos IDEs y queremos que compartan librerías y sketches.

Para el IDE de arduino.cc, desde la pantalla de preferencias del IDE configuramos la ruta donde se guardan los sketches y librerías, de forma que al instalar una actualización mantenemos todos los datos o si instalamos varios IDEs van a compartir estos datos.

2016-03-19 (7)

  • Las preferencias se guardan en: C:\Users\nombre_usuario\AppData\Local\Arduino15, así como el listado de librerías y placas disponibles desde el gestor de librerías y tarjetas.
  • Los sketches y librerías se guardan en C:\Users\nombre_usuario\Documentos\Arduino

Para el IDE de arduino.org las preferencias son:

2016-03-19 (14)

  • Las preferencias se guardan en: C:\Users\nombre_usuario\AppData\Roaming\Arduino15\preferences.txt, cuya ruta es diferente al IDE de arduino.cc y por lo tanto no comparten preferencias.
  • Los sketches y librerías se guardan en C:\Users\nombre_usuario\Documentos\Arduino, que lo comparte con el IDE de arduino.cc por lo que disponemos de los mismo sketches y librerías en ambos IDEs, pero podemos cambiar esta configuración para separar ambos IDEs.

Arduino Studio de Arduino.org: Es un nuevo entorno de desarrollo open source, se encuentra en version Alpha. Es un nuevo IDE totalmente diferente al IDE original y creado desde cero. Está escrito en Javascript y basado en Brackets: http://brackets.io/  

De momento es una versión en prueba, pero habrá que seguir su evolución. Su filosofía es: “Just one editor for all the environments”

Esta imagen define la estrategia de arduino.org en cuanto a los IDEs:

Además de los entornos de programación que nos ofrecen arduino.cc y arduino.org, tenemos otro apartado de software difreneciado que es el Sistema Operativo basado en Linux que corre dentro de los Arduinos con procesador MIPS Qualcomm Atheros como el Yun o el Tian.

arduino.cc distribuye para los Arduino Yun el openwrt-yun en su version 1.5.3.

Para descargarlo: https://www.arduino.cc/en/Main/Software

Instrucciones para instalarlo: https://www.arduino.cc/en/Tutorial/YunSysupgrade

La librería usada para comunicar el microcontrolador con linux se llama Bridge:

arduino.org usa LininOS que es una distribución Linux basada en OpenWRT e integrado con LininoIO. LininoOS es usado por Arduino Yun, Yun Mini, Tian e Industrial 101

LininoIO es un framework capaz de integrar las capacidades de un microcontrolador dentro de un entorno Linux. Es posible escribir una aplicación en Python, Node.js, etc… usando LininiOS para controlar completamente la MCU y los dispositivos conectados.

La librería usada para comunicar el microcontrolador con linux se llama Arduino Ciao. Simplifica la interacción entre el microcontrolador y LininoOS permitiendo su conexión la mayoría de protocolos y servicios de terceros.

Más información: http://labs.arduino.org/Ciao

Ciao se divide en dos partes:

Cómo funciona Ciao:

La librería Ciao aún está en desarrollo. El reference de la librería está en:

Guía de inicio con Ciao: http://labs.arduino.org/Ciao+setup

Más información sobre linino: http://www.linino.org/

Placa linino: http://www.linino.org/product/linino-one/

Cómo conseguir un “Arduino” Gratis

Para conseguir un “Arduino” gratis, se puede recurrir a la opción de solicitar muestras gratuitas a Atmel en http://www.atmel.com/ en el apartado “buy” y luego “request a sample”.

Atmel como el resto de fabricantes de componentes electrónicos disponen de programas de muestras gratuitas que podemos usar para probar sus productos y hacer nuestros prototipos.

Otros fabricantes donde solicitar muestras gratuitas de sus microcontroladores:

Obviamente de esta forma, no vamos a tener un Arduino gratis, sino el microcontrolador que es el principal componente de un Arduino. Para dejar claro qué es un Arduino y qué es un microcontrolador, en esta página del curso #aprendiendoarduino explico qué es Arduino y el hardware libre: https://aprendiendoarduino.wordpress.com/2014/11/23/tema-1-plataforma-hardware-arduino/

Dado que quería testear varios microcontroladores con el IDE de Arduino, pedí varios componentes a Atmel a través de su programa de muestras gratuitas. Estos son los elementos que pedí:

En la imagen siguiente dejo el albarán de lo que llegó a mi casa, donde se puede ver el precio de cada uno de ellos, en concreto el microcontrolador ATmega328P que tiene el Arduino UNO cuesta 1.56 dólares:

albaran

En total pedí 4 microcontroladores de la familia megaAVR de 8 bits: http://www.atmel.com/products/microcontrollers/avr/megaAVR.aspx, un microcontrolador de la familia tinyAVR http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx y una EEPROM de 512Kb diseñada para almacenar programas de FPGAs pero que quiero tratar de usar como memoria externa.

Centrándonos en los microcontroladores, tanto el ATmega328P como el ATmega168P son soportados de forma nativa por el software de Arduino. Viendo el fichero boards.txt del IDE de Arduino en su versión 1.6, se observa que son varias las placas oficiales de Arduino que tienen estos microcontroladores.

Para el ATtiny85, tenemos que recurrir al playground de Arduino para saber como configurar el IDE de Arduino y poder usarlo con esta MCU. En este enlace está la información necesaria: http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips. En este otro enlace explica perfectamente como usarlo: http://highlowtech.org/?p=1695 y finalmente en este tutorial explica como programar un ATtiny con el IDE de Arduino: http://www.instructables.com/id/Program-an-ATtiny-with-Arduino/

Los microcontroladores ATtiny son especialmente útiles en pequeñas aplicaciones que no necesiten un gran número de entradas y salidas, en mi caso lo uso para descargar tareas al arduino principal y que sean hechas por el ATtiny comunicándolos por puerto serie o inalámbricamente por RF.

ATtiny dispone de 6 entradas/salidas programables, un interfaz serie, sensor de temperatura integrado on-chip, programación vía puerto SPI, oscilador interno, etc… y sobre todo muy bajo consumo, que lo hace idóneo para aplicaciones con baterías.

Este el el pinout de un ATtiny85:

Para el ATmega88PA, el proceso es similar. En este enlace tenéis toda la información en este enlace: http://www.morethantechnical.com/2012/04/04/bootloading-an-atmega88-for-arduino-w-code/. En este caso tenemos un bootloader para este microcontrolador, basado en el bootloader del ATmega168.

El ATmega88PA es un microcontrolador muy similar al ATmega168PA y al ATmega 328P, compartiendo el mismo mapa de pines pero con solo 8 Kbytes de memoria flash, 1 Kbyte de SRAM y 512 bytes de EEPROM, lo que nos permitirá ponerlo en la placa de un Arduino UNO para poder usarlo.

En el caso  del ATmega32A, este tutorial explica paso a paso como usar el IDE de Arduino con el ATmega32: http://www.instructables.com/id/Using-Atmega32-with-Arduino-IDE/

Este microcontrolador tiene una flash de 32 Kbytes, una frecuencia máxima operativa algo menor que el ATmega328p, pero más pines de entrada y salida que la MCU del Arduino UNO , así como algunas limitaciones de funcionalidad sobre el ATmega328p.

Para más información sobre cómo personalizar el IDE de Arduino para soportar otros microcontroladores, está perfectamente explicado en este enlace: http://playground.arduino.cc/Main/CustomizeArduinoIDE

Por último, en este fantástico tutorial de ladyada, explica como usar avrdude, que en definitiva es el programa que usa el IDE de Arduino para cargar los programas en la flash de los microcontroladores de la familia AVR de Atmel: http://www.ladyada.net/learn/avr/avrdude.html y la web del proyecto avrdude es: http://savannah.nongnu.org/projects/avrdude.

Por lo tanto según el manual de avrdude que puedes encontrar en http://www.nongnu.org/avrdude/user-manual/avrdude.html, los microncontroladores que puedes programar con avrdude y por ende con el IDE de Arduino son los que aparecen en este listado: http://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions, así como los programadores soportados.

Después de esta explicación sobre varios microcontroladores, veamos los pasos para conseguirlos con el programa de muestras gratuitas de Atmel.

Primero es necesario registrarse en Atmel, obtener un usuario de myAtmel y entrar en el apartado Buy/Request a Sample:

request a sample

Después de esto aparece un listado para buscar las muestras gratuitas que deseamos:

listado samples

Aquí tenemos muchísimas referencias, en este caso para buscar los microcontroladores compatibles con el IDE de arduino, selecciono en part type “MCU AVR”. Aun así las referencias son muchísimas.

Si queremos por ejemplo un ATmega328p que es el microcontrolador que usa el Arduino UNO al poner “328p” en part number, nos salen 12 opciones:

328p

Ahora veamos las diferencias de esos doce part numbers que tiene Atmel para el ATmega328P. Para ello, vamos al apartado “Ordering Information” del documento resumen que ofrece Atmel para el ATmega328P http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Summary.pdf y vemos que existen estos doce tipos de microcontroladres ATmega328p:

Ordering Codes

Se divide en dos partes en función de la rango de temperaturas de trabajo y dentro de ellos el tipo de package o formato. Para saber a qué tipo de encapsulado corresponde cada formato, simplemente leer el documento resumen de Atmel anteriormente mencionado a partir de la página 24 donde describe cada uno de ellos.

En estas imágenes también se puede ver algunos de los formatos con otra codificación.

Packaging Range 2

Packaging Range 1

En nuestro caso como queremos un ATmega328P para sustituirlo en nuestra placa de Arduino UNO, necesitamos el formato PDIP-28 o 28DIP o 28P3, que son el mismo formato con diferente nomenclatura, pero en definitiva un formato de 28 pines para poder poner en una protoboard o en un Arduino UNO.

Después de seleccionar el microcontrolador o los elementos que queramos probar, se envía la solicitud (Submit Request) y debemos rellenar un formulario indicando el tipo de aplicación, el equipo final y el cliente final. Además se debe rellenar los detalles del proyecto.

Dejo una captura de pantalla de los datos a rellenar:

Formulario

En mi caso expliqué el proyecto al que iba a destinar el material, en concreto un prototipo para monitorización industrial. Tras enviar el pedido, en unos minutos recibí un email confirmándolo y en menos de 24 horas recibes otro email con el estado del envío y el número de seguimiento del pedido.

En aproximadamente una semana llega el “Arduino”, solo me queda quitar el ATmega328P del Arduino UNO y sustituirlo por este.

ATmega328P

Pero aún nos queda un paso para poder usar este microcontrolador gratuito en el Arduino UNO, se trata de cargar el bootloader.

Lógicamente, los microcontroladores que vende Atmel tiene la flash vacía y si quiero programarlos tan fácilmente como la plataforma Arduino nos permite simplemente conectando a un puerto USB de nuestro ordenador y cargar el código en la flash de la MCU pulsando un botón, necesito que el ATmega328P tenga cargado el bootloader que hace que todo sea mucho más simple.

Para cargar el bootloader y entender mejor porqué es necesario para usar un microcontrolador en el Arduino UNO, lo explico en el apartado de bootloader del curso #aprendiendoarduino https://aprendiendoarduino.wordpress.com/2014/11/17/tema-7-conceptos-avanzados-de-hardware/

Para cargar el bootloader es necesario o bien un programador ISP o bien tener otro Arduino y convertirlo en un programador como muy bien queda explicado en este tutorial: http://arduino.cc/en/pmwiki.php?n=Tutorial/ArduinoISP

Con este artículo no he pretendido solo hacer un paso a paso de como conseguir gratis un microcontrolador como el usado en el Arduino UNO, sino que lo he aprovechado para hablar de otros microcontroladores, intentar explicar un poco mejor que Arduino es una plataforma para programar de forma sencilla MCUs de la familia AVR de Atmel y como programas otros microcontroladores de Atmel con el IDE de Arduino.

Referencias: