Skip to main content

Raspberry Pi Pico 向け Grove ベーシックキット

enter image description here

Raspberry Pi Pico は、低コストで高性能な新しい人気のマイコンボードです。では、これに Grove センサをどのように接続すればよいのでしょうか?Grove シールドがこの問題を完璧に解決します。

Grove Shield for Pi Pico v1.0 は、Raspberry Pi Pico 向けのプラグアンドプレイシールドで、2 つの I2C、3 つのアナログ、2 つの UART、3 つのデジタルポート、SWD デバッグインターフェースと SPI ピン、3.3V/5V 切り替え可能な電源スイッチなど、さまざまな Grove コネクタを統合しています。ジャンパワイヤやブレッドボードを使わずに、簡単かつ素早くプロトタイプやプロジェクトを構築でき、Pico の無限の可能性を探求できます。このシールドボードはスタッカブルなアドオンボードで、Pi Pico と Seeed の Grove システムをつなぐブリッジとして機能します。

仕様

パラメータ値/範囲
動作電圧3.3/5V
動作温度-25℃ ~ +85℃
アナログポート3
デジタルポート3
UART ポート2
I2C ポート2
サイズ56mm x56mm

対応ボード

Base Shield は Pi Pico でテストされており、完全に互換性があります。

ハードウェア概要

  • 1-アナログポート: A0、A1、A2 の 3 つのアナログポートを含みます。

  • 2-デジタルポート: D16、D18、D20 の 3 つのデジタルポートを含みます。

  • 3-UART ポート: 2 つの UART ポート。

  • 4-I2C ポート: 2 つの I2C ポート。

  • 5-電源スイッチ: 5V/3.3V 切り替え可能な電源スイッチ。

  • 6-SPI ポート: 1 つの spi0 ポート。

  • 寸法: 56mm * 56mm

はじめに

プロジェクト 1: ブザーから異なる音を出す

必要な部材

ステップ 1. 次のアイテムを用意します:

Pi PicoGrove Shield for Pi PicoGrove - BuzzerGrove - Rotary Angle Sensor
Pi PicoGrove Shield for Pi PicoGrove BuzzerGrove Rotary Angle Sensor
今すぐ入手今すぐ入手今すぐ入手今すぐ入手

ステップ 2. Grove Buzzer を Grove Shield の A1 ポートに接続します。

ステップ 3. Grove Rotary Angle Sensor を Grove Shield の A0 ポートに接続します。

ステップ 4. Grove Shield を Pi Pico に挿し込みます。

ステップ 5. Pi Pico を USB ケーブルで PC に接続します。

Hardware Setup

ソフトウェアのセットアップ

ステップ 1. Thonny IDE をダウンロードします:

Linux 開発環境の場合:

お使いのシステムに応じて、さまざまな方法で Thonny をインストールできます:

  • PC 向けバイナリバンドル (Thonny + Python):

    bash <(wget -O - https://thonny.org/installer-for-linux)
  • pip を使用する方法:

    pip3 install thonny
  • Debian、Raspbian、Ubuntu、Mint などのディストリビューション向け:

    sudo apt install thonny
  • Fedora 向け:

    sudo dnf install thonny

ステップ 2. Thonny を開き、コンピュータを Raspberry Pi Pico に接続します。Thonny で Run メニューに移動し、Select Interpreter を選択して、ドロップダウンから "MicroPython (Raspberry Pi Pico)" を選びます。その後、Pi Pico 用の COM ポートを選択します。

注意: インタプリタ一覧に "MicroPython (Raspberry Pi Pico)" が表示されない場合は、Thonny の最新版がインストールされていることを確認してください。

Interpreter Selection COM Port Selection

ステップ 3. Raspberry Pi Pico が接続されており MicroPython が動作していれば、Thonny は自動的に REPL に接続します。次に、以下のコードを Thonny IDE にコピーし、緑色の Run ボタンを押します。

from machine import Pin, PWM, ADC
from time import sleep

adc = ADC(0) # ADC input (knob potentiometer) connected to A0
pwm = PWM(Pin(27)) # DAC output (buzzer) connected to A1
pwm.freq(10000)

while True:
val = adc.read_u16() # Read A0 port ADC value (65535~0)
# Drive the buzzer, turn off the buzzer when the ADC value is less than 300
if val > 300:
pwm.freq(int(val / 10))
pwm.duty_u16(10000)
else:
pwm.duty_u16(0)

print(val)
sleep(0.05)

ここで Grove Rotary Angle Sensor を回転させると、角度を変えるにつれてブザーから異なる音が聞こえます。

プロジェクト 2: 温度と湿度の検出

必要な部材

ステップ 1. 次のアイテムを用意します:

Pi PicoGrove Shield for Pi PicoGrove OLED Display 0.96" (SSD1315)Grove Temperature & Humidity Sensor (DHT11)

ステップ 2. Grove OLED Display 0.96" を Grove Shield の I2C1 ポートに接続します。

ステップ 3. Grove Temperature Humidity Sensor (DHT11) を Grove Shield の D18 ポートに接続します。

ステップ 4. Grove Shield を Pi Pico に挿し込みます。

ステップ 5. Pi Pico を USB ケーブルで PC に接続します。

ソフトウェアのセットアップ

ソフトウェアについては Demo 1 のセクションを参照してください。

  1. 次のコードを Thonny IDE にコピーします:
from ssd1306 import SSD1306_I2C
from dht11 import *
from machine import Pin, I2C
from time import sleep

i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=200000) # OLED connected to I2C1
oled = SSD1306_I2C(128, 64, i2c)
dht2 = DHT(18) # Temperature and humidity sensor connected to D18

