ESP32をOSXで開発するたのの設定


たぶんAnaconda入っていたからだと思いますが、詰まったので書いておきます。

基本的には、ESP-IDF Programming Guide を参照していますが、ところどころPATHがあわなかったり、Eclipseの画面表示が変わったりしているので。

Python 2 を(3と併存させて)インストール

実は、一回ESP-IDFの指示に従って進めていき、hello_worldをmakeしようとしたら、下記のようなエラーが出てしまいました。

Kosuke-no-MacBook:hello_world kocko$ make
(中略)
TypeError: unorderable types: PartitionDefinition() < PartitionDefinition()
make: *** [/Users/kocko/esp/esp-idf/examples/get-started/hello_world/build/partitions_singleapp.bin] Error 1

ググったところ、githubでissue を発見。私は、anacondaでPython3を使っているのですが、どうやら、Python3には未対応のようでした。

I get this error if I run the gen_esp32part.py tool in Python 3. At the moment, esp-idf's Python-based tools only support Python 2 (Python 2+3 support is coming but it's not available now.)

ということで、さらにググって、osx - How to install 2 Anacondas (Python 2.7 and 3.4) on Mac OS 10.9 - Stack Overflowを参考に、anaconda3と2を共存してインストールします。
といっても、手順はたったの2行。

> conda create -n python2 python=2.7 anaconda
> source activate python2

2行目のsourceコマンドはコンソールを開くたびに叩く必要があるので注意です。こんな感じで、コンソールに入力すると、頭に(Python2)がつくようになるので便利です。

Last login: Fri Apr 28 20:34:51 on ttys002
Kosuke-no-MacBook:~ kocko$ source activate python2
(python2) Kosuke-no-MacBook:~ kocko$ which python
/Users/kocko/anaconda3/envs/python2/bin/python
(python2) Kosuke-no-MacBook:~ kocko$ 

ESP-IDFをインストールする

ガイドに従って淡々と。anacondaのpythonは自分のホームディレクトリにあるので、sudoはいらないようです。

(python2)$ easy_install pip
(python2)$ pip install pyserial
(python2)$ mkdir -p ~/esp
(python2)$ cd ~/esp
(python2)$ tar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-61-gab8375a-5.2.0.tar.gz
(python2)$ export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
(python2)$ export IDF_PATH=/Users/<ユーザ名>/esp/esp-idf
(python2)$ git clone --recursive https://github.com/espressif/esp-idf.git

最後のexport 2つは、必要に応じて .bash_profileか何かに追記しておきます。

次にhello worldサンプルを動かしてみます。

(python2)$ cd esp-idf/examples/get-started/hello_world
(python2)$ make menuconfig

すると、こんな画面が出てきます。

矢印の上下で、上のメニューが動き、矢印の左右で、下のメニューが動きます。
↓↓↓ で、Serial flasher configを選択して Enterを押します。

もう一回Enterを押して、シリアルポートの設定をします。

私と同じく、秋月のESP32-DevKitC ESP-WROOM-32開発ボードを買った方であれば、 /dev/cu.SLAB_USBtoUART で大丈夫だと思います。
Enterで抜けて、→でを選択してEnter、もう一回→でを選択してEnterしてコンソール画面に戻ります。

make && make flash

これで、うまくいくはずなのですが、なぜかArduinoのシリアルモニタで何も見えないので、とりあえず一旦ここまででスタジオにお返しします。現場からは以上です。