Author Archives: José Núñez

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

30 Mar , 2016,
José Núñez
,
No Comments

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

14 Mar , 2016,
José Núñez
, ,
No Comments

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

2 Mar , 2016,
José Núñez
No Comments

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

29 Feb , 2016,
José Núñez
No Comments

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)

 

 

La cultura Maker es también una cultura de Investigación

28 Feb , 2016,
José Núñez
No Comments

Cuametodo_cientificondo se trata de cultura Maker, la investigación es esencial.

Y no me refiero a la “investigación” esa de simplemente googlear algo que necesitamos aprender.

Me refiero a la adquisición de conocimiento y su respectiva mejora y creación de nuevo conocimiento; a muchas horas practicando, aprendiendo, documentando y publicando.

Algo que hemos estado aprendiendo sobre la marcha de diversos proyectos y colegas; como es el caso de nuestros colegas de UNED-LiiT (http://investiga.uned.ac.cr/)

Wikipedia: Investigación

Wikipedia: Ciclo de la Investigación Científica

Wikipedia: Protocolo de Investigación

 

Los grandes científicos tienen grandes publicaciones… los grandes “makers” también

26 Feb , 2016,
José Núñez
No Comments

Los grandes científicos tienen grandes publicaciones… los grandes “makers” también.

Ejemplos:

  1. Blogs
  2. Facebook Updates
  3. Tutroriales
  4. Instructables
  5. Evaluaciones de Productos/Dispositivos
  6. Publicaciones Formales en Revistas Científicas
  7. Libros

¡Recuerdenlo!

Guía de Publicación de Tutoriales/Proyectos

Feb , 2016,
José Núñez
No Comments

Para nosotros es muy importante la calidad en el material que publicamos. Queremos que los tutoriales o proyectos que se publiquen tengan un formato sencillo de leer, y que aporte valor a la tarea de seguirlos.

Seguidamente se explican las diferentes secciones de nuestros tutoriales.

1. Descripción

En esta sección describimos de qué se trata el tutorial, las tecnologías utilizadas y el objetivo o resultado esperado de ejecutar el tutorial y la duración esperada para el tutorial.

2. Referencias Externas

En esta sección listamos las referencias a documentacion en Internet que utilizamos para adquirir conocimientos sobre el tutorial.

3. Disclaimer sobre Intención y Responsabilidad

Aquí colocamos un enlace a nuestra página donde se explique que estas instrucciones se brindan de buena fe, sin ninguna garantía de funcionamiento; y que no asumimos responsabilidades (Salvo lo que indique la ley) sobre daños o perjucios realizados durante la ejecución del tutorial.

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

4. Resumen

Aquí escribmos un resumen de los pasos a seguir para la persona que ya tiene conocimento sobre cómo realizarlos. Cada paso debe ser de un párrafo máximo y sin mayores explicaciones gráficas.

5. Lista de Materiales

En esta sección especificamos los materiales recomendados y agregamos en la medida de lo posible, enlaces a tiendas en línea donde comprar los materiales.

6. Pasos Detallados

En esta sección describimos los pasos del proyecto y opcionalmente, la duración esperada de cada uno, se incluyen diagramas, imágenes y listas de comandos en detalle.

7. Agradecimientos

Aquí reconocemos (listamos) a las personas y organizaciones que hacen posible este tutorial.

Intel Edison – Cómo Grabar Sonido usando un adaptador USB

25 Feb , 2016,
José Núñez
, , , ,
No Comments

Descripción

Una de las capacidades de Intel Edison que me resultan más intersantes es la capacidad de manejar dispositivos USB compatibles con LINUX, incluyendo adaptadores para grabar y ejecutar Audio.

Este pequeño proyecto nos permitirá adentrarnos en esta capacidad. Vamos a conectar un adaptador de audio USB al Edison, y vamos a grabar sonido.

Fuente: Intel’s Edison Audio Setup Guide

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


En resumen:

  1. Se conecta el dispositivo de Audio al puerto USB colocando el switch de selección USB en posición “up”
  2. Se conecta el Edison a la laptop mediante el puerto serial para usar la terminal LINUX con software como putty (windows) o screen (linux)
  3. Se obtiene una lista de dispositivos de audio USB para determinar el numero de dispositivo a utilizar.
    • cat /proc/asound/pcm
  4. Se listan los puertos de audio disponibles para determinar el puerto de salida (out) y de entrada (mic).
    • pactl list | grep Name | grep usb
  5. Se configura los puertos predeterminados (sink y source)
    • pactl set-default-sink {output-device-name}
    • pactl set-default-source {input-device-name}
  6. Se ejecuta el comando arecord con los parámetros correspondientes para el adaptador en uso.
    • arecord -f cd -c 1 -d 10 -r 44100 -D hw:2,0 soundfile.wav
  7. La grabación es almacenada en un archivo soundfile.wav

Lista Recomendada de Materiales:


PASO #1 – Conectar el Edison

Para este proyecto necesitaremos conectar el Edison a un computador por medio del puerto serial USB. Esto para poder manipular la terminal linux del Edison. El purto USB Serial es el que se ubica en la parte inferior derecha. Se puede usar putty (en el caso de Windows) o screen (en el caso de Linux) para acceder a dicha terminal. En el Administrador de Dispositivos de Windows, el puerto aparece bajo el nombre “Ports (COM & LPT) > USB Serial COM Port (COMxx)


PASO #2 – Conectar el Adaptador de Audio USB edison_usb

Este proyecto se ha probado en diversos adaptadores de audio (Plantronics*, Pluggable*, SYBA*)

Se conecta el adaptador de audio USB al puerto USB principal del Edison. Nótese que el switch de selección de modo USB debe estar en posición “up” para activar el puerto USB. Esto desactiva el puerto dedicado a recibir los Sketch de ARDUINO.


PASO #3 – Listar los Dispositivos

Una vez conectado al Edison, el sistema operativo reconoce el dispositivo de audio USB. Se puede listar los dispositivos de audio conectados al Edison usando el siguiente comando. Puede ejecutarlo con el dispositivo de audio conectado y desconectado para ver la diferencia de resultado. Anote el número de dispositivo.

cat /proc/asound/pcm

cat_proc_asound_pcm


PASO #4 – Listar los Puertos de Audio

Seguidamente necesitaremos anotar el nombre de los puertos de audio, utilizando el siguiente comando.

pactl list | grep Name | grep usb

pactl_list_grep


PASO #5 – Configurar Los Dispositivo de entrada y salida de audio

Utilice los siguientes comandos para configurar los dispositivos predeterminados de entrada y de salida de audio.

pactl set-default-source {input-device-name}

pactl set-default-sink {output-device-name}

edison_set_default_audio

 


PASO #6 – EJECUTE ARECORD

El siguiente comando se usa para grabar audio del dispositivo 2,0 que anotamos en el paso #3 a un archivo “soundfile.wav”

Puede necesitar opciones diferentes de arecord dependiendo de su dispositivo de audio USB. Las opciones disponibles pueden encontrarse en este enlace.

En este ejemplo, estamos grabando 10 segundos de audio (-d 10) a un “rate” de 44100, para un dispositivo 2,0 (-D hw:2,0)

arecord -f cd -c 1 -d 10 -r 44100 -D hw:2,0 soundfile.wav


Disclaimer:

(*) Este artículo cita marcas registradas que son propiedad de sus respectivos dueños

Al momento de escribir este artículo, el autor fungía como empleado de Intel Corp

Este artículo se brinda “tal cual” y de buena fe como un método para compartir conocimientos. No se brinda garantía de funcionamiento de ningún tipo; no asumimos responsabilidad por daños o pérdidas causados al seguir estas instrucciones; salvo lo que indique la ley aplicable.

 

Un Agradecimiento especial para nuestros amigos del Laboratorio de Investigación e Innovación Tecnológics (LIIT) de UNED, con quienes hemos trabajado largas horas explorando estas tecnologías.

Un Vistazo al ARDUINO 101 / GENUINO 101

23 Feb , 2016,
José Núñez
, , , ,
No Comments

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)

21 Feb , 2016,
José Núñez
No Comments

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.