Vous êtes sur la page 1sur 76

Arduino y Sigfox

Deja un comentario

Sigfox: es una solución de conectividad celular mundial para el Internet of Things pensada para
comunicaciones de baja velocidad que permite reducir los precios y el consumo de energía para los
dispositivos conectados. La solución de conectividad SIGFOX se basa en una infraestructura de antenas
y de estaciones de base totalmente independientes de las redes existentes.

Sigfox es una alternativa de amplio alcance, que en términos de alcance está entre Wi-Fi y la
comunicación móvil. Utiliza bandas ISM, que se pueden utilizar sin necesidad de adquirir licencias.
Sigfox responde a las necesidades de muchas aplicaciones M2M que funcionan con una batería pequeña
y solo requieren niveles menores de transferencia de datos, allí donde WiFi se queda demasiado corto y
la comunicación móvil es muy cara y consume demasiada energía.

Sigfox utiliza una tecnología llamada Ultra Narrow Band (UNB) diseñada para funcionar con bajas
velocidades de transferencias de 10 a 1.000 bits por segundo.

Sigfox trabaja con fabricantes como Texas Instruments, Atmel, Silicon Labs y otros para poder ofrecer
distintos tipos de SoC, transceptores y componentes de conexión a su red. En el caso de smartphones y
tablets, actualmente no son compatibles con esta red, pero, al no tener licencia de uso, su inclusión sería
realmente económica y sencilla.

La empresa que está haciendo el despliegue de la red de Sigfox en España es Cellnex


Telecomantigua Abertis Telecom.

Cellnex:

 https://www.cellnextelecom.com/quienes-somos/
 https://www.cellnextelecom.com/

Cómo funciona la red sigfox:


Los tres pilares de Sigfox son: bajo coste, eficiencia y alcance global

Así, basándose en los tres pilares fundamentales, las características más destacables de lo que ofrecen a
sus clientes son las siguientes:

 Frecuencias libres (ISM) resistentes frente a interferencias


 Conectividad Ultra Narrow Band (UNB) bidireccional
 Compatibilidad con los chips existentes
 Conforme con ETSI y FCC
 Eficiencia energética: han logrado que la autonomía de algunos productos se prolongue hasta 15
años
 Conexión sencilla (plug & play)
 Gestión basada en la nube
 Cobertura internacional
 Libre de derechos y royalties

Hardware Sigfox
Existen muchos dispositivos certificados por sigfox y pueden encontrarse en la sigfox partner
network: https://partners.sigfox.com/

Dentro de los productos certificados por Sigfox lo divide:

 Transceivers: https://partners.sigfox.com/products/transceiver
 SoCs: https://partners.sigfox.com/products/soc
 Módulos: https://partners.sigfox.com/products/module
 Dispositivos: https://partners.sigfox.com/products/device
 Kits de desarrollo: https://partners.sigfox.com/products/kit
 Plataformas: https://partners.sigfox.com/products/platform
 Soluciones: https://partners.sigfox.com/products/solution

Nosotros nos centramos en los kits de desarrollo, como por ejemplo el


ATA8520 https://partners.sigfox.com/products/digikey que usa un microcontrolador ATMega328p como
el Arduino UNO y el transceiver Atmel ATA8520D que también lleva el Arduino MKRFOX1200.

Entre los kits de desarrollo podemos destacar:

 MKRFOX1200: https://store.arduino.cc/arduino-mkrfox1200
 Los SiPy que además incluyen WiFi y BLE para desarrollo con
micropython: https://pycom.io/product/sipy/ y https://partners.sigfox.com/products/sipy-22dbm
 Extensión para Raspberry Pi: https://yadom.eu/carte-de-communication-
sigfox.html y https://partners.sigfox.com/products/acw-rpi
 Raspberry Pi Sigfox: https://partners.sigfox.com/products/raspberry-pi-sigfox-board
 ACW-duino: Shield para Arduino https://yadom.eu/carte-de-communication-sigfox-
arduino.html y https://partners.sigfox.com/products/acw-duino
 Akeru Kit: https://partners.sigfox.com/products/akeru
 xkit: https://www.thinxtra.com/xkit/
 unashield: https://unabiz.github.io/unashield/
 Industrial Foxduino: https://partners.sigfox.com/products/industrial-foxduino
 Módulo cooking hacks: https://www.cooking-hacks.com/sigfox-module-for-arduino-waspmote-
raspberry-pi-intel-galileo-868-mhz-7184
 Smart everything: https://partners.sigfox.com/products/smart-everything y http://uk.rs-
online.com/web/p/radio-frequency-development-kits/9015121/

El Cesens mini de la empresa Riojana Encore lab es un ejemplo de un dispositivo certificado por
Sigfox: https://partners.sigfox.com/products/cesens-mini

Todos estos dispositivos hay que darlos de alta en la red de Sigfox, aunque generalmente para los
desarrolladores al comprar un dispositivo tenemos una suscripción de 1 o dos años a la red de Sigfox.

Comprar conectividad:https://buy.sigfox.com/ y precios: https://buy.sigfox.com/buy/offers/ES

Una vez hay un contrato, es necesario activar el kit de desarrollo en el backend de


Sigfox: https://backend.sigfox.com/activate

Y ya podemos hacer nuestro proyecto con Sigfox. Muchos más proyectos con
Sigfox: https://www.hackster.io/sigfox

Mensajes Sigfox
Los mensajes de Sigfox están diseñados para ser muy pequeños, optimizados para sensores y requerir
sólo una pequeña cantidad de energía para transmitirlos. El payload de Sigfox está limitado a 12 bytes
(excluyendo las cabeceras del payload). Un mensaje de ‘uplink’ desde un dispositivo a la estación base
es enviado durante aproximadamente 6 segundos a un a velocidad de 100 bits/seg. Aunque pueda
parecer una velocidad de información muy restringida, realmente hay muchas cosas que se pueden hacer
con 12 bytes.
En el siguiente ejemplo muestra cómo con una estructura de 12 bytes mandar un conjunto de
coordenadas GPS junto con velocidad, hora y voltaje de batería.

0 1 2 3 4 5 6 7 8 9 10 11

Lat. Lat. Lat. Lat. Lon. Lon. Lon. Lon. Vol. Sats. Acq. Spd.

Más información: http://makers.sigfox.com/getting-started/


El protocolo Sigfox soporta comunicación bidireccional. Esto significa que es posible configurar el
módulo Sigfox para solicitar datos desde los servidores de Sigfox. A esto se le denomina mensaje
‘downlink’. El dispositivo Sigfox manda un mensaje de ‘uplink’ a los servidores de Sigfox solicitando
un mensaje de ‘downlink’ y espera durante 30 segundos. El dispositivo espera recibir un mensaje con un
payload de 8 bytes. Por la regulación ETSI, los dispositivos están limitados a 4 mensajes ‘downlink’ al
día.
Debido a que el dispositivo inicia el mensaje de ‘downlink’, en lugar de la estación base, los mensajes de
‘downlink’ se usan comúnmente como configuración. Un ejemplo podría ser un dispositivo con
múltiples sensores para recogida de datos que diariamente consulta los umbrales de alerta configurados
en el dispositivo.

Explicación del downlink paso a paso: http://www.iotnet.mx/index.php/2017/03/02/el-downlink-de-


sigfox-explicado-paso-paso/

Backend de Sigfox
Además de la red de Sigfox, tenemos los dos extremos de la comunicación: los dispositivos, emisores de
mensajes, que están conectados a la red, y el punto final o backend de la comunicación, que recibe esos
mensajes y los procesa para generar un resultado.

En el caso de SigFox, se ofrece el servicio llamado SigFox Cloud para el segundo propósito, que ofrece
una aplicación web conocida como SigFox Backend. Desde ella, se pueden gestionar los dispositivos,
visualizar los mensajes transmitidos por los mismos y configurar de integración de los datos, entre
otros. Además, el servicio da la oportunidad de poder redirigir todo el volumen de información que llega
al backend a cualquier aplicación ejecutada en un servidor o centro de procesamiento de datos.

Hay dos maneras de tomar los datos que recoge el backend de Sigfox:
 Utilizando la API que proporciona el backend, basada en HTTP REST (GET o POST,
indistintamente); la cual, en función del recurso pedido, devuelve un resultado concreto, con una
carga útil con formato JSON.
 Utilizando una URL de callback, identificando dicha URL a la aplicación web que desea
recibir los mensajes. De esta forma, se registraría dicha URL en el backend, indicando los
atributos que le interese recibir (por ejemplo, la carga útil del mensaje); y cada vez que llegase
un mensaje al mismo, éste le reenviará los valores pedidos en un mensaje con formato, por
ejemplo JSON.

Como hemos visto, el módem de radio de Sigfox envía ráfagas de datos a las antenas de la estación base.
Idealmente, una señal es captada por más de una antena. El paquete de datos se demodula en la estación
base y luego se envía al centro de datos de sigfox (backend). Luego, el centro de datos envía los datos
recibidos a los suscriptores del servicio a través de servicios web de callback al estilo REST.
Centrándonos en el backend de SigFox, veamos las opciones de navegación que nos ofrece, con una
breve explicación de cada una de ellas.
Cuando accedemos al portal, se nos presenta una página de bienvenida, que nos notifica de las nuevas
funcionalidades incluidas en la página. También tenemos acceso a una lista de eventos de la red y a un
mapa con la cobertura actual en el país. A través de la barra superior, podemos navegar por los distintos
apartados de la página, diferenciando los siguientes (de izquierda a derecha):

 Device: nos muestra los dispositivos registrados en el backend, distinguidos por un identificador
único. Entre otras opciones; nos muestra estadísticas con el número de mensajes enviados
diariamente, notificaciones de eventos surgidos durante la transmisión (como saltos en el
número de secuencia, que indican pérdida de información), y sobre todo, los mensajes enviados;
con la fecha de recepción, el contenido del mensaje (con la codificación elegida por el
fabricante del dispositivo), su traducción a ASCII (si se han enviado caracteres), su localización
(mostrando un rectángulo formado por la latitud/longitud, sin decimales, en la que se encuentra
el dispositivo), información sobre redundancia, el nivel de la señal recibida (en dB), y la URL
de callback a la que se redirige (de haberla).
 Device Type: lista los tipos de dispositivos registrados en el backend. De esta forma, a cada
conjunto de dispositivos le podemos asociar un tipo para gestionarlos de la misma manera. La
opción más relevante a considerar en este apartado es el establecimiento de las URL de callback
a cada tipo de dispositivo; pudiendo utilizar más de una URL para cada tipo, eligiendo entre
GET o POST, y pudiendo seleccionar las variables que se desean obtener (entre otras; el
identificador de dispositivo, la hora de llegada del mensaje, la potencia media de la señal, la
latitud/longitud desde donde se envió el mensaje, o la carga útil).
 User: muestra los usuarios, pertenecientes a un grupo, que tienen acceso al backend.
 Group: gestiona los grupos configurados en el backend. A ellos se le pueden asociar usuarios,
dispositivos o suscripciones. Además, SigFox le proporciona un usuario y contraseña para tener
acceso a la API REST.
 Billing: se encarga de las suscripciones a SigFox, incluyendo los servicios contratados, el
número de mensajes máximo permitido o el precio de la suscripción, como aspectos más
relevantes.
 Información rápida del usuario: hace de resumen de la pestaña User, e incluye las direcciones
IP con las que el usuario ha accedido al backend, junto la fecha de último acceso de cada una.
 Redirección a la lista de eventos de red.
 Ayuda online: dispone de documentación para el uso de callbacks y la API REST, información
para el proceso de suscripción, y una breve mención al formato de los mensajes enviados.
 Logout: para cerrar sesión.

Más información sobre el backend de Sigfox:

 Existe una Ayuda de backend en https://backend.sigfox.com/cms/list


 Callback documentation: https://backend.sigfox.com/apidocs/callback
 Backend API documentation: https://resources.sigfox.com/document/backend-api-
documentation
 Recursos Sigfox: https://resources.sigfox.com/
 Sigfox support: https://support.sigfox.com/

Lo primero que se debe hacer es registrar un dispositivo en la red de


Sigfox: https://backend.sigfox.com/cms/section/52f8a5b593368ce020b924e1/info
Activar un dispositivo: https://backend.sigfox.com/activate

Report this ad

Report this ad

Esta entrada se publicó en Arduino, Hardware, MKR, Sigfox, UNB y está etiquetada
con Arduino, Backend Sigfox, Cellnex, Hardware, Mensajes Sigfox, MKRFOX1200, Raspberry
Pi, Sigfox, UNB en 5 marzo, 2018.
Placas Arduino
2 respuestas

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

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 profundidad más adelante.

Primer Arduino:
Arduino Uno

Web: https://store.arduino.cc/arduino-uno-rev3

Es la placa estándar y 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 Atmega328p con 32Kbytes de ROM para el
programa.

Este es el Arduino que vamos a usar en el curso.


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

Web: https://store.arduino.cc/arduino-mega-2560-rev3

Es con mucha diferencia el más potente de las placas con microcontrolador de 8 bits 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

Mega ADK es una placa basada en el Mega2560 pero con un USB host adicional para conectar móviles
basados en Android:
Web: https://www.arduino.cc/en/Main/ArduinoBoardMegaADK

Getting Started con ADK: https://www.arduino.cc/en/Guide/ArduinoADK

Arduino Ethernet

Web: https://store.arduino.cc/arduino-ethernet-rev3-without-poe

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

Arduino Due

Web: https://store.arduino.cc/arduino-due

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 está alimentado a 3.3V y
dado que gran parte de los shields, sensores, actuadores para Arduino y compatible son a 5V lo limita,
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

Web: https://store.arduino.cc/arduino-leonardo-with-headers
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

Los Arduinos basados en el microcontrolador 32u4 permiten aparecer al Arduino conectado al ordenador
como un ratón o teclado nativo, simulando un dispositivo de este tipo.

Getting Started: https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro

Librería MouseKeyboard: https://www.arduino.cc/en/Reference/MouseKeyboard

Arduino Leonardo ETH

Web: https://store.arduino.cc/arduino-leonardo-eth

