電子工作初心者のESP32勉強会①~Mac環境構築編~

#ESP32とは
今回、電装に載せるマイコンとしてESP-WROOM-32を用いることになりました。ESP32とは　ESP8266というマイコンをmicroUSBポートなどを載せモジュール化したものです。これを略してESP32と呼ばれています。wifiやBluetoothを使える上に、クロック数やフラッシュメモリの容量共に結構優れています。
![ダウンロード.gif](https://qiita-image-store.s3.amazonaws.com/0/253129/cd182f95-4035-d688-9551-73adeec20e2a.gif)



#準備物
- Mac Book Proの場合: USB typeC - USB typeAケーブル、USB typeA - microUSBケーブル
- Mac Book Airの場合: USB typeA - microUSBケーブル
- Mac　OS High Sierra
- ESP32

#対象
- ターミナル初心者
- 電子工作初心者
- gitとかよくわからない人向け
- でもファイル構造をなんとなく理解している

# それでは始めていきましょう！
### 大まかな手順は以下の通りです。
- Arduino IDEをインストール
- Arduinoのフォルダ構造についての説明
- githubからESP32に関するファイル群を取って来る
- 次にポートに関する準備
- 書き込むポートがあるか確認

## Arduino IDEをインストール
- (https://www.arduino.cc/en/main/software)
- 設定はデフォルトでインストールしてください。

## Arduinoのフォルダ構造についての説明
- /Users/[username]/Documents/Arduino というディレクトリが存在しているはず。
 - ここには、Arduino IDEに導入するライブラリ、ファイルが多く存在している。
 - さらにArduinoディレクトリの下に/hardwareディレクトリがあるのは確認できましたか？
   - /Users/[username]/Documents/Arduino/hardware
    <img width="610" alt="スクリーンショット 2018-04-25 13.19.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/253129/671e2287-a2ab-8f10-04ad-7f64926b942d.png">

 -  Arduinoディレクトリの内部にある/hardwareディレクトリについて
 - ここでは、今回用いるESP32を用いるために必要なファイルなどを格納しておきます。
 - Q: では必要なファイル群(=ライブラリ)はどこから取って来るのか？　
 
## A: githubからESP32に関するファイル群を取って来る
- githubではお強い方達がESP32をArduino IDEで使えるように、上記のライブラリ群を公開してくれています。
   - https://github.com/espressif/arduino-esp32
- 以下のコマンドをターミナルにて実行してください。

```
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py
```

### 一体何を行なっているのか?
- /hardwareディレクトリにて/espressifディレクトリを作成
- そのディレクトリに移動
- git cloneコマンドにてhttps://github.com/espressif/arduino-esp32を取得
- /espressifディレクトリの下に/esp32ディレクトリを作成&移動
- git submoduleコマンドはGitについて理解していないと難しいのでここでは省きます。
- /esp32ディレクトリ下の/toolに移動
- get.pyを実行（Windowsの場合は、get.exeファイルを実行すればよかったような・・・すみません、自信ないです)
- コマンドは一行ずつ行うものだが、&& \によって一気に実行できるようになる。

経験上、書き込み時にエラーを吐くときは大抵このファイル構造か、次に説明するポートに関する内容です。Windowsの場合は、ディレクトリ名がIDE上で設定されているパスと異なる可能性があるので、気をつけてください。

![スクリーンショット 2018-04-26 13.50.09.png](https://qiita-image-store.s3.amazonaws.com/0/253129/7b3a4730-8dea-cf6e-faf0-b49c174857eb.png)

Arduino IDEにて上のボード選択ができていたら成功です。

- get.pyが実行できない場合　→　https://qiita.com/networkyohan69/items/fb7d86a17327ab28762a

## 次にポートに関する準備

 ここまでで、IDEに関するESP32の準備は完成しました。次はPCとマイコンの間のポートの問題です。
- PC側のポートはUSBポート、そこからUSBからUARTに変換する必要性があります。
　　- なぜUSB-> UARTに変換する必要があるのかは、変換する理由は[このURL](http://www.ele-lab.com/tips_uart4_usb.html) にて
- https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers より、ドライバをあなたのPCに導入してください。

## IDEにて書き込むポートがあるか確認
- Arduino IDEのページに戻ってください。
- PCのUSBポートとUSB typeA - microUSBケーブル、ESP32の差込口を接続

![スクリーンショット 2018-04-26 13.50.29.png](https://qiita-image-store.s3.amazonaws.com/0/253129/3acdf233-034f-7afb-53e9-b065856390dd.png)

- これが現れていたら、成功です！

## なぜか、/dev/cu.SLAB_USBtoUARTが表示されない
- get.pyが動作していない
- Macの方はApple Store以外からのインストールとなりますが、左上のリンゴマークから、[システム環境設定]->[セキュリティとプライバシ]を選択してください。
<img width="716" alt="スクリーンショット 2018-04-25 13.59.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/253129/3752932a-d462-f084-34a0-1a3ba9c5052e.png">
- ダウンロードしたアプリケーションの実行許可をApple Store以外からも可にしてください。
- インストールがブロックされていたら許可するを押してください。

## さあ[次回](https://qiita.com/networkyohan69/items/391910c6942422cac6d0)、ここからセンサーを使っていきます！