树莓派拍立得

基于树莓派制作一台拍立得

Cherry

喜欢

5441
浏览
3
喜欢

> 更多图片

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

详细说明


运用树莓派和热敏打印机来制造一台拍立得也不是什么难事儿啦,已经有很多 maker 实践过这类项目了。在这个项目中,我参考了其他的相关项目,加入了我自己的想法实现了一款令人满意的树莓派拍立得,一起来了解一下吧。


该项目使用了树莓派和热敏打印机。在其他的树莓派拍立得项目中多半使用的是树莓派2(目前尚不支持树莓派3版本)、广角镜头和摄像头模块。而我选择了树莓派 Zero W 和中大焦距镜头。

树莓派 Zero W 很小巧实用,包括摄像头接口和板载 WIFI 以及许多其他功能。大多数树莓派摄像头模块都配有广角镜头。我选择了 M12 镜头,其视场角为40°,可以达到与 45mm 焦距全画幅相机差不多的效果,画面更加自然,不扭曲。因为可以无线连接,所以支持远程遥控拍摄。


链接表


文件库

board_pin.stl
[40284 Bytes at 2019-02-20, 25 次下载]

Base_01.stl
[80884 Bytes at 2019-02-20, 12 次下载]

snap_pin.stl
[50384 Bytes at 2019-02-20, 15 次下载]

Box_01.stl
[269084 Bytes at 2019-02-20, 14 次下载]

Cone_top_01.stl
[182684 Bytes at 2019-02-20, 13 次下载]



教程

组件清单
  • 树莓派(Raspberry Pi)Zero W × 1
  • Mini TTL热敏打印机 × 1
  • 树莓派摄像头模块 × 1
  • 迷你摄像头(CSI)15针软排线 × 1
  • M12摄像头镜头 × 1
  • M12板镜头支架 × 1
  • 按钮 × 1
  • 5v/3.5A移动电源(最小3A) × 1
  • 4700uF电解电容 × 1
  • 直角USB适配器接口(公对母) × 1
  • 2.1mm插孔连接至USB适配器接口 × 1
  • 适配器(2.1mm插孔) × 1
  • 单排排针 × 1
  • 单排排座 × 1
  • 两排针连接器 × 3
  • 洞洞板 × 1
  • 电线 × 若干
  • 螺丝M3 x 6mm(6mm~10mm) × 2
  • 方形螺母(M3 1,8mmx5,5mm) × 2
  • 螺丝M2 x 6mm(6mm~10mm) × 2
  • 热敏纸卷(57毫米) × 若干
  • 8GB MicroSD卡 × 1
  • Mini HDMI适配器(ZEROW接显示器) × 1
  • Mini USB转USB(ZEROW接键盘) × 1
  • 5v USB充电器 × 1
  • Prusa i3 mk3 3D打印机 × 1
  • 电缆压接器(SN-28B) × 1
  • 老虎钳 × 1
  • 数码卡尺 × 1
  • 螺丝刀 × 若干

材料清单

硬件部分:
树莓派(Raspberry Pi)Zero W × 1
Mini TTL热敏打印机 × 1
树莓派摄像头模块 × 1
迷你摄像头(CSI)15针软排线 × 1
M12摄像头镜头 × 1
M12板镜头支架 × 1
按钮 × 1
5v/3.5A移动电源(最小3A) × 1
4700uF电解电容 × 1
直角USB适配器接口(公对母) × 1
2.1mm插孔连接至USB适配器接口 × 1
适配器(2.1mm插孔) × 1
单排排针 × 1
单排排座 × 1
两排针连接器 × 3
洞洞板 × 1
电线 × 若干
螺丝M3 x 6mm(6mm~10mm) × 2
方形螺母(M3 1,8mmx5,5mm) × 2
螺丝M2 x 6mm(6mm~10mm) × 2
热敏纸卷(57毫米) × 若干
8GB MicroSD卡 × 1
Mini HDMI适配器(ZEROW接显示器) × 1
Mini USB转USB(ZEROW接键盘) × 1
5v USB充电器 × 1
Prusa i3 mk3 3D打印机 × 1
电缆压接器(SN-28B) × 1
老虎钳 × 1
数码卡尺 × 1
螺丝刀 × 若干

软件部分:
Fusion 360 autodesk.com/fusion-360
Raspbian Jessie Lite raspberrypi.org/downloads/raspbian
ImageMagick www.imagemagick.org
zj-58 CUPS by adafruit github.com/adafruit/zj-58

软件设置和代码


在此步骤中,需要 USB 键盘和 HDMI 显示器。
将摄像头模块安装到树莓派,测试并检查是否正常。
系统设置
运行raspi-config:

$ sudo raspi-config


对于此项目,此选项是必需的:
Interfacing Options -> EnableCamera
Interfacing Options -> DisableSerial
Advanced Options -> Expand Filesystem

使用 raspi-config 设置Wi-Fi连接。使用网络连接来升级系统并下载所需的软件。
Network Options -> Wi-fi
你还可以启用 SSH,远程访问系统并进行快速更改。
Interfacing Options -> EnableSSH

安装软件
可以参考一下教程:
learn.adafruit.com/instant-camera-using-raspberry-pi-and-thermal-printer

sudo apt update
sudo apt install git cups wiringpi build-essential libcups2-dev libcupsimage2-dev

在adafruit github安装CUPS的栅格滤镜。

git clone https://github.com/adafruit/zj-58
cd zj-58
make
sudo ./install

在 CUPS 系统上安装并将打印设置为默认值。
根据打印机具体情况,将“波特率”值调为为9600或19200。 (我的项目使用的是19200)

sudo lpadmin -p ZJ-58 -E -v serial:/dev/ttyAMA0?baud=19200 -m zjiang/ZJ-58.ppd
sudo lpoptions -d ZJ-58

相机脚本

sudo apt-get install imagemagick

使用imagemagick提高对比度并将摄像头设置为默认的对比度和亮度,拍摄命令顺序如下:

raspistill -t 200 -co 30 -br 75 -w 512 -h 388 -n -o - | convert - -grayscale Rec709Luminance -contrast jpg:- | lp

这是我的参数的最佳值,你可以根据自己情况进行修改。

我使用相同的按钮来拍摄照片和关闭系统。
脚本单次长按4秒。
camera.sh

#!/bin/bash
SHUTTER=20
# Initialize GPIO states
gpio -g mode  $SHUTTER up
while :
do
    # Check for shutter button
    if [ $(gpio -g read $SHUTTER) -eq 0 ]; then
        # Must be held for 4+ seconds before shutdown is run...
        starttime=$(date +%s)
        while [ $(gpio -g read $SHUTTER) -eq 0 ]; do
            if [ $(($(date +%s)-starttime)) -ge 5 ]; then
                shutdown -h now
                echo "power off"
                # Wait for user to release button before resuming
                while [ $(gpio -g read $SHUTTER) -eq 0 ]; do continue; done
            fi
        done
        if [ $(($(date +%s)-starttime)) -lt 2 ]; then
            echo "Click shut"
            raspistill -t 1800 -co 30 -br 75 -w 512 -h 388 -n -o - | convert --grayscale Rec709Luminance -contrast jpg:- | lp
            # date +"%d %b %Y %H:%M" | lp
        fi
        sleep 1
    fi
    sleep 0.3
done


自动设置脚本为在系统开启时启动。
在最后的“exit 0”行之前修改文件 /etc/rc.local 和执行以下命令:

sh /home/pi/camera.sh


使用保存脚本文件的路径。
树莓派 Zero W 启用串行兼容
pi3-miniuart-bt 将树莓派 Zero W 蓝牙功能切换为使用 mini UART(ttyS0),并将 UART0/ttyAMA0 恢复为GPIO14和15。

禁用板载蓝牙并通过 GPIO14和15恢复 UART0/ttyAMA0,修改为:

sudo vim /boot/config.txt

添加到文件末尾

dtoverlay=pi3-disable-bt

禁用初始化调制解调器的系统服务,不使用 UART:

sudo systemctl disable hciuart

此配置的更多资料请参考:https://www.raspberrypi.org/documentation/configuration/uart.md

3D打印外壳


相机的外壳严丝合缝,尺寸较小,尽量的减少螺丝的设计。
设计分为3个部分:
1、底部,主要安装电源。
2、主体部分,安装树莓派、打印机和大部分的布线。
3、镜筒,主要安装相机镜头。







主体部分和镜筒主要针对打印功能进行优化,不需要支撑结构。外壳底部使用内部支撑材料打印成单品。我自己做了一个结实的样品来支持相机的结构。
这里提供了 stl 文件,你可以自行打印或进行修改。
打印所需文件请在项目文件库中自行下载。
https://make.quwj.com/project/100

连线






1、 将排针接头焊接到树莓派的 IO 接口。
2、 将树莓派插入面包板,然后开始测试设置。
3、 为了连接组件,我使用 2Pin 压接端子分离连接。
因此在组装过程中,组件可以单独连接到外壳上。安装简单,当组件发生损坏或升级硬件时可方便更换。
4、使用圆形插孔将4700uF 电容连接到 + 和 - 接头上。这将有助于在热敏打印机运行时保持电压稳定。确保电容器的负极(较短)脚连接到端子的负极而不是另一端。
5、连接圆形插孔和电容器,打印机电源线和树莓派 Zero W 。
6、将+5V焊接到PP1,将接地从电源焊接到电路板背面的 PP6,在电源 USB 的正下方,为树莓派供电。
7、将双排排座焊接到洞洞板,连接树莓派 IO 引脚。在洞洞板上,你可以连接按钮和打印机数据线。
8、将按钮连接到地 GND(引脚34)和 BCM20(引脚38)
9、打印机顺序如下:

打印机GND - > 树莓派GND(针脚6)
打印机RX - > 树莓派 TXD(引脚8,BCM14,UART发送)
打印机TX - > 树莓派 RXD(引脚10,BCM15,UART接收)

树莓派 40Pin 引脚对照表

组装


组装的过程非常的简单。



移动电源固定安装在机箱底座。但可以轻松进行充电、移除或更换。


我打印了几个针以将树莓派板连接到外壳上,并将镜头连接到外壳的其余部分。

所有电缆和组件的空间都不大。你应该合理利用空间,安排好内部布局。为了关闭机箱,底座和主体部分有两个相互配合的卡舌。正面有一个螺丝袋可以固定盒子。




完成,你现在就可以拍摄啦!


纳尼?!还需要美颜?等着吧……MAKER的世界没有什么是不可能的!