domingo, 4 de diciembre de 2016

Hola Mundo con OpenSDK para Witty ESP8266

Como hemos visto en anteriores entradas, Arduino IDE no es el único entorno que existe para programar el ESP8266. Tenemos varias alternativas. Hoy vamos a ver cómo podemos programar nuestro microcontrolador utilizando el OpenSDK. Este SDK es una toolchain que une las librerías opensource de Espressif Systems, fabricante del microcontrolador y otra serie de librerías de terceros también opensource.
Las ventajas que tenemos al utilizar este SDK frente al de Arduino es un mayor control del procesador. Accederemos a todas las funcionalidad que nos da el fabricante del procesador Xtensa y prodremos sacarle más partido. La contraprestación que debemos pagar a cambio es que debemos tener mayor conocimiento del lenguaje C y que nuestros programas no serán tan fáciles de leer y entender como los que podríamos hacer con el C de Arduino.
Para probar este entorno utilizaremos a nuestro viejo conocido Witty y el IDE Code:Blocks todo ello utilizando linux.


Instalación del entorno de desarrollo.

Vamos a ver como sería la instalación y configuración del SDK y el IDE Code::blocks en Ubuntu.

Instala git si no lo tienes instalado.

sudo apt-get install git

Clona el repositorio.

git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

Construye el SDK. Tardará un buen rato en descargar los ficheros de espressif y generar todos los ficheros necesarios.

make STANDALONE=y

Instala la última versión de codeblocks.

sudo add-apt-repository ppa:damien-moore/codeblocks-stable
sudo apt-get update
sudo apt-get install codeblocks codeblocks-contrib

Instalamos ahora el wizard para ESP8266. Primero colócate en la carpeta wizard de tu usuario y realiza un clonado del repositorio.

cd ~/.local/share/codeblocks/templates/wizard/
git clone https://github.com/dziadu/codeblocks-esp8266-wizard esp8266

Ahora copia el fichero config.script en la carpeta wizard.

cp /usr/share/codeblocks/templates/wizard/config.script ~/.local/share/codeblocks/templates/wizard/

Añade la siguiente línea al fichero config.script.


RegisterWizard(wizProject,     _T("esp8266"),      _T("ESP8266 Project"),       _T("Embedded Systems"));

Ya tienes tu entorno preparado para desarrollar.

El "Hola Mundo".

Ahora vas a crear el código necesario para hacer parapadear el led interno del ESP8266. Primeramente ejecuta el programa Code::blocks.


 Selecciona New Project.


Selecciona ESP8266 Project.


 Pulsa Next.


Informa el campo de texto con la carpeta a los binarios del SDK, en mi caso es:

~/git/esp-open-sdk/xtensa-lx106-elf/bin


Pulsa Next.


Informa el campo de texto con la carpeta HOME del SDK. En mi caso es:
~/git/esp-open-sdk/sdk


En esta pantalla marca "Use Blinky example" y pulsa el botón Next.


Por último pon nombre al título y al proyecto y pulsa el botón "Finish".


Debe aparecer una estructura de ficheros creada a partir del workspace, si la despliegas verás el fichero con el ejemplo del led parpadeante. Para compilarlo y generar el firmware pulsa en el botón de play. Debe indicar que todo ha ido bien mostrando el siguiente mensaje en la ventana de log.


Ahora flashearemos el firmware. Busca la carpeta firmware dentro del proyecto y abre un terminal en esa carpeta. Con el Witty ya conectado al Pc ejecuta estas dos sentencias consecutivamente:


esptool.py --port /dev/ttyUSB0  write_flash -fm  dio 0x00000 0x00000.bin
esptool.py --port /dev/ttyUSB0  write_flash -fm  dio 0x10000 0x10000.bin

Si todo ha ido bien verás parpadear el led azul interno del ESP8266.

No hay comentarios:

Publicar un comentario