3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AtomVM: ESP32 上から Elixir を動かすための最低限ツール

Last updated at Posted at 2025-12-12

はじめに

軽量な BEAM 実装である AtomVM を使って、ESP32 上で Elixir プログラムを動かす際に必要となる道具を、簡単に整理しておこうと思います。

piyopiyo-board-2025-12.png

※ 写真はイメージです

開発用 OS

A computer running MacOS or Linux (Windows support is not currently supported)

AtomVM の公式ドキュメントでは、Linux または macOS が前提とされています。

Erlang / Elixir

ホストマシン側には、Erlang / Elixir の開発環境が必要になります。

asdfmise などのバージョン管理ツールを使ってインストールするのが一般的です。

私は執筆時点では mise を使っています。

Python 3

ESP-IDF および esptool は、どちらも Python 3 に依存しています。

私はPython も mise でインストールしています。

AtomVM 本体

ESP32 上で Elixir を動かすには、ESP32 向けにビルドされた AtomVM のファームウェアが必要です。

利用方法は、大きく分けて次の 2 通りあります。

  • ビルド済みイメージを使う
    AtomVM の Releases ページからダウンロードしたバイナリイメージをそのまま ESP32 に書き込む

  • ソースコードからビルドする
    GitHub 上の AtomVM リポジトリを clone し、ESP-IDF の環境から idf.py build することで自分の環境向けのファームウェアを作る

どちらの方法でも、最終的には atomvm-esp32.bin のようなイメージをフラッシュして利用します。

ESP-IDF

ESP-IDF は、ESP32 向けのツールチェインや SDK 一式を含む公式フレームワークです。
AtomVM の ESP32 ポートも、この ESP-IDF 上でビルドされます。

公式ドキュメントで案内されている基本的な流れは、次のとおりです。

  1. 必要なホスト依存パッケージをインストール
  2. install.sh でツール類をインストール
  3. 作業ディレクトリで export.sh を実行して環境変数を設定
  4. プロジェクトディレクトリで idf.py build / idf.py flash

AtomVM をソースからビルドする場合も、基本的にはこの流れに沿います。

esptool

esptool.py は、ESP32 の ROM ブートローダとシリアル経由で通信し、フラッシュ操作などを行うためのツールです。

AtomVM のファームウェアイメージや、.avm ファイルを ESP32 に書き込む際に使用されます。

シリアルターミナル

ESP32 上で動作する AtomVM の起動ログや、IO.puts/1 などの出力を確認するには、USB シリアルポートに接続できるターミナルソフトが必要です。

screenminicompicocom などの一般的なシリアルターミナルで問題ありません。

ESP-IDF を利用している場合は、ESP-IDF 付属のシリアルモニタを idf.py monitor コマンドで起動することもできます。

idf.py -p /dev/ttyACM0 -b 115200 monitor

Linux では、dmesg | grep tty などを使って、接続した ESP32 に対応するデバイス名(例: /dev/ttyACM0)を確認してから利用するとよいです。

atomvm-hello-nif.png

おわりに

AtomVM で ESP32 上から Elixir を動かすために最低限そろえておきたい道具をまとめてみました。

これらがそろえば、あとはなんでもできるはず。

:tada::tada::tada:

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?