前几天实验了OpenCV的安装,今天尝试组合轻触开关传感器加上摄像头模拟照相机进行拍照实验;其中参考文章:
(1)轻触开关传感器实验:https://www.shumeijiang.com/2019/11/10/轻触开关传感器实验.html;
(2)OpenCV安装:https://www.shumeijiang.com/2021/12/12/树莓派安装opencv-python.html;
(3)由于在vnc里执行,参考vnc安装:https://www.shumeijiang.com/2021/05/06/树莓派安装vnc.html。
组装效果:
由上图可见,我们将树莓派放进盒子里面,然后轻触开关粘在盒子顶部,摄像头粘贴在盒子表面;当需要拍照时,只需要按压一次轻触开关即可。盒子里面如下图:
实验代码:
#!/usr/bin/env python
#coding:utf-8
'''
from JiuJiang
树莓酱的操作实例
https:://www.suhmeijiang.com
'''
import cv2
import numpy as np
import RPi.GPIO as GPIO
import time
import random
#轻触开关
touchPin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(touchPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#注册事件
GPIO.add_event_detect(touchPin, GPIO.FALLING)
#开始
cap = cv2.VideoCapture(0)
try:
while True:
# get a frame
ret, frame = cap.read()
cv2.imshow("capture", frame)
#拍照
if GPIO.event_detected(touchPin):
i = random.randint(0,100)
name = 'sample'+str(i)+'.jpg'
cv2.imwrite(name, frame)
print('已拍照')
continue
time.sleep(0.5)
except KeyboardInterrupt:
print('拍照结束')
cap.release()
cv2.destroyAllWindows()
我们打开VNC然后进入树莓派桌面,打开自带的Linux终端,然后找到我们的代码,执行命令:
然后点击轻触开关传感器,就像拍照时按下快门,可见终端提示“已拍照”,然后同目录文件夹下可见生成一张图片;如此,多次点击可见多次拍照,生成多个照片。
视频效果如下: