Raspberry Pi를 사용한 간단한 저속 촬영
8726 단어 iotraspberrypihardware
시간 경과는 항상 나를 매료시킵니다. 그래서 직접 만들고 싶었습니다.
여분의 Raspberry Pi Zero W가 먼지를 잡는 데 ~ 25$에, 관련 Raspberry Pi 카메라 모듈을 20$ 미만에 구입할 수 있습니다.
엿보기
2020-09-08의 부분 타임랩스(20FPS)(1분마다 스냅샷 1개)
Check it out on cri.dev
요구 사항
자신을 구축하려면 다음이 필요합니다.
Raspberry Pi (제로 W 모델은 꽤 잘 작동함)
더 나은 품질의 타임랩스를 제공하는 공식High Quality Camera도 있습니다!
목차
Sneak peek
Create the time-lapse
준비
파이 플래시
새 SD 카드에서 Raspberry Pi OS를 플래시해야 합니다.
Balena Etcher 또는 공식 Raspberry Pi Imager . 절차는 매우 간단합니다.
단계를 거치면 SD 카드에 Rasperry Pi OS가 설치됩니다.
Wi-Fi 연결 설정
Pi를 Wi-Fi에 연결하려면 SD 카드에
wpa_supplicant.conf
라는 파일을 만들어야 합니다.wpa_supplicant.conf
의 내용은 다음과 같아야 합니다(따라서 구성).ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
update_config=1
network={
scan_ssid=1
ssid="YOUR_WIFI_ACCESS_POINT"
psk="YOUR_WIFI_PASSWORD"
}
SSH 액세스 활성화
SSH 액세스(사용자
pi
및 비밀번호raspberry
사용)를 활성화하려면 SD 카드에 ssh
라는 빈 파일(확장자 없음)을 생성하기만 하면 됩니다.카메라 모듈 활성화
카메라 모듈을 활성화하려면
raspi-config
유틸리티를 통해 구성할 수 있습니다.그러나 SD 카드의 파일
config.txt
도 마찬가지입니다.그것을 열고 다음을 추가하십시오.
start_x=1
gpu_mem=128
start_x
또는 gpu_mem
에 대한 다른 발생이 없는지 확인하십시오.타임랩스 만들기
raspistill로 이미지 찍기
raspistill
is the command line tool for capturing still photographs with the camera module.
아이디어는 raspistill
를 사용하여 x분마다 스냅샷을 찍는 것입니다.
단일 이미지를 찍기 위해 /home/pi/take-snapshot
라는 다음 bash 스크립트를 사용하고 있습니다.
#!/bin/bash
set -e
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
SNAPSHOTS_DIR=/home/pi/snapshots
SNAPSHOT_PATH="$SNAPSHOTS_DIR/$DATE.jpg"
CURRENT_PATH="$SNAPSHOTS_DIR/current.jpg"
echo "$DATE"
mkdir -p "$SNAPSHOTS_DIR"
echo "taking snapshot $SNAPSHOT_PATH"
raspistill \
--width 1280 \
--height 960 \
--quality 100 \
--output "$SNAPSHOT_PATH"
echo "snapshot saved $SNAPSHOT_PATH"
echo "adding watermark $SNAPSHOT_PATH"
cd $SNAPSHOTS_DIR
montage \
-label "$DATE" \
$SNAPSHOT_PATH \
-pointsize 30 \
-gravity Center \
-geometry +0+0 \
$SNAPSHOT_PATH
cp $SNAPSHOT_PATH $CURRENT_PATH
이 스크립트는 스냅샷을 만들어 형식%Y-%m-%dT%H:%M:%SZ.jpg
으로 이름을 지정하고 폴더/home/pi/snapshots
에 넣습니다.
마지막에 이 사진은 ImageMagick 제품군의 montage
를 사용하여 워터마크가 찍혀 있습니다.
crontab으로 캡처 일정 잡기
위의 스크립트를 사용하여 5분마다 사진을 찍기 위해 간단한 cron 작업을 설정할 수 있습니다.
crontab -e
를 실행하여 cron 일정을 편집하고 다음 줄을 추가하십시오.
SHELL=/bin/bash
*/5 * * * * sh /home/pi/take-snapshot >> /home/pi/snapshots.log 2>&1
스냅샷의 디렉토리 목록
포트 80에 웹 서버를 노출하여 폴더/home/pi/snapshots
에서 촬영한 모든 이미지(및 타임랩스)를 쉽게 나열할 수 있습니다.
crontab에 다음을 추가하여 부팅 시 서버를 시작합니다.
@reboot sudo python3 -m http.server --directory /home/pi/snapshots 80
ffmpeg로 타임랩스 만들기
ffmpeg로 하루의 타임랩스2020-08-31
를 찍는 것은 달리기만큼 쉽습니다.
cat 2020-08-31*.jpg | ffmpeg -r 10 -i - -c:v libx264 -vf "format=yuv420p,scale=1280:-2" time-lapse-2020-08-31.mp4
raspberry-pi-time-lapse 저장소
리포지토리christian-fei/raspberry-pi-time-lapse를 복제/포크하고 첫 번째 타임랩스를 즉시 만들 수 있습니다.
위의 단계를 단순화하는 다양한 스크립트가 있습니다.
raspistill
is the command line tool for capturing still photographs with the camera module.
#!/bin/bash
set -e
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
SNAPSHOTS_DIR=/home/pi/snapshots
SNAPSHOT_PATH="$SNAPSHOTS_DIR/$DATE.jpg"
CURRENT_PATH="$SNAPSHOTS_DIR/current.jpg"
echo "$DATE"
mkdir -p "$SNAPSHOTS_DIR"
echo "taking snapshot $SNAPSHOT_PATH"
raspistill \
--width 1280 \
--height 960 \
--quality 100 \
--output "$SNAPSHOT_PATH"
echo "snapshot saved $SNAPSHOT_PATH"
echo "adding watermark $SNAPSHOT_PATH"
cd $SNAPSHOTS_DIR
montage \
-label "$DATE" \
$SNAPSHOT_PATH \
-pointsize 30 \
-gravity Center \
-geometry +0+0 \
$SNAPSHOT_PATH
cp $SNAPSHOT_PATH $CURRENT_PATH
SHELL=/bin/bash
*/5 * * * * sh /home/pi/take-snapshot >> /home/pi/snapshots.log 2>&1
@reboot sudo python3 -m http.server --directory /home/pi/snapshots 80
cat 2020-08-31*.jpg | ffmpeg -r 10 -i - -c:v libx264 -vf "format=yuv420p,scale=1280:-2" time-lapse-2020-08-31.mp4
리포지토리christian-fei/raspberry-pi-time-lapse를 복제/포크하고 첫 번째 타임랩스를 즉시 만들 수 있습니다.
위의 단계를 단순화하는 다양한 스크립트가 있습니다.
take-snapshot
워터마크와 타임스탬프가 찍힌 폴더에서 사진을 찍기 위해 snapshots/
server
포트 80에서 HTTP 서버를 시작하여 지금까지 찍은 모든 스냅샷과 시간 경과를 나열합니다rsync-snapshots
스냅샷을 Raspberry Pi에서 PC로 동기화하기 위해create-time-lapse
특정 날짜에 대한 타임랩스 생성crontab
스냅샷을 예약하고 서버를 스핀업합니다Reference
이 문제에 관하여(Raspberry Pi를 사용한 간단한 저속 촬영), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/christianfei/simple-time-lapse-with-a-raspberry-pi-5b28텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)