はじめに
ESP32は、BluetoothやWi-Fiを標準装備しており、様々な開発ボードや小型製品に搭載されています。ここでは、そのESP32で、公式のプログラミングガイド Hello world! の手順をWindows Subsystem for LinuxのUbuntuで説明しています(64bit版を使います)。
詳しくは、Get Started - ESP Programming Guideを参照してください。
Ubuntuのインストール
Windows10では、Windows Subsystem for Linux として、Ubuntuが用意されています。ストアからUbuntuを選択して、インストールします。インストールしたら、次のコマンドで update します。
sudo apt-get -y update
開発環境の準備
開発環境として、次のツールを準備していきます。
- Toolchain - ESP32アプリケーションをビルドします
- ESP-IDF - ESP32ライブラリとソースコード、Toolchain連携スクリプトが含まれています。
- Python関連のパッケージ - 開発に必要なパッケージです。
Toolchain の設定
ToolChainに必要なパッケージをインストールします。
sudo apt-get -y install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools
Toolchain(64bit版)をダウンロードし、展開します。
mkdir -p ~/Downloads
cd ~/Downloads
wget https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz
mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz
Toolchain が ~/esp/xtensa-esp32-elf/ ディレクトリに展開されたと思いますので、PATHとaliasの記述を ~/.profile ファイルに追加します。
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"'
~/.profile ファイルを保存したら、一旦、Ubuntuを終了し(exit)、再度、起動します。
次のコマンドで、PATHが設定されていることを確認できます。
printenv PATH
Toolchainの最新版はこちらを参照してください。
ESP-IDF の取得
GitHub から 最新の ESP-IDF を取得(clone)します。
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
IDF_PATH の記述を ~/.profile ファイルに追加します。
export IDF_PATH=~/esp/esp-idf
~/.profile ファイルを保存したら、一旦、Ubuntuを終了し(exit)、再度、起動します。
次のコマンドで、IDF_PATHが設定されていることを確認できます。
printenv IDF_PATH
Python関連のパッケージのインストール
Python関連のパッケージをインストールします。
python -m pip install --user -r $IDF_PATH/requirements.txt
USBシリアルポートの設定
ESP32とは、USBシリアルポートで通信しますが、例えば、 /dev/ttyS1 (COM1)にアクセスしようとするとエラーが発生することがあります。
次のように、ユーザーを dialout グループに追加しておく必要があります。
sudo usermod -a -G dialout $USER
Hello world! プロジェクト
プロジェクトのコピー
get-started/hello_world プロジェクトを ~/esp ディレクトリーにコピーします。
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
ESP32の接続
ESP32 をUSBケーブルでパソコンに接続し、デバイスマネージャで、ポートを確認します。
例えば、Windows10で、COM14 として認識されている場合、Ubuntuでは、/dev/ttyS14 として認識されます。
ls /dev/tty*
プロジェクトの設定
menuconfig というプロジェクト設定ツールを起動し、シリアルポートの設定を行います。
cd ~/esp/hello_world
make menuconfig
[Serial flasher config] → [Default serial port] で、先ほど確認したシリアルポートを設定します(例えば、/dev/ttyS14)。
設定後、< Save >で保存し、< Exit >で終了します。
ビルドと書き込み
次のコマンドを実行することにより、ビルドと書き込みが行われます。
make flash
モニター
次のコマンドで、hello_world が実行されている様子を確認できます。monitor を中断するには、 Ctrl+] キーを押下します。
make monitor
おわりに
ESP32は、様々な開発ボードや小型製品に搭載されていますので、ここで紹介した開発環境で、より一層、その性能を活用していただけると思います。