(Mac)Arduino IDE開発環境にてESP32のプログラミング

前回、ESP32周辺の回路の作成が済んだため、ハードウェア側の準備は整った。
今回は、ソフトウェア側の準備を行う。

#ESP-WROOM-32プログラミング開発環境
使用している「ESP-WROOM-32モジュール」は、PS4のコントローラ充電ケーブルにも使用されている「USBケーブル(Micro B)」にてPCと接続して、開発環境「Arduino IDE」を用いてプログラミングをすることが可能である。
※ただし、ESP32へのプログラム書き込みにはESP32を認識できるUSBシリアルドライバをインストールする必要がある。
<img width="408" alt="スクリーンショット 2020-03-08 19.44.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/c4181671-541a-b614-ac34-640770cb305d.png">

1STEPとして「Arduino IDE」、2STEPとして「USBシリアルドライバ」のインストール方法を説明する。
なお、各OS(Mac、Windows、Linux)でインストール方法が異なるため、この記事では「Mac」でのインストール方法を説明する。

#(1STEP)Arduino IDE開発環境のインストール(無料)(2020/3/8時点)
①以下のArduinoのWebページにアクセスします。
・Arduino Webページ：https://www.arduino.cc/
②アクセスしたページ上部に表示されている「SOFTWARE→DOWNLOADS」をクリックします。
<img width="1904" alt="スクリーンショット 2020-03-08 20.00.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/f3199dd7-1f32-d82d-7ca2-d2a446f19d0a.png">
③ページをスクロールすると「Download the Arduino IDE」と表示されてる枠何にある「Mac OS X 10.8...」をクリックする。
<img width="941" alt="スクリーンショット 2020-03-08 20.04.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/0b675b63-b90c-a4f0-2125-69e069b15179.png">
④右下にある「JUST DOWNLOAD」をクリックしてダウンロードを開始する。左下にダウンロードステータスが表示される。
※寄付する場合は「CONTRIBUTE & DOWNLOAD」をクリックする。(有料)
<img width="1741" alt="スクリーンショット 2020-03-08 20.29.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/2f4e6729-ea85-979c-a1d6-2b78b77f4dbf.png">
⑤ダウンロードが完了すれば、左下のステータスをクリックすると「ダウンロード」フォルダが開かれて、その中にダウンロードした「Arduino」をMac内の「アプリケーション」フォルダに移動させる。
※アプリケーション内に入れて「Arduino」を起動しないとすぐにアプリが落ちてしまい使用できないため。
<img width="1385" alt="スクリーンショット 2020-03-08 20.34.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/97338a96-9ac8-2537-0a70-d10adec713cf.png">
⑥アプリケーション内に入れた「Arduino」を起動して、初期画面が出ればインストール完了。
<img width="490" alt="スクリーンショット 2020-03-08 20.44.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/5977d87f-5a8c-73bd-2b2d-8a625826e414.png">

