zero2W搭载树莓派HQ相机拍照功能实现
硬件
树莓派HQ相机
树莓派zero2W板
刷机
刷机参考教程:www.yisu.com/zixun/53725…
sd(tf)卡格式化
软件SD Card Formatter
烧录系统
软件: Win32DiskImager
系统选择:Raspberry Pi OS (64-bit)-- Raspberry Pi OS Lite
for Zero 2W
2022.09之后的版本才增加picamera2库,建议安装最新版本。
(配置完成后拷贝制作完整镜像)
带有linux系统的sd卡还原:
DiskGenius:清除保留扇区--清除扇区数据
DiskGenius收费版本提供直接从linux的ext4文件系统到windows系统的文件拷贝。
(使用到的软件备份到nas上)
20230822--增加备份系统镜像--避免重复安装后续软件
https://blog.csdn.net/sinat_16643223/article/details/108346538
创建空白镜像文件: raspi_backup.img
取出环境配置好的树莓派存储卡
打开Win32DiskImager
选择对应的存储设备和刚刚创建的新镜像
read
完成后系统备份到新镜像中了, 后面可直接用该镜像重新安装刷机。
树莓派系统初始配置
第一次开机或sudo raspi-config
键盘配置
Localisation Options--Keyboard--other--chinese--hanyu pinyin
时区配置
Localisation Options--TimeZone--Asia--shanghai
开启ssh
Interface Options--SSH
wifi配置
在raspi-config中配置报错找不到接口。
直接修改配置文件sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
增加要连接的wlan
network={
ssid="wifi_name"
psk="wifi_password"
}
配置完重启,检查ifconfig是否获取到ip
rfkill list查看射频是否打开,有yes说明锁住了
rfkill unblock all打开射频
sudo ifconfig wlan0 up重新打开wifi或重启树莓派
无线热点配置
手机开启无线热点,需要设计AP频段为2.4GHz, zero2W不能连接5GHz频段
笔记本电脑设置热点
设备管理器--找到对应的无线网卡--高级--属性--无线模式(Wireless Mode)--2.4GHz 802.11b/g
不同网卡对应选项可能不同,主要尝试选择2.4GHz和802.11b/g协议标准。
串口配置
串口配置主要是为了后续方便通过串口进行调试。
bullseyes系统没有wiringPi包,需要手动安装
zero2W需要wiringPi2.60以上
需要先安装git: sudo apt-get install git
git clone https://github.com/WiringPi/WiringPi.git
# 显示tmp下的WiringPi包
ls
# 进入WiringPi的路径
cd WiringPi/
# 执行安装指令
./build
# 查看是否安装成功
gpio -v
开启串口
sudo raspi-config--Interface Options--Serial--Enable
默认波特率115200
串口连接8--10
相机驱动配置
bullseye不提供raspistill的支持,只提供libcamera。
检测摄像头
vcgencmd get_camera
supported=0 detected=0, libcamera interfaces=0
supported=1 detected=1 libcamera interfaces=0
supported=1 detected=0 libcamera interfaces=1
sudo raspi-config中Interface Options--Legacy Camera--disable camera
修改sudo nano /boot/config.txt
# 取消自动检测相机
camera_auto_detect=1 # 开机后会自动检测相机
camera_auto_detect=0 # 开机后不会自动检测
# 对应实际相机型号
dtoverlay=imx477 # HQCamera
dtoverlay=imx296 # GSCamera
重启树莓派
libcamera库测试相机功能
参见libcamera官方文档
实时预览:libcamera-hello -t 0 --width 4056 --height 3040
预览时间 分辨率
单张拍照:
libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480
曝光控制
libcamera-jpeg -o test.jpg -t 2000 --shutter 20000 --gain 1.5
截止到20230207,官方已经针对libcamera提供了picamera2库,方便用户使用Python程序调用。
--更新, bullseyes系统2022年4月之后的版本才预安装了picamera2库, 之前的版本需要单独下载
python拍照程序
from picamera2 import Picamera2
import time
picam2 = Picamera2() #新建相机实例
camera_config = picam2.create_preview_configuration() #生成相机预览配置文件
picam2.configure(camera_config) #使用该预览配置配置相机系统
picam2.start() #运行相机
time.sleep(2) #等待两秒钟
picam2.capture_file("test.jpg") #将图像保存到test.jpg
设置拍照程序开机自启动
开机程序自启动
raspi-config
ssh
相机
打开串口
(1)进入目录 /etc/profile
设置python程序自启动
(1)sudo nano /etc/profile
(2)添加命令
sudo python3 cap.py &
加&是后台加不阻塞运行
(3)检查程序运行情况
ps -a 或 top查看程序进程号
kill -9 pid 关闭指定进程号进程
(2)添加shell 命令 sudo python3 cap.py & 后台运行
关闭正在运行的开机自启程序
ps -a 或 top查看程序进程号
kill -9 pid 关闭进程
查看日志。
HQ相机最高分辨率
使能最高分辨率
HQ相机最高分辨率为4056*3040
在使用HQ相机拍照时,设置最高分辨率拍照会报错,Invalid resolution requested
参考解决办法链接
https://blog.csdn.net/zachary_hao/article/details/125761314
根据 camera guide和 config.txt说明"Note: you may need to increase gpu_mem in /boot/config.txt to achieve full resolution"
要将/boot/config.txt gpu_mem参数增加,raspberry pi 4B + 8GB默认gpu_mem = 128, 改成256, reboot。