ESP32の初歩的一歩

秋月電子通商でESP32-DevKitCを買ってきたのでアレヤコレヤしてみた。今回はLチカまで。

#そもそもESP32って？
中国のEspressif Systems (Shanghai) Pte. Ltd.が開発したSoC(System-on-a-Chip)。製造はTSMC(Taiwan Semiconductor Manufacturing Co., Ltd.)の40nmプロセス。
雑に言えばWi-FiとBluetoothの使えるArduino。 ~~雑すぎる~~
今回の記事を読むにはその程度の理解で構わない。

#ESP32-DevKitCって？
ESP32モジュール基板の一つ「ESP-WROOM-32」を搭載した、Espressif謹製の開発ボードの一つ。
私が買ったものにはESP32-D0WDQ6が載ってました(詳しくはwikiで見て)。

#どこで買えるの？
購入はこちらから。
[ＥＳＰ３２－ＤｅｖＫｉｔＣ　ＥＳＰ－ＷＲＯＯＭ－３２開発ボード](http://akizukidenshi.com/catalog/g/gM-11647/)

ESP-WROOM-32の単体もあり〼。
[ＥＳＰ－ＷＲＯＯＭ－３２](http://akizukidenshi.com/catalog/g/gM-11647/)
[ＥＳＰ－ＷＲＯＯＭ－３２　（１０個入）](http://akizukidenshi.com/catalog/g/gM-11850/)

#ソフトウェア導入
[Arduino core for ESP32 - GitHub](https://github.com/espressif/arduino-esp32)
ここに全てが載ってる。英語を読むのが億劫でなければ読むことをお勧めする。
##Arduino IDEを使う場合
1. `~/Arduino/hardware/espressif/`ディレクトリを作る
2. その中に`https://github.com/espressif/arduino-esp32.git`を`esp32`としてgit cloneする、もしくはzipを落としてきて解凍する
3. `~/Arduino/hardware/espressif/esp32/tools`の中に入ってるget.pyかget.exeを実行

…文章で書くよりコマンド見た方が早いネ。
###Macの場合
```bash
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py
```
Macは先に色々入っててコマンド打つだけでいいから楽ネー。コマンド全行コピペすればいいと思うよ。

###Debian系Linuxの場合
```bash
sudo usermod -a -G dialout $USER && \
sudo apt-get install git && \		#Gitを既に使ってる人は飛ばす
wget https://bootstrap.pypa.io/get-pip.py && \
sudo python get-pip.py && \			#pipが既に入ってる人は飛ばす
sudo pip install pyserial && \		#pyserialが既に入ってる人は飛ばす
mkdir -p ~/Arduino/hardware/espressif && \
cd ~/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py
```
gitとpipとpyserialが必要。頭にusermodとかある以外はMacと変わらない。

###Fedoraの場合
```bash
sudo usermod -a -G dialout $USER && \
sudo dnf install git python3-pip python3-pyserial && \
mkdir -p ~/Arduino/hardware/espressif && \
cd ~/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py
```
gitとpipとpyserialが必要。Debian系Linuxと殆ど変わらないけど、パッケージ名が違うので注意。

###Windowsの場合
1. [GitHub](https://github.com/espressif/arduino-esp32)からzipをダウンロード(git cloneしても良い)
2. `C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32`に解凍する
3. `/tools/`に入ってるget.exeを実行

これでソフトウェアはオッケー…ではない。ドライバを入れなければ。
##ドライバ
Silicon LabsのUSB-UARTブリッジドライバが必要でした。以下からそれぞれのOSにあったものをインストールしてください。
[CP210x USB - UART ブリッジ VCP ドライバ](https://jp.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)

これでUSB接続すれば認識するはずです。シリアルポートを`/dev/cu.SLAB_USBtoUART`にし(Macの場合)、ボードは`ESP32 Dev Module`にします。
![Arduino IDE Menu](https://qiita-image-store.s3.amazonaws.com/0/148067/3d11daef-cf56-7c56-bb18-ad48ad7904c8.png)

#ハードウェア組み立て
今回はLチカまでしかやらないので、簡単に。
[ESP32のIO4] — +[LED]- — [抵抗] — [ESP32のGND]
IO5でも動くらしいです。スケッチ中のGPIO番号を変えてやる必要がありますが。
抵抗は1kΩを使いましたが、LEDに合わせて使ってください。

#スケッチ
Lチカだけなので簡単。

```c:Blink
void setup() {
  pinMode(4, OUTPUT);
}

void loop() {
  digitalWrite(4, HIGH);
  delay(100);
  digitalWrite(4, LOW);
  delay(900);
}
```

これでLチカまでできました！

#参考link
- http://blog.boochow.com/article/448012430.html
- http://qiita.com/rukihena/items/6a904368700eb1c7d2a3