> [!NOTE] MicroPython
> MicroPython é uma implementação de [[Linguagem de programação Python|Python]] 3 projetada para microcontroladores e dispositivos embarcados com recursos limitados. É uma linguagem de programação de alto nível que permite aos desenvolvedores criar programas complexos e interativos para dispositivos de hardware.
MicroPython pode ser usado para programar a [[ESP32]] [[Unidade microcontroladora]].
# Recursos
* **Interpretado:** O código [[MicroPython]] é interpretado em tempo de execução, permitindo um desenvolvimento rápido e iterativo.
* **Compacto:** O interpretador [[MicroPython]] possui uma pequena pegada de memória, tornando-o adequado para dispositivos com recursos limitados.
* **Extensível:** [[MicroPython]] pode ser estendido com módulos escritos em C ou [[MicroPython]], permitindo a integração com hardware e bibliotecas externas.
* **Multiplataforma:** [[MicroPython]] roda em uma ampla gama de microcontroladores, incluindo [[ESP32]], ESP8266, STM32 e [[Raspberry Pi]] Pico.
* **Facilidade de uso:** A sintaxe do MicroPython é semelhante à do [[02 - Notas de literatura/Linguagem de programação Python]] padrão, tornando-o fácil de aprender e usar para desenvolvedores experientes em [[02 - Notas de literatura/Linguagem de programação Python]].
**:: Referência ::** [MicroPython - Python for microcontrollers](https://micropython.org/)
**:: Referência ::** [Overview — MicroPython latest documentation](https://docs.micropython.org/en/latest/)
# Similaridades com [[02 - Notas de literatura/Linguagem de programação Python|Python]]
[[MicroPython]] e [[02 - Notas de literatura/Linguagem de programação Python|Python]] possuem algumas similaridades, tais como:
- operadores matemáticos, relacionais e lógicos;
- declarações condicionais (`if`, `elif`, `else`);
- estruturas de repetição (`for`, `while`);
- estruturas de dados como listas, tuplas e dicionários (com algumas diferenças na implementação e métodos disponíveis);
- funções e chamadas de função;
- módulos e importação;
- tratamento de exceções (`try`, `except`);
- manipulação de strings (embora alguns métodos possam diferir).
**:: Referência ::** [MicroPython Programming Basics with ESP32 and ESP8266 | Random Nerd Tutorials](https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/)
# Tutoriais
- [[Getting Started with Thonny MicroPython on the EPS32]]
- [[Working with digital signals on ESP32 and Micropython]]
- [[Working with analog signals on ESP32 and MicroPython]]
- [[Trabalhando com sinais PWM na ESP32 com MicroPython]]
- [[Trabalhando com sinais de interrupção na ESP32 com MicroPython]]