while True:
temp, humid = dht2.readTempHumid() # Read temperature and humidity
'''I2C port test and OLED display test'''
oled.fill(0) # Clear the screen
oled.text("Temp: " + str(temp), 0, 0) # Display temperature on line 1
oled.text("Humid: " + str(humid), 0, 8) # Display humidity on line 2
oled.show()
sleep(0.5)
  1. 次の必要な Python ファイルをローカルマシンにダウンロードします:
import time
from machine import Pin

MAXTIMINGS = 85

DHT11 = 11
DHT22 = 22
DHT21 = 21
AM2301 = 21

class DHT(object):
def __init__(self, data_pin,Type=DHT11):
self.Data_pin = data_pin
self.__pinData = Pin(data_pin, Pin.OUT)
self.firstreading = True
self.__pinData.value(1)
self._lastreadtime = 0
self.data=[0]*5
self.temp = 0
self.humid = 0

def read(self):
i=0
j=0
self.__pinData.value(1)
#time.sleep(0.25)

self.data[0] = self.data[1] = self.data[2] = self.data[3] = self.data[4] = 0

# now pull it low for ~20 milliseconds
pinData = Pin(self.Data_pin, Pin.OUT, None)
pinData.value(0)
time.sleep_ms(20)
pinData.value(1)
time.sleep_us(41)
pinData = Pin(self.Data_pin, Pin.IN)
DHT11_TIMEOUT = -1
time_cnt=0
while(0 ==pinData.value()):
time.sleep_us(5)
time_cnt = time_cnt+1
if(time_cnt > 16):
return

# DHT11 pulls the bus up at least 80 US in preparation for sending sensor data.
time_cnt=0
while(1 == pinData.value()):
time.sleep_us(5)
time_cnt = time_cnt+1
if(time_cnt > 16):
return


for j in range(5):
i = 0
result=0
PINC = 1
for i in range(8):

while(not (PINC & pinData.value())): # wait for 50us
pass
#print('wait 50us')
time.sleep_us(25)

if(PINC & pinData.value()):
result |=(1<<(7-i))
while(PINC & pinData.value()): # wait '1' finish
pass
#print('wait 1')
self.data[j] = result

pinData = Pin(self.Data_pin, Pin.OUT, None)
pinData.value(1)

dht11_check_sum = (self.data[0]+self.data[1]+self.data[2]+self.data[3]&0xff)
# check check_sum
if(self.data[4] is not dht11_check_sum):
print("DHT11 checksum error")
#print(self.data)
if ((j >= 4) and ( self.data[4] == dht11_check_sum)):
return True
return False

def readHumidity(self):
if (self.read()):
self.humid = float(self.data[0])
self.humid = self.humid + float(self.data[1]/10)
return self.humid