#(2STEP)CP210x USB-UARTブリッジVCPドライバのインストール(無料)(2020/3/8時点)
①以下のWedページにアクセスします。
・CP210x USB-UARTブリッジVCPドライバ ダウンロードWebページ：https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers#mac
<img width="1289" alt="スクリーンショット 2020-03-08 20.59.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/9a2e4e6b-cf6b-d5f1-42fc-6ba13f9efa53.png">
②アクセスしたページをスクロールすると「Download for Macintosh OSX(v5.2.4)」と表示されている枠内にある「VCPをダウンロード」をクリックしてダウンロードを開始する。左下にダウンロードステータスが表示される。
<img width="1240" alt="スクリーンショット 2020-03-08 21.02.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/08df189f-067e-b998-e11b-01928fe9b85a.png">
③ダウンロードが完了すれば、左下ステータスをクリックすると「ダウンロード」フォルダが開かれて、その中にダウンロードした「Mac_OSX_VCPDriver」があるのでそれをクリック、以下「SiLabsUSBDriverDisk.dmg」、「Legacy MacVCP Driver」、「Silicon Labs VCP Driver.pkg」の順にクリックする。
<img width="757" alt="スクリーンショット 2020-03-08 21.12.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/14660e3c-fb49-02cd-f02f-1dffcb21cfbd.png">
④以下のインストーラー画面が出てくるのでクリックしていきインストールする。
<img width="616" alt="スクリーンショット 2020-03-08 21.23.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/b59da341-ae6b-302c-49b9-c6c3a375bb12.png">
⑤インストールが完了すれば、「Finder」を開いて以下順番にクリックしていき、フォルダ内に「SiLabsUSBDriver.kext」が確実にインストールされているか確認する。
・「コンピューター」→「Macintosh HD」→「ライブラリ」→「Extensions」→「SiLabsUSBDriver.kext」
<img width="1253" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3539353737342f35303935323038312d653337612d326562352d303433312d6364373264613531646238662e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/6f14f294-bff6-f4f8-ded5-ca094d377e72.png">
⑥しかし、このままではESP32をArduinoが認識してくれないので、アプリケーション内にあるターミナルにて以下3コマンドを1つずつ実行してドライバーの再ロードを行う。

```ruby:ReloadDriverCommand
①「codesign -vvvvd /Library/Extensions/SiLabsUSBDriver.kext」
②「kextutil -tn /Library/Extensions/SiLabsUSBDriver.kext」
③「sudo kextload -v 6 SiLabsUSBDriver.kext」
```

⑦この時点ではまだシステムソフトウェアの読み込みがブロックされるので、「システム環境」→「セキュリティとプライバシー」を開いて鍵マークをクリックしてドライバーの読み込み許可をクリックし、再度鍵をかける。その後、一度PCを再起動する。
※⑥,⑦の項目は右記事を参考した。 → [「cp210x USB to UART Bridge VCP Driver をmacで認識させる方法」](https://www.shangtian.tokyo/entry/2018/09/13/224853)
⑧「ESP-WROOM-32モジュール」をUSBにてPCと接続後、「Arduino」を起動し、上記メニュー内の「ツール」→「シリアルポート」に「/dev/cu.SLAB_USBtoUART」と表示されていればドライバインストールが完了し、ESP32がPCに認識されている。
<img width="1131" alt="スクリーンショット 2020-03-08 22.24.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/d2cf75e1-956a-3241-81fa-61589be3aa7c.png">

#動作確認テストプログラム
ようやくESP32をArduinoでプログラミングできる環境が整った。
簡単なテストプログラムでプログラムの書き込みができるか以下手順で確認を行う。

①「ESP-WROOM-32モジュール」をUSBにてPCと接続後、「Arduino」アプリを起動する
②以下プログラムを出てきたスケッチにコピー&ペーストする。

```ruby:ESP32テストプログラム
void setup() {

  Serial.begin(115200);
  // put your setup code here, to run once:

}

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

  Serial.println("Hello World");
  delay(1000);

}
```

③書き込み(右矢印)をクリックし、問題がなければ「ボードへの書き込みが終了しました」と表示される。　※ファイルの保存先は適当で良い
<img width="495" alt="スクリーンショット 2020-03-08 22.49.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/e86b9cb6-ab98-ef6f-6512-62530e2d28c8.png">

④Arduinoの上記メニューで、「ツール」→「シリアルモニタ」をクリックすると画面が出てくるので、シリアルモニタ画面右下の値を「115200」に変更する。
⑤シリアルモニタ画面に1秒毎に「Hello World」と表示されればOK。
<img width="1544" alt="スクリーンショット 2020-03-08 22.49.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/595774/bcbbd60d-50dd-b257-dc82-77388ab7baad.png">

以上でMacのPCにてArduino IDEでESP32にプログラミングできる開発環境が整った。
次回以降は前回作成した回路の各電子部品を用いて様々なテストプログラムを作成していく。

#次回記事予定
ESP32でのLCD表示プログラム作成

#参考文献
・https://www.shangtian.tokyo/entry/2018/09/13/224853