Es un Arduino Leonardo con ethernet proporcionado por el controlador W5500. Se trata de la versión
actualizada del Arduino Ethernet.

Documentación: http://labs.arduino.org/Arduino%20leonardo%20eth

Getting Started: http://labs.arduino.org/Getting+Started+with+Arduino+Leonardo+Eth

Arduino Micro
Web: https://store.arduino.cc/arduino-micro

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

Ejemplo de placa para uso de Arduino pequeños con bornas: https://spiercetech.com/shop/home/17-


arduino-nano-30-controller-terminal-breakout-board.html

Arduino Mini

Web: https://store.arduino.cc/arduino-mini-05

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 Yun

El Arduino Yun es un Arduino que es diferente a lo que son el resto de Arduino porque además de llevar
un microcontrolador, incorpora un Microprocesador MIPS con un Sistema Operativo Linux embebido.
La ventaja que aporta Arduino Yun y sus derivados es que el microcontrolador y el microprocesador
están conectado mediante un puerto serie y además Arduino nos ofrece una serie de
herramientas/librerías que facilita la interconexión entre ellos.

Arduino Yun (MCU + MP con Linux): https://store.arduino.cc/arduino-yun

Guía con Open WRT: https://www.arduino.cc/en/Guide/ArduinoYun

Guía con LininoOS: https://www.arduino.cc/en/Guide/ArduinoYunLin

Familia MKR

La familia de Arduino MKR son uan serie de placas con un factor de forma diferente al de Arduino
mucho más pequeño y basados todos en el microcontrolador de 32 bits de Atmel SAMD21. Estas placas
están pensadas principalmente para IoT.

Arduino MKRZero

Web: https://store.arduino.cc/arduino-mkrzero

Primero modelo de la familia MKR y heredero del Arduino Zero.

Arduino MKR1000 WIFI

Web: https://store.arduino.cc/arduino-mkr1000

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.
El ATSAMW25 está compuesto por tres principales bloques:

 SAMD21 Cortex-M0+ 32bit low power ARM MCU


 WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi (mismo que el wifi 101 shield)
 ECC508 CryptoAuthentication

Arduino MKR FOX 1200

Web: https://store.arduino.cc/arduino-mkrfox1200

Arduino anunciado en abril de 2017. En una placa de desarrollo pensada para el IoT con conectividad
Sigfox. Comparte muchas características con otras placas de la familia MKR como em
microcontrolador SAM D21 32-bit Cortex-M0+.

Incluye un módulo ATA8520 con conectividad sigfox de amplia cobertura y bajo consumo capaz de
funcionar durante 6 meses con dos pilas AA. También incluye una suscripción por dos años a la red
Sigfox: http://www.sigfox.com/en
Web: https://blog.arduino.cc/2017/04/18/introducing-the-arduino-mkrfox1200/

Arduino MKR WAN 1300

Web: https://store.arduino.cc/mkr-wan-1300

Presentado el 25 de septiembre de 2017 en la maker faire de


NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/

Arduino + LoRa:

 Microcontrolador: http://www.atmel.com/Images/Atmel-42181-SAM-D21_Summary.pdf
 Módulo LoRa: http://wireless.murata.com/RFM/data/type_abz.pdf

Arduino MKR GSM 1400

Web: https://store.arduino.cc/mkr-gsm-1400

Presentado el 25 de septiembre de 2017 en la maker faire de


NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/

Arduino + GSM:

 Microcontrolador: http://www.atmel.com/Images/Atmel-42181-SAM-D21_Summary.pdf
 Módulo GSM: https://www.u-blox.com/sites/default/files/SARA-U2_DataSheet_%28UBX-
13005287%29.pdf

Accesorios para Arduinos MKR

 MKR relay proto shield: https://store.arduino.cc/mkr-relay-proto-shield


 MKR proto shield: https://store.arduino.cc/mkr-proto-shield
 MKR2UNO adapter: https://store.arduino.cc/mkr2uno-adapter
Otros Arduinos oficiales

Existen aun mas Arduino oficiales:

 Arduino Zero con puerto de debug: https://store.arduino.cc/genuino-zero


 Arduino M0: https://store.arduino.cc/arduino-m0
 Arduino M0 Pro (similar al Zero): https://store.arduino.cc/arduino-m0-pro
 Arduino Esplora: https://store.arduino.cc/arduino-esplora
 Arduino Robot: https://store.arduino.cc/arduino-robot
 Arduino Nano: https://store.arduino.cc/arduino-nano
 Arduino Tian (mejora del Yun): https://store.arduino.cc/arduino-tian
 Arduino INDUSTRIAL 101: https://store.arduino.cc/arduino-industrial-101
 Arduino Yun Mini: https://store.arduino.cc/arduino-yun-mini

Otros:

 Arduino PRIMO: https://store.arduino.cc/arduino-primo (viene de un desarrollo de arduino.org)


 Arduino PRIMO CORE: https://store.arduino.cc/arduino-primo-core (viene de un desarrollo
de arduino.org)

Todos los productos de Arduino: https://www.arduino.cc/en/Main/Products

Arduinos para Wearables

Arduino Lilypad

Web: https://store.arduino.cc/lilypad-arduino-main-board

Diseñado para dispositivos “wearables” y e-textiles. Para coser con hilo conductor e instalarlo sobre
prendas.
Más información para fabricar wearable con arduino en: http://lilypadarduino.org/

Otros:

 LilyPad Arduino USB: https://store.arduino.cc/lilypad-arduino-usb


 LilyPad Arduino Simple: https://store.arduino.cc/lilypad-arduino-simple
 LilyPad Arduino SimpleSnap: https://store.arduino.cc/lilypad-arduino-simplesnap
Retirados

Hay modelos retirados, pero la documentación sigue disponible y es posible aun comprarlas por terceros
que las fabrican o fabricarlas uno mismo.

 Placas antiguas: https://www.arduino.cc/en/Main/Boards


 Arduino Pro: http://arduino.cc/en/Main/ArduinoBoardPro
 Arduino Pro Mini: https://www.arduino.cc/en/Main/ArduinoBoardProMini
 Arduino Gemma: https://store.arduino.cc/arduino-gemma
 Arduino Fio: http://arduino.cc/en/Main/ArduinoBoardFio
 Arduino Zero Pro: http://www.arduino.org/products/boards/arduino-zero-pro (viene de un
desarrollo de arduino.org)
 Arduino UNO Wifi: https://store.arduino.cc/arduino-uno-wifi es un arduino UNO + ESP8266
(viene de un desarrollo de arduino.orghttp://labs.arduino.org/Arduino+UNO+WiFi)
 Arduino ALICEPAD: http://www.arduino.org/products/boards/arduino-alicepad (viene de un
desarrollo de arduino.org)
 Arduino STAR OTTO: http://www.st.com/en/evaluation-tools/ard-otto-stm32.html (viene de un
desarrollo de arduino.org http://www.arduino.org/products/boards/arduino-star-otto)

Arduino 101

Web: https://store.arduino.cc/genuino-101

Es el sucesor del Arduino UNO con procesador Intel Curie Quark de 32 bit diseñado para ofrecer el
mínimo consumo de energía, 384 KB de memoria flash, 80 KB de SRAM, un sensor DSP integrado,
bluetooth de baja energía, acelerómetro y giroscopio de 6 ejes.

Video de 101: https://blog.arduino.cc/2016/01/13/unboxing-and-setup-of-arduino-101/


Código Firmware: https://github.com/01org/corelibs-arduino101 que no hace falta instalarlo porque ya
viene integrado en el IDE de arduino.cc y desde el gestor de librerías se instala en:
C:\Users\<user>\AppData\Local\Arduino15\packages\Intel\hardware\arc32\1.0.5

Review completa del 101: http://www.kitguru.net/components/cpu/james-morris/intel-genuino-101-


review/

Intel ha descontinuado la gama de microcontroladores usados en diversos Arduinos, lo que parece el fin
de la asociación entre Intel y Arduino, más aun cuando Arduino ha firmado un acuerdo con ARM.
 https://hackaday.com/2017/06/19/intel-discontinues-joule-galileo-and-edison-product-lines/
 https://communities.intel.com/thread/116434
 https://hackaday.com/2017/07/25/the-end-of-arduino-101-intel-leaves-maker-market/
 https://www.cnx-software.com/2017/07/26/intel-curie-module-arduino-101-boards-are-being-
discontinued-too/

Placas Compatibles Arduino

La marca Arduino está protegida y solo puede usarse por Arduino, pero debido a que se trata de
hardware libre, existen multitud de placas disponibles que bien son clones, placas derivadas (forks) u
otras placas totalmente independientes pero que la comunidad ha desarrollado el código para poder
programarlas con el lenguaje de programación de Arduino.

Cuando hablamos de placas compatibles con Arduino, son aquellas que se pueden programar con el IDE
de Arduino.

Listado no oficial de placas de terceros soportadas por el IDE de


Arduino: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Funduino

Web: https://www.funduinoshop.com/epages/78096195.sf/en_GB/?ViewObjectPath=%2FShops%2F780
96195
Chipkit

Web: http://chipkit.net/
ESP8266

Web: https://espressif.com/en/products/hardware/esp8266ex/overview
Moteino

Web: https://lowpowerlab.com/guide/moteino/
Resumen

Arduino.cc products: https://www.arduino.cc/en/Main/Products

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

Guía para comparar Arduino: https://learn.sparkfun.com/tutorials/arduino-comparison-guide

Esta entrada se publicó en Arduino, Curso Iniciación 2017, ESP8266, Hardware, MKR y está
etiquetada con Arduino, Arduino Leonardo, Arduino Mega, Arduino UNO, Arduino Yun, Curso
Iniciación 2017, ESP8266, Hardware, MKR, MKR1000, moteino, placas Arduino, Wearables en 15
octubre, 2017.
Qué es Arduino
6 respuestas

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.

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.”

Arduino no solo proporciona las placas (Hardware), sino que nos proporciona un software consistente en
un entorno de desarrollo (IDE), un lenguaje de programación simplificado para el HW y el bootloader
ejecutado en la placa. La principal característica del software (IDE) 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.

Arduino promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona. Para
alguien que quiere hacer un proyecto, el proceso pasa por 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.
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.
Arduino es una tecnología que tiene una rápida curva de aprendizaje 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…

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

Otras definiciones de Arduino:

 http://en.wikipedia.org/wiki/Arduino
 http://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

Primer Arduino:
Arduino simplifica el trabajo con microcontroladores y ofrece las siguientes ventajas: barato,
multiplataforma, entorno de programación sencillo, software libre y extensible mediante librerías en
C++, hardware libre y extensible.

Al trabajar con Arduino, se manejan conceptos de diferentes tecnologías que a priori no tienen nada que
ver entre ellos pero que los unifica: 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…

Diez razones para usar Arduino: http://www.modulo0tutoriales.com/10-razones-para-usar-arduino/

¿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 o mostrar por un display lo tecleado.

Con Arduino es posible automatizar cualquier cosa para hacer agentes autónomos (si queréis llamarles
Robots también). Controlar luces y dispositivos, o cualquier otra cosa que se pueda imaginar, es posible
optar por una solución basada en Arduino. Especialmente en desarrollos de dispositivos conectados a
Internet, Arduino es una solución muy buena.

Qué puede hacer Arduino? https://aprendiendoarduino.wordpress.com/2016/06/26/que-puede-hacer-


arduino/
Entornos de aplicación de Arduino?https://aprendiendoarduino.wordpress.com/2016/06/26/entornos-
de-aplicacion-arduino/

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.
El hardware de Arduino usa microcontroladores generalmente Atmel AVR. Los microcontroladores más
usados en las plataformas Arduino son el Atmega168, Atmega328, Atmega1280, ATmega8 por su
sencillez, pero se está ampliando a microcontroladores Atmel con arquitectura ARM como el
Atmel SAMD21 o los ST STM32, y también Intel.

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

Placas Arduino: https://aprendiendoarduino.wordpress.com/2017/06/19/placas-arduino-2/


Un shield es una placa compatible que se puede colocar en la parte superior de los arduinos y permite
extender las capacidades del arduino.

Shields Arduino: https://aprendiendoarduino.wordpress.com/2017/06/20/shields-arduino-3/


HW Compatible Arduino

Además del HW oficial de Arduino tenemos infinidad de placas compatibles con Arduino.

Dentro del HW compatible con Arduino podemos distinguir tres tipos:

 Los clones o forks de las placas de Arduino que son placas basadas o copias de los Arduinos
originales y con el mismo factor de forma. Usan los mismo microcontroladores que Arduino y
para programarlas se hace como si fuera una placa normal Arduino. Un ejemplo
Funduino https://funduino.de/ o
freeduino https://www.freeduino.org/freeduino_open_designs.html
 Placas que usando los mismos microcontroladores que Arduino, pero no tienen el mismo factor
de forma. Estas placas generalmente necesitan instalar el soporte para ellas en el IDE de
Arduino. Por ejemplo Moteino https://lowpowerlab.com/guide/moteino/ o
Teensy https://www.pjrc.com/teensy/
 Las placas que no están basadas en las placas originales de Arduino y además usan otros
microcontroladores que no están soportados nativamente por Arduino. Se programan igual que
Arduino, con el mismo IDE, pero debe instalarse el soporte y el toolchain (compilador,
uploader, etc…) para poder usarse como un Arduino. Ejemplos de estas placas son
ESP8266 https://espressif.com/en/products/hardware/esp8266ex/overview,
chipkit http://chipkit.net/ o MCUs STM32 como Blue
Pill http://wiki.stm32duino.com/index.php?title=Blue_Pill

Listados de placas Arduino y compatibles:

 https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems
 http://comohacer.eu/analisis-comparativo-placas-arduino-oficiales-compatibles/
 https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Dentro del entorno Arduino, podemos encontrar placas basadas en el microcontrolador ESP8266 con
