El Arduino Yun es una gran herramienta a la hora de trabajar en proyectos en los que sea necesario un microcontrolador para trabajar en bajo nivel y un microprocesador para interactuar con lenguajes de programación de alto nivel. Sin embargo, la principal desventaja del Arduino Yún es su precio de entrada, el cual es sumamente alto (aproximadamente 60 dólares en el mercado estadounidense).
Hasta hace poco se liberaron los diseños de estos dispositivos, y ya hay una versión más económica (con sus respectivas ventajas y desventajas) – el LinkIt Smart Duo 7688.
El siguiente artículo pretende introducir al lector a las principales características del Smart Duo 7688, comparándolas con las prestaciones del Arduino Yún y destacando las ventajas y desventajas de una u otra plataforma. Además, poseemos de varios publicaciones relacionadas con este dispositivo que pueden interesarte:
- Expandir la memoria del LinkIt Smart Duo 7688 .
- Utilizar el monitor serie en red de un Arduino Yun ( o de un Smart Duo 7688).
- Instalar un servidor FTP en un Arduino Yun
- Instalación y configuración de MySQL en un Arduino Yun
- Bases de datos SQLite para el Arduino Yun
- Comandos de OpenWRT
VENTAJAS Y DESVENTAJAS
Este sistema embebido contiene el mismo microcontrolador del Arduino Yun/Leonardo , el ATMega32U4. Esto quiere decir que aunque se trata de un dispositivo ajeno a la gama de productos de Arduino, aún contamos con la posibilidad de programarlo tal como lo haríamos con un Arduino Leonardo, utilizando el mismo lenguajes y las mismas herramientas (Arduino IDE).
La diferencia entre un dispositivo y otro se encuentra en el microprocesador. El Yún corre bajo el Atheros AR9331 mientras que el Smart Duo 7688 (de ahora en adelante, SM7) contiene el Mediatek MT7688AN. Cabe destacar que la frecuencia de operación de este último es mayor a la del Yún (580 MHz vs. 400 MHz), lo cual hace que trabaje más rápido.
Pero no todo son ventajas. Anteriormente se ha escrito sobre montar una redes WIFI adicionales en nuestro Yún (de forma que trabaje como estación y punto de acceso al mismo tiempo), pero lamentablemente en el SM7 no se puede trabajar de esa forma. Tampoco tenemos un puerto Ethernet disponible (aunque los pines están disponibles en la placa), y tenemos un puerto micro USB en vez de uno de tamaño completo.
Estas desventajas pueden ser ventajas también. No en todos los proyectos necesitamos del puerto Ethernet (si se necesita, no debería ser mayor problema). El form-factor es una ventaja también. Es mucho más pequeño que el Yun. Una gran ventaja de este dispositivo es el puerto serial extra que emula una conexión por SSH (o como el YunSerialTerminal sketch que utilizamos en Arduino). Eso nos da la ventaja de no necesitar «flashearle» este programa para saber que está pasando en el Linux Side Of Things de nuestro dispositivo.
El siguiente diagrama muestra un vistazo general del hardware del SM7.
Este dispositivo puede ser adquirido a un bajo costo en su tienda oficial o en Amazon.
Como ya hemos dicho, su costo es mucho menor que el Arduino Yún y ofrece casi las mismas prestaciones.
PRIMEROS PASOS CON EL SMART DUO 7688
No hay mucha documentación de este dispositivo en Internet (al momento de hacer esta guía) aparte del manual del fabricante, el cual deja algunas cosas por fuera que son necesarias para hacer que el mismo funcione correctamente.
INSTALACIÓN DE DRIVERS
Dependiendo del sistema operativo que utilicemos puede que necesitemos instalar drivers específicos. Para los usuarios que utilicen alguna distribución de Linux, no deben de tener problemas para empezar a trabajar con el IDE de Arduino.
Para los usuarios de Windows hay que tomar estas consideraciones:
- Windows 10: No hay necesidad de instalar drivers, pero al momento de conectarlo al equipo debemos de presionar dos veces el botón de reinicio del MCU (botón abajo a la derecha en la figura 1). Cabe destacar que esta operación debe ser realizada en menos de 700ms luego de haber conectado la placa a nuestra PC (es un poco absurdo pero es lo que dice el manual del fabricante).
- Windows 8-8.1: Se debe de deshabilitar el «Driver Signature Enforcement». Esto evita que nuestro driver se pueda instalar automáticamente. Luego de haber deshabilitado esto procedemos a instalarlo como usuario de Windows 7.
- Windows 7: Descargar el siguiente archivo. Luego de descomprimirlo, le damos click derecho al archivo .inf y luego a «Instalar».
Eso sería todo por ahora. Si todo salio bien deberíamos ver un nuevo puerto (usualmente COM5 , y /dev/ttyUSB0 en Linux).
INSTALACIÓN DEL PAQUETE PARA ARDUINO IDE DEL SMART DUO 7688
Para poder empezar a compilar programas y subirlo a nuestra placa, debemos instalar el paquete para Arduino. Para esto procederemos a abrir el IDE de Arduino. Luego abriremos el menu de Archivo>Preferencias (File>Preferences).
Agregaremos la siguiente línea a la casilla de «Gestor de URLs Adicionales de Tarjetas»
1 |
http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json |
Ten en cuenta que si tienes otras URLs debes separar cada una con comas.
Luego de haber realizado esto nos iremos al menú de Herramientas>Placa>Gestor de Tarjetas. Buscamos el paquete «LinkIt Smart 7688 Duo» (o simplemente 7688) e instalamos la última versión que aparezca. Debería ser la versión 0.1.8.
¡Ya estamos listos para compilar nuestro primer programa con el IDE de Arduino! Solo debemos configurar el puerto y la placa a utilizar.
Deberíamos tener una compilación correcta, y el LED D13 (justo encima del boton de reinicio del MCU) debería parpadear).
Un aspecto particular de este dispositivo es que podemos utilizar todos los ejemplos disponibles para el Arduino Yun. Solo debemos habilitar la función de «Bridge» (está detallado más abajo).
ACTUALIZAR FIRMWARE Y BOOTLOADER
Con lo que llevamos de la guía hemos visto como podemos utilizar el microcontrolador de nuestro sistema embebido. Ahora vamos a concentrarnos en utilizar la parte de Linux para luego unir ambas. Empezaremos con actualizar el firmware y el bootloader.
Primero debemos descargar ambos archivos. Ambos se encuentran en esta página, debajo de «LinkIt Smart 7688».
Descomprimimos (si es necesario) y lo copiamos a la raíz de un USB (Ver imagen inferior).
Necesitamos un USB On-The-Go (OTG). Conectamos el OTG a el puerto «USB Host» en nuestro Smart Duo 7688. Conectamos el USB al otro extremo del OTG y seguiremos los siguientes pasos:
- Para actualizar el firmware presionaremos el botón de reinicio de Wi-Fi y el botón de reinicio del MPU (botón del centro + botón de la izquierda). Luego soltamos el botón de reinicio del MPU (botón de la izquierda) y dejamos presionado el botón de Wi-Fi por unos aproximados 5s más. El LED de WiFi empezará a titilar rápidamente mientras lee el archivo, y luego comenzará a titilar lentamente mientras actualiza. Este proceso dura aproximadamente 3 mins.
- Para actualizar el bootloader haremos casi lo mismo que el paso anterior. Solo que en vez de dejar presionado el botón de reinicio de Wi-Fi por 5s (al final) lo dejaremos presionado por 20s. El comportamiento del LED de WiFi será exactamente el mismo que el paso anterior.
Alternativamente podemos actualizar el firmware a través de la interfaz web (solamente el firmware; el bootloader no se puede actualizar de esta forma). Luego de haber introducido nuestra contraseña (siguiente paso en esta guía), podemos actualizar el firmware en la interfaz web. Solo debemos buscar la sección de «Upgrade Firmware» en la pestaña «System Information».
CONFIGURACIÓN DE WI-FI
La primera vez que nuestro Smart Duo 7688 encienda, creará una red Wi-Fi con el nombre de «LinkIt_Smart_7688_XXXXX». Nos conectaremos a este red y procederemos a abrir nuestro navegador web. Ingresamos el siguiente URL:
1 |
http://mylinkit.local |
Se nos pedirá introducir una contraseña para nuestro usuario «root». No olviden esa contraseña ya que será utilizada para futuras configuraciones y accesos por SSH.
Ahora iremos a la configuración de la red. Introducimos el usuario y la contraseña y nos dirigiremos a «Network». Seleccionamos modo estación (Station Mode) y buscamos la red a la que nos queremos conectar. Luego introducimos la contraseña y le damos click a «Configure and Restart».
UTILIZACIÓN DEL PUERTO UART2
Una de las ventajas mencionadas en este post de este dispositivo sobre el Yun es la presencia de un puerto serial extra que nos permite accesar a la consola principal del sistema. Algo así como entrar por SSH a la terminal principal, solo que por medio de puerto serial. Para realizar esta conexión debemos de tener un FTDI (USB to Serial TTL). Las conexiones serán las siguientes:
PIN DE LA PLACA | PIN DEL FTDI |
UART TX2 (P8) | RX |
UART RX2 (P9) | TX |
GND | GND |
Luego solo necesitamos abrir ese puerto de comunicación. En Windows es necesario utilizar alguna herramienta como PuTTY, y en las distribuciones de Linux utilizaremos screen (aunque también es posible utilizar minicom, solo que screen es más sencillo).
Abrimos el puerto (probablemente COM12 o COM6 en Windows, y /dev/ttyUSB0 o /dev/ttyUSB1 en GNU/Linux) a una velocidad de transmisión de 57600.
Linux:
1 |
screen /dev/ttyUSB1 57600 |
Windows:
Abrimos Putty. Introducimos los datos que vemos en el cuadro inferior y le damos click a «Open».
1 2 3 |
Serial line: COM6 // O el puerto que se haya creado. Se puede revisar en Administrador de Dispositivos Speed: 57600 Connection type: serial |
Ahora solo debemos presionar la tecla «ENTER» y debemos de ver algo parecido a esto:
CONEXIÓN POR SSH
Mediante SSH (Secure SHell) podemos ingresar a la consola del sistema (así como en el paso anterior). La ventaja que provee SSH es que no necesariamente debe de estar conectado a nuestra PC. Solo necesitamos estar en la misma red o habilitar un puerto en el firewall del router para habilitar el acceso desde afuera de la red. Para los fines de esta guía nos aseguraremos de que estamos en la misma red que nuestro dispositivo.
Windows: Abrimos PuTTY e introducimos los siguientes parámetros
1 2 3 |
Host Name (or IP Address): mylinkit.local //Si estamos utilizando W7 o W8.1 probablemente tengamos que utilizar la IP interna del dispositivo Port: 22 Connection type: SSH |
El usuario es root y la contraseña es la que hemos configurado en el paso de la configuración de Wi-Fi
Linux:
1 |
ssh root@mylinkit.local |
La contraseña es la que hemos configurado en el paso de la configuración de Wi-Fi.
INSTALACIÓN DE PAQUETES
Hemos podido apreciar , por los pasos anteriores, que el firmware es una distribución de OpenWRT. Debido a esto, la instalación de paquetes se puede decir que es de la misma forma que en el Arduino Yun. De todas formas explicaremos un poco sobre esto. Primero debemos de ingresar a la consola del sistema (ya sea por SSH o con el puerto UART2) que fue explicado en pasos anteriores.
Para instalar paquetes, debemos de actualizar la lista de los mismos (al menos una vez por inicio de sesión):
1 |
opkg update |
Para instalar algún paquete, debemos esperar a que el comando update termine de actualizar las listas. Luego solo debemos utilizar:
1 |
opkg install <nombre_paquete> |
Como por ejemplo, si deseamos instalar nano (editor de texto)
1 |
opkg install nano |
HABILITAR EL «BRIDGE»
Bridge es una librería que nos permite comunicar el microprocesador y el microcontrolador. En otras palabras, poder transferir información desde el lado de Linux (OpenWrt) al microcontrolador (ATMega32U4). Esta librería de Bridge es utilizada por el Arduino Yun para poder accesar a la interfaz de Wi-Fi y Ethernet, correr comandos de consola, entre otras cosas, desde el microcontrolador. También podemos hacer lo inverso y enviar información desde el lado de Linux hacia el microcontrolador.
Para habilitar este comando debemos de acceder a la consola del sistema (a través de SSH o de el puerto serial UART2). Esto fue explicado en pasos anteriores.
Introduciremos los siguientes comandos:
1 2 3 |
uci set yunbridge.config.disabled=0 uci commit yunbridge reboot |
Si deseamos volver a deshabilitarlo, utilizamos los siguientes comandos:
1 2 3 |
uci set yunbridge.config.disabled=1 uci commit yunbridge reboot |
CONCLUSIÓN
En Panama Hitek adquirimos este dispositivo como una alternativa al Arduino Yun (por el costo) y la verdad no ha decepcionado. Lo único que desearíamos es que se pudiera conectar como estación y punto de acceso al mismo tiempo – pero no se le puede pedir más a un dispositivo como este. Tenemos ventajas mencionadas en este post, como la velocidad de procesamiento, el puerto serial extra, el tamaño, la memoria RAM y Flash; y en mi opinión lo hacen un buen adversario al Yun en términos de utilidad.
Cualquiera consulta no dude en dejar un comentario. Saludos.