Micropython ESP32 é uma linguagem de programação compacta, porém eficiente, derivada de Python 3. Ela inclui diversas subfunções da biblioteca padrão do Python e é otimizada para rodar em microcontroladores e ambientes com restrições.
Diferentemente da IDE do Arduino, cuja linguagem de programação utilizada é a C/C++ e Wiring, iremos utilizar o ambiente de programação uPyCraft . Ela é uma IDE com um design simples e de fácil utilização.
Veremos, primeiramente, como instalar essa IDE e como configurar a ESP32 para rodar códigos Python (atualizar o firmware). Em seguida, iremos demonstrar como utilizar as funções mais usadas, como fazer leituras digitais e analógicas, dar comandos de saída, acionar ou desligar LEDs, dentre outras funções.
Instalando a IDE para trabalhar com Micropython ESP32
Diferentemente de diversos outros tutoriais que fizemos, agora iremos utilizar uma IDE diferente. Para instalar ela, siga os passos abaixo.
- Primeiramente, acesse a página de download do site da uPyCraft, nesse link.
- Faça o download do programa de acordo com o seu sistema operacional e instale-o.
- Em seguida, inicie o uPyCraft e verifique de há atualizações. Caso haja, clique em atualizar.
- Feito isso teremos o ambiente de programação instalado, conforme a figura abaixo.
No decorrer do tutorial será demonstrado as funções mais úteis para nós dessa IDE.
Atualizar o Firmware na ESP32 para usar Micropython
O segundo passo a ser feito é atualizar o firmware da ESP32 para rodar códigos em Python. Para tanto, siga os passos abaixo.
- Acesse a página de downloads do site oficial do Micropython, através desse link.
- Desça a página até encontrar a seção intitulada “Firmware for ESP32 boards”, e clique para baixar a versão standard (latest). A versão que usamos foi a versão identificada na imagem abaixo.
Na sequência, conecte a sua ESP32 e abra a IDE uPyCraft. Nela, clique em “Tools” e, em seguida, “BurnFirmware”, conforme imagem abaixo.
Uma nova janela, chamada “update Firmware”, se abrirá. Nela você deverá preencher algumas opções para usar o Micropython ESP32. Fizemos uma lista para facilitar:
- board: esp32
- burn_addr: 0x1000
- erase_flash: yes
- com: <dependerá do seu sistema operacional, mas deverá seguir o formato COMx, onde x é o número da porta>
- Selecione “Users” e clique em “choose”. Em seguida, navegue até o local onde você salvou o firmware. No meu caso era na pasta Downloads. Dê um duplo clique no firmware para selecioná-lo.
A janela deverá ficar semelhante à da imagem abaixo:
Agora é hora de gravar na ESP. Para tanto, primeiro mantenha pressionado o botão “boot” na placa e, em seguida, pressione “ok” na janela de update. Logo aparecerá a janela abaixo e então a memória flash começará a ser apagada. Quando começar, você poderá soltar o botão “boot”.
Em seguida, o novo firmware começará a ser gravado:
Feito isso, a placa estará pronta para ser programada utilizando Python!
Teste “Blink” utilizando Python
Agora, iremos realizar o famoso teste “Blink”, utilizando a LED integrada à placa na GPIO 2. Antes, porém, confira se a porta serial e placa estão selecionadas, através do menu “Tools”>”Serial” e “Tools”>”board”>”esp32″. Assim que você clicar na porta respectiva à placa, você notará que uma pequena janela console aparecerá na parte de baixo da IDE, conforme figura abaixo (no retângulo azulado). Nela, você pode executar comandos Python direto na ESP32.
Na sequência, vamos criar executar primeiro código. Clique em “File”>”New”. Um ambiente para escrita será gerado. Copie o código abaixo e cole nele.
[crayon-6742ee89ed9dd828249953/]
Lembre-se que Python é uma linguagem obrigatoriamente indentada. Ela necessita de um recuo para definir o escopo de suas estruturas.
Na sequência, salve o código, pressionando “Ctrl+S”, ou indo em “File”>”Save”. Escolha um nome para o arquivo e um diretório para armazená-lo. Em seguida, clique no botão “DownloadAndRun”, com forma de figura triangular, identificado na imagem abaixo pelo quadrado azulado.
Com isso, a LED integrada começará a piscar a cada 1 segundo!
Análise do código no Micropython ESP32
Agora, finalmente, vamos ver o código mais a fundo.
No início, duas instruções de inclusão de bibliotecas são feitas. Elas são correspondentes à um “#include” no Arduino. A primeira, “machine”, contém funções relativas ao hardware. Dentro dela, encontram-se implementadas diversas classes, dentre elas a Pin. Utilizamos ela para controlar a GPIO da ESP32. Outras classes que também estão implementadas na machine são, por exemplo, a I2C, SPI, UART, etc. A segunda, é a bem conhecida biblioteca time, com funções relativas à contabilização de tempo. Dela, importamos a classe sleep, cuja utilidade é correspondente à um “delay” no Arduino.
[crayon-6742ee89ed9e5389446476/]
Em seguida, de maneira semelhante a que, no Arduino, nós configuramos um pino como saída, aqui primeiro é declarado uma variável para receber uma instância da classe Pin e, em seguida, informado o número da GPIO e definido como saída.
[crayon-6742ee89ed9e8939507592/]
Feito isso, vamos “void loop” do nosso código. De forma a fazer um loop infinito em Python, basta criar uma estrutura while e dar como parâmetro a constante True. Com isso, o código que está dentro do while será executado sempre. Note que, nesse caso, o código do escopo do while deve estar indentado por um espaço.
Perceba também, que para alternar o estado da LED, utilizamos apenas duas instruções: led.value e not. A primeira, retorna o valor do pino ou “escreve” nele um valor, dependendo de como foi usada. Na primeira utilização, passamos um valor a ela. O valor foi not, de negação, e o valor atual do pino. Por exemplo, se a função led.value retorar 1, então a instrução led.value(not led.value) é equivalente é led.value(0).
Por fim, o sleep é utlizado como um delay. Atente-se, porém, que a unidade padrão dele é em segundos. O valor abaixo, portanto, especifica um delay de 1 segundo.
[crayon-6742ee89ed9e9233513381/]
Chegamos ao fechamento desse tutorial Micropython ESP32!
Conclusão
Esse foi um artigo introdutório relacionado à utilização do Micropython ESP32 na placa NodeMCU. Na segunda parte de artigos relacionados a esse Framework, estarei demonstrando a utilização de outras funções relevantes em Python para o desenvolvimento de projetos. Fique ligado!
Conheça toda Linha ESP32 e Acessórios no Site da UsinaInfo.