pb90代码如何连接sql2008r2_如何创建Raspberry Pi灯光秀

a9b3a2e3f91b2a2a166cdcd7c0627bf3.png

树莓派是一个很好的硬件学习平台,但它却不能以开箱即用的方式使用模拟电子元件。默认情况下,从模拟操纵杆到电位器等很多都是不可以使用的,但幸运的是,添加昂贵的芯片可以解决该问题。MCP3008 ADC(模数转换器)用于将模拟电子设备连接到Raspberry Pi的40个GPIO引脚,使您能够使用各种附加组件。

为了向您展示如何利用模数转换以及如何进行有趣的灯光秀,我们创建了一个项目,该项目将读取三个电位计,并使用这些刻度盘来控制Adafruit NeoPixel的颜色。下面是使用模拟输入创建彩色Raspberry Pi灯光秀的方法。

使用Raspberry Pi进行灯光秀需要做什么:

  • 树莓派。可以使用任何型号
  • 8GB+微型SD卡上的Raspberry Pi OS
  • MCP3008模数(A / D)转换器用于读取模拟信号并将其转换为Pi可以理解的数字信号
  • Adafruit NeoPixels WS2812B LED灯。我们使用了Adafruit的12像素LED环
  • 焊接设备。仅需将跳线焊接到NeoPixels上即可。
  • 400孔面包板。用于搭建电路
  • 3个10k电位器。这些是用作输入的拨盘
  • 6x公对母跳线
  • 13x公对公跳线

如何使用模拟输入创建Rasperry Pi灯光秀

1. 将MCP3008插入面包板,使插脚跨过中央切口。芯片上的缺口应面向面包板的短端。MCP3008的16个引脚中左下角为1引脚,然后右下角是8引脚。针脚9在右上角,针脚16在左上角。

63c6a7144a25c68dbb3c2a52cfc4b6ad.png

2. 使用母对母跳线将MCP3008连接到Raspberry Pi GPIO。首先用母对公线将3.3V和GND引脚连接到面包板的+和-轨。然后使用公对公电线将电源轨连接到MCP3008引脚以获取电源和GND。

bfba1f68d2b0eac40b9f896b0460628e.png

3. 使用母对公跳线将MCP3008连接到Raspberry Pi

fd62813ebe4ff7d87f042dd9bcd42c80.png

4. 插入电位计,并使用公对公跳线将它们连接到MCP3008

3781ca0fb69c40a1329a3cff7fd5f789.png

5. 将三根导线焊接到Adafruit NeoPixels的PWR,GND和In。PWR连接到试验板上的+导轨,GND连接到-导轨。“ IN”连接到Raspberry Pi上的GPIO 18。

bd38df3ecde84306b2fda04d251e9547.png

6. 编辑/boot/config.txt文件。

sudo nano /boot/config.txt

7. 将此行添加到文件底部。它将使GPIO与NeoPixels对话,但将禁用通过耳机插孔的音频输出。完成后按CTRL + X,Y和Enter键退出。重新启动Pi,以使更改生效。

hdmi_force_hotplug=1

8. 为NeoPixels安装Python 3模块。

sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel

9. 打开在编程菜单中找到的Thonny IDE

10. 添加以下行以导入模块,这些模块使代码可以与NeoPixels一起使用,暂停代码并使用MCP3008板。

import boardimport neopixelfrom time import sleepfrom gpiozero import MCP3008

11. 创建三个变量r,g,b,它们将存储MCP3008输出的原始值。

r = MCP3008(channel=0)g = MCP3008(channel=1)b = MCP3008(channel=2)

12. 创建一个称为pixels的对象。这将使Python代码能够与NeoPixels一起使用。为此,我们传递了正在使用的GPIO引脚D18和链/环中NeoPixels的数量16。

pixels = neopixel.NeoPixel(board.D18, 16)

13. 创建一个 While True:循环,它将连续运行代码。

while True:

14. 创建三个变量red,green和blue,它们将存储电位计返回的值。该值介于0.0到1.0之间,为了将其转换为NeoPixels可以理解的值,我们将该值乘以255。

red = round(r.value * 255)green= round(g.value * 255)blue = round(b.value * 255)

15. 将返回的值打印到Python shell。

print(red,green,blue)

16. 创建一个for循环,它将更新环中的所有16个像素以显示当前的颜色。

for i in range(16):pixels[i] = (red, green, blue)

17. 在代码中添加0.1秒的暂停时间。

sleep(0.1)

18. 将代码另存为analog-inputs.py。

19. 在终端中使用sudo运行代码。

sudo python3 analog-inputs.py

20. 旋转电位器以控制NeoPixels的颜色。

完整的代码清单

这是此项目中使用的所有代码。

import boardimport neopixelfrom time import sleepfrom gpiozero import MCP3008r = MCP3008(channel=0)g = MCP3008(channel=1)b = MCP3008(channel=2)pixels = neopixel.NeoPixel(board.D18, 16)while True:    red = round(r.value * 255)    green= round(g.value * 255)    blue = round(b.value * 255)    print(red,green,blue)    for i in range(16):        pixels[i] = (red, green, blue)    sleep(0.1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值