wifi integrado y pila de protocolos TCP/IP que no sigue el factor de forma de Arduino. De este
microcontrolador han salido muchas placas como las wemos https://www.wemos.cc/
Placas de otros fabricantes de microcontroladores como Microchip o Mediatek con sus modelos ChipKit
o LinkIt.
Documentación de la placa linkit one:

 Placa: http://wiki.seeed.cc/LinkIt_ONE/
 Recursos: https://docs.labs.mediatek.com/resource/linkit-one/en
 Librerías: http://labs.mediatek.com/api/linkit-one/frames.html
 Ejemplo de uso: https://docs.labs.mediatek.com/resource/linkit-one/en/tutorials/car-tracker

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íasy
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: https://github.com/arduino/Arduino/issues y en http://forum.arduino.cc/index.php?board=2.0
En principio el IDE de arduino solo tenía soporte para las placas Arduino y los clones o forks con los
mismos microcontroladores que los Arduinos oficiales. Desde la versión 1.6.2 del IDE de arduino.cc y
gracias al gestor de placas, podemos añadir soporte a otros microcontroladores y placas al IDE de
Arduino, como al ESP8266.

Listado de URLs para soporte de tarjetas no


oficiales: https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

Arduino.cc tiene 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/ para microntroladores Atmel.

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

Algunos apartados importantes en playground.

 Hardware: http://playground.arduino.cc/Main/ArduinoCoreHardware
 Software: http://playground.arduino.cc/Main/DevelopmentTools
 Software en otras MCUs: http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips
 Interface con HW: http://playground.arduino.cc/Main/InterfacingWithHardware
 Librerías: http://playground.arduino.cc/Main/LibraryList
 Guías de iniciación en Español: http://playground.arduino.cc/Es/Guias

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/.

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

 stackexchange: http://arduino.stackexchange.com/
 stackoverflow: http://stackoverflow.com/
 stackexchange electronica: http://electronics.stackexchange.com/

Arduino en las redes sociales:

 on Twitter: @arduino
 on Google+: +Arduino
 on Facebook: official.arduino
 on YouTube: arduinoteam

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

 Hackster: https://www.hackster.io/
 Hackaday: http://hackaday.com/ y https://hackaday.io/
 Instructables: http://www.instructables.com/
 Arduino project hub: https://create.arduino.cc/projecthub
 OpenHardware: https://www.openhardware.io/
 Make: http://makezine.com/projects/
 Makehouseof: http://www.makeuseof.com/service/diy-projects/

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


 URmaker: http://www.unirioja.es/urmaker/
 Hacklerspace en Zaragoza: http://www.dlabs.co/
 Factoria maker: http://factoriamaker.com/
 Bricolabs: http://bricolabs.cc/ y http://bricolabs.cc/wiki/index.php

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/

Movimiento maker: https://en.wikipedia.org/wiki/Maker_culture

Más información sobre la comunidad, makerspaces y fablabs, ver los artículos:

 https://aprendiendoarduino.wordpress.com/2016/12/14/comunidad-arduino-3/
 https://aprendiendoarduino.wordpress.com/2016/12/14/makerspaces-y-fablabs/

Importancia de Arduino en el mundo Hardware

Arduino y por extensión el hardware libre se ha convertido en un elemento importante no solo en el


mundo maker sino también el la industria de fabricación de hardware.

Este enlace hace un estudio del estado de la industria del hardware en 2016. Más empresas están
desarrollando productos innovadores y tenemos disponibles mejores herramientas para el prototipado y
fabricación. El acceso a esas herramientas y el conocimiento alrededor de ellas es cada vez más
universal. De estas herramientas destaca Arduino, Raspberry Pi y las impresoras 3D.

Enlace: http://blog.fictiv.com/posts/2016-state-of-hardware-report

Cabe destacar de este estudio que el 56% de las empresas usan Arduino como herramienta eléctrica de
prototipado y el 91% de las empresas usan impresoras 3D como herramienta mecanica de prototipado.
Otra encuesta de hackster.io que muestra la importancia de
Arduino: https://blog.arduino.cc/2016/07/06/the-worlds-largest-maker-survey-results-are-out/

Arduino también se está utilizando ampliamente en la docencia y en la investigación. Pero Arduino


empezó como herramienta sencilla para artistas y usarlo en sus obras de arte, ejemplo de uso de Arduino
en el Arte https://vimeo.com/149774067

¿Es Arduino un Juguete destinado a Makers?

Definitivamente NO, Arduino es una herramienta de prototipado accesible y barata que puede ser usada
por profesionales para desarrollar aplicaciones profesionales.
Poner un Arduino en un producto comercial no es recomendable, pero sí usarlo como una herramienta de
desarrollo y prototipado.

Además Arduino puede ser una herramienta para desplegar aplicaciones, hacer desarrollos internos o
como sistema de monitorización dentro de una empresa de una forma sencilla y económica. Instalar un
sistema con Arduino con decenas de sondas de consumo a lo largo de una empresa para detectar puntos
de exceso consumo eléctrico y como elemento de eficiencia energética, es sencillo y económico usando
por ejemplo un proyecto open source como https://openenergymonitor.org/

Veamos un ejemplo de una empresa riojana. Zapatillas de ciclismo John Luck con medidor de potencia
de pedalada.

Presentación en el Eurobike del 2014:

 http://www.ciclismoafondo.es/material/Noticias-material/articulo/Luck-zapatillas-ciclismo-
medidor-de-potencia
 http://cyclingtips.com.au/2014/09/the-best-of-eurobike-2014-helmets-and-shoes/

Colaboración con el Centro Tecnológico del Calzado de La Rioja


(CTCR): http://esmtb.com/27772/john-luck-se-une-al-centro-tecnologico-del-calzado-de-la-rioja/

Elementos montados que se ven en la imagen:


 Arduino Pro Mini, 9.95$: https://www.sparkfun.com/products/11113
 Módulo bluetooth, 34.95$: https://www.sparkfun.com/products/12580
 El sensor piezo, 1,5$: https://www.sparkfun.com/products/10293, posiblemente no sea este
puesto que sería necesario un sensor con mucha más sensibilidad.
 El resto de elementos posiblemente sean para adaptar la señal del sensor piezo eléctrico,
cargador de batería, etc…

Campaña en kickstarter de un producto con otro concepto pero con el mismo


objetivo: https://www.kickstarter.com/projects/brimbrothers/the-worlds-first-wearable-power-meter-for-
cyclists. Más información: http://omicrono.elespanol.com/2016/02/medidor-potencia-en-zapatillas/

Producto oficial lanzado en 2017:

 http://luck-bike.es/es/content/25-potenciometro-luck
 Noticia: http://www.planetatriatlon.com/medidores-potencia-la-suela-tus-zapatillas-la-venta-
2017/
El producto final ya no es un Arduino lógicamente, pero Arduino ha sido usado para el desarrollo de un
producto comercial.

Antes de Arduino

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:

 http://www.foroselectronica.es/f77/vendo-programador-mp-2000-alecop-2894.html
 http://www.ditecom.com/programadores/programadores_Uprog.shtml
 http://micro2verano2012.blogspot.com.es/2012/01/computadora-basica-motorola-6800-
v10.html
Una plataforma muy extendida para aprender a programar microcontroladores era Basic Stamp.

Tabla de comparación de los microcontroladres Basic


Stamp: https://www.parallax.com/sites/default/files/downloads/BASICStampComparisonChart-0114.pdf

