fbpixel
Etiquetas: , ,
5
(1)

, ,

Vimos que o NodeMCU ESP32 é facilmente programável utilizando o IDE Arduino. Veremos como programá-lo com MicroPython. O objectivo de utilizar Python para programar um ESP32 é utilizá-lo em todo o seu potencial.

Antes de seguir este tutorial, deve primeiro instalar o Python 3.

Neste tutorial veremos como configurar o ESP32, como utilizar um terminal para testar os comandos Python. Finalmente, veremos dois métodos para carregar e executar scripts Python no microcontrolador.

Apresentação de MicroPython

MicroPython é uma implementação de Python 3 criada para trabalhar no ambiente do microcontrolador e as suas limitações. Tem um subconjunto de bibliotecas Python, bem como bibliotecas para interface com hardware de baixo nível e interfaces de rede. (ex: Wifi)

Cartões de apoio ao MicroPython:

  • ESP8266 Pranchas (por exemplo, NodeMCU ESP8266)
  • PyBoard
  • Micro:Bit
  • Teensy 3.X
  • WiPy – Pycom
  • Framboesa Pi Pico

Instalação de MicroPython com Thonny IDE

A forma mais fácil de instalar e utilizar MicroPython no ESP32 (e outros microcontroladores) é utilizar o software Thonny IDE. Pode instalar o firmware a partir da interface do software e utilizá-lo para desenvolver o seu código e carregá-lo para a placa.

Descarregue o firmware para o seu microcontrolador.

Para instalar o firmware, vá ao menu “Executar” e seleccione “Seleccionar intérprete…”.

Depois prima “Instalar ou actualizar firmware” no canto inferior direito

Seleccione o seu cartão e o ficheiro que contém o firmware previamente descarregado. Depois prima “Instalar”.

Uma vez instalado o firmware, é possível introduzir comandos Python na consola.

Também pode escrever o seu guião e executá-lo no mapa a partir de Thonny. Copie o seguinte código para o editor

import sys
import time

def main():
    print("Program is running ")
    time.sleep(0.5)

if __name__=="__main__":
  print("{} initialized".format(sys.platform))
  while(1):
    try:
      main()
    except KeyboardInterrupt:
      print("Program stopped")
      sys.exit(0)

Para executar o guião, vá para “Run>Run current script” ou F5. Renomear o guião main.py

O código deve ser executado automaticamente

Quando reinicia o IDE, pode abrir os ficheiros no cartão que pode recuperar com o comando

import os
os.listdir()

N.B.: Para programar o microcontrolador com o Arduino IDE, é necessário carregar um código Arduino. Isto irá recarregar o carregador do bootloader no flash.

Instalar o firmware no ESP32 por linha de comando

Para utilizar MicroPython, vamos apagar a memória flash do ESP32 e instalar o firmware. Para tal, utilizaremos a ferramenta esptool (.py ou .exe dependendo do que pretende utilizar)

  • Instalar esptool.py
python3 -m pip install esptool

ou esptool.exe (disponível ao instalar o pacote esp no Arduino IDE)

  • Apagar a memória flash (Nota: o nome da porta pode ser diferente do seu)
python3 -m esptool --chip esp32 --port COM9 erase_flash
  • Descarregue o firmware, depois introduza a seguinte linha de código (Atenção: o nome da porta e o endereço do ficheiro podem ser diferentes do seu)
python3 -m esptool --chip esp32 --port COM9 --baud 460800 write_flash -z 0x1000 C:\Users\ADMIN\Downloads\esp32-idf3-20210202-v1.14.bin

Para podermos comunicar e programar o ESP com MicroPython, precisamos de instalar um terminal ou um IDE. Aqui veremos a utilização de PuTTy e TeraTerm.

Utilizar diferentes ferramentas para comunicar e programar o seu ESP32

Uma vez configurado o seu microcontrolador com Micropyhton, pode usar várias ferramentas para programar em Python. Terminais como TeraTerm ou Putty e IDEs como VS Code, uPyCraft ou Thonny.

Instalar o Terminal TeraTerm no Windows

Descarregar e instalar o TeraTerm

Abrir o TeraTerm e seleccionar a porta de série correspondente ao microcontrolador.

A seguir, configurar a comunicação em série dans Setup> Serial Port …

Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP32

Instalação do terminal PuTTy

Descarregar e instalar PuTTy

Abrir Putty e seleccionar a porta de série correspondente ao microcontrolador.

A seguir, configurar a comunicação em série

Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP32

Os terminais PuTTy e TeraTerm são ambas boas opções para testar alguns comandos Python mas não para fazer um programa completo.

Crie um script Python e carregue-o com ampy

Vamos escrever algum código simples para testar o carregamento do código para ESP32. Há dois ficheiros que são tratados de forma diferente pelo ESP32: boot.py e main.py. Por defeito, apenas boot.py está presente. O boot.py é executado primeiro e depois o main.py é executado por sua vez. Se quiser criar um guião que funcione no arranque, deve chamá-lo de principal ou executá-lo em principal. Se não quiser que funcione no arranque, chame-lhe outra coisa.

import sys
import time

def main():
    print("Program is running ")
    time.sleep(0.5)

if __name__=="__main__":
  print("{} initialized".format(sys.platform))
  while(1):
    try:
      main()
    except KeyboardInterrupt:
      print("Program stopped")
      sys.exit(0)

Instalaremos então uma ampola que nos permitirá carregar um ficheiro no microcontrolador.

python3 -m pip install adafruit-ampy

Uma vez instalada a ampy, pode utilizá-la num prompt de comando com a função “put” para carregar um ficheiro, especificando o seu caminho e nome.

ampy -d 0.5 --port COM9 put \main.py

N.B.: Se encontrar o erro “ampy.pyboard.PyboardError: não foi possível introduzir a reposição em bruto”, pode aumentar o atraso para 1 ou 2 (ou seja, “-d 1” ou “-d 2”)

Se ligar ao ESP32 com um terminal, verá o programa em execução (pode parar o script com Ctrl+C)

O guião main.py será executado em cada reinicialização. Para o remover, introduza o seguinte comando no terminal

ximport os
os.remove('main.py')

Usando a uPyCraft IDE

Quando se desenvolve código e é necessário testá-lo, é complicado passar pelo prompt de comando para carregá-lo de cada vez. Existe uma IDE para Python, semelhante à IDE Arduino: uPyCraft que pode utilizar como editor e como terminal para fazer interface com o microcontrolador.

  • Dans Tools> Preferences, vérifiez la configuration du port série
  • Dans Tools>Serial, sélectionnez le port série utilisé par le microcontrôleur

Assim que o microcontrolador estiver ligado à interface, pode utilizar a consola como um terminal

Pode também criar e editar um ficheiro contendo o guião Python. Uma vez que tenha escrito o código, pode carregá-lo e executá-lo pressionando F5. Para validar o carregamento do código, poderá ser necessário premir o botão reset no quadro. Pode parar o código pressionando Ctrl+C na consola.

N.B.: Pode reiniciar o guião sem fazer um reset, introduzindo o comando

exec(open('main.py').read(), globals())

Apagar o ficheiro

Se não quiser que o script seja accionado no reinício, tem de apagar o código main.py utilizando o comando num terminal ou no IDE

import os
os.remove('main.py')

Repor para a configuração padrão

A fim de programar o microcontrolador com Arduino IDE, deve apagar o ficheiro main.py se existir e carregar um código Arduino. Isto irá recarregar o carregador do bootloader no flash.

Para utilizar novamente MicroPython, a memória flash deve ser apagada e o firmware deve ser carregado.

Fontes

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?