Raspberry Pi用Grove Base Hat
現在、Groveシステムはセンサー、アクチュエータ、およびディスプレイを含め、大きなシリーズに成長してきました。将来、より多くのGroveモジュールがGroveエコシステムに追加する見込みです。 Groveは、数十万ものメーカー、エンジニア、教師、学生、さらにはアーティストの学習、製作、創造することに役立っています。弊社は常にGroveモジュールをより多くのプラットフォームと適用させるということに責任を感じています。そのため、私たちはRaspberry Pi用Grove Base Hatと Raspberry Piゼロ用Grove Base Hatを開発しました。
Raspberry Pi用Grove Base Hatは様々な需要に応じて、多種類なポート(デジタル/アナログ/I2C/PWM/UART)を搭載しています。また、内蔵されたMCUを用いて、12-bit 8チャンネルADCもRaspberry Piに接続できます。
簡単に言えば、現在、Raspberry Pi用Grove Base HatをサポートしているGroveモジュールがおよそ60個あります。さらに、Raspberry Piに適用した新しいモジュールも追加し続けます。
商品特徴¶
- Raspberry Pi ⅔B/3B+/4/Zeroに適用
- 内蔵MCUを搭載
- 12-bit ADC
- 多種類なGroveポート
商品詳細¶
アイテム | 値 |
---|---|
動作電圧 | 3.3V |
MCU | STM32 |
ADC | 12-bit 8チャンネル |
Groveポート | 6 デジタル 4 アナログ 3 I2C 1 PWM 1 UART |
Raspberry pi通信バス | I2C |
I2Cアドレス | 0x04 |
Attention
この商品の動作電圧は3.3Vなので、3.3V以上のを入力しないでください。そうしないと、Raspberry Piを壊す恐れがあります。また、このHatがGroveポーとを通って、5VのGroveモジュールで動作することができないので、3.3V互換のGroveモジュールを使ってください。
ハードウェア一覧¶
ピンアウト¶
一覧
GPIO
Raspberry piと同じピンアウトを持っている。
PWM(パルス幅変調)
Grove PWMポートがRaspberry PiのハードウェアPWMピンのGPIO/BCM ピン12(PWM0)とGPIO/BCMピン13(PWM1)に接続します。また、 すべてのGPIOピンがソフトPWMとして使えます。
Note
0- Grove ポート以外のすべてのシルクスクリーン層のピン番号はBCMピン番号です。BCMピンとフィジカルピンの区別を知りたいなら、こちらをご参照ください。
1- ハードウェアPWMと比べて、ソフトウェアPWMの精度がより低くて、高周波数のときに故障する恐れもあります。
2- GPIO/BCMピン18もPWM0としてマークされます。実際には、GPIO/BCM 12とGPIO/BCM 18が同じPWMチャンネルをシェアしているので、異なるレートに設定することができません。
3- オーディオジャックもPWM 0とPWM 1を使って出力するので、そのソケットでオーディオを出力しながら、PWMを使うことができません。
UART
Grove UARTポートがGPIO14(UART0 TX)とGPIO15(UART0 RX)に接続します。 UARTが一般的にGPIOを介してPiを制御する便利な方法としてPiに使用されます。または、シリアルコンソール (デフォルトで有効になる)からkernelブートメッセージにアクセスすることに使用されます。それに、UARTがArduino、bootloaded ATmega、ESP8266などを自分のPiに連結することに使用されます。
デジタル
このボードには六つのデジタルGroveソケットがあります。通常にはGroveケーブルの黄色のワイヤ(4ピンGroveソケットの一番上のピンに接続するワイヤー)は信号ワイヤーなので、デジタルGroveポートを D5/D16/D18/D22/D24/D26 と名付けます。
アナログ
周知の通り、Raspberry PiにはADCがありません。そのため、直接にアナログセンサーで動作できません。 現在、内蔵されたMCU STM32のおかげで、Grove base hatが外部の12-bit ADCとして動作できます。つまり、Raspberry Piとアナログセンサーを一緒に使うことができるようになります。さらに、 四つのアナログソケットも利用できます。
このアナログセンサーが12-bit ADCにアナログ電圧を入力します。ADCがアナログデータをデジタルデータに変えた後、それがI2Cインターフェースを通してRaspberry Piにデジタルデータを入力します。
I2C
このボードには三つのI2Cポートが利用できます。それらのポートが直接にraspberryのI2Cピンに接続します。この部分をI2Cハブとして考えられます。seeedのほとんどの新しいgroveモジュールがI2Cインターフェースを搭載しているので、この三つのポートが非常に便利だと見られます。
SWD
SWDポートがファームウェアをhatに書き込むことに使用されます。また、このセクションで、i.e.、 ピン 9/ピン10/ピン11 という三つのGPIOピンが見えます。これら三つのピンが任意のGroveポートにも使用されていないので、ピンの衝突を心配せず、自由に使用することができます。
GRaspberry Pi用Grove Base Hat Vs. GrovePi+
パラメータ | Raspberry Pi用Grove Base Hat | GrovePi+ |
---|---|---|
動作電圧 | 3.3V | 5V |
MCU | STM32F030F4P6 | ATMEGA328P |
Groveポート | 6デジタル(3.3V) 4アナログ(3.3V) 3 I2C(3.3V) 1 PWM(3.3V) 1 RPISER(UART):Raspberry Piに接続する(3.3V) 1 SWD | 7デジタル(5V) 3アナログ(5V) 3 I2C(5V) 1 SERIAL:ATMEGA328P D0/1に接続する(5V) 1 RPISER: Raspberry Piに接続する(3.3V) 1 ISP |
Grove-デジタル | 直接Raspberry Piに接続する | ATMEGA328Pデジタルピンに接続して、I2Cシグナルに転換して、レベル変換器を介してRaspberry Piに接続する |
Grove-アナログ | STM32F030F4P6(12bit ADC)に接続して、I2Cシングルに転換し、直接にRaspberry Piに接続する | ATMEGA328Pアナログピン(10bit ADC)に接続して、I2Cシングルに転換して、レベル変換器を介してRaspberry Piに接続する |
Grove-I2C | 直接Raspberry Piに接続する | レベル変換器を介して to Raspberry Piに接続する |
Grove-PWM | 直接Raspberry Piに接続する | NA |
RPISER | 直接Raspberry Piに接続する | 直接Raspberry Piに接続する |
SERIAL | NA | ATMEGA328PデジタルピンD0/D1に接続して、I2Cシングルに転換して、レベル変換器を介してRaspberry Piに接続する |
SWD | ファームウェアをSTM32F030F4P6に書き込む | NA |
ISP | NA | ファームウェアをATMEGA328Pに書き込む |
Raspberry Piに接続するピン | 40 | 26 |
入門¶
ハードウェア¶
必要な部品¶
-- Raspberry Pi x1
-- Raspberry Pi用 Grove Base Hat x1
-- Groveモジュール
-
Step 1. Raspberry Pi用 Grove Base Hatを Raspberry Piに差し込む。
-
Step 2. Groveモジュールを対応のGroveポートに差し込む。
-
Step 3. micro-usbケーブルでRaspberry Piを給電する。
Warning
すべてのハードウェアの接続が完了した後で、Raspberry Piを給電したほうがいいです。このセンサーモジュールをホットプラグしないでください。そうしないと、Raspberry Piがクラッシュする恐れがあります。
ソフトウェア¶
このセクションでは、 seeed grove.py というライブラリーをインストールする方法やRaspberry Pi用 Grove Base HatのI2C、PWMデジタルおよびアナログポートの使い方について紹介します。
Tip
Raspberry Piの使い方が知らない場合、始まる前にまずこちら をチェックしてください。
構成¶
groveセンサーを操作するには、grove.pyがmraa/smbus2/rpi.gpi/rpi_ws281xのような数多くなハードウェアインターフェースライブラリーに依存しています。
インストール¶
オンラインワンクリックインストール
ワンクリックのインストールを利用して、速く始めます。次のコマンドを使用すれば、全ての従属物と最新的なgrove.pyがインストール/アップデートできます。
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
Success
うまくいったら、次のような知らせが見えます。
1 2 3 4 5 6 |
|
ステップバイステップのインストール
ワンクリックのインストール以外にも、ステップバイステップで全ての従属物と最新的なgrove.pyをインストールすることもできます。詳しくは、 githubページをご参照ください。
grove.pyライブラリーをコピーしてソースファイルをチェックすることができます。
Gitクローン https://github.com/Seeed-Studio/grove.py
使用¶
現在、Raspberry Pi用 Grove Base Hatが複数の Grove モジュールと一緒に使用できます。 grove_ というコマンドをタップして、 Tab キーを押して、 サポートしているGroveリストをチェックします。
pi@raspberrypi:~$ grove_
grove_3_axis_compass_bmm150 grove_i2c_color_sensor_v2 grove_mini_pir_motion_sensor grove_rotary_angle_sensor grove_temperature_sensor
grove_4_digit_display grove_i2c_motor_driver grove_moisture_sensor grove_ryb_led_button grove_thumb_joystick
grove_air_quality_sensor_v1_3 grove_lcd_1.2inches grove_oled_display_128x64 grove_servo grove_tilt_switch
grove_button grove_led grove_piezo_vibration_sensor grove_slide_potentiometer grove_touch_sensor
grove_collision_sensor grove_light_sensor_v1_2 grove_pwm_buzzer grove_sound_sensor grove_ultrasonic_ranger
grove_gesture_sensor grove_loudness_sensor grove_recorder_v3_0 grove_switch grove_water_sensor
grove_high_accuracy_temperature grove_mech_keycap grove_relay grove_temperature_humidity_sensor
pi@raspberrypi:~$ grove_
そして、ポートの種類によってそれらの使い方を教えます。
PWMポート
Grove -ブザーを例として、PWMポートを紹介します。
ハードウェア接続図
コマンドラインインターフェースで次のコマンド sudo grove_pwm_buzzer
をタップしてください。
pi@raspberrypi:~$ sudo grove_pwm_buzzer
Insert Grove-Buzzer to Grove-Base-Hat slot PWM[12 13 VCC GND]
3800
3400
3000
2900
2550
2270
2000
exiting application
ブザーが数回鳴った後止まって、このプログラムが自動的に終了します。
デジタルポート
Grove - 超音波レンジャーを例として、デジタルポートを紹介します。
ハードウェア接続図
コマンドラインインターフェースで次のコマ grove_ultrasonic_ranger 5 6
をタップしてください。
pi@raspberrypi:~$ grove_ultrasonic_ranger 5 6
Detecting distance...
6.979909436456088 cm
7.966469074117726 cm
12.451204760321255 cm
15.184797089675378 cm
17.429220265355603 cm
18.73230112010035 cm
20.717752390894397 cm
19.83807004731277 cm
17.3059003106479 cm
^CTraceback (most recent call last):
File "/usr/local/bin/grove_ultrasonic_ranger", line 11, in <module>
load_entry_point('grove.py==0.5', 'console_scripts', 'grove_ultrasonic_ranger')()
File "/usr/local/lib/python3.5/dist-packages/grove/grove_ultrasonic_ranger.py", line 107, in main
time.sleep(1)
KeyboardInterrupt
Grove - 超音波レンジャーとターゲットオブジェクトの距離を変更すると、測定値はそれに応じて変更されます。 Ctrl+C を押して終了させます。
Attention
ほとんどのgroveモジュールにとって、grove_ultrasonic_ranger 5 6
のようにピン番号パラメータを追加する必要があります。 5 と 6 がGPIO/BCMピンです。しかし、最初の例の grove_pwm_buzzer
で、コマンドの後でパラメータを追加していないと気づいたかもしれません。 それがPWMポートとI2Cポートがピン番号パラメータを必要としていないからです。Groveソケットの周りでピン番号シルクスクリーンが見つけられます。
アナログポート
Grove - 空気質量センサー v1.3 を例としてアナログポートを紹介します。
ハードウェア接続図
コマンドラインインターフェースで次のコマン grove_air_quality_sensor_v1_3 0 1
をタップしてください。
pi@raspberrypi:~$ grove_air_quality_sensor_v1_3 0 1
Detecting ...
62, Air Quality OK.
63, Air Quality OK.
61, Air Quality OK.
61, Air Quality OK.
59, Air Quality OK.
62, Air Quality OK.
60, Air Quality OK.
60, Air Quality OK.
59, Air Quality OK.
60, Air Quality OK.
60, Air Quality OK.
60, Air Quality OK.
57, Air Quality OK.
^CTraceback (most recent call last):
File "/usr/local/bin/grove_air_quality_sensor_v1_3", line 11, in <module>
load_entry_point('grove.py==0.5', 'console_scripts', 'grove_air_quality_sensor_v1_3')()
File "/usr/local/lib/python3.5/dist-packages/grove/grove_air_quality_sensor_v1_3.py", line 68, in main
time.sleep(.1)
KeyboardInterrupt
このセンサーで空気の質量を検査することができます。 Ctrl+C を押してこれを終了させます。
Notice
アナログポートにとって シルクスクリーンピン番号が A1, A0 のような存在であることに気づいたかもしれません。しかし、コマンドでは、デジタルポートと同じようにパラメータ 0 と **1**を使います。 そのため、モジュールを正確なポートに接続するようにしてください。そうしないと、ピンの衝突が起こるかもしれません。
I2C
Grove - OLEDディスプレイ128x64 を例としてI2Cポートを紹介します。
ハードウェア接続図
コマンドラインインターフェースで次のコマン grove_oled_display_128x64
をタップしてください。
pi@raspberrypi:~$ grove_oled_display_128x64
pi@raspberrypi:~$
何も起こっていないようですが、自分のoledをチェックしたら、サイバー界で最も有名な文を見つけることができます。😄
Note
I2Cツールを使ってgroveモジュールのI2Cアドレスをスキャンすれば、二つとそれ以上のアドレスを見つけるかもしれません。 0x04 が Raspberry Pi用 Grove Base Hat のアドレスです。