树莓派:传感器安装与测试
准备
烧录完系统的 raspberryPi 3
python 2.7
传感器:
- 树莓派专用摄像头 v2.1
- 四位数码管
- 温湿度传感器
摄像头
安装picamera
sudo apt-get install python3-picamera
使用示例,in python3.4:
camera = picamera.PiCamera()
camera.capture('image.jpg',resize=(320,240)) # 在 在当前文件夹下将截取图像存为image.jpg, 320*240大小
camera.close() # 使用完后一定要关闭, 否则因为端口被占用,下次调用会出错
没有关闭camera
对象在下次调用会出现以下错误
mmal: mmal_vc_port_enable: failed to enable port vc.null_sink:in:0(OPQV): ENOSPC
mmal: mmal_port_enable: failed to enable connected port (vc.null_sink:in:0(OPQV))0x1324250 (ENOSPC)
mmal: mmal_connection_enable: output port couldn't be enabled
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/picamera/camera.py", line 433, in __init__
self._init_preview()
File "/usr/lib/python3/dist-packages/picamera/camera.py", line 513, in _init_preview
self, self._camera.outputs[self.CAMERA_PREVIEW_PORT])
File "/usr/lib/python3/dist-packages/picamera/renderers.py", line 558, in __init__
self.renderer.inputs[0].connect(source).enable()
File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 2212, in enable
prefix="Failed to enable connection")
File "/usr/lib/python3/dist-packages/picamera/exc.py", line 184, in mmal_check
raise PiCameraMMALError(status, prefix
picamera.exc.PiCameraMMALError: Camera component couldn't be enabled: Out of resources (other than memory)
四位数码管
常见的输出显示,四个数字+四个数点,总共 4*7+4=32个led灯管。如果采用一一对应的输入方式,至少需要32个针脚,但是实际上只有12个针脚。
所以我们采用动态方法:每一时刻只亮四个数字中的一个,并以足够快的速度在四个数字中循环,看起来就像一起亮着。
树莓派的针脚分布编号如下图:
我们这里采用BCM编码。
四位数码管的针脚与树莓派针脚的连接:
其中PORT表示数码管的编码(下图上半部分):
下方的table中写出了各个要显示的数字所需要的A-G各个针脚的电平。由于这款3461BS四位数码管是共阳极的,所以当A-G针脚对应的输入电平为负的时候,对应的led灯管亮起。
结合GPIO模块,用python实现按照输入的参数数字字符串输出数字到数码管上:
3461BS.py(python2.7)
import RPi.GPIO as GPIO
import time
import sys
mode0=[0,0,0,0,0,0,1]
mode1=[1,0,0,1,1,1,1]
mode2=[0,0,1,0,0,1,0]
mode3=[0,0,0,0,1,1,0]
mode4=[