ESP8266 com MicroPython

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, que é o MicroPython, um firmware baseado no Python 3 e que passa a ser o “linux” da plaquinha.

A interface

Console após catástrofe
Console após catástrofe

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…):

No GitHub tem uma lista de dependências assim:

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:

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

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

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:

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:

Então disparei o comando novamente:

O que me gerou um sorriso:

microPython-flashing

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.

 

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 newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Sistemas Embarcados

BR-Arduino.org

 

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta