FONA808 + ARDUINO UNO – FASE 1: Conexión, Comandos AT y Mensajes SMS

En este tutorial demostramos cómo conectar un modem FONA 808 de  Adafruit con un ARDUINO UNO para poder realizar operaciones en la red de telefonía movil GSM tales como el envío de mensajes SMS o comunicación por internet usando una red 3G.

En esta entrega discutiremos las conexiones de diversos puertos y pines del FONA, así como el envío de comandos AT mediante el monitor serial del IDE de ARDUINO (o cualquier terminal serial conectada al ARDUINO) Continuar leyendo “FONA808 + ARDUINO UNO – FASE 1: Conexión, Comandos AT y Mensajes SMS”

[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

El último punto funcional reproducible

admin_exprMucho del quehacer maker está relacionado con procesos de experimentación, de aprendizaje y con la creación de nuevo conocimiento.

Durante este tipo de procesos de experimentación “ad-hoc” es fácil caer en una parálisis en la cual “giramos en círculo” con partes de experimentos que a veces son éxitosas y a veces no, sin que podamos comprender la causa de estos resultados divirgentes; especialmente cuando no tenemos una forma estructurada de administrar las incertidumbres y los aciertos resultantes de nuestros experimentos.

Recientemente vivimos esto durante nuestra experimentación para grabar sonido usando Intel Edison, donde a ratos teníamos pruebas exitosas y a ratos “las mismas pruebas” fallaban.

Este tipo de parálisis puede resultarnos costosas, no solo a nivel de tiempo y recursos, sino también en lo referente a la motivación del equipo, al verse desvanecer los éxitos del trabajo sin una razón aparente.

Es por esto que compartimos en este artículo algunas medidas que nos permiten asegurar el éxito progresivo alcanzado en diversos experimentos y avanzar con un paso más seguro, evitando parálisis de análisis.

  1. Planee sus experimentos de manera individual y documente el plan
  2. Documente los pasos a realizar en cada experimento. Mantenga una política de “Un cambio a la vez”
  3. Documente los resultados obtenidos y las desviaciones del plan realizadas durante cada experimento
  4. Una vez obtenido el éxito en cada etapa, verifique la repetibilidad del éxito en cada experimento.
  5. Haga una revisión retrospectiva del plan de experimentación luego de terminar cada experimento.
  6. Una vez alcanzado un nivel de éxito aceptable en diversos experimentos, documente y publique los pasos para alcanzar dicho éxito.
  7. Verifique la reptibilidad antes de publicar sus resultados; y lleve seguimiento de cada “punto funcional reproducible

¿Y qué significa el término “punto funcional reproducible” (PFR)?

Básicamente es el conjunto de pasos que hemos verificado que funciona para llevarnos a una conclusión.

Llevar seguimiento de cada PFR significa ponerle un nombre, una identificación que nos permita referirnos a cada PFR y que nuestros nuevos procedimientos se basen en el PFR más reciente, donde se concentra el conocimiento acumulado más reciente.

En el ejemplo, terminamos documentando los pasos de un proceso de grabación con Intel Edison que pudimos constatar como repetibles; de forma que nuestros siguientes experimentos puedan tomar este PFR como su punto de partida.

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)