Em sistemas embarcados reais, a execução manual via IDE não é aceitável. O dispositivo deve inicializar e operar de forma autônoma, imediatamente após energização.
Este comportamento no Raspberry Pi Pico é controlado por um mecanismo simples e determinístico: o arquivo main.py.
Mecanismo de Auto-Execução
O firmware MicroPython do Pico segue a seguinte lógica:
Se existir main.py → executar automaticamente no boot
Não há configuração adicional, daemon ou serviço — apenas presença do arquivo.
Estrutura Mínima de Programa
Exemplo funcional direto:
from machine import Pin
import utime
LED = Pin(16, Pin.OUT)
while True:
LED.value(1)
utime.sleep(1)
LED.value(0)
utime.sleep(1)
Comportamento Esperado
- Inicialização do microcontrolador
- Execução automática do script
- Loop contínuo sem intervenção externa
Isso define um sistema standalone.
Procedimento de Ativação
1. Validação (ZERO → HERO)
Antes de promover para auto-start:
- Executar no ambiente de desenvolvimento
- Validar comportamento determinístico
- Confirmar ausência de erros
2. Interrupção do Runtime
No ambiente de desenvolvimento:
- Reiniciar backend
- Garantir que não há execução concorrente
3. Persistência no Dispositivo
Salvar diretamente no filesystem do Pico:
- Destino: dispositivo
- Não salvar localmente
4. Nomeação Crítica
main.py
Qualquer variação invalida o auto-start.
5. Reinicialização
- Power cycle (desconectar/conectar)
- Ou reset físico
Validação de Execução
Critérios de sucesso:
- Execução imediata após boot
- Comportamento visível (ex: LED)
- Independência total de IDE
Interrupção do Auto-Start
Método temporário
- Interromper via ambiente de desenvolvimento
Método definitivo
- Renomear ou remover
main.py
Boas Práticas
Evitar loops não controlados
while True:
pass
Esse padrão consome CPU sem controle e impede diagnóstico.
Inserir temporização
utime.sleep(1)
Permite estabilidade operacional.
Implementar modo seguro (fail-safe)
from machine import Pin
button = Pin(14, Pin.IN, Pin.PULL_UP)
if button.value() == 0:
print("SAFE MODE")
else:
# execução principal
pass
Permite recuperação sem regravação.
Aplicação em Arquitetura Real
O auto-start habilita:
Operação contínua
- Dispositivos sempre ativos
- Sem dependência de operador
Integração com outros módulos
- Inicialização de comunicação (UART, I2C, SPI)
- Boot de conectividade (Wi-Fi)
- Início de aquisição (ADC)
Integração com Sistema Completo
No contexto de um sistema embarcado:
- Boot → executa
main.py - Inicializa periféricos
- Inicia loops de controle
- Mantém operação contínua
Insight Técnico
main.py é o ponto de transição entre:
- Código experimental
- Sistema embarcado operacional
Sem ele, há dependência externa.
Com ele, há autonomia.
Encerramento
A execução automática consolida o último requisito de sistemas embarcados profissionais:
- Inicialização previsível
- Execução contínua
- Independência de ambiente de desenvolvimento
Com isso, o Raspberry Pi Pico deixa de ser uma plataforma de testes e passa a operar como um dispositivo embarcado completo.
