Skip to main content

Grove Basic Kit for Raspberry Pi Pico

enter image description here

Raspberry Pi Pico 是一款新的流行的低成本、高性能微控制器板,那么如何将 Grove 传感器集成到其中呢?Grove 扩展板完美地解决了这个问题。

Grove Shield for Pi Pico v1.0 是 Raspberry Pi Pico 的即插即用扩展板,集成了各种类型的 Grove 连接器,包括 2×I2C、3×模拟、2×UART、3×数字端口、SWD 调试接口和 SPI 引脚,3.3v/5v 可选电源开关。它能够以简单快速的方式构建原型和项目,无需跳线和面包板,您可以探索 Pico 的无限可能性。该扩展板是一个可堆叠的附加板,充当 Pi Pico 和 Seeed 的 Grove 系统之间的桥梁。

规格参数

参数数值/范围
工作电压3.3/5V
工作温度-25℃ 到 +85℃
模拟端口3
数字端口3
UART 端口2
I2C 端口2
尺寸56mm x56mm

兼容板卡

该基础扩展板已测试并完全兼容 Pi Pico

硬件概述

  • 1-模拟端口:包括 3 个模拟端口,A0、A1、A2。

  • 2-数字端口:包括 3 个数字端口,D16、D18、D20。

  • 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 蜂鸣器连接到 Grove 扩展板的 A1 端口。

步骤 3. 将 Grove 旋转角度传感器连接到 Grove 扩展板的 A0 端口。

步骤 4. 将 Grove 扩展板插入 Pi Pico。

步骤 5. 使用 USB 线缆将 Pi Pico 连接到您的 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输入(旋钮电位器)连接到A0
pwm = PWM(Pin(27)) # DAC输出(蜂鸣器)连接到A1
pwm.freq(10000)

while True:
val = adc.read_u16() # 读取A0端口ADC值(65535~0)
# 驱动蜂鸣器,当ADC值小于300时关闭蜂鸣器
if val > 300:
pwm.freq(int(val / 10))
pwm.duty_u16(10000)
else:
pwm.duty_u16(0)

print(val)
sleep(0.05)

现在,旋转 Grove 旋转角度传感器,当您调整角度时,您将听到蜂鸣器发出不同的声音。

项目 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 的 I2C0 端口。

步骤 4. 将 Grove Shield 插入 Pi Pico。

步骤 5. 使用 USB 线缆将 Pi Pico 连接到您的 PC。

软件设置

请参考演示 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连接到I2C1
oled = SSD1306_I2C(128, 64, i2c)
dht2 = DHT(18) # 温湿度传感器连接到D18

while True:
temp, humid = dht2.readTempHumid() # 读取温度和湿度
'''I2C端口测试和OLED显示测试'''
oled.fill(0) # 清屏
oled.text("Temp: " + str(temp), 0, 0) # 在第1行显示温度
oled.text("Humid: " + str(humid), 0, 8) # 在第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,点击 文件 -> 另存为 -> MicroPython 设备,并在您的设备上以 dht11.py 的名称保存文件。

  1. 重复相同的过程,将 ssd1306.py 保存到您的 MicroPython 设备。

运行项目

一旦两个文件都保存到您的 MicroPython 设备,通过按下 Thonny 中的绿色 运行 按钮来运行演示代码。

您现在应该能看到温度和湿度显示在 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 按钮连接到底板的数字引脚 18。
  • 步骤 3. 将 Grove LED 连接到底板的 D16 端口。
  • 步骤 4. 将 Grove 继电器连接到底板的 D20 端口。
  • 步骤 5. 将 Grove Shield for Pi Pico 插入 Pi Pico。
  • 步骤 6. 通过 USB 线缆将 Pi Pico 连接到 PC。

软件

请参考演示 1 的软件部分。

首先将下面的代码复制到 Thonny IDE 中。

from machine import Pin

button = Pin(18, Pin.IN, Pin.PULL_UP)# 按钮连接到 D18
button.irq(lambda pin: InterruptsButton(),Pin.IRQ_FALLING)#设置按键中断
led = Pin(16, Pin.OUT)#led 连接到 D16
relay = Pin(20, Pin.OUT)
tmp = 0
'''按键中断函数,按下按键时改变灯的状态'''
def InterruptsButton(): #按钮输入
global tmp
tmp = ~tmp
led.value(tmp)
relay.value(tmp)
while True:
pass

现在请点击绿色按钮运行演示代码。

然后您可以按下 Grove 按钮,您可以控制 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。

软件

请参考演示 1 的软件部分。

首先将以下代码复制到 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,点击 文件->另存为->MicroPython 设备。

在文件名列中输入 ws2812.py,点击"确定",然后文件就保存在 文件->打开->MicroPython 设备中。

enter image description here

将文件保存到您的 MicroPython 设备后,现在请点击绿色按钮运行演示代码。 然后您可以看到 RGB LED WS2813 mini 闪烁美丽的颜色,如下所示。

enter image description here

项目 5:检测声音和光线

所需材料

  • 步骤 1. 准备以下物品:
Pi PicoGrove Shield for Pi Picogrove 声音传感器Grove 光线传感器Grove-16x2 LCD
enter image description hereenter image description hereenter image description hereenter image description hereenter image description here
立即获取立即获取立即获取立即获取立即获取
  • 步骤 2. 将 Grove 声音传感器连接到 Base Shield 的模拟引脚 0。
  • 步骤 3. 将 Grove 光线传感器连接到 Base Shield 的 A1 端口。
  • 步骤 4. 将 Grove 16X2 lcd 连接到 Base Shield 的 I2C1 端口。
  • 步骤 5. 将 Grove Shield for Pi Pico 插入 Pi Pico。
  • 步骤 6. 通过 USB 线缆将 Pi Pico 连接到 PC。

软件

请参考演示1的软件部分。

首先将下面的代码复制到 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,点击 文件->另存为->MicroPython 设备。

在文件名列中输入 LCD1602.py,点击"确定",然后文件就保存在 文件->打开->MicroPython 设备中。

note

在这个示例中,我们使用的 LCD1602 版本是单色背光版本,如果您需要控制全彩背光版本的 LCD1602,请查看此库文件中的函数以了解如何使用它。

enter image description here

将文件保存到您的 MicroPython 设备后,现在请点击绿色按钮运行演示代码。 然后您可以获得如下所示的声音传感器和光传感器数据。

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. 通过 USB 线缆将 Pi Pico 连接到 PC。

软件

请参考演示1软件部分。

首先将下面的代码复制到 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 传感器前挥过时,您可以看到 grove mini fan 和 grove servo 运行,如下所示。

原理图在线查看器

资源

课程资源

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...