Introdução ao Atomvm: Configuração com firmware pré-construído (ESP32-S3, setembro de 2025)

Anteriormente, tentei usar o Atomvm, uma máquina virtual leve que permite executar aplicativos Elixir (e Erlang) diretamente em microcontroladores como o ESP32-S3, mas, honestamente, corri o processo sem entender completamente os detalhes subjacentes-especialmente em torno da configuração de firmware. Desta vez, eu queria voltar e entender adequadamente como configurar as coisas, concentrando -se especificamente no início do AtomVM usando uma imagem de firmware pré -construída. O objetivo é simplificar a experiência de integração sem criar nada da fonte. Esta postagem não se aproxima de recursos avançados. Em vez disso, é um guia prático para colocar sua placa ESP32-S3 em funcionamento com o ATOMVM, para que você possa começar a executar o código Elixir em hardware real o mais rápido possível. Ambiente e dispositivos de destino aqui está o que eu usei para esta configuração. Máquina de hospedagem-alvo Linux (baseado em Debian-LMDE6) Elixir 1.17 com Erlang/OTP 27 Atomvm v0.6.6 (firmware pré-construído) ESPTOOL 5.0-Ferramenta oficial de flash para ESP32 Picocom 3.1-para o monitoramento de série Python 3.13-exigido por ESPTOOLSPTPTPOTOL IS a PythOn Ferramenta A Python. Como estamos usando uma imagem do Atomvm pré-construída, você não precisa instalar o ESP-IDF. Para informações de compatibilidade (por exemplo, quais as versões ELIXIR e OTP são suportadas pelo ATOMVM), consulte as Notas oficiais de liberação. A instalação do ESPTOOL ESPTOOL é o utilitário oficial da linha de comando para o firmware piscando nas placas ESP32. Vamos instalá -lo usando o PIP, o que facilita o gerenciamento e a atualização. PIP Instale “ESPTOOL> = 5, <6” Digite o modo de tela cheia de saída do modo de tela cheia versão 5.x apresenta opções hifenizadas em vez de sintaxe de sublinhamento mais antiga. Verifique se o Python 3.x está instalado no seu sistema. Verificando a porta serial Quando você conecta seu ESP32-S3 via USB, o Linux criará um novo dispositivo serial (por exemplo, /dev /ttyacm0). Você precisará deste nome de porta ao piscar o firmware ou fazer o upload de arquivos .avm. No Linux, você pode executar: DMESG | Grep tty Digite o modo de tela cheia Saída de saída de tela cheia pode parecer:

[12345.678901] CDC_ACM 1-1.4: 1.0: TTYACM0: Dispositivo ACM USB Digite o modo de saída de tela cheia de tela cheia neste caso, use /dev /ttyacm0. Você está normalmente procurando algo como /dev /ttyacm0 ou /dev /ttyusb0, dependendo da sua placa e do chip USB para serial. Verificando o ESPTOOL e a conexão da placa Depois que o ESPTOOL estiver instalado, você pode verificar se: está instalado corretamente, pode se comunicar com o seu Esp32-S3 Board # Verificação da versão Esptool.py # # consulta Informações sobre chip Flash Esptool.py -p /dev /ttyacm0 Flash-ID Enter o modo de tela de tela completa. Download e piscar o firmware Atomvm usaremos um binário pré -construído nas versões do Atomvm GitHub, para que não haja necessidade de criar nada da fonte. Usaremos a imagem oficial do Atomvm pré-construída (v0.6.6) para ESP32-S3. Download da imagem # Pasta de destino é arbitrário mkdir -p $ home/projetos/atomvm && CD $ _ CURL -LO Digite Modo de tela cheia Sair Modo de tela cheia Erase Flash (recomendado) ESPTOOL.PY -AUTO AUTO -MODE DE MOMELO DE COMPLEOTS/DEV/TTYACM0 -BAUD 921600 ERASE -FLASH Enter Mode completa Exit Exit Exit FullScreen Mode /dev/ttyacm0–baud 921600 write_flash 0x0 $ home/projetos/atomvm/atomvm-esp32s3-elixir-v0.6.6.img Digite o modo de tela cheia de tela cheia de acordo com os documentos do Atomvm, o deslocamento do botão de inicialização para ESP32-S3 é 0x0. Construindo e exibindo um aplicativo Elixir com o ATOMVM em execução no seu ESP32-S3, agora você pode implantar um aplicativo Elixir real! Nesta seção, usaremos a amostra clássica Blinky para exibir um arquivo .avm (atomvm bytecode) que pisca o LED integrado. Obtenha o clone do projeto de amostra O oficial ATOMVM_EXAMPOS REPO: CD ~/Projects/Atomvm # ou qualquer diretório que você goste do clone git cd atomvm_examples/elixir/pisca 2 – Mas o LED a bordo de Xiao está conectado ao GPIO 21 (ativo baixo). Atualize Lib/Blinky.Ex de acordo: DefModule Blinky Do @pin 21 Def start () Do: gpio.set_pin_mode (@pin ,: output) loop (@pin ,: baixo) # low = LED no (baixo-low) final de defp (pino, nível), io.format (~ c “configuração” ~ pin ~ [pin, level]): gpio.digital_write (pino, nível) process.sleep (1000) loop (pino, alternar (nível)) final DEFP alternação (: alta), faça :: desativação de baixo DEFP (: ​​baixo), faça :: Enter o modo de tela de alta escanda. Sem isso, o ESP32-S3 não reconhecerá seu aplicativo na inicialização. def Atomvm fazer
[
start: SampleApp,
flash_offset: 0x250000 # important!
]
ENÍCIO ENTER Modo de tela cheia EXIT MODO DE ESCRELA COMPLETA Pacote O aplicativo Crie os arquivos .AVM usando: Misture o Modo de tela de tela cheia do ATOMVM.Packbeam. Arquivos para o local certo, sem tocar no firmware do ATOMVM. Agora você deve ver o LED iniciando piscando 🎉 Visualizando logs sobre o aplicativo Serial Your Blinky não apenas pisca o LED – ele também imprime as mensagens de log via serial. Para visualizar esses logs em tempo real, você precisará de um monitor serial. Usaremos o Picocom – uma ferramenta simples e leve que funciona muito bem no Linux. Para iniciar os logs de monitoramento da sua placa ESP32-S3: PICOCOM /DEV /TTYACM0–BAUD 115200 Digite o modo de saída de tela cheia de tela cheia, isso abre o console serial. Você deve começar imediatamente a ver a saída como: essas mensagens vêm do seu código Elixir (: io.format), mostrando o pino alternando a cada segundo. Para sair do Picocom, pressione: Ctrl+A e depois Ctrl+X. Com o encerramento desta postagem, percorremos o processo completo de configuração de uma placa ESP32-S3 para executar o código ELIXIR usando o AtomVM-não é necessário criar compilações de firmware personalizadas. Essa configuração facilita o início da mexer com o elixir incorporado, mesmo sem mergulhar profundamente nos internos do ESP-IDF ou do ATOMVM. As próximas etapas podem incluir a integração de sensores, exibição de dados ou conexão com a nuvem via MQTT. Felizmente, isso lhe deu um começo suave com o ATOMVM no ESP32-S3! Links

Fonte

Você pode ter perdido