def readTemperature(self):
if (self.read()):
self.temp = float(self.data[2])
self.temp = self.temp + float(self.data[3]/10)
return self.temp

def readTempHumid(self):
if (self.read()):
self.temp = float(self.data[2])
self.temp = self.temp + float(self.data[3]/10)
self.humid = float(self.data[0])
self.humid = self.humid + float(self.data[1]/10)
return self.temp , self.humid
  1. Thonny IDE で dht11.py を開き、File -> Save As -> MicroPython device をクリックして、デバイス上に dht11.py という名前で保存します。

  1. 同じ手順を繰り返して、ssd1306.py を MicroPython デバイスに保存します。

プロジェクトの実行

両方のファイルを MicroPython デバイスに保存したら、Thonny の緑色の Run ボタンを押してデモコードを実行します。

すると、次の画像のように、OLED 画面に温度と湿度が表示されるはずです:

OLED Display Output

プロジェクト 3: LED とリレーの制御

必要な部材

  • ステップ 1. 次のものを準備します:
Pi PicoGrove Shield for Pi PicoGrove-buttonGrove-LEDGrove relay
enter image description hereenter image description hereenter image description hereenter image description hereenter image description here
今すぐ入手今すぐ入手今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. Grove button を Base Shield のデジタルピン 18 に接続します。
  • ステップ 3. Grove led を Base Shield の D16 ポートに接続します。
  • ステップ 4. Grove Relay を Base Shield の D20 ポートに接続します。
  • ステップ 5. Grove Shield for Pi Pico を Pi Pico に挿し込みます。
  • ステップ 6. USB ケーブルを使って Pi Pico を PC に接続します。

ソフトウェア

ソフトウェアについては demo1 のセクションを参照してください。

まず、以下のコードを Thonny IDE にコピーします。

from machine import Pin

button = Pin(18, Pin.IN, Pin.PULL_UP)# button connect to D18
button.irq(lambda pin: InterruptsButton(),Pin.IRQ_FALLING)#Set key interrupt
led = Pin(16, Pin.OUT)#led connect to D16
relay = Pin(20, Pin.OUT)
tmp = 0
'''Key interrupt function, change the state of the light when the key is pressed'''
def InterruptsButton(): #button input
global tmp
tmp = ~tmp
led.value(tmp)
relay.value(tmp)
while True:
pass

それでは、緑色のボタンをクリックしてデモコードを実行してください。

その後、Grove button を押すことで、LED とリレーのオン/オフを制御できます。

enter image description here

プロジェクト 4: 点滅するカラー

必要な部材

  • ステップ 1. 次のものを準備します:
Pi PicoGrove Shield for Pi PicoRGB LED WS2813 mini
enter image description hereenter image description hereenter image description here
今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. RGB LED WS2813 mini を Base Shield のポート 18 に接続します。
  • ステップ 3. Grove Shield for Pi Pico を Pi Pico に挿し込みます。
  • ステップ 4. USB ケーブルを使って Pi Pico を PC に接続します。

ソフトウェア

ソフトウェアについては demo1 のセクションを参照してください。

まず、以下のコードを Thonny IDE にコピーします。

from ws2812 import WS2812
import time

BLACK = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
COLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)

#WS2812(pin_num,led_count)
led = WS2812(18,30)

print("fills")
for color in COLORS:
led.pixels_fill(color)
led.pixels_show()
time.sleep(0.2)

print("chases")
for color in COLORS:
led.color_chase(color, 0.01)

print("rainbow")
led.rainbow_cycle(0)


それでは、ws2812.py をローカルにダウンロードしてください。Thonny で ws2812.py を開き、file->save as->MicroPython device をクリックします。

File name 欄に ws2812.py と入力し、"ok" をクリックすると、File->Open->MicroPython device にファイルが保存されます。

enter image description here

ファイルを MicroPython デバイスに保存したら、緑色のボタンをクリックしてデモコードを実行してください。 すると、下図のように RGB LED WS2813 mini が美しい色で点滅します。

enter image description here

プロジェクト 5: 音と光の検出

必要な材料

  • ステップ 1. 以下のものを準備します:
