Professional Documents
Culture Documents
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.
Cellnex:
https://www.cellnextelecom.com/quienes-somos/
https://www.cellnextelecom.com/
Así, basándose en los tres pilares fundamentales, las características más destacables de lo que ofrecen a
sus clientes son las siguientes:
Hardware Sigfox
Existen muchos dispositivos certificados por sigfox y pueden encontrarse en la sigfox partner
network: https://partners.sigfox.com/
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
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.
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.
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.
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.
Microcontrolador: http://www.atmel.com/devices/atmega328p.aspx
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
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
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
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.
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
Arduino Micro
Web: https://store.arduino.cc/arduino-micro
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.
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
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:
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/
Web: https://store.arduino.cc/mkr-wan-1300
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
Web: https://store.arduino.cc/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
Otros:
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:
Hay modelos retirados, pero la documentación sigue disponible y es posible aun comprarlas por terceros
que las fabrican o fabricarlas uno mismo.
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.
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/
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.
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
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.
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…
http://en.wikipedia.org/wiki/Arduino
http://es.wikipedia.org/wiki/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…
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.
HW Arduino
Características de un Microcontrolador:
Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras
necesidades.
Además del HW oficial de Arduino tenemos infinidad de placas compatibles con Arduino.
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
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
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.
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/
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/.
stackexchange: http://arduino.stackexchange.com/
stackoverflow: http://stackoverflow.com/
stackexchange electronica: http://electronics.stackexchange.com/
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
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
https://aprendiendoarduino.wordpress.com/2016/12/14/comunidad-arduino-3/
https://aprendiendoarduino.wordpress.com/2016/12/14/makerspaces-y-fablabs/
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/
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.
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/
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.
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/
“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.
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.
http://arduino.cc/en/Tutorial/Memory
https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/
Operating Voltage 5V
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
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
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
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
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
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).
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
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/
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:
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.
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.
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
con lo que tiene (datos) y su algoritmo o programa Es una de sus partes principales, la cual se encarga de
RAM y ROM para su óptimo funcionamiento. Las incluye en un solo circuito integrado.
Velocidad de
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
Costos Para el Microprocesador, el costo es muy alto en la El costo para un sistema basado en Microcontrolador es
actualidad. mucho menor.
cableado externo que lo hace más propenso al El alto nivel de integración reduce los niveles de
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)
Raspberry Pi:
GPIO:
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.
¿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
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.
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