在本节和以后的章节中,将会有一些在 VS 代码编辑器中使用特殊设备模拟的例子和问题。
我们将使用模拟来拥有一个 Circuit Playground Express 设备,并学习与该设备进行交互。 我们将能够打开不同颜色的灯,以及许多其他很好的例子。
注意 访问 Adafruit 网站,找到许多令人惊叹的硬件和学习材料。
Circuit Playground Express
以上是真实硬件的图像,在模拟中我们将使用,我们可以使用下面的:
- 绿色 LED
- 红色 LED
- 按钮 A 和 B
- 滑块开关
- 扬声器:播放 .wav 文件
- 10 NeoPixels
- 光传感器
- 运动传感器
- 加速度检测
- 设备抖动检测
- 温度传感器
- 7 电容式触摸传感器
用红色打开板上的所有 NeoPixels
# import CPX library
from adafruit_circuitplayground.express import cpx
import time
RED = (255,0, 0)
while True:
# start your code here
cpx.pixels.fill(RED)
在代码的顶部,我们正在编写一行以 from 开头的行,以获取可以与设备交互的 Python 模块,如 cpx。 下一行,我们还要导入 time 模块,稍后将使用它。
然后我们将 RED 变量中的 colour RED 定义为(R, G, B)元组。
接下来,while True: line 启动一个循环,它将继续运行,在内部使用相同的缩进,我们调用函数 cpx.pixels.fill,并使用所需的颜色(在本例中为 RED)。
你现在可以编写一个代码,将设备上的所有 NeoPixel 灯变为黄色吗? 为此,你必须搜索黄色的 RGB 值。
黄灯解决方案
from adafruit_circuitplayground.express import cpx
import time
YELLOW = (255, 255, 0)
while True:
# start your code here
cpx.pixels.fill(YELLOW)
学习 time.sleep
time 模块有一个重要的函数 sleep,它占用代码休眠的时间(意味着它什么都不做),然后执行下一条指令。 我们可以使用它来保持灯光打开或关闭一段时间。 以下面的例子为例,我们让 NeoPixels 保持开启 1 秒,然后关闭它们(RGB 值 (0,0,0))0.5 秒。
# import CPX library
from adafruit_circuitplayground.express import cpx
import time
WHITE = (255, 255, 255)
OFF = (0, 0, 0)
while True:
# start your code here
cpx.pixels.fill(WHITE)
time.sleep(1)
cpx.pixels.fill(OFF)
time.sleep(0.5)
RGB 问题
你能否修改代码,使其在所有 NeoPixel 上显示红色,然后显示绿色,然后显示蓝色? 它看起来像下图。
RGB 解决方案
# import CPX library
from adafruit_circuitplayground.express import cpx
import time
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
while True:
cpx.pixels.fill(RED)
time.sleep(1)
cpx.pixels.fill(GREEN)
time.sleep(1)
cpx.pixels.fill(BLUE)
time.sleep(1)