Pi PicoGrove Shield for Pi Picogrove sound sensorGrove light sensorGrove-16x2 LCD
enter image description hereenter image description hereenter image description hereenter image description hereenter image description here
今すぐ入手今すぐ入手今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. Grove sound sensor を Base Shield のアナログピン 0 に接続します。
  • ステップ 3. Grove light を Base Shield のポート A1 に接続します。
  • ステップ 4. Grove 16X2 lcd を Base Shield のポート I2C1 に接続します。
  • ステップ 5. Grove Shield for Pi Pico を Pi Pico に挿し込みます。
  • ステップ 6. Pi Pico を USB ケーブルで PC に接続します。

ソフトウェア

demo1 のソフトウェアの部分を参照してください。

まず、以下のコードを Thonny IDE にコピーします。

#from lcd1602 import LCD1602_RGB  #LCD1602 RGB grove
from lcd1602 import LCD1602
from machine import I2C,Pin,ADC
from time import sleep
i2c = I2C(1,scl=Pin(7), sda=Pin(6), freq=400000)
d = LCD1602(i2c, 2, 16)
#d = LCD1602_RGB.display(i2c, 2, 16)
#d.set_rgb(255, 0, 0)
sleep(1)
light = ADC(0)
sound = ADC(1)

while True:

lightVal = light.read_u16()
soundVal = sound.read_u16()
d.home()
d.print('lightvalue=')
d.print(str(lightVal))
#d.set_rgb(0, 255, 0)
sleep(1)
d.setCursor(0, 1)
d.print('soundvalue=')
d.print(str(soundVal))
#d.set_rgb(0, 0, 255)
sleep(1)

それでは、LCD1602.py をローカルにダウンロードしてください。Thonny で LCD1602.py を開き、file->save as->MicroPython device をクリックします。

File name 欄に LCD1602.py と入力し、"ok" をクリックすると、File->Open->MicroPython device にファイルが保存されます。

note

この例では、使用している LCD1602 のバージョンは単色バックライト版です。フルカラー・バックライト版の LCD1602 を制御する必要がある場合は、このライブラリファイル内の関数を確認して、その使い方を学んでください。

enter image description here

ファイルを MicroPython デバイスに保存したら、緑色のボタンをクリックしてデモコードを実行してください。 すると、下図のように sound sensor と light sensor のデータを取得できます。

enter image description here

プロジェクト 6: 動きの検出

必要な材料

  • ステップ 1. 以下のものを準備します:
Pi PicoGrove Shield for Pi Picogrove servoGrove Mini FanGrove mini pir motion sensor
enter image description hereenter image description hereenter image description hereenter image description hereenter image description here
今すぐ入手今すぐ入手今すぐ入手今すぐ入手今すぐ入手
  • ステップ 2. Grove servo を Base Shield のアナログピン 1 に接続します。
  • ステップ 3. Grove Mini fan を Base Shield のポート D16 に接続します。
  • ステップ 4. Grove Mini pir motion sensor を Base Shield のポート D18 に接続します。
  • ステップ 5. Grove Shield for Pi Pico を Pi Pico に挿し込みます。
  • ステップ 6. Pi Pico を USB ケーブルで PC に接続します。

ソフトウェア

demo1 のソフトウェアの部分を参照してください。

まず、以下のコードを Thonny IDE にコピーします。

from machine import Pin,ADC,PWM
from time import sleep
import utime

miniFun = Pin(16, Pin.OUT)
miniPir = Pin(18, Pin.IN)

pwm_Servo=PWM(Pin(27))
pwm_Servo.freq(500)
Servo_Val =0

while True:

if miniPir.value() == 1 :
miniFun.value(1)

while Servo_Val<65535:
Servo_Val=Servo_Val+50
utime.sleep_ms(1)
pwm_Servo.duty_u16(Servo_Val)
while Servo_Val>0:
Servo_Val=Servo_Val-50
utime.sleep_ms(1)
pwm_Servo.duty_u16(Servo_Val)

else :
miniFun.value(0)

pwm_Servo.duty_u16(0)



それでは、緑色のボタンをクリックしてデモコードを実行してください。 すると、下図のように、手を pir sensor の前でさっと動かすと grove mini fan と grove servo が動作します。

回路図オンラインビューア

リソース

コース用リソース

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに合わせて選べる、いくつかのコミュニケーションチャネルをご用意しています。

Loading Comments...