fbpixel
Etiquetas: , ,
0
(0)

, ,

Vimos que o ESP8266 NodeMCU é facilmente programável usando o IDE Arduino. Agora vamos ver como programá-lo usando o MicroPython. A vantagem de utilizar Python para programar um ESP8266 é que pode utilizá-lo em todo o seu potencial.

Antes de seguir este tutorial, é necessário instalar o Python 3.

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

Apresentando o MicroPython

O MicroPython é uma implementação do Python 3 concebida para funcionar no ambiente do microcontrolador e nas suas limitações. Tem um subconjunto das bibliotecas Python, bem como bibliotecas para interface com hardware de baixo nível e interfaces de rede. (por exemplo, Wifi)

Cartões que suportam MicroPython:

  • Placas ESP32 (por exemplo, NodeMCU ESP32)
  • PyBoard
  • Micro:Bit
  • Teensy 3.X
  • WiPy – Pycom

Instalar o firmware no ESP8266

Para usar o MicroPython, vamos apagar a memória flash do ESP8266 e instalar o firmware. Para o fazer, vamos utilizar a ferramenta esptool (.py ou .exe, consoante o que pretenderes utilizar)

  • Instalar esptool.py
python3 -m pip install esptool

ou esptool.exe (disponível quando instala o pacote esp no Arduino IDE)

  • Apagar a memória flash (Nota: o nome da porta pode não ser o mesmo que o seu)
python3 -m esptool --port COM9 erase_flash
  • Descargue el firmware e introduzca la siguiente línea de código (Atención: el nombre del puerto y la dirección del archivo pueden ser diferentes de los suyos)
python3 -m esptool --port COM9 --baud 460800 write_flash --flash_size=detect 0 C:\Users\ADMIN\Downloads\esp8266-20210202-v1.14.bin

Para podermos comunicar e programar o ESP com MicroPython, precisamos de instalar um terminal. Aqui veremos o uso do PuTTy e do TeraTerm.

Instalando o terminal TeraTerm no Windows

Descarregar e instalar o TeraTerm

Abra o TeraTerm e seleccione a porta série correspondente ao microcontrolador.

Em seguida, configure a comunicação de série em Configuração> Porta de série …

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

Instalando o terminal PuTTy

Descarregar e instalar o PuTTy

Abra o Putty e seleccione a porta série correspondente ao microcontrolador.

Em seguida, configure a comunicação série. Para poder comunicar com o ESP8266, é necessário seleccionar None (Nenhum) em Flow control (Controlo de fluxo) em Serial

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

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

Criar um script Python e descarregá-lo com ampy

Vamos escrever algum código simples para testar o carregamento de código no ESP8266. Há dois ficheiros que são tratados de forma diferente pelo ESP8266: boot.py e main.py. Por defeito, apenas o ficheiro boot.py está presente. O ficheiro boot.py é executado primeiro e, em seguida, o ficheiro main.py é executado por sua vez. Se quiser criar um script que seja executado no arranque, tem de lhe chamar main ou executá-lo em main. Se não quiser que ele seja executado na inicialização, chame-o de outra forma.

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)

Em seguida, instalaremos o ampy, que nos permitirá carregar um ficheiro no microcontrolador.

python3 -m pip install adafruit-ampy

Uma vez instalado o ampy, pode utilizá-lo numa linha de comandos com a função ‘put’ para carregar um ficheiro especificando o seu caminho e nome.

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

Nota: Se receberes o erro “ampy.pyboard.PyboardError: could not enter raw repl”, podes aumentar o atraso para 1 ou 2 (ou seja, “-d 1” ou “-d 2”).

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

O script main.py será executado sempre que for reiniciado. Para o eliminar, introduza o seguinte comando no terminal

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

Utilizar o IDE do uPyCraft

Quando se está a desenvolver código e é necessário testá-lo, é complicado passar pela linha de comandos para o carregar de cada vez que se tenta. Existe um IDE para Python, semelhante ao IDE do Arduino: uPyCraft, que pode ser usado como editor e como terminal para interagir com o microcontrolador.

  • Em Tools> Preferences, verifique a configuração da porta serial
  • Em Tools>Serial, seleccione a porta série utilizada pelo microcontrolador

Quando o microcontrolador estiver ligado à interface, pode utilizar a consola como um terminal.

Também pode criar e editar um ficheiro que contenha o script Python. Depois de ter escrito o código, pode carregá-lo e executá-lo premindo F5. Para confirmar que o código foi carregado, pode ser necessário premir o botão de reinicialização na placa. Pode parar o código premindo Ctrl+C na consola.

N.B.: É possível reiniciar o código sem fazer um reset, introduzindo o comando

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

Eliminar o ficheiro

Se não quiser que o script seja activado ao reiniciar, tem de eliminar o código main.py utilizando o comando num terminal ou no IDE

os.remove('main.py')

Repor a configuração de origem

Para programar o microcontrolador com o IDE Arduino, é necessário apagar o ficheiro main.py, se existir, e carregar o código Arduino. Isto irá recarregar o bootloader na memória flash.

Para voltar a utilizar o MicroPython, é necessário apagar a memória flash e carregar o firmware.

Fontes

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

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?