Lenguaje de programación Pbasic: http://en.wikipedia.org/wiki/PBASIC

Guia de incio muy intersante de parallax para inicio con Basic


Stamp: http://www.rambal.com/descargas/libros/WAM-v3.0-Spanish-v1.0.pdf

Placas de desarrollo con Basic Stamp: https://www.parallax.com/catalog/microcontrollers/basic-


stamp/boards

Ejemplo de domotica con basic


stamp: http://www.aprenderobotica.com/m/group/discussion?id=4310109%3ATopic%3A947
Interesante comparación entre Basic stamp y arduino: http://todbot.com/blog/2006/09/25/arduino-the-
basic-stamp-killer/

Filosofía Arduino

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/

IoT Manifesto: https://create.arduino.cc/iot/manifesto/

“We believe that the best way to grow this environment is to develop open source platforms and
protocols to propose as an alternative to the myriad of proprietary hardware and software platforms
each one of the big players are developing.

We believe in creating tools that make these technologies understandable to the most diverse set of
people as possible, this is the only way to make sure innovation benefits most of humanity.

We propose that connected devices should be: Open, Sustainable and Fair.”

“We foresee a world with billions of connected smart objects. These smart objects will be composed and
orchestrated, thus making the Internet of Things a reality. The IoT will be the eyes, noses, arms, legs,
hands of a new, extended, cyber body. The nervous system of such a body will be the Internet, allowing
the interaction with a distributed intelligence made of hardware processors and human minds,
behaviors, software procedures, and services, shared in the Cloud.”

Esta entrada se publicó en Arduino, Comunidad, Curso Iniciación 2017, Hardware, Software y está
etiquetada con Arduino, Comunidad, Curso Iniciación 2017, Hardware, Hardware Libre, Software en 15
octubre, 2017.
HW Arduino a Fondo
1 respuesta

Los Arduino y en general los microcontroladores tienen puertos de entrada y salida y de comunicación.
En Arduino podemos acceder a esos puertos a través de los pines.

 Pines digitales: http://www.arduino.cc/en/Tutorial/DigitalPins, pueden configurarse como


entrada (para leer, sensores) o como salida (para escribir, actuadores)
 Pines analógicos de entrada: https://www.arduino.cc/en/Tutorial/AnalogInputPins, usan un
conversor analógico/digital y sirven para leer sensores analógicos como sondas de temperatura.
 Pines analógicos de salida (PWM): https://www.arduino.cc/en/Tutorial/PWM, la mayoría de
Arduino no tienen conversor digital/analógico y para tener salidas analógicas se usa la técnica
PWM. No todos los pines digitales soportan PWM.
 Puertos de comunicación: USB, serie, I2C y SPI

Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:

 SRAM: donde Arduino crea y manipula las variables cuando se ejecuta. Es un recurso limitado
y debemos supervisar su uso para evitar agotarlo.
 EEPROM: memoria no volátil para mantener datos después de un reset o apagado. Las
EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
 Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias
grandes). Donde se guarda el sketch.

Más información en:

 http://arduino.cc/en/Tutorial/Memory
 https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/

Placa Arduino Uno a fondo:

Especificaciones detalladas de Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno

Microcontroller & USB-to-serial converter ATmega328P & Atmega16U2

Operating Voltage 5V

Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)


Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Clock Speed 16 MHz

Todos los componentes del Arduino UNO:


Pin mapping Arduino UNO:

Componentes en la placa:
Más ping mapping y conexiones de HW en:

 http://www.pighixxx.com/test/
 https://www.kickstarter.com/projects/pighixxx/abc-basic-connections-the-essential-book-for-
maker

HW de Arduino a fondo: https://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

Componentes Arduino UNO:

 No necesita de un cable FTDI para conectarse al MCU, en su lugar uso una MCU
ATMEGA16U2 especialmente programado para trabajar como conversor de USB a serie.
 Alimentación: vía USB, batería o adaptador AC/DC a 5V, seleccionado automáticamente.
Arduino puede trabajar entre 6 y 20V, pero es recomendado trabajar entre 7 y 12V por las
características del regulador de tensión.
 Puerto Serie en los pines 0 y 1.
 Interrupciones externas en los pines 2 y 3.
 Built-in LED en el pin 13.
 Bus TWI o I2C en los pines A4 y A5 etiquetados como SDA y SCL o pines específicos
 El MCU ATmega328P tiene un bootloader precargado que permite cargar en la memoria flash
el nuevo programa o sketch sin necesidad de un HW externo.
 Fusible rearmable de intensidad máxima 500mA. Aunque la mayoría de pc’s ya ofrecen
protección interna se incorpora un fusible con la intención de proteger tanto la placa Arduino
como el bus USB de sobrecargas y cortocircuitos. Si circula una intensidad mayor a 500mA por
el bus USB(Intensidad máxima de funcionamiento), el fusible salta rompiendo la conexión de la
alimentación.
 Regulador de voltaje LP2985 de 5V a 3.3V que proporciona una corriente de alimentación
máxima de 150 mA.
 Regulador de voltaje NCP1117 que proporciona un valor estable de 5V a la placa y soporta por
encima de 1 A de corriente. Datasheet: http://www.onsemi.com/pub_link/Collateral/NCP1117-
D.PDF
 ATMEGA16U2 => Es el chip encargado de convertir la comunicación del puerto USB a serie.
 Condensadores de 47µF de capacidad
 Diodo M7 en la entrada de alimentación de la placa. Con este diodo conseguimos establecer el
sentido de circulación de la intensidad, de esta forma si se produce una contracorriente debido a
la apertura de un relé u otros mecanismos eléctricos, el diodo bloquea dicha corriente
impidiendo que afecte a la fuente de alimentación.
 DFU-ICSP. Puerto ICSP para el microcontrolador ATMEGA16U2, como en el caso del
ATMEGA328P-PU se emplea para comunicarnos con el microcontrolador por el serial, para
reflashearlo con el bootloader, hacer algunas modificaciones, ponerlo en modo DFU, etc..
 JP2. Pines libres del ATMEGA16U2, dos entradas y dos salidas para futuras ampliaciones.
 Encapsulados de resistencias.
 RESET-EN: Significa Reset enabled o reset habilitado. Está habilitado el auto-reset, para
deshabilitar por cualquier tipo de seguridad (por ejemplo un proyecto que tenemos funcionando
y no queremos que nadie lo reinicie al conectar un USB y detecte un stream de datos) debemos
desoldar los pads RESET-EN y limpiarlos de forma que estén aislados el uno del otro.
 Cristal oscilador de 16MHz necesario para el funcionamiento del reloj del microcontrolador
ATMEGA16U2.
 Resonador cerámico de 16 Mhz para el microcontrolador ATMEGA328P-PU. Los resonadores
cerámicos son menos precisos que los cristales osciladores, pero para el caso hace
perfectamente la función y ahorramos bastante espacio en la placa. Se trata del pequeño, porque
el cristal grande es para el 16U2

Diferencias entre las diversas versiones de HW de los


Arduino: http://startingelectronics.com/articles/arduino/uno-r3-r2-differences/

Más información:

 http://tallerarduino.com/2013/06/28/arduino-pinout-y-conexiones-basicas/
 https://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

