Raspi Pico用Grove Starter Kit (Grove Shield for Pi Pico v1.0)を使ってみる

Raspberry Pi PicoでGroveセンサを使ってみたいと考えていたところ、Pico用のGrove Sheildと各種GroveセンサがセットになったStarter Kitを見つけたので使ってみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293692/60e79b6b-dcfe-e31c-30bd-a1a4eaa63a6d.png)


この記事ではStarter Kitと、Grove Shieldの使い方を説明します。
Starter Kitに付属する各種モジュールの使い方も説明しようと思いましたが、長くなってしまったので別記事にしました。各モジュールの使い方とサンプルコードは以下を参照してください。サンプルコードはC++で実装しました。
※~~やる気が続く限り~~順次、センサを追加していく予定です。

1. [LCD](https://qiita.com/hiro-han/items/66262a5aa2db8c2a52cb)
1. [温度湿度センサ](https://qiita.com/hiro-han/items/2c18da041fd72f0c02df)

# Grove Starter Kit for Raspberry Pi Pico
自分が購入したStarter Kitはこちらです。

- [秋月電子 : Groveスターターキット（Raspberry Pi Pico用）](https://www.switch-science.com/catalog/7103/)
- [seeed (製造元) : Grove Starter Kit for Raspberry Pi Pico](https://www.seeedstudio.com/Grove-Starter-Kit-for-Raspberry-Pi-Pico-p-4851.html)

このキットには製品ページにあるように14個のGroveモジュールが付属しています。
PicoをGrove Shieldに取り付けることで、はんだ付けをしなくてもGroveセンサなどを使用することができます（Picoにピンヘッダの取り付けは必要）。

- Grove - LED Pack
- Grove - RGB LED (WS2813 Mini)
- Grove - Light Sensor
- Grove - Sound Sensor
- Grove - Rotary Angle Sensor
- Grove - Temperature & Humidity Sensor
- Grove - mini PIR motion sensor
- Grove - Passive Buzzer
- Grove - Button
- Grove - Servo
- Grove - Mini Fan
- Grove - Relay
- Grove - 16x2 LCD
- Grove Shield for Pi Pico

公式がマニュアルなどを準備してくれています（全て英語です）。
英語が読めなくてもMicroPythonで書かれたサンプルコードがあるので、コードをコピペするだけでいくつかのモジュールがすぐ使えます。

- [Wiki - キットの説明と、いくつかのセンサを使うサンプルコード](https://wiki.seeedstudio.com/Grove_Shield_for_Pi_Pico_V1.0/#course-resources)
- [ビギナーガイド - より多くの説明とサンプルコードが含まれている](https://files.seeedstudio.com/Seeed_EDU/Course_documents/Beginner's-Guide-for-Raspberry-Pi-Pico.zip)
- [Youtube - モジュールを使ったデモ](https://www.youtube.com/watch?v=3htK45-_XOI&t=2s)


# Grove Shield for Pi Pico
Picoを取り付けるだけでGroveモジュールが使用可能になるシールドです。
- [公式のwiki](https://wiki.seeedstudio.com/Grove_Shield_for_Pi_Pico_V1.0/)

このシールドには10個のGroveモジュールの取り付け口などがついています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293692/7ec39827-fe47-3be6-9555-98537c8eac69.png)

  1. 3 x アナログポート
  1. 3 x デジタルポート
  1. 2 x UART
  1. 2 x I2C
  1. 電圧切り替えスイッチ(5V / 3.3V)
  1. SPI

PicoのGPIOと各ポートの対応関係は以下になります。

|種類|Groveポート|PICO GPIOピン番号|
|-|-|-|-|
|アナログ|A0|26|
|アナログ|A1|27|
|アナログ|A2|28|
|デジタル|D16|16|
|デジタル|D18|18|
|デジタル|D20|20|
|UART|UART0 TX|1|
|UART|UART0 RX|2|
|UART|UART1 TX|4|
|UART|UART2 RX|5|
|I2C|I2C0 SDA|8|
|I2C|I2C0 SCL|9|
|I2C|I2C1 SDA|6|
|I2C|I2C1 SCL|7|

いくつか使用していないGPIOピンがあります。これらはPicoを差し込んだソケットの隣についているソケットから使用可能です。

# デバッガを使って開発する方法
Picoの公式マニュアルにはPicoを２台使ったデバッガを使って開発する方法が記載されています。
Grove SheildにPicoを取り付けた状態でも、同じようにデバッガを使用することができます。

ただし、このとき１点注意があります。
デバッガを実行するPico (Pico Prove)からGrove Sheildを取り付けたPicoに電源供給をするとき、VSYSではなく***VBUS***を使用します。
公式マニュアルやほとんどの開発環境構築を説明している記事ではVSYSを使うように説明しているので気をつけてください。
公式マニュアルには一応、補足説明が書いてあります（[公式マニュアルのP62](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf)）

他のピンは通常通り接続します。

![pico.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293692/ad668319-45b9-cfe4-3665-e132bd4509b9.jpeg)


# 各種モジュールの使い方とC++コード
MicroPyhonのサンプルコードは公式にあるのですが自分はC++を使いたかったので、C++で実装しました。
最初に述べたように、最初は簡単に使えるだろうと思っていたのでこの記事中で説明するつもりだったのですが、想定よりも大変だったため別記事に分けました。
興味ある方はご覧ください。

1. [LCD](https://qiita.com/hiro-han/items/66262a5aa2db8c2a52cb)
1. [温度湿度センサ](https://qiita.com/hiro-han/items/2c18da041fd72f0c02df)

# 参考
- Starter Kit
    - [秋月電子 : Groveスターターキット（Raspberry Pi Pico用）](https://www.switch-science.com/catalog/7103/)
    - [seeed (製造元) : Grove Starter Kit for Raspberry Pi Pico](https://www.seeedstudio.com/Grove-Starter-Kit-for-Raspberry-Pi-Pico-p-4851.html)
    - [Wiki - キットの説明と、いくつかのセンサを使うサンプルコード](https://wiki.seeedstudio.com/Grove_Shield_for_Pi_Pico_V1.0/#course-resources)
    - [ビギナーガイド - より多くの説明とサンプルコードが含まれている](https://files.seeedstudio.com/Seeed_EDU/Course_documents/Beginner's-Guide-for-Raspberry-Pi-Pico.zip)
    - [Youtube - モジュールを使ったデモ](https://www.youtube.com/watch?v=3htK45-_XOI&t=2s)
- Grove Shield
    - [公式wiki](https://wiki.seeedstudio.com/Grove_Shield_for_Pi_Pico_V1.0/)
- Raspberry Pi Pico
    - [公式サイト](https://www.raspberrypi.org/documentation/microcontrollers/raspberry-pi-pico.html)
    - [公式マニュアル](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf)