树莓派小实验 | 制作一个带快门的照相机 & 录像机

如果觉得本篇文章对您的学习起到帮助作用,请 点赞 + 关注 + 评论 ,留下您的足迹💪💪💪💪

在此项目中,通过连接GPIO引脚的按钮控制拍照,使用树莓派,Python和摄像头模块制作照相机和录像机。详细内容请看这里

相关内容:
树莓派小实验 | 制作一个音乐盒

一、所需硬件

1、 树莓派4b
pi
2、CSI摄像头
CSI

3、杜邦线
db
4、 按键
key

二、连接摄像头

如下图所示:
picture
注意:

  1. 安装摄像头时切忌树莓派处于关机状态,以免树莓派烧坏;
  2. 摄像头连接靠近USB的接口;
  3. 摄像头连接口,蓝色朝向USB方向。

三、使用python拍摄照片

打开Python IDE如下:

点击树莓图标——编程——Thonny Python IDE

拍摄照片代码如下:

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(3)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()

print("Finished")

我们看到image.jpg保存在桌面上,双击图标可以打开查看图像。

如果图片是上下颠倒的,则可以调整摄像头的位置,也可以保持摄像头原样不便,通过调整Python代码翻转图像。
只需在camera = PiCamera()后添加camera.rotation = 180
调整后代码如下:

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.rotation = 180
camera.start_preview()
sleep(3)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()

注意:拍摄的图像没有出现上下颠倒,则不用添加camera.rotation = 180

四、连接按键

我使用的按键有8个,本实验只使用了2个按键,因此只需要两个GPIO引脚和一个Ground引脚。
树莓派引脚示意图:
pi
引脚接线方法如图:
pin
本例连接方法:

  • 公共地线——任意图示黑色引脚
  • 按键7号——14号GPIO
  • 按键6号——15号GPIO

如图所示:
p

五、拍摄照片

1、拍摄一张照片

调用按键程序如下:

from picamera import PiCamera
from gpiozero import Button

button = Button(14)
camera = PiCamera()

camera.start_preview()
button.wait_for_press()
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()

运行程序,当按动按键时,即拍摄一张照片保存在桌面。

注意:通常在拍照的时候需要加几秒的延迟,在这几秒中摄像头会进行分辨率的调节。

加入延迟程序如下:

from picamera import PiCamera
from time import sleep
from gpiozero import Button

button = Button(14)
camera = PiCamera()

camera.start_preview()
button.wait_for_press()
sleep(2)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()

运行程序,当按动按键时,即拍摄一张照片保存在桌面。

2、拍摄一系列照片

创建文件夹,打开终端,输入:

mkdir animation

修改程序代码,添加循环,保证每次按动按键,都可以拍摄照片:

from picamera import PiCamera
from gpiozero import Button

button = Button(14)
camera = PiCamera()


camera.start_preview()
frame = 1
while True:
    try:
        button.wait_for_press()
        camera.capture('/home/pi/animation/frame%03d.jpg' % frame)
        frame += 1
    except KeyboardInterrupt:
        camera.stop_preview()
        break

运行程序,每按动按键一次,即拍摄一张照片保存在/home/pi/animation中。

while判定条件永远为True,循环永不停止,我们必须能够使其正常退出。所以这里使用try和except用来处理特殊情况。当使用Ctrl + C强制将其停止,它将关闭相机预览并退出循环。

六、录制视频

录制视频,我们在这里使用6号按键,也就是连接GPIO 15号引脚的按键,用于停止录制的控制。

代码如下:

from picamera import PiCamera
from gpiozero import Button

button_start = Button(14)
button_stop = Button(15)

camera = PiCamera()

camera.start_preview()
button_start.wait_for_press()
print('Started!')
camera.start_recording('/home/pi/Desktop/video.h264')

button_stop.wait_for_press()
print('Finished!')
camera.stop_recording()
camera.stop_preview()  

录制好的视频保存在桌面,我们可以双击查看。

接下来,就需要你实际动手试一试了,快来行动吧💪💪💪

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值