MCU ATmega16u2 en Arduino

Si nos fijamos en el pequeño integrado que hay en la placa de Arduino UNO junto al conector USB, se
trata de un ATmega16u2 cuya misión es dar el interfaz USB al Arduino UNO y comunicar los datos con
el ATmega328p mediante el puerto serie. Se podría usar como microcontrolador completamente
funcional y no solo un conversor de USB a Serial con ciertas modificaciones. Podríamos usar ambas
MCUs en la misma placa, pudiendo descargar trabajo de la MCU principal en la secundaria.
Para ello es posible usar el hoodloader2 en el Atmega16U2 o Atmega8U2 dependiendo de la versión de
Arduino Uno que tengamos y comunicamos ambas MCUs por HW serial

Como usar el segundo MCU del Arduino UNO: http://www.freetronics.com/blogs/news/16053025-


using-both-microcontrollers-on-your-arduino-uno-compatible-board#.VIg48zGG9B9

HoodLoader2: https://github.com/NicoHood/HoodLoader2

Además usaremos el microcontrolador ATmega16U2 para poder programar y conectar por USB el
módulo ESP8266 ESP-01 que disponemos para prácticas.
En este esquema estamos conectando directamente los puertos Tx y Rx del ATmega16u2 con los del
ESP8266 (puertos serie), de forma que el ATmega16U2 hace de conversor USB a TTL para poder
acceder al ESP8266 desde USB. Debe tenerse en cuenta que el ATmega328p de Arduino también está
conectado a Tx y Rx, por lo que habrá que tener cargado algún programa que no use la UART de
Atmega328p (cualquiera que con tenga Serial.begin).

Conexión de los puertos serie de las dos MCUs de un Arduino UNO:

Mucha más información sobre el 16U2 en: http://arduino.stackexchange.com/questions/13292/have-i-


bricked-my-arduino-uno-problems-with-uploading-to-board

Esquemático Arduino UNO

En este pdf podemos ver el esquema de un Arduino UNO, muy importante conocerlo para evitar hacer
maniobras que lo dañen: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Los dos microcontroladores:


Partes del esquemático:
También es importante conocer cómo están distribuidos los pines del MCU en Arduino:

 Pin Mapping: http://arduino.cc/en/Hacking/PinMapping168


 http://www.umsats.ca/wp-content/uploads/2013/02/Arduino_uno_Pinout.pdf
 http://pighixxx.com/atmega328v3_0.pdf
 http://pighixxx.com/unov3pdf.pdf
 Y más pinout de diversas placas, MCUs, etc… http://www.pighixxx.com/test/pinoutspg/

Para saber todo sobre el HW de Arduino ver este tutorial donde desglosa todo el HW de Arduino para
construir un Arduino UNO desde cero y crear tu propio
clon: https://rheingoldheavy.com/category/education/fundamentals/arduino-from-scratch-series/

Diseño PCB Arduino


La placa de Arduino:
Están disponible los esquemas y diseño en formato Eagle para Arduino UNO
en http://arduino.cc/en/uploads/Main/arduino_Uno_Rev3-02-TH.zip. Por supuesto para el resto de
Arduinos también disponemos de sus diseños de PCB.

Para ver los esquemas podemos usar Eagle, se trata de un programa de diseño de diagramas y PCBs con
autoenrutador:

 http://www.cadsoftusa.com/eagle-pcb-design-software/product-overview/
 Versión Freeware http://www.cadsoftusa.com/download-eagle/freeware/

La versión freeware de Eagle es perfecta para diseños pequeños y sencillos, se trata de una licencia para
uso no comercial y gratuita para todos. La versión freeware tienen todas las funcionalidades de la
versión de pago pero tiene ciertas limitaciones:

 El área de la placa está limitada a 100 x 80 mm


 Solo pueden usarse dos capas (Top y Bottom)
 El editor del esquemático solo puede tener dos hojas.
 Soporte solo disponible vía email o foro
 Su uso está limitado a aplicaciones no comerciales o para evaluación
 Se puede cargar, ver e imprimir diseños que superen esos límites.

Una opción opensource para diseño de PCB es kicad: http://kicad-pcb.org/

PRÁCTICA: Instalar eagle y ver algunos de los planos de arduino que nos podemos descargar y ver
algunos ejemplos. También probar a modificar algún elemento de los planos.

Webinar de Eagle: https://www.youtube.com/watch?v=2aFNypxILu0

Esta entrada se publicó en Arduino, Curso Avanzado 2017, Hardware y está etiquetada
con Arduino, Curso Avanzado 2017, Hardware en 11 agosto, 2017.
Microcontrolador vs Microprocesador
1 respuesta

Diferencia principal entre un microcontrolador (Arduino) y un microprocesador (Raspberry Pi) son las
capacidades de entradas y salidas, así como el rendimiento de la CPU.

Analogía: Arduino es un Autómata programable, Raspberry Pi es un Ordenador, así que a la hora de


decidirse que utilizar para un proyecto pensar que usaríamos un autómata o un Ordenador.

Un resumen de como funciona una MCU y como agregar un


programa: http://www.electronicaestudio.com/microcontrolador.htm que es diferente a como funciona
un microprocesador como los que tenemos en nuestro ordenador o portatil.

Para programación en tiempo real el HW a utilizar es el Arduino, para programación intensiva con gran
cantidad de datos usaríamos una Raspberry Pi o un PC.

En un proyecto grande la elección es usar ambos, cada uno en la tarea que mejor hace. Por ejemplo, la
recolección de datos, supervisión del entorno, envío de alarmas, accionar motores, etc.. lo dejaremos
para el arduino, el tratamiento de los datos recogidos, el interfaz gráfico de usuario, envío de correos,
etc… lo dejaremos para un ordenador o una raspberry pi o similar.
Diferencias entre el microprocesador y el microcontrolador, características al usarlos en la
implementación de sistemas digitales programables:

 CPU
 Memorias RAM y ROM
 Velocidad de Operación
 Tamaño
 Costes
 Interferencias (ruido)
 Tiempo de desarrollo

El uso de una u otra tecnología depende del fin que se espera, pues debido a sus características propias,
los microcontroladores y los microprocesadores pueden adquirir variados y diferentes espacios de
implementación, por ejemplo, los microprocesadores se han desarrollado fundamentalmente orientados
al mercado de los ordenadores personales y las estaciones de trabajo, pues allí se requiere una elevada
potencia de cálculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento.
Mientras que los microcontroladores están concebidos fundamentalmente para ser utilizados en
aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe realizar un pequeño
número de tareas, al menor costo posible. En estas aplicaciones el microcontrolador ejecuta un programa
almacenado permanentemente en su memoria, el cual trabaja con algunos datos almacenados
temporalmente e interactúa con el exterior a través de las líneas de entrada y salida de que dispone.

Microprocesadores Microcontroladores

El microprocesador tiene mucha más potencia de

cálculo, por lo cual solamente realiza sus funciones

con lo que tiene (datos) y su algoritmo o programa Es una de sus partes principales, la cual se encarga de

CPU establecida. dirigir sus operaciones.

Memorias Son dispositivos externos que lo complementan

