M5Cameraの開発にVisualStudioCodeを使う

M5Cameraの開発で ArduinoIDE を使っていると、補完や定義表示、定義ジャンプなどの機能が弱く感じます。
そこで、VisualStudioCodeで開発する方法をまとめておきます。（以下はMacの画面ですが、Windowsでも大枠は同じように操作できます。）

## 拡張機能のインストール

ArduinoIDEはVisualStudioCodeから呼び出されるため使わなくてもインストールしておいてください。

VisualStudioCodeの拡張機能で arduino で検索し、 Microsoft 製の Arduino 拡張をインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/c80a20ab-6494-aa93-de26-18180c19bac0.png)

## sample.ino というファイルで開発する場合の流れ

M5Camera と PC を USBケーブルでつないだ状態にしておいてください。

1. File メニューの New Window で新しいウインドウを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/b87302d5-010a-62f5-aeeb-98068b1dba67.png)

2. File メニューの Open... を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/d72ef047-7cb9-a011-aa49-92ac5cb0b694.png)

3. 新しいフォルボタンを押し、sample という名前のフォルダを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/5cb6ec35-1c9a-f797-a7f5-5cd3ae522346.png)

4. sampleフォルダを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/82986853-4e7d-1c9c-a7a6-4812fed32df9.png)

5. 新規ファイルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/2b120c9c-e21f-717d-b4da-6984d4e45226.png)
↓このボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/528b3113-d64c-7ff8-b700-a9f7286aec87.png)

6. sample.ino という名前にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/cdd2527d-026d-9478-437b-0c1895d73ef5.png)

７. LEDを点灯させるプログラムを記載してみます。

```
#include <esp32-hal-gpio.h>

void setup() {
    pinMode(GPIO_NUM_14, OUTPUT); // GPIO14番を出力モードに設定
    digitalWrite(GPIO_NUM_14, LOW); // LED点灯
}

void loop() {
}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/2ea65084-957a-d5d9-4921-24c7bcd7611b.png)
※認識できない部分に赤い波線が表示されます。これは、ライブラリの場所が指定されていないためです。このあと設定します。

10. 右下の &lt;Select Programmer> をクリックし、USBasp を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/de0e6bc0-64b0-86e9-7226-daa969f8da06.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/31536772-0db7-a420-6ebb-7e931303808d.png)

11. 右下の &lt;Select Board Type> をクリックし、ESP32 Wrover Module(esp32) を選択します。
※事前にArduioIDEで追加のボードマネージャをインストールしておく必要があります。
(参考 https://qiita.com/nakazawaken1/items/57ea26d6981ff25912c9)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/954f22fa-55df-1ab3-cf7a-16b1f7608075.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/b2cc794a-657a-93e0-bbac-721c93ff4e18.png)

12. Partition Scheme は Huge APP(3MB No OTA/1MB SPIFFS) を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/000c9cd3-3cd6-deb1-7e5b-7756f5c397ad.png)

13. 他は以下の通りに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/11a264cf-68ff-081c-3aa7-080f1446900c.png)

14. 右下の &lt;Select Serial Port> をクリックし、/dev/SLAB_USBtoUART を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/b5a0d27c-3ef5-8e97-8ac0-3c0ac6ef056d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/7f718b50-820d-16a2-4eb2-3e093b9ba9cb.png)

8. 画面右下の Mac という文字をクリックし、構成の編集（UI)を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/beb38980-c1e9-9ba2-d5d0-7da037c8d084.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/28acd439-9e1e-7267-cf2f-17e64559dfe5.png)

9. 出てきた C/C++ Configurationsの中の、パスを含めるという部分に、/tools/** で終わる行があるので、行をコピーして一方の tools/ の部分を hardware/esp32/1.0.4/** に書き換えます。
10. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/7a620e29-ebef-57c7-4b5e-ed08434105c3.png)
↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/462c39f2-dae2-ae75-24ee-7b6a7b659043.png)

10. sample.ino を開き直すと赤い波線が消えているはずです。
※もし消えない場合は、一度 VisualStudioCode を終了して開き直してください。

１１． 右下の![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/c951b3ec-40d9-7d07-75e6-aa496246810a.png)ボタンを押して、シリアルコンソールを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/b4b7fc4b-3f95-fc8c-5553-8d4574ff0a29.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/c5aca22d-33b7-6785-9bab-c23de81c0df0.png)

1２. 右上の![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/6145a1f8-2493-0fe2-5319-1a9866a9ffc3.png)ボタンを押してM5Cameraにプログラムを転送します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/6138208e-eb11-1df8-1ce1-5bbe6c94b3df.png)

成功するとM5CameraのLEDが赤く光ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/82535/7bdea5df-c7a6-1330-d176-1bdeed725600.png)