macOSでの資料が少なかったのでまとめる

ESP32という高性能なArduinoのようなチップが生まれて、ネット上ではさまざまな人が動作させているみたいだが、 macOSでの開発に関して、あまり資料を探しても無かったので動作確認できるところまでをまとめる。

少し前までターミナルでの作業だったが、Arduino IDE から簡単にインストールできるようになった。 その過程にアップデートをしている。(2018-08-01 15:02:58 +0000)

参考

Arduino IDEをインストール

Arduino - Software からダウンロードして解凍する。解凍すると指定したディレクトリにArduino.appが出てくるのでApplicationsフォルダに移動してインストールする。

Arduino core for the ESP32をインストール

You can now install using Arduino IDE board manager. The link is https://dl.espressif.com/dl/package_esp32_dev_index.json

  • Start Arduino and open Preferences window.
  • Enter https://dl.espressif.com/dl/package_esp32_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp32 platform (and don’t forget to select your ESP32 board from Tools > Board menu after installation).

最近は Arduino IDE 内の Board Manager を利用するのが一般的らしい。

Board Manager にリポジトリを登録するために、環境設定をする。 Arduino の 環境設定 から 追加のボードマネージャのURL の設定を行う。

Arduino -> Preferences… から環境設定を開く

ボードのリポジトリを画面下方のテキストボックスに追加する。

すでに何かを追加している場合は、テキストボックス右側のボタンでウィンドウを開く。

1行に1URLを記述する。

リポジトリを追加したらボードマネージャを開いて ESP32 をインストールする。

ツール -> ボード… -> ボードマネージャ

を開く

一番下方に esp32 が追加されているので選択。

右下インストールボタンを押してインストール開始。

インストール中

インストールが終わるとボード内に esp32 のメニューが追加される。

ドライバをインストールする

接続したのだけれど、表示されないのでドライバを探す。

ESP32開発ボードをそのまま接続しただけでは認識されず、シリアルポートに表示されない。

システム情報を見る限り接続はされている。そして Silicon Labratory のチップを使っているようだ。

どうやらドライバが入っていないのが問題のようだ。macOS用が配布されていて一安心。以下からmacOS用をダウンロードしてインストールする。 USB - UART ブリッジ VCP ドライバ|Silicon Labs

リンク切れの場合はCP2102のチップを元に検索する。

Arduino IDEを再起動してUSBポートでESP32が表示されるか確認する。

接続した時にUSBのシリアルポートが見れたらドライバのインストールが完了。

書き込み実験をする

基本設定は写真の通り。

board ESP32 Dev Module
Flash Mode QIO
Flash Frequency 80MHz
Flash Size 4MB(32Mb)
Partition Scheme Default
Upload Speed 115200
Core Debug Level None
Serial Port /dev/cu.SLAB_USBtoUART
Programmer USBasp

まだいろいろ設定を詰める場面、方法があると思うがひとまず書き込みはこれでできることを確認する。 購入した時点で既にBlinkがインストールされているみたいだったので、何もしないプログラムで実験した。

void setup(){
}

void loop(){
}

コンパイルして書き込みができるか確認する。

確認ができたらまたBlinkを書き込んでみるのだが、どのPIN番号がLEDにアサインされているのかを調べねばならない。

付属の仕様書から。

GPIO2番のピンにLEDが並列接続されているようだが、GPIO2番が果たしていくつになるのかがわからない。

Note: the ESP32 pin assignment in the Arduino IDE works as expected. So, if you do something like this:

pinMode(16, OUTPUT);

It refers to GPIO16 .

これを信じる限り、GPIOの数字とピン番号は統一されているようだ。 で、あれば仕様書の通りであれば2番のポートにLEDが接続されていることになるのでやってみたら、正解だった。

void setup() {
  // put your setup code here, to run once:

  pinMode(2, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  digitalWrite(2, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  delay(1000);

}

これで書き込みまではできるようになった。