【DigiKey“智造万物,快乐不停”创意大赛】+人脸识别储物柜 GPIO设置和柜门机构
[复制链接]
储物柜柜门开启通过树莓派GPIO进行,树莓派 4B,有 40 个 GPIO 引脚,树莓派官方操作系统 Raspbian 下,可以使用系统默认安装的 python 中 RPi.GPIO 库,进行操作。
GPIO定义
由于使用的是64位系统,需使用gpiozero进行控制,GPIO Zero库是树莓派官方目前推荐的用于操作树莓派上GPIO口的Python库,该库最早是在RPi.GPIO库之上开发而来的。
官方的镜像已经包含了GPIO Zero库,不用单独安装。
测试一下GPIO控制,首先搭建测试,点亮一个LED灯。
连接图
可以使用下面代码来控制LED亮灭交替闪烁:
# 引入LED类
from gpiozero import LED
from time import sleep
red = LED(17) #物理引脚11
while True:
red.on()
sleep(2)
red.off()
sleep(2)
LED灯点亮,闪烁。
储物柜柜门开锁方式选用储物柜专用电控锁。
这个电控锁设计的很巧妙,是利用一根特殊金属丝,通电后热涨冷缩的原理来控制锁的开闭,控制简单可靠。根据实际电源情况,选用的是5v型号。
通电测试运行可靠。
采用一个塑料盒模拟储物柜
用将锁体和锁舌用热熔胶分别固定在盒身和盒盖上。
开好孔洞将控制线引出。
电路部分,由于电控锁电压为5V,且控制电流较大,树莓派的GPIO为3.3V,不能直接驱动,所以GPIO先控制一个3.3V的继电器,再通过继电器控制电控锁。GPIO使用物理第11引脚,接线如下图所示:
图中中间位置的调试器,只用来给电控锁提供5V电源。
编写如下程序进行测试
from gpiozero import LED
from time import sleep
# 定义引脚编号
pin = 17
# 创建LED对象
led = LED(pin)
print("开锁...")
#开锁三秒
led.on()
sleep(3)
led.off()
# 清理资源
led.close()
运行后,如图
运行程序,输出开锁信息,电控锁动作,储物柜柜门弹开。
11
|