[SOLUCIONADO] Intel Edison – Carga automática de sketch ARDUINO falla en versión 159 del firmware

A esta fecha (31-MAR-2016) nos topamos con la sorpresa de que al actualizar la versión del Firmware de Intel Edison a la #159.devkit (o simplemente 159) deja de funcionar adecuadamente la ejecución de sketches de Arduino al momento de reiniciar el dispositivo.

Todavía más sorprendente el hecho de que las nuevas tarjetas Intel Edison que compramos esta semana vienen con la versión 159 pre-instalada… y con el defecto.

Buscando resolver el problema, nos encontramos una entrada en el foro de Intel donde se explica una solución temporal, que consiste obtener los archivos de la versión 146 y copiarlos a la versión 159.

(!) Para facilitar el proceso hicimos una copia de los archivos en GITHUB. Seguidamente mostramos los pasos simplificados usando esta copia. 


PASO 1: Sobre-escribir los cuatro archivos contenidos en /opt/edison/ con los de la versión anterior (146) o usando los archivos en github

Para descargar los archivos al Edison se pueden usar varios métodos, uno es mediante un cliente SCP/SFTP como WinSCP; otro sería utilizando el comando wget desde el Edison si este está conectado a la Internet via WiFi así:

rm /opt/edison/* -rf

wget -O /opt/edison/clloader https://github.com/janunezc/edison_workshop/blob/master/159_fix/edison/clloader?raw=true

wget -O /opt/edison/launcher.sh https://raw.githubusercontent.com/janunezc/edison_workshop/master/159_fix/edison/launcher.sh

wget -O /opt/edison/sketch_reset https://github.com/janunezc/edison_workshop/blob/master/159_fix/edison/sketch_reset?raw=true

wget -O /opt/edison/sketch_reset.sh https://github.com/janunezc/edison_workshop/blob/master/159_fix/edison/sketch_reset.sh

PASO 2: Darle permiso de ejecución a los programas necesarios con el comando

  • chmod +x /opt/edison/clloader
  • chmod +x /opt/edison/launcher.sh
  • chmod +x /opt/edison/sketch_reset
  • chmod +x /opt/edison/sketch_reset.sh

PASO 3: Ejecutar los comandos de configuración para la auto-carga de sketches de Arduino

  • cd /opt/edison
  • systemctl enable clloader
  • systemctl start clloader

PASO 4: Rebootear de manera segura el Edison con el comando shutdown now


PASO 5: Cargar un sketch de Arduino en el Edison (por ejemplo Blink) y rebootearlo de manera segura con el comando reboot now.


PASO 6: Verifique que el sketch carga luego de apagar completamente el Edison y volverlo a encender.


FIN

Comunicación Inalámbrica con nRF24L01

Descripción

En este tutorial utilizaremos la librería denominada “RF24 by TMRh20” v.1.1.6 para ARDUINO IDE para comunicar dos dispositivos NRF24, uno como transmisor y otro como receptor, conectados a placas ARDUINO UNO y INTEL EDISON respectivamente.

Vamos a monitorear el resultado mediante los puertos seriales respectivos.

NIVEL INTERMEDIO

Referencias Externas

Un agradecimiento especial a terry@yourduino.com por su tutorial sobre los diferentes tipos de conexion para las multiples librerias disponibles para el NRF24.

Materiales

(*) Opcionalmente el Edison se puede reemplazar con otra tarjeta ARDUINO UNO

(!) Antes de seguir estas instrucciones asegúrese de entender las Condiciones de Uso de nuestro sitio.

Pre-requisitos

  1. Realice la configuración previa del Intel Edison (controladores, firmware, software en general) para su PC. Existen varios tutoriales para esto. Por ejemplo este.
  2. Instale el IDE de ARDUINO de https://www.arduino.cc/en/Main/Software
  3. Instale la librería “RF24 by TMRh20” en el ARDUINO IDE (Menu: Sketch > Include Library > Manage Libraries > [Install] )

rf24 manage libraries

Figura 1 – Librería RF24 by TMRh20

 

Pasos Resumidos

  1. Conecte los módulos nRF24 a las placas EDISON y ARDUINO tal y como se describe en la figura 2 abajo.
  2. Abra el ejemplo “RF24 > Getting Started” y programe con él su tarjeta ARDUINO (transmisor)
  3. Modifique el programa de ejemplo para que la variable “radioNumber” tenga un valor de 1 (ver figura 5) y programe su tarjeta EDISON (receptor) con este programa modificado.
  4. Monitoree el transmisor usando una conexion serial (Serial Monitor del ARDUINO IDE o PuTTY a 115200 baudios) y presione la tecla “T”

Procedimiento Detallado

PASO 1 –  CONEXIONES

La siguiente imagen ilustra las conexiones desde los pines del NRF24 a las placas ARDUINO o EDISON.

nrf24 pin connections

Figura 2 – Conexiones


PASO 2 – PROGRAMANDO EL TRANSMISOR

Abra el ejemplo de la librería “RF24 by TMRh20” denominado “Getting Started” (Menu: File > Examples > RF24 > Getting Started)

La variable “radio Number” definida en la línea 14 determina el modo de operación, en este caso debe ser 0 (tal y como viene predeterminada) para el transmisor.

radionumber_0

Figura 3 – Variable Radio Number para Transmisor

Cargue el programa en su tarjeta ARDUINO.

El monitor serial del IDE de arduino debe estar configurado para operar a 115200 baudios (ver figura 4).

(!) En este punto la tarjeta ARDUINO estará lista para transmitir; esperando que se conecte un receptor a la red. Puede apagar el ARDUINO por el momento.

115200

Figura 4 – Configuración de la pantalla de monitor serial


PASO 3 – PROGRAMANDO EL RECEPTOR

Utilizando el mismo programa, modifique el valor de la variable “radioNumber” para que sea igual a 1 (ver figura 5) y programe su tarjeta EDISON con esta nueva versión del programa.

radionumber_1

Figura 5 – radioNumber = 1

(!) En este punto la tarjeta EDISON estará lista para recibir datos, esperando mensajes del transmisor. Al abrir el monitor serial (SHIFT + CTRL + M) no se observará ninguna reacción. Recuerde asegurarse de que la velocidad del monitor sea 115200 baudios.


PASO 4 – PRUEBAS FINALES

Encienda el ARDUINO UNO (transmisor) conectándolo a su computador y abra el monitor serial. Verá una imagen similar a la figura 4.

Encienda el EDISON (receptor) conectándolo a la fuente de poder y al computador. Abra una terminal “PuTTY” para ver el monitoreo serial del EDISON. Recuerde la usar el puerto “Intel Virtual COM Port (COM??)” a una velocidad de 115200  como se ilusrta en la figura 6.

PuTTY_VirtualCOMPort

Figura 6 – Configurando PuTTY para monitorear el EDISON

Vaya al Monitor Serial del ARDUINO IDE y presione la tecla T

En este momento veremos como se comunican los dos equipos de manera inalámbrica como se ilustra en la figura 7.

Test_Sending_Receiving

Figura 7 – Monitoreando Transmisor y Receptor

Opciones de Comunicación Wireless para Makers

IMG_20160229_070408Una de las capacidades más importantes para la creación de soluciones para el IOT es poder conectar sensores y efectores distantes uno de otro por medio de comunicación inalámbrica.

Esta es una lista básica de opciones que investigar para comunicar Sensores y Efectores.

En próximas entregas estaremos explorando estas tecnologías y dispositivos.


 

  1. Transceivers Genéricos nRF24L01: (2.4 GHz) (~$5)
  2. WiFi via ESP8266 y el Sparkfun Thing (~$15)
  3. WiFi via Linux (Intel Edison, Raspberry PI 3, Arduino Yun) ($35-$100)
  4. XBee & XBee Pro ($20-$100)
  5. Bluetooth Low Energy (Intel Edison, Raspberry PI 3, Arduino Yun) ($35-$100)

 

 

Un Vistazo al ARDUINO 101 / GENUINO 101

Desde hace más de un año Intel Corp se ha estado esfor101zando para traer productos compatibles con ARDUINO, basasdos en su arquitectura x86 al mundo Maker. Fue así como vimos la llegada de Intel Galileo, Intel Galileo GEN2 e Intel Edison.

Este año nos trae un nuevo miembro de la familia Intel: El Intel Curie que es la base para la nueva tarjeta de prototipado Arduino/Genuino llamada el ARDUINO 101.


En Resumen:

Pros: Mayor poder computacional, sensores adicionales de movimiento y comunicación BLE a un bajo costo y bajo consumo eléctrico. Perfecto para… ¿drones? Flexibilidad en el GPIO para 3.3V y 5V.

Cons: Solución de prototipado no aprovecha las capacidades para computación vestible del Intel Curie.


En Detalle:

Curie es la nueva solución SoC x86 (System on Chip) de Intel para computación vestible. Está orientado a aplicaciones que necesiten una capacidad computacional superior y que sean de bajo consumo eléctrico, para prototipado de soluciones embebidas y vestibles. Trae integrado comunicación Bluetooth BLE así como giroscopio de 6 ejes y acelerómetro.

El Arduino 101 es la primera tarjeta de prototipado lanzada por ARDUINO con Intel Curie dentro.

El precio actual varía. Lo hemos visto disponible en Amazon a $35 así como en Mouser.com a $30. Al parecer su venta aun está restringida a los Estados Unidos.

Dentro de las principales características podemos resaltar:

  1. Voltage de operacion de I/O de 3.3V (tolera 5V)
  2. Dos núcleos de procesamiento: un x86 Quark Curie y un ARC de 32Bits
  3. Voltaje Recomendado de Alimentación: 7V – 12 V
  4. Voltaje Máximo de Alimentación: 7V-20V
  5. Pines Digitales I/O: 14 de los cuales 4 son PWM
  6. Pines Analógicos de Entrada: 6
  7. Corriente DC por Pin: 20mA
  8. Memoria Flash: 196Kb for sketches out of 384Kb total.
  9. Memoria SRAM: 24Kb for sketches out of 80Kb total.
  10. Velocidad de Reloj: 32MHz
  11. Funciones Integradas:
    1. Bluetooth BLE
    2. Acelerómetro/Giroscopio de 6 ejes
    3. Dimensiones: 68.6mm x 53.4mm

Pronto estarems evaluando este dispositivo en la práctica.

Fuentes:

  1. Intel Curie Fact Sheet
  2. Arduino 101 Spec @ Arduino.CC

 

 

Una Evaluación Breve sobre Blynk(r)

imageRecientemente estuve traveseando el nuevo servicio en la nube llamado “Blynk” (ver enlace)

Blync es un servicio en la nube donde el usuario puede crear Proyectos IoT en su celular, agregarles controles, botones, gráficos, formas de desplegar información, y conectar un dispositivo IoT, tales como Intel Edison, Sparkfun Thing ESP8266 y varias tarjetas ARDUINO.

El servicio provee una funcionalidad simplificada para realizar la conexion y autenticar el dispositivo mediante una llave de autorización, que puede ser cambiada en cualquier momento desde el celular.

También proveen un mecanismo para compartir las aplicaciones que uno crea mediante un código QR o mediante un enlace de Internet.

Nótese que este “compartir aplicación” se trata solamente de pasarle la configuración de elementos (botones, gráficos, etc) a otro teléfono, generando una nueva aplicación basándose en la que se está compartiendo; pero con un área de datos separada, de forma que compartir la aplicación no significa darle acceso a mis datos.

Una propuesta muy interesante sin duda. Pronto estaremos publicando algunos tutoriales sobre este servicio.