RAM y ROM para su óptimo funcionamiento. Las incluye en un solo circuito integrado.

Velocidad de

Operación Rápida Lenta en comparación con la de un microprocesador

La configuración mínima básica de un El Microcontrolador incluye todo estos elementos en

Microprocesador está constituida por un un solo Circuito Integrado por lo que implica una gran

Microprocesador, una memoria RAM, una memoria ventaja en varios factores, como por ejemplo, la

ROM, un decodificador de direcciones, lo cual lo disminución en el tamaño del circuito impreso por la

Tamaño convierte en un circuito bastante engorroso. reducción de los circuitos externos.

Costos Para el Microprocesador, el costo es muy alto en la El costo para un sistema basado en Microcontrolador es
actualidad. mucho menor.

Son más susceptibles a la interferencia

electromagnética debido a su tamaño y a su

cableado externo que lo hace más propenso al El alto nivel de integración reduce los niveles de

Interferencias ruido. interferencia electromagnética

Tiempo de El tiempo de desarrollo de un microprocesador es

desarrollo lento. Por el contrario, el de un microcontrolador es rápido.

Un buen curso sobre microcontroladores es accesible


desde http://www.itescam.edu.mx/portal/asignatura.php?clave_asig=MTF-1021&carrera=IMCT-
2010-229&id_d=206. Se trata de una asignatura de microcontroladores.

Más información sobre microcontroladores: https://sites.google.com/site/electronicscience20/Micro/pic-


asembler/2-microcontroladores

Raspberry Pi es un ordenador de placa reducida o (placa única) (SBC) de bajo coste, desarrollado en
Reino Unido por la Fundación Raspberry Pi. El diseño incluye un System-on-a-chip Broadcom
BCM2837, que contiene un procesador central (CPU) ARM1176JZF-S a 1.2 GHz quad-core ARMv8,
un procesador gráfico (GPU) VideoCore IV, y 1GB de memoria RAM.

Los sistemas operativos soportados son distribuciones Linux para arquitectura ARM, Raspbian (derivada
de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de Fedora)

Web principal: http://www.raspberrypi.org/

Especificaciones técnicas: http://es.wikipedia.org/wiki/Raspberry_Pi#Especificaciones_t.C3.A9cnicas

El System-on-a-chip Broadcom BCM2835: http://www.raspberrypi.org/wp-


content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

Raspberry Pi:
GPIO:

También intel saca su alternativa a raspberry: http://www.intel.es/content/www/es/es/do-it-


yourself/edison.html

Más información: https://aprendiendoarduino.wordpress.com/2016/06/25/arduino-vs-raspberry-pi-2/

Un sketch de Arduino no es un sistema operativo: https://es.wikipedia.org/wiki/Sistema_operativo. Un


sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los
recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en
modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de
usuario)
Se puede decir que el sketch de Arduino es la aplicación que gestiona directamente los recursos de HW
sin necesidad de un SO o un kernel intermedio.

En el caso de raspberry Pi, el programa o sketch se ejecuta como una aplicación sobre un sistema
operativo y para interaccionar con el HW necesita de la interacción con el sistema operativo.

Para entender qué es el microcontrolador dentro de Arduino,


leer: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/

¿Podría convertir un arduino en un ordenador? ¿Cómo? ¿Es práctico?. Arduino como un ordenador:

 Salida TV:
 https://code.google.com/p/arduino-tvout/
 http://playground.arduino.cc/Main/TVout
 https://code.google.com/archive/p/arduino-tvout/wikis/FunctionalDescription.wiki
 http://www.instructables.com/id/TV-Out-with-Arduino/
 Pantalla tactil: http://tienda.bricogeek.com/shields-arduino/521-arduino-tft-touch-shield-
v20.html
 Teclado: http://playground.arduino.cc/code/Keypad,http://abedulengenharia.blogspot.com.es/20
11/07/arduino-y-teclado-3×4.html
 Separar los procesos en diferentes MCUs, mejor con chips específicos, pero se puede hacer
usando varios microcontroladores, uno ejecuta el SO, otros acceso a disco (controladora), otro
muestra datos por pantalla (tarjeta gráfica), tarjeta de sonido, etc…
 Disco Duro, leer y escribir ficheros. Acceso a una tarjeta SD. El sketch compilado se podría
guardar en una tarjeta SD y un bootloader adecuado podría leer de la tarjeta SD y cargarlo en la
memoria de programa para ejecutarlo. Ver ejemplo http://baldwisdom.com/bootdrive/
 Sistema Operativo: un sketch diseñado para interaccionar con el HW y poder correr
aplicaciones sobre el. Ver http://antipastohw.blogspot.com.es/2009/11/4-operating-systems-for-
arduino.html

También es posible convertir un ordenador en un


microcontrolador http://www.instructables.com/id/HackTurn-PC-into-a-microcontroller-for-
free/?ALLSTEPS

Microcontroladores 8 bits y 32 bits

A principios de 1970 TI produjo el primero de los microcontroladores el TMS 1000. Aunque Intel hizo
anteriormente el microcontrolador de 4 bits Intel 4004, necesitaba de una circuitería externa para
funcionar, por lo que el TMS 1000 es considerado el primer microcontrolador completo en un chip.

El tamaño de la palabra es un aspecto importante en la arquitectura de procesadores. La mayoría de los


registros de un Microprocesador/Microcontrolador tienen el tamaño de la palabra y las operaciones que
hace la ALU es manejando operandos cuyo tamaño es el tamaño de la palabra, así como la cantidad de
datos transferidos a memoria y dirección utilizada para designar una localización de memoria a menudo
ocupa una palabra.

El tamaño de palabra de un microprocesador/microcontrolador influye principalmente en el tamaño de


datos que puede manejar y la cantidad de memoria RAM que puede usar, así como la velocidad de
procesamiento.

También los valores que pueden tomar las variables dependen del tamaño de la
palabra. http://es.wikipedia.org/wiki/Palabra_%28inform%C3%A1tica%29

Arduinos con procesadores de 8 bits:

 Arduino UNO: https://www.arduino.cc/en/Main/ArduinoBoardUno


 Arduino MICRO: https://www.arduino.cc/en/Main/ArduinoBoardMicro
 Arduino MEGA: https://www.arduino.cc/en/Main/ArduinoBoardMega2560

Arduinos o compatibles con procesadores de 32 bits:

 Arduino Due: http://www.arduino.org/products/boards/4-arduino-boards/arduino-due


 Arduino 101: https://www.arduino.cc/en/Main/ArduinoBoard101
 Arduino ZERO: https://www.arduino.cc/en/Main/ArduinoBoardZero
 Arduino MKR1000: https://www.arduino.cc/en/Main/ArduinoMKR1000
 ESP8288: http://espressif.com/en/products/hardware/esp8266ex/overview
 STM32F103C8: http://wiki.stm32duino.com/index.php?title=Blue_Pill

Esta entrada se publicó en Arduino, Curso Avanzado


2017, Hardware, Microcontrolador, microprocesador y está etiquetada con Arduino, Curso Avanzado
2017, Hardware, Microcontroladores, Microprocesadores en 11 agosto, 2017.