|如何创建Raspberry Pi灯光秀

文章图片

文章图片

文章图片
树莓派是一个很好的硬件学习平台 , 但它却不能以开箱即用的方式使用模拟电子元件 。 默认情况下 , 从模拟操纵杆到电位器等很多都是不可以使用的 , 但幸运的是 , 添加昂贵的芯片可以解决该问题 。 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公对公跳线
【|如何创建Raspberry Pi灯光秀】2. 使用母对母跳线将MCP3008连接到Raspberry Pi GPIO 。 首先用母对公线将3.3V和GND引脚连接到面包板的+和-轨 。 然后使用公对公电线将电源轨连接到MCP3008引脚以获取电源和GND 。
3. 使用母对公跳线将MCP3008连接到Raspberry Pi 。
4.插入电位计 , 并使用公对公跳线将它们连接到MCP3008 。
5.将三根导线焊接到Adafruit NeoPixels的PWR , GND和In 。 PWR连接到试验板上的+导轨 , GND连接到-导轨 。 “ IN”连接到Raspberry Pi上的GPIO 18 。
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 neopixel
from time import sleep
from 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(redgreenblue)
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 board
import neopixel
from time import sleep
from gpiozero import MCP3008
r = 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(redgreenblue)
for i in range(16):
pixels[i
= (red green blue)
sleep(0.1)
推荐阅读
- 小龙虾|三农探析:池塘养殖小龙虾如何高产?高产养殖技术全解析
- 菜籽饼|菜籽饼被誉为果园之宝,但用错了烧苗烧根,果农如何来使用?
- 水产养殖|生态水产养殖如何提高鱼病的预防工作?大疆渔业这样建议
- 瘦肉精|如何避开 315曝光的瘦肉精问题肉?
- 美国_军事|那个帮美国破解北斗卫星的清华才女高杏欣,13年过去了,近况如何
- 花菜有人焯水,有人直接下锅炒,都错了,看饭店大厨是如何做的
- 如何晚上发面早上蒸?教你用冷藏发酵,一学就会,馒头包子特好吃
- 急性肠胃炎|急性肠胃炎是如何“起哄”的?这4个“不舒服”一出现,赶紧就医
- 鸭子|养鸭要注意什么,在每个季节里,如何来放牧
- 柑橘|开春柑橘落叶严重怎么办?如何预防柑橘落叶?
