IT + X

ITと何かのコラボレーションは時代を変えるかも

MacでESP-IDFをインストールして使ってみる

遅ればせながらESP32でいろいろ遊んでみようということで、MacBookProにESP-IDFをインストールして使ってみようとしたのですが、いろいろハマったので書いておきたいと思います。

 

ESP32ボードはUSBケーブルで接続できるこちらを使いました。

 

接続USBケーブルは、Mac側がUSB Type CでESP32側はマイクロBになっていますが意外に普通のお店では売っていません。変換アダプタもかったるいのでESP32接続専用に買っておきました。

 

まずは、MacにESP32接続用ドライバーをインストールします。

ドライバーはこちらからMac OS X用ドライバをダウンロードできます。

www.silabs.com

 

ただし、最近のMac OSはセキュリティが厳しくなっててApp Store以外のソフトウェアのインストールはブロックする仕様になっています。

インストーラー実行後、コントロールパネルの「セキュリティとプライバシー」で許可してやればインストールされます。

f:id:anthony-g:20190125170833p:plain

 

正しくインストールされるとデバイスファイル/dev/cu.SLAB_USBtoUARTが作られているはずです。

次に、ESP32ツールチェーンこちらからインストールします。

https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz

(2019年1月現在。最新のファイルはhttps://docs.espressif.com/projects/esp-idf/en/latest/get-started/macos-setup.htmlを参照ください。)

ちなみに、ツールチェーンとはコンパイラアーカイバなどコンパイルして実行ファイルやライブラリを作るためのコマンド群をいいます。

ホームディレクトリにespというディレクトリを作成し、そこにダウンロードしたファイルを解凍します。

# mkdir ~/esp
# cd ~/esp
# tar xzf xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz

 espディレクトリ下のxtensa-esp32-elf以下にツールチェーンが展開されます。

 

 次に、ESP-IDFをインストールします。

Githubからファイルをゲットします。

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

ESP-IDFは、サブモジュールもいくつか含まれているのでgit cloneで--recursiveオプションを指定することによってサブモジュールも合わせて取得します。

ESP-IDFに必要な環境変数を.bash_profileに追加します。

~/.bash_profile

export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH
export IDF_PATH=$HOME/esp/esp-idf

環境変数をシェルに反映させておきます。

# source ~/.bash_profile

次に、ESP-IDFに含まれているblinkというサンプルプロジェクトをビルドして実行してみます。このプロジェクトはLEDを点滅させるだけの簡単なプログラムです。

回路としては下の写真のように、LEDと抵抗を直列につないだシンプルなものです。ESP32側はGNDとGPIO23のピンに回路の両端をつないでいます。

 

f:id:anthony-g:20190126115335j:plain

 

 blinkプロジェクトファイルをコピーします。

# cp -r esp-idf/examples/getting-start/blink .
# cd blink
# ls
CMakeLists.txt   README.md   sdkconfig.defaults
Makefile             main

プロジェクトの設定を行います。

# make menuconfig

f:id:anthony-g:20190126130835p:plain

USBのデバイスファイルを設定します。

f:id:anthony-g:20190126130852p:plain

f:id:anthony-g:20190126130856p:plain

GPIO23から出力されるように設定します。

f:id:anthony-g:20190126135258p:plain

f:id:anthony-g:20190126135302p:plain

設定を終了後、プロジェクトをビルドしてESP32にプログラムをロードします。

# make flash

ビルド完了後、"Connecting..."というプロンプトが出たら、ESP32のBOOTボタン(USBコネクタ側に向かって右側のボタン)を押してください。

WindowsではBOOTボタン押しは必要なかったのですが、なぜMacではボタン押ししないとタイムアウトしてしまいました。ひょっとしたらボードがespressif純正でないのが理由かも。)

下のような感じの出力が出ればうまくロードされています。

f:id:anthony-g:20190126135908p:plain

 

いろいろハマりましたが、無事Lチカさせることができました。 


esp32 blink

IT+Xについて

仕事も少し落ち着いたので、久しぶりに技術ブログを再開しようかなとあたらしくはてなにブログを作ってみました。

内容としては、今私の興味のあるIT技術を中心に情報シェアできればいいかなと思っています。しかし、今やITはあらゆる分野でインフラとなっている技術ですので、技術的な面だけでなく、実際に使われているケースやこれから使われる可能性についても書いていけたらいいなと思っています。

いつまで続けられるかわからないですが、とりあえず書いていきたいと思います。