Blog One: Adding a Video Camera
Install the video capture Software:
Install the software with the following command: sudo apt
install motion. This will install a program called Motion which is a light
weight video capture package compatible with the Raspberry Pi Zero. The command
will create several files and directories. The capture software can be
configured by editing the motion.conf file which can be found in the
/etc/motion/ directory.
Motion.conf:
#
# This config file was generated by motion 4.5.1
# Documentation:
/usr/share/doc/motion/motion_guide.html
#
# This file contains only the basic configuration options
to get a
# system working.
There are many more options available.
Please
# consult the documentation for the complete list of all
options.
#
############################################################
# System control configuration parameters
############################################################
# Start in daemon (background) mode and release terminal.
daemon off
# Start in Setup-Mode, daemon disabled.
setup_mode off
# File to store the process ID.
; pid_file value
# File to write logs messages into. If not defined stderr and syslog is used.
log_file /var/log/motion/motion.log
# Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN,
NTC, INF, DBG, ALL).
log_level 6
# Target directory for pictures, snapshots and movies
target_dir /var/lib/motion
# Video device (e.g. /dev/video0) to be used for
capturing.
video_device /dev/video0
# Parameters to control video device. See motion_guide.html
; video_params value
# The full URL of the network camera stream.
; netcam_url value
# Name of mmal camera (e.g. vc.ril.camera for pi camera).
; mmalcam_name value
# Camera control parameters (see raspivid/raspistill tool
documentation)
; mmalcam_params value
############################################################
# Image Processing configuration parameters
############################################################
# Image width in pixels.
width 640
# Image height in pixels.
height 480
# Maximum number of frames to be captured per second.
framerate 15
# Text to be overlayed in the lower left corner of images
text_left CAMERA1
# Text to be overlayed in the lower right corner of
images.
text_right %Y-%m-%d\n%T-%q
############################################################
# Motion detection configuration parameters
############################################################
# Always save pictures and movies even if there was no
motion.
emulate_motion off
# Threshold for number of changed pixels that triggers
motion.
threshold 1500
# Noise threshold for the motion detection.
; noise_level 32
# Despeckle the image using (E/e)rode or (D/d)ilate or
(l)abel.
despeckle_filter EedDl
# Number of images that must contain motion to trigger an event.
minimum_motion_frames 1
# Gap in seconds of no motion detected that triggers the
end of an event.
event_gap 60
# The number of pre-captured (buffered) pictures from
before motion.
pre_capture 3
# Number of frames to capture after motion is no longer
detected.
post_capture 0
############################################################
# Script execution configuration parameters
############################################################
# Command to be executed when an event starts.
; on_event_start value
# Command to be executed when an event ends.
; on_event_end value
# Command to be executed when a movie file is closed.
; on_movie_end value
############################################################
# Picture output configuration parameters
############################################################
# Output pictures when motion is detected
picture_output off
# File name(without extension) for pictures relative to
target directory
picture_filename %Y%m%d%H%M%S-%q
############################################################
# Movie output configuration parameters
############################################################
# Create movies of motion events.
movie_output on
# Maximum length of movie in seconds.
movie_max_time 60
# The encoding quality of the movie. (0=use bitrate.
1=worst quality, 100=best)
movie_quality 45
# Container/Codec to used for the movie. See
motion_guide.html
movie_codec mkv
# File name(without extension) for movies relative to
target directory
movie_filename %t-%v-%Y%m%d%H%M%S
############################################################
# Webcontrol configuration parameters
############################################################
# Port number used for the webcontrol.
webcontrol_port 8080
# Restrict webcontrol connections to the localhost.
webcontrol_localhost on
# Type of configuration options to allow via the
webcontrol.
webcontrol_parms 0
############################################################
# Live stream configuration parameters
############################################################
# The port number for the live stream.
stream_port 8081
# Restrict stream connections to the localhost.
stream_localhost off
##############################################################
# Camera config files - One for each camera.
##############################################################
; camera /usr/etc/motion/camera1.conf
; camera /usr/etc/motion/camera2.conf
; camera /usr/etc/motion/camera3.conf
; camera /usr/etc/motion/camera4.conf
##############################################################
# Directory to read '.conf' files for cameras.
##############################################################
; camera_dir /usr/etc/motion/conf.d
There are some parameters which must be changed in this
file. One such parameter is the stream_localhost on parameter.
This should be changed to off so that you can access the camera from
your local network. We will only be using one USB camera with this setup so the
camera config files have been commented out.
Recommendations:
·
I would recommend a high resolution USB camera.
The USB 2 cable can be meters in length. The cable for the Pi Camera is quite
short for the Raspberry Pi Zero.
·
I would recommend a 32Gb SD card as a minimum if
you intend to save high resolution videos and pictures.
·
A Class 10 SD card should be fast enough and
capable of numerous writes before it wears out. These cards tend to be used in
portable devices such as phones and tablets.
·
You can adjust the threshold 1500
parameter until you find a setting that triggers a capture and does not result
in false triggers.
·
Add the following code to the python script:
lcd.clear
lcd.text(" System Idle",1)
arm_flg
= False
Card_flg
= False
espeak.synth("Alarm
System Idle")
os.system("
sudo motion") ß
This will start the video capture immediately after the system boots.
Comments
Post a Comment