【ESP32】#1: ESP32の導入・Ubuntu20.04へのIDF構築

ガジェット

プログラミング

ESP32マイコン

マイコンの概要と筆者

ESP-WROOM-32(以下ESP32と略します)は、上海のEspressif Systems社が開発するマイコンボードで、デュアルコアかつWi-FiとBluetoothに対応しているのが特徴的です。スペックを確認すると(【】内はArduinoによく搭載されているATMega328P比)、動作クロックは240MHz【15倍】RAMは520KB【260倍!】などと、各部分で圧倒的な性能を秘めています。それでいて、他のArduino純正品よりも安価で入手可能という優れモノです。

少々脱線しますが、筆者は高校時代の2018年から2020年ごろまでロボカップジュニアに参画しており、その際はArduino Mega/Nano、Tennsyをメインのマイコンとして使用していました。大学生となり、当時を振り返りつつ、当時の仲間と話し合ううちに電子工作熱が再燃してきたのも相まって、新しいマイコンを導入してみようといった経緯です。この度WSL2 (Ubuntu 20.04)環境でESP-IDFに手を出しつつ、詰まったところを備忘録的にまとめようと思います。

ボードの選定

ひとくちにESP32搭載ボードといっても、Arduinoと同様、純正品から互換品まで多彩なラインナップが揃っており、性能も当然異なってきます。結論から申し上げますと、今回はこちらの純正品をAmazonで購入しました。

値段は2,890円(22年12月購入)で、LEDと電流制限抵抗まで付属しているので、スターターキットとして必要十分な内容であるという判断です。

ESP-IDFの導入

Arduino IDEでも開発はできます

ESP32ボードの制御をするにあたって、Arduino IDEでも開発が可能です。ですが、今回はEspressif社が無料で公開しているESP-IDFを利用して開発していきたいと思います。茨の道を突き進んでやろうって話ですね。しかしながら2年半もマイコン界隈から離れていたもので、感覚を取り戻すのにも必死、先行きが非常に不安ですが頑張っていきたいと思います。

ESP-IDFのダウンロード

以下に導入までのフローをまとめておきます。こちらの内容、および公式サイトを参考にしていますので併せてご覧ください。WSL2の導入についてはこちらをご覧ください。

まずはLinuxのアップデートを念のため行っておきます。

$ sudo apt update && sudo apt upgrade -y

ESP-IDFに必要なツール類一式をダウンロードします。少々長いですが、全て必要なので漏れなくコピーします。

$ sudo apt install -y git wget curl flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

Python3とpip3をデフォルトに設定します。ここで、pipとは、Pythonのパッケージマネージャです。

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
$ sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

ユーザーのディレクトリまで戻り、"esp"という名前のディレクトリを新規作成し、そのディレクトリへ行きます。

$ cd ~ 
$ mkdir esp
$ cd esp

続いて、ESP-IDFのgitリポジトリをクローンします。

$ git clone --recursive https://github.com/espressif/esp-idf.git

さらに、espディレクトリ内のesp-idfディレクトリへ移動し、コンパイラーやデバッガーといったその他のセットアップツールの類を導入します。

$ cd ~/esp/esp-idf
$ ./install.sh esp32

さらに、環境変数のセットアップを行います。.(ドット)間のスペースに気をつけてください。

$ . ./export.sh

これにより環境変数がセットアップされました。ちなみに、追加された環境変数は、

$ env

を実行することで確認可能です。私の環境ですと、PATHに多数のディレクトリが追加されたほか、

IDF_TOOLS_EXPORT_CMD=/home/<user>/esp/esp-idf/export.sh
IDF_TOOLS_INSTALL_CMD=/home/<user>/esp/esp-idf/install.sh

が追加されました。なお、ESP-IDFを使用する際は毎回実行する必要があるため、~/.bashrc に以下のコードを追加するとよいでしょう。viはエディターの一種です。操作方法は追記するかもしれません。

$ vi ~/.bashrc

# 末尾に追加しましょう
#ESP-IDF
  . $HOME/esp/esp-idf/export.sh 

ここで確認のため、一度別のターミナルを開いて、環境変数が通っているか先ほどの env コマンドで確認してみてください。また、起動時に毎回

Adding ESP-IDF tools to PATH...(略)

が表示されたら大丈夫です。

まとめ

以上で、基本的なセットアップは終了です、お疲れさまでした!!それでは次回、サンプルを利用してHello, Worldをターミナルに表示させ、Lチカするまで駆け抜けたいと思います。以上!!

Discussion

コメントはまだありません。

ログインするとコメントできます!

新着記事

eyecatch of pipicow_platformio

Raspberry Pi Pico WをPlatformIOでLチカ

by かいと

eyecatch of tocbot

【Tocbot】Next.js+MicroCMSのブログ記事に目次を作る方法が簡単すぎた話

by Yoshi_Zen

eyecatch of dev_pixel_tab

大学生向け Pixel Tablet の使用感

by アンティキラのポンコツ

eyecatch of civil_test

国家公務員総合職試験受験のすすめ

by アンティキラのポンコツ

eyecatch of Civil_Engineering_Soil_mec_4

[土質力学]地盤沈下の区別とその計算

by アンティキラのポンコツ

eyecatch of cpp1

【C++】#0:はじめに

by Yoshi_Zen

すべての記事を見る