こんにちは!yasueです。
KICADでの基板設計は作業中ですので、今回はESP-WROOM-32Dの開発環境の構築&Hello world!までご紹介したいと思います。
Part.01を見てくださった方はアレ?と思って頂けたかもしれませんね。Part.01ではArduino IDEの開発環境を構築してLチカまでをご紹介しました。
しかし、Arduinoは便利すぎて研修にならないことに気づいてしまった(というより、弊社の研修理念と合わない)ので、ESP-IDFの開発環境を構築していきたいと思います。
ESP-IDFとはEspressif IoT Development Frameworkの略で、公式SDKとなります。
開発環境の構築
今回から私物PCに開発環境を構築して作業していきたいと思います。
- PC:Thinkpad X395(64bit)
- OS:ubuntu 18.04 LTS
- ツール:秋月電子製 ESP32-DevKitC (1,480円で買える開発ボードです。オススメ)
- エディタ:Visual Studio Code、Vim
- ビルド:Toolchain(ESP-IDF) ←今回はこちらを構築していきます。
ESP-IDFの環境構築
shotaさんのブログを参考に、ESP-IDF(安定版)の開発環境を構築しました。すごく丁寧に説明してあり、とても参考になります!
参考ブログを参照しながら、安定版をLinuxへインストールする場合の変更点を説明していきます。
本内容は公式HPのGet Started(安定版) – ESP-IDF Programming Guideをまとめたものですので、一度そちらも確認してみて下さい。
Toolchainのセットアップ
ESP-IDFでコンパイルする際の前提パッケージをインストールします。
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing
インストールが完了したら、Toolchain Setupを参照しToolchainをダウンロードします。私の場合は、「for 64-bit Linux」を選択します。
ダウンロードが完了したら、下記コマンドで~/espディレクトリに展開します。
mkdir -p ~/esp cd ~/esp tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
Toolchainを使用するためには、環境変数を更新する必要があります。vimなどを用いて~/.profileに下記内容を追加します。
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
環境変数を更新したら、ログオフ=>ログインをしましょう。(sourceコマンドでも大丈夫だと思いますが、公式HPに従います)
ログインできたら、環境変数の更新が正しく設定されているか確認します。PATHが表示されれば成功です。
printenv PATH
ESP-IDFの取得
次に、ESP32のAPI/ライブラリを取得します。Githubで提供されていますので、git cloneします。この時、安定版ではバージョン指定する必要があるので注意して下さい!
cd ~/esp git clone -b v3.3.1 --recursive https://github.com/espressif/esp-idf.git
Pythonパッケージのインストール
次に、ESP-IDFに必要なPythonのパッケージをインストールします。
python -m pip install --user -r $IDF_PATH/requirements.txt
これで開発環境が整いました。後のサンプルプロジェクトのコピー方法などは最新版と同じです。
Hello world!
では、実際にサンプルプロジェクトのHello world!をやっていきたいと思います。こちらもshotaさんのブログを参考にします。(shotaさん、分かりやすいブログありがとう!!)
ここでも、安定版では少しコマンドが異なるので、そこだけ説明していきたいと思います。
サンプルプログラムをESP32-DevKitCに書き込むためには、下記コマンドを使用します。このコマンドは少し時間がかかりますが、ビルドと書き込みを同時に行ってくれます。
make flash
書き込みが完了すると、下記のように表示されます。
・・・以下略・・・ Wrote 3072 bytes (82 compressed) at 0x00008000 in 0.0 seconds (effective 8297.4 kbit/s)... Hash of data verified. Leaving... Hard resetting...
次に書き込んだプログラムを表示させます。シリアル出力を表示させるためには、下記コマンドを使用します。
make monitor
今までの作業に問題がなければ下記のようにHello world!が表示されると思います。やったね!ちなみに、10カウントで永遠とリスタートし続けるので、「 Ctrl + ] 」で終了しましょう。
・・・以下略・・・ Hello world! Restarting in 10 seconds... I (211) cpu_start: Starting scheduler on APP CPU. Restarting in 9 seconds... Restarting in 8 seconds... Restarting in 7 seconds... ・・・以下略・・・
無事にHello world!ができて開発環境を構築できたので、次回はLチカしたいと思います。ただのLチカでは面白くないので、タクトスイッチを利用したLチカを予定しています。