Manual

do

Maker

.

com

ESP8266 com MicroPython

ESP8266 com MicroPython

Recentemente fiz um post mostrando como colocar o firmware NodeMCU no ESP8266, dando uma interface mais agradável ao desenvolvedor. Com NodeMCU, o dispositivo passa a utilizar Lua como linguagem interativa e inclusive pode-se criar scripts e deixá-los no sistema de arquivos do ESP8266.

No post de hoje veremos como subir um firmware criado originalmente para a PyBoard (link), que é o (link), um firmware baseado no Python 3 e que passa a ser o "linux" da plaquinha.

A interface

Ainda em estado experimental, a versão do MicroPython para ESP8266 oferece uma interface de console Python, permitindo comandos interativos tal qual em um computador pessoal. Porém, sequer números de ponto flutuante são suportados ainda e o suporte a WiFi é rudimentar. Sendo essa a principal característica do ESP8266, MicroPython não é uma opção tão atrativa nesse momento, mas para nós que programamos em Python é no mínimo uma tentação. E assim sendo, vamos experimentar o gostinho dessa delicia.

Espressif SDK

Você pode gerar um binário para sua plataforma Linux para experimentá-lo. Supondo que seja esse seu objetivo, os passos são bastante parecidos.

Antes de tudo, será necessário ter instalado alguns pacotes em seu Linux. Como só uso Debian e seus variantes atualmente, vou exemplificar apenas para essa plataforma (Ubuntu, Mint, Debian...):

sudo apt-get install build-essential libreadline-dev libffi-dev git

No GitHub tem uma lista de dependências assim:

sudo apt-get install make unrar autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python python-serial sed git unzip

Mal não vai fazer, a não ser pro espaço livre do seu HD/SSD. Se achou pouco, pode ser necessário isso também:

sudo apt-get install libtool-bin

Então clone o diretório git para um lugar que tenha espaço:

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

Após baixar, entre no diretório criado e digite:

make STANDALONE=y

Levará um tempo absurdo. Pode acontece de faltar algum pacote, como por exemplo, 'automake'. Se acontecer, a compilação falhará, então você instala a dependência e continua de onde parou, sem choque.

Mais um download, pra variar. Ainda dentro desse diretório o SDK ficará em 'sdk', baixe o zip do MicroPython nesse link. Descomprima-o e remova seu sufixo, mas descomprima-o na mesma raiz em que você digitou 'make'. Não tenho certeza que seja obrigatório porque não testei de outro modo, mas como assim funcionou, quero proporcionar-lhe tranquilidade.

Export

Ao final do make, aparecerá na tela um print do export necessário para a cross-compilação. Reproduza-o. No meu caso ficou assim:

export PATH=/home/djames/micropython/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Depois disso, entre no diretório do microPython e entre na arquitetura que deseja compilar; obviamente estamos falando do ESP8266. Feito isso, você tem a opção de fazer o flashing depois ou na hora. Eu primeiro fiz o make. Fazendo o make dentro desse diretório, pude encontrar o binário necessário posteriormente em 'build', cujo nome do binário que me interessa é o firmware-combined.bin,  que é o mais simples de fazer flashing porque é só jogar em 0x00000. O outro modo é apontar a porta e fazer o deploy diretamente. Fiz na sequência pra ver como funciona e percebi que é necessário ter o esptool.py no path do sistema. Simplesmente criei um link simbólico:

ln -s /home/djames/esptool-master/esptool.py /usr/bin/

Então disparei o comando novamente:

make PORT=/dev/ttyUSB0 deploy

Aqui preciso deixar claro mais uma coisa; eu fiz o upload para a Wemos, por isso em nenhum momento eu citei, mas se você for fazer em qualquer ESP8266, não se esqueça que antes de fazer o flashing você precisa colocar a board no modo flashing. Se você não sabe como fazê-lo ou se esqueceu, sugiro que leia esse post que escrevi para instalar o NodeMCU. É o mesmo processo para o flashing de qualquer ESP.

Bom, esteja ciente que a partir de agora você tem um SDK para construir imagens e compilar o MicroPython para ESP8266 foi só uma das possibilidades, talvez voltemos a falar disso em breve.

Agora é hora de testar o brinquedo novo!

Testar o brinquedo novo

O suporte ainda é pobre, mutável, mas funcional. A documentação está no mesmo nível, mas dá pra brincar um bocadinho. Até mais do que com o firmware da Wemos. Não havia contado nos posts anteriores para não desanimar ninguém, mas o build online para a board Wemos é pago - ao contrário do gerador de firmware online do NodeMCU, que é gratuito e usa o mesmo sistema de build. De qualquer modo, esse é um processo que necessita de coragem e desapego e a recompensa é satisfatória. Agora tenho ESP8266 com NodeMCU, Espressif AT, Modificado na IDE do Arduino fazendo OTA e meu mais novo brinquedo - um Wemos com MicroPython. Deixe-me mostrar como ele ficou, junto à toda sua vasta gama de bugs.

https://youtu.be/vgW3Y4pz-kE

Referências:

http://www.electrodragon.com/w/MicroPython\_ESP8266

http://docs.micropython.org/en/latest/library/esp.html

https://github.com/pfalcon/esp-open-sdk

http://micropython.org/download/

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.