具有视频录制功能的帽子

用树莓派制作的超简易视频记录仪,可穿戴。

Cherry

喜欢

3766
浏览
3
喜欢

> 更多图片

项目状态:已完成
开放度:公开
所属分类:电子
发布时间:2019-07-15
最近更新:2019-07-21

详细说明


相信大家对去年的《OpenEyeTap:基于树莓派的开源AR智能眼镜》这个项目还有印象,同样是基于树莓派、3D打印、摄像头模块,下面要介绍的是功能类似,但DIY门槛大幅降低的灵魂制作版本。

采用体积更大的树莓派3B、更大更容易获得的摄像头模块、超大如充电宝一样的 5000mAh 锂电池,为此,本体已经不再是眼镜,而是——能容纳更多东西的帽子。

这套系统的相机会一直开启,随时拍摄你想记录的内容,但视频录制时间被限定为七秒。
这七秒,对于生活中很多美好的瞬间来说,已经足够了。如果没有它,等你拿出手机时已经稍纵即逝了,如果你热爱记录生活,那就来试试吧,把你喜欢的事物拍摄下来,快手小王子非你莫属!

(P.S. 即便自己没拍到什么,带这么个东西出街也一定能被路人拍到,一炮而红也是可能的呢!)

链接表


文件库

cameraBack.stl
[174284 Bytes at 2019-07-17, 20 次下载]

batteryHolder.stl
[788984 Bytes at 2019-07-17, 23 次下载]

cameraFront.stl
[635484 Bytes at 2019-07-17, 24 次下载]

raspberryHolder.stl
[591584 Bytes at 2019-07-17, 27 次下载]

FilmThePast-master.zip
[346878 Bytes at 2019-07-17, 17 次下载]



教程

组件清单
  • 树莓派 3B × 1
  • USB摄像头 ELP-USBFHD01M × 1
  • 按钮 × 1
  • 外接电池 5000mAh × 1

材料清单



树莓派 3B ×1
USB摄像头 ELP-USBFHD01M ×1
按钮×1
外接电池 5000mAh ×1

3D 打印部件

需要打印的部件有电池仓、摄像头前后面两面的外壳、树莓派主机仓。





3D 打印文件请在项目文件库中下载。
https://make.quwj.com/project/132

工作原理

将电池连接到树莓派时,务必等待几分钟,确定树莓派可以正常使用。你每按一次按钮,摄像头将记录七秒的视频。
在手机上下载 FTPManager 应用程序并连接到树莓派的 WiFi。在 FTPManager 中,你可以通过 IP 地址访问树莓派的所有文件,浏览并查找录制好的视频。

组装


如图所示连接好触发摄像头的开关和树莓派。
摄像头可以插入到树莓派的任意一个 USB 端口。

将树莓派设置为热点,可以参考下面这篇教程:

https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

如果你打算直接将树莓派接入互联网,那么可以不必设置成热点。

启用 SSH

1、在树莓派的选项菜单中配置。
2、选择接口选项卡。
3、点选 SSH 的已启用。
4、点击确定。

程序部分

程序是用 Python 编写的,请先安装所需的库。

import numpy as np
import cv2
import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)

cap = cv2.VideoCapture(0)

fourcc = cv2.VideoWriter_fourcc(*'XVID')

print(cap.get(3)) #width
print(cap.get(4)) #height
print(cap.get(5)) # fps

frameList = []

numberOfSavedFrames = 30*7

i=0
vidNb = 0
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    frameList.append(frame)

    if(len(frameList) > numberOfSavedFrames):
#        cv2.imshow('frame',frameList[len(frameList)-1])
        frameList.pop(0)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    
    input_state = GPIO.input(18)
    if(input_state == False):
        out = cv2.VideoWriter('output.avi', fourcc, 30.0, (640, 480))
        for frame in frameList:
            out.write(frame)
        vidNb += 1
        
    i += 1

# When everything done, release the capture
cap.release()
out.release()
cv2.destroyAllWindows()

代码下载地址:
https://github.com/JohanLink/FilmThePast

设置为开机自动运行这个程序文件即可。如何将 Python 脚本设置成开机启动,可以参考这里:
http://shumeipai.nxez.com/2017/05/17/raspberry-pi-service-python-script-start-on-boot.html

大功告成!