MicroPython: Organizando seu Código em Arquivos

Você pode organizar seu projeto através de vários arquivos e enviá-los ao seu dispositivo para que sejam executados. Veremos nesta postagem como é fácil fazer isso.
https://www.smithsonianmag.com/smart-news/card-catalog-dead-180956823/

No primeiro artigo que escrevemos sobre MicroPython, vimos como executar um código Pyhon direto no REPL (Read Evaluate Print Loop), que é um prompt interativo que nos permite interagir diretamente com o interpretador Python instalado no dispositivo. Entretanto, sem dúvidas, esta não é a melhor maneira que temos para organizar nosso projeto, concorda? 

Toda vez que precisássemos executar um projeto, precisaríamos copiar todas as linhas do nosso código no REPL e mandar executar. Definitivamente, não é nem um pouco prático e tornaria o MicroPython absolutamente inviável. Para nossa felicidade, o MicroPython nos dá um sistema de arquivos no qual podemos enviar arquivos e executá-los a partir de lá! Como fazemos isso? É isto o que veremos nesta postagem. 

Pré-requisitos

Antes de criarmos nosso primeiro arquivo com extensão .py e enviá-lo para um dispositivo, vamos ver a lista de pré-requisitos?

  1. Um ESP32 DevKit V1;
  2. Instalar o ampy, aplicativo que nos permite enviar arquivos para o ESP32;
  3. Um editor de código fonte, sugiro o Visual Studio Code ou o PyCharm, da Jetbrains.

 

Instalar o ampy

O difícil trabalho de realizar o envio de nossos arquivos para a microcontroladora será feito pelo ampy, uma ferramenta criada pela Adafruit. Aliás, ampy significa Adafruit MicroPython Tool! Espero que você já tenha lido nosso primeiro artigo, onde explicamos como instalar o esptool. Caso não, dá uma olhadinha lá. Neste artigo, pedimos para você instalar o Python, lembra? Nós precisaremos dele de novo, pois o ampy também foi desenvolvido nesta linguagem. Portanto, no terminal de sua preferência, execute: pip install adafruit-ampy

Ao final da instalação, você terá um terminal mais ou menos como o meu, que está na imagem aqui acima (caso você use Windows 10).

Instalar o Visual Studio Code ou PyCharm

Em minha humilde opinião, as duas melhores IDEs para desenvolvimento em MicroPython são o Visual Studio Code e o PyCharm. Não vou entrar no mérito de qual é a melhor, isto fica para você decidir. Posso adiantar que ambas tem plugins/extensões para MicroPython e funcionam muito bem. Agora, cabe a você escolher:

PyCharm: https://www.jetbrains.com/pt-br/pycharm/download/

Visual Studio Code: https://code.visualstudio.com/download

 

O Porteiro: main.py

Existe um arquivo que é especial em MicroPython! Trata-se do arquivo main.py. Mas, por que ele é especial? Porque ele tem uma função simples mas importante: executar seu código fonte assim que a controladora é iniciada. Desta forma, toda vez que seu dispositivo (ESP32/ESP8266) for energizado, o MicroPython vai buscar este arquivo no sistema de arquivos e executá-lo.

Vamos fazer nosso primeiro código? Hello World não, né? Concordo. Vamos fazer um script simples, que imprime uma frase a cada dois segundos na tela. Bobinho né? Não se preocupe, iremos aperfeiçoar nosso script conforme formos aprendendo mais detalhes sobre MicroPython.

import time 

while True: 
  print("Eu tenho a foooooorça!") 
  time.sleep(2)<br><br>

Iniciamos o código apenas importando a biblioteca time do MicroPython. Este biblioteca nos permite dar pausas em nosso aplicativo. No nosso caso, a linha time.sleep(2) dará uma pausa de dois segundos, travando a execução por este período de tempo. Logo em seguida, temos um bloco while True.

Ué! Mas isso é um loop infinito, cara! Exato! É isso mesmo que queremos. Nossos agentes ficarão rodando na microcontroladora eternamente, obtendo dados dos sensores periodicamente e enviando-os para algum lugar, correto? Caso não tenhamos o loop infinito, esta tarefa seria feita apenas uma vez e pronto. Dentro deste loop, note que temos um comando print() que apenas mostra no console um texto.

Todos a bordo!

O que falta agora? Isso mesmo! Só falta enviar este arquivo para o nosso ESP32. Então, vai lá e conecta esse camarada na porta USB para gente fazer isso logo. No terminal, navegue até o diretório onde se encontra nosso arquivo main.py. De lá, use o comando ampy --port COM3 put main.py.

Aguarde um pouquinho e note que o arquivo será enviado. Agora reinicie o ESP32 e vamos conectar no REPL para ver nosso “aplicativo” em execução. Se você estiver no Windows ou Linux, use o PuTTy, caso esteja no Mac, basta usar o Screen (screen <porta> <baud rate>).