# 树莓派学习:CSI摄像头安装及使用

树莓派学习:CSI摄像头安装及使用



前言


本文记录了捣鼓树莓派CSI摄像头的基本方法,包括了树莓派自带命令控制,利用python控制,以及安装开源软件motion来做一些简单的监控任务。

1. 摄像头安装

  1. 树莓派上的CSI口
  2. 将黑色卡扣提起
  3. 将CSI排线插入槽内
  4. 按下黑色卡扣固定
    注意:排线需要先穿过树莓派壳体。
    在这里插入图片描述

在这里插入图片描述

2. 配置树莓派摄像头

打开树莓派摄像头接口

sudo raspi-config
-> 5 Interfacing option
-> P1 Camera
-> enable? YES
-> Finish (reboot)

测试树莓派摄像头模块

ls -al /dev/ | grep video

3. 树莓派自带命令控制摄像头

树莓派自带控制控制CSI摄像头的命令,主要是拍照raspistill和录像raspivid,下面依次介绍。

2.1 拍照

基本命令如下:

raspistill -o "filename.jpg"

其中-o是输出文件,后面跟文件名,默认是.jpg格式的。
还有很多参数就不一一列举了,毕竟我们后续很少直接敲命令行来拍照,主要还是用Pyhon来控制。以下基础的命令行了解一下就可以了。

Image parameter commands
-q, --quality	: Set jpeg quality <0 to 100>
-t, --timeout	: Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-e, --encoding	: Encoding to use for output file (jpg, bmp, gif, png)

Common Settings commands
-?, --help		: This help information
-w, --width		: Set image width <size>
-h, --height	: Set image height <size>
-o, --output	: Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved

举个例子:
照一张名为image_test.png照片,并存在当前目录下。

raspistill -o ./image_test.png -e png

2.2 录像

操作方法与照相相似,基本操作如下。

raspivid -o "filename.h264"

录制视频默认尺寸为 1080p(1920×1080),同样可以调用以下参数来更改录制。

Image parameter commands
-b, --bitrate		: Set bitrate. Use bits per second (e.g. 10MBits/s would be -b 10000000)
-t, --timeout		: Time (in ms) to capture for. If not specified, set to 5s. Zero to disable
-fps, --framerate	: Specify the frames per second to record

Common Settings commands
和拍照相同

举个例子:
录一段5s的视频,起名为video_test.h264,并存在当前目录下。

raspivid -t 5000 -o video_test.h264

以上命令、参数都不需要记,也不常用,实在要用的时候就 raspistill -?或者raspivid -?查询也可以。

3. 利用Python的picamera库控制摄像头

树莓派自带了picamera库,它可以直接操作摄像头(相当于操作了树莓派的底层命令)。我们先简单看一些简单的功能。

# 导入相关模块
import picamera
from time import sleep
# 实例一个camera
camera = picamera.PiCamera()
# 捕获图像
camera.capture('image.jpg')
# 打开预览
camera.start_preview()
# 垂直翻转
camera.vflip = True
# 水平翻转
camera.hflip = True
# 控制摄像头亮度
camera.brightness = 60
# 控制摄像头录像
camera.start_recording('video.h264')
# 等待5s(但摄像头继续工作)
sleep(5)
# 停止录像
camera.stop_recording()
from picamera import PiCamera
import time

"""set camera"""
camera = PiCamera()
camera.resolution = (1920,1080)
camera.framerate = 60

# 打开预览
camera.start_preview()
camera.capture('/home/pi/testme.jpg')
camera.stop_preview()

4. 利用motion实现运动监控

利用 motion完成运动物体监控,motion是一款运动检测软件,原理是利用图像的变化触发拍照或其他脚本。

下载安装 motion

sudo apt-get install motion

配置 motion

sudo vim /etc/default/motion

打开守护进程。
start_motion_daemon=no 改为 start_motion_daemon=yes

修改配置文件

sudo vim /etc/motion/motion.conf
----------------------------------------------------------
-> 11: daemon on # 打开守护进程
-> 445: stream_port 8081 # 用8081端口读取视频数据
-> 461: stream_localhost off # 允许通过非local host来查看视频

启动 motion

#启动motion服务
sudo service motion start

#开启motion
sudo motion 

打开网址 http://[树莓派IP地址]:8081,查看视频。

motion运行后,可以通过 -SIGNUP来重新加载配置文件

sudo killall -SIGNUP motion

也可以直接关闭

sudo killall -w motion

关闭时定格到最后一刻:

sudo killall -TERM motion

### 解决树莓派5 CSI摄像头未被检测的问题 当遇到 Raspberry Pi 5 的 CSI 摄像头无法通过命令行识别的情况时,可以按照以下方法排查和解决问题。 #### 配置硬件连接 确保摄像头模块已正确安装到 Raspberry Pi 的 CSI 接口上。根据官方文档说明[^1],需要将相机接口牢固插入主板上的 CSI 连接器中,并确认其方向正确无误。 #### 更新系统软件 为了支持最新的硬件功能,建议先更新操作系统至最新版本: ```bash sudo apt update && sudo apt full-upgrade -y ``` 接着重启设备以应用更改: ```bash sudo reboot ``` #### 安装必要的驱动程序和支持包 对于特定型号的 AI 摄像头(如搭载 IMX500 传感器),可能还需要额外安装固件文件来启用完整的功能集。执行如下命令完成此操作: ```bash sudo apt install imx500-all ``` 这一步骤会自动处理所有依赖关系并将所需资源部署到位[^3]。 #### 修改配置文件启用了Camera接口 编辑`/boot/config.txt` 文件添加或解注释下面一行内容以便激活camera接口: ```plaintext start_x=1 gpu_mem=128 dtoverlay=pi3-disable-bt dtparam=audio=on enable_camera=1 ``` 保存修改后的配置文件之后再次重新启动机器让改动生效。 #### 测试摄像头是否正常工作 使用 raspistill 工具拍摄一张照片验证设置是否成功: ```bash raspistill -o test.jpg ``` 如果没有错误消息并且生成了一个图像文件,则表明摄像头已被正确识别并可正常使用;反之则需进一步诊断问题所在。 关于供电注意事项方面, 当采用具备USB-PD能力第三方充电适配器给RaspberryPi供电期间接入其它用电装置有可能触发电压重协商过程从而影响开机状态下的稳定性表现.[^4] 最后提醒一下关闭按钮安全停机的重要性以防数据丢失等问题发生.[^2]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值