- Primeiros passos com MicroPython no ESP8266
- Placa de testes para MicroPython com ESP8266
- Entradas e Saídas digitais no MicroPython com ESP8266
- Entrada analógica com MicroPython no ESP8266
As placas com ESP8266 se tornaram febre entre os makers e entusiastas, nos últimos anos. Muitos projetos estão sendo desenvolvidos com comunicação WIFI, usando módulos ESP8266 (até mesmo para indústria – esse é um papo para outro post 😉 ). A programação de placas com ESP8266 geralmente é feita usando a IDE Arduino ou Lua.
Mas você também pode programar a sua placa com ESP8266 usando Python, ou melhor MicroPython. Nesse artigo vou apresentar os primeiros passos para programação de uma nodeMCU usando MicroPython. Bora aprender?
MicroPython
O MicroPython é uma implementação enxuta e eficiente da linguagem de programação Python 3, incluindo um subconjunto da biblioteca padrão do Python, e é otimizada para rodar em microcontroladores e em ambientes restritos.
O MicroPython foi originalmente criado pelo programador australiano e físico Damien George, lançado em uma campanha de sucesso no Kickstarter junto com a pyboard: Veja mais detalhes sobre a placa em: MicroPython: Python para microcontrolador
Hoje o MicroPython já possui port para diversas placas:
- Placas com ESP8266
- Placas com ESP32
- PyBoard
- Micro:Bit
- Teensy 3.X
- WiPy – Pycom
- Adafruit Circuit Playground Express
A Adafruit fez um fork do MicroPython e chamou de CircuitPython. Hoje eles estão desenvolvendo diversas placas e aplicações usando o CircuitPython.
Para mais detalhes sobre placas suportadas pelo MicroPython, acesse: Boards Summary
Neste artigo vamos focar em placa com ESP8266. Mas você pode ver mais detalhes sobre a aplicação do MicroPython com a micro:bit. Acesse a série de artigos: micro:bit com MicroPython
uPyCraft IDE
Para facilitar o desenvolvimento de scripts e até mesmo a gravação do firmware da nossa placa, vamos usar a uPyCraft IDE. Essa ferramenta foi especialmente projetada para microPython.
Desenvolvida pela DFRobot, pode ser usada em uma série de sistemas operacionais, e possui diversos recursos que facilitarão nossa vida, nesse primeiro momento com o MicroPython.
O projeto é open source e está disponível no github.
Instalação da uPyCraft IDE
Baixe a versão correspondente ao seu sistema operacional, no repositório do projeto.
A DFRobot deixou disponíveis os links para download em sua documentação:
- Click to download uPyCraft IDE (Windows)
- Click to download uPyCraft IDE (Linux)
- Click to download uPyCraft IDE (Mac)
Instale a IDE conforme o seu sistema operacional!
MicroPython com ESP8266: Gravando o Firmware do MicroPython na nodeMCU
Para conseguir programar a nodeMCU ou outra placa com ESP8266 é necessário atualizar o firmware.
Baixe o firmware no site do MicroPython: https://micropython.org/download#esp8266
Vamos usar o próprio uPyCraft para essa tarefa. Você também pode usar o nodeMCU Flasher se achar mais fácil, ou até mesmo por linha de comando com o esptool.
Abra o uPyCraft e vá em Tools > Serial e selecione a porta Serial para sua placa. No meu caso foi a COM9:
Selecione a placa em Tools > board:
Agora acesse Tools > BurnFirmware:
Será aberta a seguinte janela:
Faça a seguinte configuração:
- board: esp8266
- burn_addr: 0x0
- erase_flash: yes
- com: COM9
- Firmware: Selecione “Users” e então encontre o firmware baixado no site do MicroPython:
Pressione OK e aguarde a gravação do firmware:
Ao final a sua placa nodeMCU estará pronta para ser programada em MicroPython.
Primeiros passos com o uPyCraft IDE
Com o uPyCraft aberto, vamos dar os primeiros passos na programação em MicroPython:
Clique no botão Connect na lateral direita:
Será aberto o REPL:
Digite help() e pressione Enter. Será exibida a seguinte mensagem:
Os comandos com a Tecla CTRL irão nos ajudar durante os testes no futuro. Lembre deles. Ou quando precisar digite help().
Agora vamos acender o LED onboard da nodeMCU. Digite:
1 2 3 4 5 |
>>> from machine import Pin >>> led = Pin(2,Pin.OUT) >>> led.value(1) >>> led.value(0) >>> |
Veja se o estado do LED muda na sua placa.
Também podemos criar um script no computador e depois transferir para a placa. Acesse File > New:
E digite o seguinte script:
1 2 3 4 5 6 7 8 |
from machine import Pin from time import sleep led = Pin(2, Pin.OUT) while True: led.value(not led.value()) sleep(1.0) |
Salve em seu workspace:
E por fim, clique em no botão DownloadAndRun ou pressione F5:
Se não houver erros no código, o LED começará a piscar e será exibida a seguinte mensagem:
Para parar a execução você pode clicar em STOP ou então pressionar CRTL + C no prompt:
Teste outros comandos, e veja o resultado na placa.
Nos próximos artigos, vamos explorar os recursos do MicroPython usando a nodeMCU.
Se ficou alguma dúvida ou sugestão, deixe seu comentário a seguir. Até o próximo.
Saiba mais
PLEN:bit – Um pequeno robô bípede feito com a BBC micro:bit
Olá, sou meio leigo em ESP8266 e gostaria de uma informação, se eu gravar o bootload do Micropython como faço para voltar a minha placa ao normal para usar no Arduino?
quando conecto meu node com o computador e tento comunicar, aparece a COM1 e apesar disso, ele não consegue se conectar a ela, apresentando o seguinte erro:” could not open port ‘COM1’: PermissionError(13, ‘Acesso negado.’, None, 5)” como resolver?
Gostaria se possível tirar uma duvida, ao apertar em DownloadAndRun meu programa executa normalmente na placa, porém ao desconectar meu esp32 da porta serial e depois alimenta-lo novamente, ele não executa o código, porque isso ocorre? não era pro meu programa estar gravado na memoria flash da placa?
tenho a mesma dúvida, como gravar na memoria?
Eu ia fazer justamente esta pergunta, como faz pra deixar o programa rodando em standalone?
Descobri… Quando vc liga a placa ele roda o boot.py, lá vc deve adicionar as seguintes linhas:
import blink.py #importe o seu programa.py aqui
blink.py.run() # só mandar rodar ele agora
Isso mesmo. Se tiver usando o uPyCraft tem uma opção de setar o programa como default clicando com o botão direito. Assim ele preenche automaticamente esse arquivo.
PS: Desculpe pela demora nas respostas. Não recebi as notificações.
Bom dia a todos no meu caso eu copiei o meu programa todo pra esta pasta e rodou.
Achei, estava procurando uma matéria sobre micropytom, parabéns, ler sempre, é lógico,por em prática.
Show max. Precisando de qualquer ajuda, me dá um toque.
Mais um artigo muito bom Fábio!
Obrigado Franklin!
Olá Fábio, obrigado pelo artigo, o link https://www.embarcados.com.br/micropython/ citado nao esta funcionando, obrigado !!!!
Olá Leandro. Obrigado. Eu testei aqui e funcionou normalmente. Por favor, tente acessar o link novamente.
Abraços,