矽递科技(Seeed Studio)的 Grove 系列是一个拥有数百款模块的庞大家族。借助树莓派 Grove Base Hat 扩展板,可以让用户得以方便地使用 Grove 的生态系统。

Grove 生态系统

矽递科技(英文 Seeed Studio)从 2010 年开始研发了 Grove 系统并开始不断迭代更新和扩充 ,它采取积木式的方式来组装电子元件。与基于跳线或焊接的系统相比,连接、测试和构建都变得更容易。与借助传统的面包板和各种电子元件组装项目的方法相比,Grove 大大简化了学习过程和提高了易用性。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图1

Grove 系统由基本处理单元(类似 Arduino UNO 板就具备处理单元)和各种带有标准化连接器的模块(Grove,树枝)组成,Grove 扩展板可以轻松通过标准的 Grove 模块接口和 Grove 连接线(如下图所示)连接多个 Grove 模块。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图2
Grove LED灯模块,上面有一个四针的 Grove 接口
image.png
Grove 连接线
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图4
Grove 的扩展板

每个 Grove 模块通常只提供1个功能,比如一个简单的按钮或某个复杂的传感器。至今 Grove 家族已扩展到 300多个模块,几乎涵盖了常用开源硬件的方方面面。
image.png
以网友的安全门禁项目为例,使用了多个 Grove 模块,通过 Seeeduino lotus (整合了 Arduino 兼容主控和 Grove 扩展板的 Arduino 兼容板)使用 Grove 线进行简单连接,然后编程即可使用。
m120180207145546_oc3tltcoy4.jpg
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图7
项目细节见:Security Access Using Seeeduino Lotus(用 Seeeduino Lotus 做的安全门禁)
[

](https://www.hackster.io/limanchen/security-access-using-seeeduino-lotus-7eb90f)

Grove Base Hat 介绍

专用于树莓派的Grove Base Hat (以下简称 Hat )降低了在树莓派上使用 Grove 传感器的门槛。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图8

规格

工作电压 3.3V
单片机 STM32/MM32
ADC 12位8通道
Grove 端口 6×数字
4×模拟
3×I2C
1×PWM
1×UART
树莓派通信总线 I2C
I2C 地址 0x04/0x08

端口介绍

树莓派教程翻译-22.jpg
如下图,Hat 上配备了数字、模拟、I2C、PWM、UART 端口来满足你的需求。甚至,在内置 MCU 的帮助下树莓派还可以使用 12 位 8 通道 ADC(Analog-to-Digital Converter,指将模拟信号转化为数字信号的转换器)。
目前,已有60多个 Grove 模块支持用于 Hat,且还在持续增加中。

  • GPIO(通用输入/输出接口)端口

GPIO 在《第六章 用 Scratch 和 Python 进行物理计算》已经有介绍。Hat 上的 GPIO 与树莓派上的相同,这意味着即使你将 Hat 安装在树莓派上,也可以继续使用树莓派的 GPIO,没有任何差别。不过,要注意如果 Hat 上连接了Grove 模块,那对应的 GPIO 引脚就不能重复使用了。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图10
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图11

  • I2C 端口

这个板子上有三个 I2C 端口,它们都直接连接到树莓的 I2C 引脚上。你可以把这个部件看作是一个 I2C 集线器。Seeed Studio 的新模块大多数都有 I2C 接口,你会发现这三个端口非常有用。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图12
树莓派教程翻译-27.jpg

  • 数字端口

Hat 上有6个数字 Grove 接口,通常 Grove 线的黄线是信号线,所以我们以黄线对应的引脚数字命名 Grove 端口:D5/D16/D18/D22/D24/D26。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图14
树莓派教程翻译-25.jpg

  • 模拟端口

树莓派中没有 ADC 接口,所以它不能直接使用模拟传感器。在 Hat 内置 MCU STM32 的帮助下,Grove 接口可以作为一个外部的12位 ADC 工作,这意味着你可以在树莓派上使用模拟传感器。一共有4个模拟 Grove 接口可用。
模拟传感器将模拟电压输入12位 ADC。在 ADC 将模拟数据转换成数字数据后,它通过 I2C 接口将数字数据输入到树莓派。第九章 用 Grove Base Hat 扩展 Grove 模块 - 图16

  • PWM(脉冲宽度调制)端口

PWM 是指用 MCU 的数字输出来对模拟电路进行控制,是一种将模拟信号电平进行数字编码的方法。 端口连 Grove PWM 接到 GPIO12 引脚(PWM 0)和 GPIO 13引脚(PWM 1),这是树莓派的硬件 PWM 引脚,此外,你可以使用所有 GPIO 针脚作为软 PWM 引脚。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图17
树莓派教程翻译-23.jpg

提示

  • 与硬件 PWM 相比,软件 PWM 并不那么精确,在高频率下会有问题。
  • GPIO 18引脚也被标记为 PWM0,实际 GPIO12引脚和 GPIO 18引脚共享同一个 PWM 通道,所以它们不能设置为不同的速率。
  • 音频插座的输出也使用 PWM 0 和 PWM 1,所以你不能在该插座上有音频输出的同时使用 PWM。
  • UART(通用异步收发传输器)端口

Grove UART 端口连接到 GPIO14 (UART0 TX) 和 GPIO 15 (UART0 RX)。UART 通常用于树莓派上,作为通过 GPIO 控制树莓派的一种方便形式,或者从串行控制台(默认启用)访问内核启动信息。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图19
树莓派教程翻译-24.jpg

  • SWD 端口

我们使用 SWD 端口将固件刻录到 Hat 上。此外,你可以在这部分看到3个 GPIO 引脚,即 9/10/11号 引脚。这三个针脚没有被任何 Grove 接口使用,你可以自由地使用它们而不用担心引脚冲突。
第九章 用 Grove Base Hat 扩展 Grove 模块 - 图21
树莓派教程翻译-26.jpg

安装 Grove Base Hat

在你开始之前,你还需要将 Grove Base Hat 连接到你的树莓派上。

警告!

只有在树莓派关闭并断开电源的情况下,才可以将从树莓派上插入或拔出硬件。在安装时,一定要注意保持 HAT的平坦,并在按下它之前仔细检查它是否与 GPIO 头的针脚对齐。

将 Hat 扩展版连接到你的树莓派上。扩展版上的插座可以正好套在树莓派上的所有 GPIO 引脚上,沿着引脚方向按下即可牢牢地插在树莓派上。完成后扩展版就盖在了树莓派之上。
pi-grove-hat-fitting.gif

Grove.py 库

想要在树莓派上使用 Grove 传感器,我们要先安装 Seeed grove.py库。Grove.py 依赖于树莓派系统内的多种硬件接口库。 下图便于你理解在树莓派上使用 Grove 模块时,软硬件关系:
未标题-1-02.jpg

安装旧版树莓派系统

因为环境依赖关系,目前仅支持在旧版树莓派系统上使用 grove.py 库。

  1. 点击下载 旧版树莓派系统 10(Buster) 2020-08-20 ,并解压得到如下文件:image.png

  2. 使用树莓派镜像烧录器,将下载的系统烧录到 microSD卡上。

image.png

提示

树莓派镜像烧录器详见《附录A 将操作系统安装到 microSD 卡上》

安装Grove.py

来自命令行界面的问候

在安装grove.py库之后,可以在命令行界面中使用一些前缀带grove_的命令,例如grove_ledgrove_buttongrove_ultrasonic_ranger等。
对于使用数字输入/输出的 Grove 模块,需要在命令后面输入对应的 Grove 端口号(如 D5,则输入 5);
对于使用模拟输入/输出的 Grove 模块,需要在命令后面输入对应的 Grove 端口号(如 A0,则输入 0);
对于使用 I2C 的 Grove 模块,使用树莓派板子上的 I2C 1(为默认总线),无需在命令后面添加引脚号;
对于使用 PWM 的 Grove 模块,使用树莓派上的 GPIO 12 引脚 ,无需在命令后面添加引脚号;

  1. 接前序步骤,在命令行中输出 cd grove,表示进入名为 grove 的文件夹。如果报错,可以尝试输入完整的路径cd ~/grove.py/grove,再按下回车键。界面最后一行显示如下:

image.png
在命令行界面中,使用用 Grove 模块都要在cd ~/grove.py/grove路径下进行。

提示

命令行界面的基础操作说明详见《附录C 命令行界面》。

  1. 在命令行中继续输入pythone3 传感器文件.py 端口编号 #I2C、PWM 模块可不输入端口编号,即可使得模块工作。

可用的 Grove 模块及连接可查看《附录 I Grove base hat 兼容模块》

来自图形界面的问候

  1. 分别连接 Grove LED 和 Grove Botton 至 Hat 的 D5 和 D22 端口。
  2. 点击 树莓派图标-编程-Thonny Python IDE,继续点击image.png新建一个文件,然后保存命名为“GPIO 演示”。然后输入以下内容: ```python import time from grove.gpio import GPIO

led = GPIO(5, GPIO.OUT) button = GPIO(22, GPIO.IN)

while True: if button.read(): led.write(1) else: led.write(0) time.sleep(0.1)

  1. 3. 点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647311821957-cc991ee9-276e-4957-9d8d-0ff8c0df819d.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=25&id=Np9tW&name=image.png&originHeight=39&originWidth=43&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1296&status=done&style=none&taskId=u2f80e4aa-d56e-4f88-aa04-2fabb484111&title=&width=27.22222137451172)运行按钮, 程序开始运行:按下 button 模块,LED 灯亮;松开 button 模块,LED 灯灭。
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647416473881-77d57c3b-1cb9-4b74-bdba-f547206b8666.png#clientId=u709efbd1-17b1-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=473&id=u8b1dbf84&margin=%5Bobject%20Object%5D&name=image.png&originHeight=568&originWidth=759&originalType=binary&ratio=1&rotation=0&showTitle=false&size=101490&status=done&style=none&taskId=ua20a29d7-39b0-4c28-bc73-537c22700c6&title=&width=632.4999748667091)
  3. <a name="W7cDx"></a>
  4. ## Grove 的 Hello World —— I2C端口示例
  5. 请按下图所示,连接 Grove base hat Grove OLED display 0.96" 。<br />![](https://cdn.nlark.com/yuque/0/2022/jpeg/2611466/1647253250772-d28c92e2-9548-4d02-a68b-e7c1e17fcbf7.jpeg#clientId=u76653af7-cadd-4&crop=0&crop=0.1984&crop=1&crop=0.8088&from=paste&height=768&id=u59d807b4&margin=%5Bobject%20Object%5D&originHeight=768&originWidth=1024&originalType=url&ratio=1&rotation=0&showTitle=false&status=done&style=none&taskId=uad754a07-7a3d-440f-9454-012104fff76&title=&width=1024)
  6. <a name="hMo2M"></a>
  7. #### 用命令行界面中控制 OLED 屏
  8. 1. 在命令行中输出 `cd grove`,表示进入名为 grove 的文件夹。如果报错,可以尝试输入完整的路径
  9. `cd ~/grove.py/grove`,在按下回车键。界面最后一行显示如下:
  10. ```shell
  11. pi@raspberrypi:~/grove.py/grove $
  1. 继续输入 python3 grove_oled_display_128x64.py,然后敲击回车键。输入正确,界面最后两行显示如下:
    1. pi@raspberrypi:~/grove.py/grove $ python3 grove_oled_display_128x64.py
    2. pi@raspberrypi:~/grove.py/grove $
    看起来似乎什么都没有发生, 但是如果你检查你的 OLED 屏,你可以找到网络世界中最有名的一句话!😄

在图形界面中控制 OLED 屏

  1. 点击树莓派图标-编程-Thonny Python IDE,继续点击image.png新建一个文件,然后保存命名为“Hello world”。然后输入以下内容: ```plsql import time from grove.gpio import GPIO

buzzer = GPIO(12, GPIO.OUT)

buzzer.write(1) time.sleep(1) buzzer.write(0)

  1. 2. 点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647311821957-cc991ee9-276e-4957-9d8d-0ff8c0df819d.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=25&id=hbG8s&name=image.png&originHeight=39&originWidth=43&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1296&status=done&style=none&taskId=u2f80e4aa-d56e-4f88-aa04-2fabb484111&title=&width=27.22222137451172)运行按钮,如果输入正确,你会在 OLED 显示屏上看到 “Hello world!”
  2. <a name="nzLLR"></a>
  3. ## 超声波传感器感应距离——数字端口示例
  4. 请按下图所示,将超声波传感器( Ultrasonic sensor)连接到 Grove base hat D5端口。<br />![](https://cdn.nlark.com/yuque/0/2022/jpeg/2611466/1647304131558-e4463770-f07d-427d-9aa1-8ec9591928c5.jpeg#clientId=u3390a2ee-fe2b-4&crop=0&crop=0.0929&crop=1&crop=0.807&from=paste&height=768&id=MxHfA&margin=%5Bobject%20Object%5D&originHeight=768&originWidth=1024&originalType=url&ratio=1&rotation=0&showTitle=false&status=done&style=none&taskId=udf2d303c-bd8d-4607-88dc-15536e8b736&title=&width=1024)
  5. <a name="zRQ74"></a>
  6. #### 在命令行界面中控制超声波传感器
  7. 1. 确认当前文件路径为 `~/grove.py/grove`,如果不在该路径中请输入:`cd ~/grove.py/grove`,然后按一下回车键,输入正确,界面最后两行显示如下:
  8. ```shell
  9. pi@raspberrypi:~/grove.py/grove $
  1. 继续输入python3 grove_ultrasonic_ranger.py 5 6,然后敲击回车键。输入正确,你会看到与下图类似的内容:命令行界面中不断地在更新一些距离数据。这些数据其实是超声波传感器不断地在侦测与其前方物体的距离,尝试用手靠近、远离传感器,你会观察到数据的变化。

    1. 按下 **Ctrl+C**,将停止检测。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647305044290-d0589db8-0e27-4713-918e-9cba3eedc9df.png#clientId=u3390a2ee-fe2b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=492&id=yir4S&margin=%5Bobject%20Object%5D&name=image.png&originHeight=554&originWidth=763&originalType=binary&ratio=1&rotation=0&showTitle=false&size=158255&status=done&style=none&taskId=ubab1f76d-5d99-4f84-80e7-103b0d0e803&title=&width=678.2222222222222)<br />超声波传感器检测的数据持续显示在命令行界面中。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647305379412-d493dcb3-9d48-45c1-9b74-c749e3b3e84b.png#clientId=u3390a2ee-fe2b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=476&id=u3ae23ddb&margin=%5Bobject%20Object%5D&name=image.png&originHeight=535&originWidth=767&originalType=binary&ratio=1&rotation=0&showTitle=false&size=158867&status=done&style=none&taskId=uf0cd3c32-b3b7-4ce4-b3a9-1c755cc82c2&title=&width=681.7777777777778)<br />按下 Ctrl+C 后,超声波传感器停止检测。

注意

在使用大多数 Grove 模块时,你需要添加引脚编号参数,比如 grove_ultrasonic_ranger 5 6,5和6是GPIO/BCM引脚。你可以在 Hat 上任一数字端口旁边找到对应的数字丝印。 小任务: 尝试将超声波连接到 D16引脚,并在命令行中输入grove_ultrasonic_ranger 16 17,然后按下回车键。

在图形界面中控制超声波传感器

  1. 点击 树莓派图标-编程-Thonny Python IDE,继续点击image.png新建一个文件,然后保存命名为“距离检测”。然后输入以下内容: ```shell from grove.grove_ultrasonic_ranger import GroveUltrasonicRanger import time

sonar = GroveUltrasonicRanger(5) # pin5, slot D5

print(‘Detecting distance…’) while True: print(‘{} cm’.format(sonar.get_distance())) time.sleep(1)

  1. 2. 点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647311821957-cc991ee9-276e-4957-9d8d-0ff8c0df819d.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=25&id=u8363de11&name=image.png&originHeight=39&originWidth=43&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1296&status=done&style=none&taskId=u2f80e4aa-d56e-4f88-aa04-2fabb484111&title=&width=27.22222137451172)运行按钮,你会看到在 shell 区域,距离检测数据每1秒更新一次。
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647312320824-465468e1-c4e9-4256-8ad2-199c67d14823.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=692&id=uff3083df&margin=%5Bobject%20Object%5D&name=image.png&originHeight=779&originWidth=989&originalType=binary&ratio=1&rotation=0&showTitle=false&size=257475&status=done&style=none&taskId=u55d441ec-da65-45d6-be0a-00ed0797e5c&title=&width=879.1111111111111)<br />超声波传感器检测的数据持续显示在命令行界面中。点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647312608356-d693ca7c-a282-4381-8c5e-96a825778315.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=21&id=uf1b52c38&name=image.png&originHeight=40&originWidth=40&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1086&status=done&style=none&taskId=ub9d21e25-0744-4ef6-a288-25583d18c0a&title=&width=20.555557250976562)停止按钮可以停止检测。<br />恭喜!你完成了在图形界面中控制超声波的任务!
  3. <a name="ZCukT"></a>
  4. ## 噪音监测——模拟端口示例
  5. 请按下图所示,将声音传感器传感器( Sound sensor)连接到 Grove base hat A0端口。<br />![](https://cdn.nlark.com/yuque/0/2022/jpeg/2611466/1647318114307-f3f0121f-b857-4e2e-8f02-bb5517b3f6ac.jpeg#clientId=ue0d0a646-6d56-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=uabb1cb5e&margin=%5Bobject%20Object%5D&originHeight=768&originWidth=1024&originalType=url&ratio=1&rotation=0&showTitle=false&status=done&style=none&taskId=udb9dbff7-4e33-4f93-9ba4-f8652d07051&title=)
  6. <a name="kZNAv"></a>
  7. ### 在命令行界面中检测音量大小
  8. 1. 确认当前文件路径为 `~/grove.py/grove`,如果不在该路径中请输入:`cd ~/grove.py/grove`,然后按一下回车键,输入正确,界面最后两行显示如下:
  9. ```shell
  10. pi@raspberrypi:~/grove.py/grove $
  1. 继续输入python3 grove_sound_sensor.py 0,然后敲击回车键。输入正确,你会看到与下图类似的内容:命令行界面中不断地在更新一些声音数据。这些数据其实是超声波传感器不断地在侦测周围环境的声音大小,数值范围为0-1000,尝试用手敲击桌面,或者假装咳嗽,你会观察到数据的变化。

    1. 按下 **Ctrl+C**,将停止检测。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647318288444-f8f4e168-e71c-4880-9c84-665daf02811b.png#clientId=ue0d0a646-6d56-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=464&id=u904ea261&margin=%5Bobject%20Object%5D&name=image.png&originHeight=522&originWidth=762&originalType=binary&ratio=1&rotation=0&showTitle=false&size=103401&status=done&style=none&taskId=u40032d98-1986-4a46-a99c-663a4b0feb4&title=&width=677.3333333333334)<br />声音传感器检测的数据持续显示在命令行界面中。<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647318312684-b15f0994-8a0d-4de1-abea-493302077cca.png#clientId=ue0d0a646-6d56-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=460&id=u066f5dd9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=518&originWidth=761&originalType=binary&ratio=1&rotation=0&showTitle=false&size=131019&status=done&style=none&taskId=u48afcf12-1ef7-446a-b603-c73d51230a2&title=&width=676.4444444444445)<br />按下 Ctrl+C 后,声音传感器停止检测。

    在图形界面中检测音量大小

  2. 点击 树莓派图标-编程-Thonny Python IDE,继续点击image.png新建一个文件,然后保存命名为“音量检测”。然后输入以下内容: ```python from grove.grove_sound_sensor import GroveSoundSensor import time

value = GroveSoundSensor(0) # pin0, slot A0

print(‘Detecting sound value…’) while True: print(‘{} cm’.format(value.sound)) time.sleep(1)

  1. 2. 点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647311821957-cc991ee9-276e-4957-9d8d-0ff8c0df819d.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=25&id=nndT4&name=image.png&originHeight=39&originWidth=43&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1296&status=done&style=none&taskId=u2f80e4aa-d56e-4f88-aa04-2fabb484111&title=&width=27.22222137451172)运行按钮,你会看到在 shell 区域,距离检测数据每1秒更新一次。
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647738424937-fb61fe4a-1209-4d55-b777-2f75c9ae5daf.png#clientId=uf381bbf5-4352-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=505&id=u69ceb3c8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=606&originWidth=854&originalType=binary&ratio=1&rotation=0&showTitle=false&size=124519&status=done&style=none&taskId=u08381e5e-a57d-418c-9149-c025061f6d3&title=&width=711.6666383875752)<br />超声波传感器检测的数据持续显示在命令行界面中。点击![image.png](https://cdn.nlark.com/yuque/0/2022/png/2611466/1647312608356-d693ca7c-a282-4381-8c5e-96a825778315.png#clientId=ub9de45a1-d467-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=21&id=kozNm&name=image.png&originHeight=40&originWidth=40&originalType=binary&ratio=1&rotation=0&showTitle=false&size=1086&status=done&style=none&taskId=ub9d21e25-0744-4ef6-a288-25583d18c0a&title=&width=20.555557250976562)停止按钮可以停止检测。<br />恭喜!你完成了在图形界面中控制超声波的任务!
  3. <a name="fEv8f"></a>
  4. ## 奏响 Grove 蜂鸣器—— PWM端口示例
  5. <a name="iVsnT"></a>
  6. ### 在命令行界面中奏响蜂鸣器
  7. 1. 确认当前文件路径为 `~/grove.py/grove`,如果不在该路径中请输入:`cd ~/grove.py/grove`,然后按一下回车键,输入正确,界面最后两行显示如下:
  8. ```shell
  9. pi@raspberrypi:~/grove.py/grove $
  1. 继续输入python3 passive_buzzer.py,然后敲击回车键。输入正确,你会看到蜂鸣器响起一秒后停止播放。

image.png

在图形界面中奏响蜂鸣器

  1. 点击 树莓派图标-编程-Thonny Python IDE,继续点击image.png新建一个文件,然后保存命名为“奏响蜂鸣器”。然后输入以下内容: ```shell import time from grove.gpio import GPIO

buzzer = GPIO(12,GPIO.OUT) while True: buzzer.write(1) time.sleep(1) buzzer.write(0) time.sleep(3) ```

  1. 点击image.png运行按钮,你会听到蜂鸣器每隔3秒,响1秒。

image.png