라즈베리파이에 아날로그 카메라 연결하기 라즈베리파이를 이용한 영상감시 서버. 타임랩스 동영상 만들기

카메라를 Raspberry Pi에 올바르게 연결하고 터미널 창을 통해 Python 프로그래밍 언어를 사용하여 작업하는 방법을 살펴보겠습니다.
관련 자료:
카메라를 Raspberry에 연결할 때 다음 사항을 기억하십시오.
  • 카메라는 정전기를 두려워하므로 작동 중에 정전기 방지 물질을 만지는 것이 좋습니다.
  • 카메라는 250mA를 소비합니다. 평범한 Malina 전원 공급 장치를 사용하는 경우 카메라를 연결하면 카메라가 활발하게 작동할 때 전원이 부족할 수 있습니다.
  • 카메라에 마이크가 없습니다
  • 카메라 상단은 케이블 출구 반대편에 있지만 이미지를 수직으로 반사하는 특별한 명령이 있습니다. 이에 대한 자세한 내용은 아래에서 설명합니다.

연결

카메라를 꺼진 라즈베리에 연결하는 것이 좋습니다. 다음 명령을 사용하여 Raspberry를 빠르게 끌 수 있습니다.
지금 sudo 종료
CSI 데이지 체인 커넥터는 HDMI 옆에 있습니다. USB와 달리 이 커넥터를 통해 카메라를 연결하는 장점은 CSI 인터페이스를 통해 데이터를 전송할 때 프로세서의 부담을 덜어준다는 것입니다.
카메라 고정을 쉽게 하기 위해 기성 솔루션, 예를 들어 - 아크릴 홀더.
카메라 인터페이스는 Raspberry 설정에서 활성화되어야 합니다.
카메라를 활성화한 후(필요한 경우) Malina를 재부팅해야 합니다. 지금 sudo 재부팅
카메라 작업을 위해 Raspbian에는 이미 필요한 유틸리티와 드라이버가 사전 설치되어 있습니다. 최신 버전을 사용하도록 패키지를 업데이트하겠습니다. sudo apt-get update -y sudo apt-get dist-upgrade -y 모든 것이 올바르게 완료되면 카메라에서 테스트 프레임을 가져옵니다. 사진용 폴더를 만들고 이동하세요. 여기에 이미지 캡처 명령을 실행합니다: mkdir ~/pi_cam/ cd ~/pi_cam/ raspistill -v -o test.jpg
실패할 경우 이전 단계를 확인하거나 카메라와 Malina의 커넥터 접점을 연결해야 합니다.
Raspbian OS에는 카메라 작업을 위한 다음 패키지가 사전 설치되어 있습니다.
  • raspivid, raspvidyuv - 비디오 캡처
  • raspistill, raspiyuv - 사진 찍기
나열된 유틸리티에 대한 전체 가이드는 다음에서 확인할 수 있습니다. 영어켜져 있고 꺼져 있습니다. 라즈베리파이 홈페이지
모든 유틸리티는 터미널에서 실행되며 사용이 매우 쉽습니다.
이름이 "yuv"로 끝나는 패키지는 인코딩 구성 요소를 사용하지 않습니다. 카메라 센서에서 수신한 처리되지 않은 "원시" 정보를 저장합니다. 각 패키지에 대한 작업을 살펴보겠습니다. 먼저 모든 패키지에 공통적인 카메라 매개변수 목록을 숙지한 다음 특정 인수와 구체적인 예그들의 응용 프로그램.

공통 매개변수

매개변수 값을 살펴보겠습니다. 다음 사항에 주목할 가치가 있습니다.
  • 유틸리티를 호출할 때 인수를 지정하지 않으면 해당 기본값이 사용됩니다.
  • "허용된 값 범위" 열이 비어 있으면 추가 값을 전달할 필요가 없습니다. 인수 자체를 전달하는 것만으로도 충분합니다.
  • 미리보기는 Raspberry에 연결된 실제 모니터에만 표시됩니다. 원격 데스크톱(VNC)을 통해 Raspberry에 액세스하는 경우 미리 보기 이미지가 나머지 정보 위에 모니터로 직접 전송되므로 어떤 설정에서도 미리 보기가 표시되지 않습니다.
  • 데스크톱을 통해 비디오를 보는 것과 유사
논쟁
설명
유효 범위
기본값
-피
미리보기 창 옵션
너비, 높이, X좌표, Y좌표
-에프
전체 화면 미리보기
아니요
-N
미리보기 없음
-op
미리보기 창 투명도
0...255
255
-쉿
날카로움
-100...100
0
-co
차이
-100...100
0
-br
조명
0...100
50
-sa
포화
-100...100
0
-ISO
카메라 센서 감도
-100...100
0
-대
비디오 안정화
(동영상만)
아니요
-ev
노출 보정
-10...10
0
-전
박람회
  • 야간 미리보기
  • 백라이트: 피사체 뒤의 백라이트
  • 스포트라이트: 스포트라이트 조명
  • 스포츠: 움직이는 물체
  • 눈: 눈 덮인 풍경
  • 해변: 해변 풍경
  • 매우긴: 장시간 노출
  • 고정fps: FPS를 고정된 값으로 제한합니다.
  • 흔들림 방지: 흔들림 방지
  • 불꽃놀이: 불꽃놀이가 있는 풍경
자동
-awb
화이트 밸런스
  • 태양: 5000K...6500K - 맑음
  • 구름:6500K ... 12000K 흐림
  • 그늘 : 그늘에
  • 텅스텐: 2500K ... 3500K 텅스텐
  • 형광성: 2500K...4500K
  • 백열등: 빨갛게 달궈진 금속
  • 플래시: 플래시 포함
  • 수평선
자동
-ifx
다양한 효과
없음, 부정, Solarise, 포스터라이즈, 희고 매끄러운 칠판, 칠판, 스케치, 소음 제거, 엠보싱, 유성 페인트, 해치, gpen, 파스텔, 수채화, 필름, 흐림, 포화, colorswap, 세척, 컬러 포인트, 색상 균형, 만화
없음
-cfx
색의 균형
0...255:0...255
128:128
-mm
노출 측정
  • 평균: 평균
  • 지점: 점
  • 백라이트: 백라이트 이미지 읽기
  • 매트릭스: 매트릭스 측광
평균
-썩음
회전하다
0 ... 359
0
-hf
수평 반사
아니요
-vf
수직 반사
아니요
-로이
센서 ROI
왼쪽 상단 모서리의 좌표와 해당 영역의 너비 및 높이
0 … 1,0 … 1,0 … 1,0 … 1
0,0,1,1
-봄 여름 시즌
셔터 속도
마이크로초 단위
6000000
-drc
다이내믹 레인지 압축
끄다
-성
통계를 보여주다
아니요
다음으로 유틸리티를 별도로 고려해 보겠습니다.


raspistill - 사진 캡처

이 유틸리티는 인코딩된 압축 이미지를 생성하며, 이 작업을 수행하기 위해 raspistill을 실행할 때 인수로 전달되는 꽤 많은 매개변수가 있습니다.

인수

논쟁
설명
유효 범위
기본값
-w
너비
0...최대
맥스
-시간

0...최대
맥스
-큐
품질
0...100
75
-영형
파일 이름
파일의 경로
-
-V
터미널로 출력
캡처 프로세스에 대한 정보
아니요
-티
행동 전 지연
밀리초 단위
0
-tl
시간 경과
예: -tl 2000 -o image%04d.jpg
2000 - 간격
%04d - 4자리 숫자 패턴
-
-이자형
형식으로 인코딩
jpg, bmp, gif, png
jpg
-엑스
EXIF 태그 추가
최대 32개의 태그
-
-아르 자형
인코딩된 이미지의 메타데이터에 베이어 배열 저장
-

raspistill 사용의 구체적인 예를 살펴보겠습니다.
2초 후에 표준 이미지를 캡처하고 image.jpg 파일(현재 폴더에)에 저장합니다. 해상도는 표준(최대)입니다. raspistill -t 2000 -o image.jpg 동일하지만 640x480의 해상도에서 raspistill -o image.jpg -w 640 -h 480 5%의 감소된 품질로 이미지를 캡처하고 image.jpg 파일(현재 폴더에 있음)에 저장합니다. 이 품질을 사용하면 이미지 크기가 훨씬 작아집니다. raspistill -o image.jpg -q 5 PNG 형식으로 인코딩된 이미지를 가져와서 파일에 저장 image.png raspistill -o image.png –e png 다음을 사용하여 표준 이미지 가져오기 내장된 EXIF ​​​​태그 2개: 아티스트 - Boris, GPS 고도 - 123.5m raspistill -o image.jpg -x IFD0.Artist=Boris -x GPS.GPSAltitude=1235/10 캡처할 저속 촬영 이미지 세트 생성 10분(600,000ms) 동안 10초 간격으로 image_num_001_today.jpg, image_num_002_today.jpg 등으로 호출됩니다. 최종 이미지 이름은 late.jpg raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -llatest.jpg Enter 키를 누르면 이미지를 캡처하면 파일이 나란히 저장되고 이름은 my_pics01.jpg my_pics02로 지정됩니다. jpg 등 raspistill -t 0 -k -o my_pics%02d.jpg

라스피유브

실행 인수는 raspistill의 인수(위 참조)와 정확히 동일하며 그 중 다음만 사용할 수 없습니다.
-q - 품질
-e - 대상 이미지 형식 지정
-x - EXIF ​​태그 추가
-r - 인코딩된 이미지의 메타 데이터에 Bayer 배열을 저장합니다.
그러나 OWN 인수가 있습니다.
-rgb - "원시" 원시 데이터를 RGB888 형식(8비트/채널)으로 저장합니다.

raspivid - 비디오 캡처

실행 매개변수

논쟁
설명
유효 범위
기본값
-w
너비
0...최대
1920
-시간

0...최대
1080
-비
비디오 비트레이트
초당 비트 수입니다.
10Mbits/s가 설정되었습니다 -b 10000000
-영형
파일 이름
파일의 경로
-
-V
터미널로 출력
캡처 프로세스에 대한 정보
-티
행동 전 지연
밀리초 단위
0
-fps
프레임 속도
초당 프레임 수 2...30
-케이
Enter를 눌러 녹음 시작/중지
"X"를 누르면 프로세스가 중단됩니다.
-sg
고정된 기간의 비디오 세그먼트를 별도의 파일로 저장
한 세그먼트의 지속 시간과 파일 마스크 설정
-sg 3000 -o 비디오%04d.h264
-wr
분할 중 최대 파일 수 제한
-sg 인수와 함께 사용되며 본질적으로 DVR에서와 같이 주기적 재작성을 구현합니다.
기본 해상도는 1080p(1920x1080)입니다.
구체적인 예를 살펴보겠습니다.
5초 표준 비디오(1920x1080, 30프레임/초)를 녹화하고 파일에 저장 video.h264 raspivid -t 5000 -o video.h264 해상도 1080p 및 특정 비트 전송률 3.5Mbits로 5초 비디오 녹화 /s 및 파일 video.h264에 저장 raspivid -t 5000 -o video.h264 -b 3500000 5fps 프레임 속도로 5초의 표준 화질 비디오를 녹화하고 파일 video.h264 raspivid -t 5000 -o video.h264 -f에 저장 5 모니터가 HDMI를 통해 Raspberry에 연결된 경우 omxplayer 플레이어를 사용하여 녹화된 비디오를 볼 수 있습니다. sudo apt-get install omxplayer #플레이어가 아직 설치되지 않은 경우 omxplayer video.h264 VNC를 통해 비디오를 볼 수 없습니다.

오류 코드

  • 0 - 성공적인 완료
  • 64 - 잘못된 명령이 전송되었습니다(구문 오류).
  • 70 - 유틸리티 오류 또는 카메라와 통신 중 오류
  • 130 - 사용자에 의해 실행이 중단되었습니다(키 조합 Ctrl + C).

PiCamera 라이브러리

이것은 Raspberry 카메라 작업을 단순화하고 자동화할 수 있는 Python 프로그래밍 언어용 라이브러리입니다.
영어로 된 도서관에 대한 전체 설명
최신 버전의 Raspbian 배포판에는 라이브러리가 이미 사전 설치되어 있으므로 Python 콘솔을 통해 확인할 수 있습니다. D를 실행하고 sudo apt-get install python3-picamera 명령을 사용하여 라이브러리를 설치합니다. 위에서 설명한 터미널 명령과 유사한 Python 코드에서 카메라 작업을 수행합니다. Python 콘솔에서 직접 카메라로부터 표준 이미지를 쉽게 얻을 수 있습니다: import picamera #카메라 라이브러리 가져오기 Camera = picamera.PiCamera() #카메라 객체 생성 Camera.capture("image.jpg") #카메라 이미지 호출 캡처 방법 카메라 .close() #카메라 세션 닫기 이미지는 현재 폴더의 image.jpg 파일에 저장됩니다.

2년 전 처음 멀티콥터 작업을 시작했을 때는 작은 것을 만들어야 했어요. 쿼드콥터는 순전히 자율적으로 설계되었기 때문에 이 원격 제어에 필요한 것은 테스트 및 설정 중에 드론을 제어하는 ​​것뿐이었습니다.

원칙적으로 리모콘은 할당된 모든 작업을 매우 성공적으로 처리했습니다. . 하지만 심각한 단점도 있었습니다.

  1. 배터리가 케이스에 안들어가서 전기테이프로 케이스에 붙여두었어요 :)
  2. 매개변수는 온도에 매우 민감한 4개의 전위차계를 사용하여 조정되었습니다. 실내에서 몇 가지 값을 설정하고 밖으로 나가면 이미 다르며 떠 있습니다.
  3. 아두이노 나노, 제가 ​​리모콘에 사용한 것은 아날로그 입력이 8개밖에 없습니다. 4개는 전위차계 튜닝에 사용되었습니다. 하나의 전위차계가 가스로 사용되었습니다. 두 개의 입력이 조이스틱에 연결되었습니다. 출력은 하나만 남았고 구성할 매개변수는 더 많았습니다.
  4. 유일한 조이스틱은 전혀 파일럿 조이스틱이 아니었습니다. 전위차계로 스로틀을 제어하는 ​​것도 상당히 답답했습니다.
  5. 그리고 리모콘에서는 소리가 나지 않아서 때로는 매우 유용합니다.

이러한 모든 단점을 제거하기 위해 저는 리모콘을 근본적으로 재설계하기로 결정했습니다. 하드웨어 부분과 소프트웨어 모두. 제가 하고 싶었던 일은 다음과 같습니다:

  • 지금 원하는 것(배터리 포함)을 모두 담고 나중에 원하는 것을 담을 수 있도록 큰 케이스를 만드세요.
  • 전위차계 수를 늘리는 것이 아니라 어떻게든 설정 문제를 해결하십시오. 또한 리모콘에 매개변수를 저장하는 기능도 추가하세요.
  • 일반 파일럿 콘솔처럼 두 개의 조이스틱을 만듭니다. 글쎄, 조이스틱 자체를 정통으로 두십시오.

새 건물

아이디어는 매우 간단하고 효과적입니다. 플렉시 유리 또는 기타 얇은 재료로 두 개의 판을 잘라내어 랙에 연결합니다. 케이스의 전체 내용물은 상단 또는 하단 플레이트에 부착됩니다.

컨트롤 및 메뉴

여러 매개변수를 제어하려면 리모콘에 여러 개의 전위차계를 배치하고 ADC를 추가하거나 메뉴를 통해 모든 설정을 지정해야 합니다. 이미 말했듯이 전위차계를 사용하여 조정하는 것이 항상 좋은 생각은 아니지만 포기해서는 안 됩니다. 그래서 리모콘에 전위차계 4개를 남겨두고 전체 메뉴를 추가하기로 결정했습니다.

메뉴를 탐색하고 매개변수를 변경하려면 일반적으로 버튼을 사용합니다. 왼쪽, 오른쪽, 위, 아래. 하지만 버튼 대신 인코더를 사용하고 싶었습니다. 3D 프린터 컨트롤러에서 이 아이디어를 얻었습니다.


물론 메뉴 추가로 인해 리모컨 코드도 몇 배로 확장됐다. 우선 "Telemetry", "Parameters" 및 "Store params"라는 세 가지 메뉴 항목만 추가했습니다. 첫 번째 창에는 최대 8개의 다양한 표시기가 표시됩니다. 지금까지 배터리 전원, 나침반, 고도 세 가지만 사용합니다.

두 번째 창에서는 X/Y, Z축 및 가속도계 보정 각도에 대한 PID 컨트롤러 계수 등 6개의 매개변수를 사용할 수 있습니다.

세 번째 항목을 사용하면 EEPROM에 매개변수를 저장할 수 있습니다.

조이스틱

나는 파일럿 조이스틱의 선택에 대해 오랫동안 생각하지 않았습니다. 저는 쿼드콥터 사업의 동료인 유명한 웹사이트 alex-exe.ru의 소유자인 Alexander Vasiliev로부터 첫 번째 Turnigy 9XR 조이스틱을 받았습니다. 두번째는 하비킹에서 직접 주문했어요.


첫 번째 조이스틱은 요(yaw)와 피치(pitch)를 제어하기 위해 두 좌표 모두에 스프링이 장착되었습니다. 제가 가져간 두 번째 것은 동일한 것이므로 견인력과 회전을 제어하기 위해 조이스틱으로 변환할 수 있었습니다.

영양물 섭취

이전 리모콘에서는 8개의 AA 배터리가 공급되는 간단한 LM7805 전압 조정기를 사용했습니다. 레귤레이터 가열에 7V가 소비되는 매우 비효율적 인 옵션입니다. 8 개의 배터리-손에 그러한 구획 만 있었고 LM7805가 있었기 때문에-당시이 옵션은 나에게 가장 간단하고 가장 중요하게 가장 빠른 것처럼 보였습니다.

이제 저는 더 현명하게 행동하기로 결정하고 LM2596S에 상당히 효과적인 레귤레이터를 설치했습니다. 그리고 AA 배터리 8개 대신 LiIon 18650 배터리 2개를 넣을 수 있는 칸을 설치했습니다.


결과

모든 것을 종합해서 이 장치를 얻었습니다. 내부 모습.


하지만 뚜껑을 닫은 상태에서.


한 전위차계의 캡과 조이스틱의 캡이 없습니다.

마지막으로 메뉴를 통해 설정을 구성하는 방법에 대한 비디오입니다.


결론

리모콘은 물리적으로 조립되어 있습니다. 이제 나는 이전의 강한 우정을 되찾기 위해 리모콘과 쿼드콥터에 대한 코드를 마무리하는 작업을 하고 있습니다.

리모컨을 설정하는 동안 단점이 확인되었습니다. 첫째, 리모콘의 아래쪽 모서리가 사용자의 손에 달려 있습니다. (아마도 플레이트를 약간 다시 디자인하고 모서리를 매끄럽게 만들 것입니다. 둘째, 16x4 디스플레이조차도 아름다운 원격 측정 디스플레이에는 충분하지 않습니다. 매개 변수 이름을 두 글자로 지정합니다. 장치의 다음 버전에서는 도트 디스플레이를 설치하거나 즉시 TFT 매트릭스를 설치합니다.


Raspberry Pi 단일 보드 컴퓨터를 사용하면 멀티미디어 센터부터 홈 자동화 시스템까지 정말 흥미롭고 유용한 것들을 만들 수 있습니다. 다양한 모듈을 Raspberry Pi에 연결하면 이 미니컴퓨터의 기능을 크게 확장할 수 있습니다.



이러한 추가 플러그인 중 하나는 사진을 찍거나 비디오를 촬영할 수 있는 카메라입니다. 현재 시장에는 Raspberry Pi용 카메라가 많이 나와 있으며, 이 기사에서는 이에 대한 간략한 리뷰를 제공하겠습니다.


가장 인기 있는 카메라 6가지를 살펴보겠습니다. ZeroCam Noir, ZeroCam FishEye, Raspberry Pi Compatible Fisheye 카메라, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir 및 Raspberry Pi Camera 1.3.



ZeroCam Noir는 Raspberry Pi Zero 또는 Raspberry Pi Zero W용 카메라 모듈이므로 Raspberry Pi 3 또는 2에서 사용하려면 어댑터 케이블을 사용해야 합니다. 이 카메라에는 렌즈에 IR 필터가 없으므로 저조도 사진 촬영에 이상적입니다. 주요 특징은 다음과 같습니다: 5 메가픽셀 센서, 2592 × 1944 픽셀, 30FPS에서 1080p(또는 720p에서 60FPS, 480p에서 90FPS), 초점 거리 3.60mm, 수평 53.50도, 수직 41.41도. 카메라 포함 보드 크기: 60 x 11.4 x 5.1 mm.



이것은 ZeroCam의 어안 버전으로, 이는 광각 이미지를 가지고 있음을 의미합니다. 이 카메라는 Pi Zero 또는 Pi Zero W용으로도 제작되었으므로 다른 Pi 패널과 함께 사용하려면 어댑터 케이블이 필요합니다.



AliExpress, TaoBao, eBay 등 다양한 온라인 거래 플랫폼에서 쉽게 찾을 수 있는 Raspberry Pi 호환 피쉬아이 카메라입니다. 175°의 광각 시야가 특징입니다. 이는 5메가픽셀(2592 x 1944픽셀) 해상도의 Omnivision 5647 센서를 기반으로 합니다.



이 카메라에는 3280×2464 픽셀의 정적 이미지를 표시할 수 있는 고정 초점 렌즈가 있는 8 메가픽셀 Sony IMX219 이미지 센서가 장착되어 있으며 1080p30, 720p60 및 640×480p90 비디오를 지원합니다. 카메라는 모든 Raspberry Pi 보드와 호환되지만 Pi Zero와 함께 사용하려면 어댑터 케이블이 필요합니다.



이 카메라에는 Raspberry Pi Camera V2 모듈의 모든 기능이 있지만 IR 필터는 없습니다. 이는 어둠 속에서 촬영하기에 거의 이상적인 카메라라는 것을 의미합니다.



Raspberry Pi Camera 1.3은 V2 모듈의 전신입니다. 500만 화소 OmniVision OV5647 센서가 탑재되어 있습니다.

Raspberry Pi 카메라의 화각 및 화질 비교

이번 테스트에서는 모든 카메라가 테스트 이미지로부터 1m 떨어진 곳에 설치됐다. 결과는 다음과 같습니다:











확대/축소 시 Raspberry Pi 카메라의 화질 및 연색성 비교











야간 촬영 화질 비교

아래 결과는 동일한 작업을 수행하는 여러 야간 촬영용 카메라를 보여줍니다. 테스트 이미지어둠 속에서 매우 낮은 조명에서.







결론

모든 카메라는 이렇게 저렴한 모듈에서 예상보다 약간 더 나은 성능을 발휘합니다. 아쉽게도 그 중에는 올인원 카메라가 없고, IR 차단 필터를 제거한 광각(어안) 카메라도 없는 것 같아 절충점이 있습니다. 따라서 광각을 원한다면 일반 조명이 필요하고, 반대로 밤에는 광각 사진을 찍을 가능성이 없습니다.

안녕하세요!

새해 전날에 저는 일종의 비디오 감시 장치를 구축하겠다는 아이디어를 얻었습니다. 나는 필요한 모든 것을 준비했습니다.

  • Raspberry Pi 모델 B 단일 보드 컴퓨터
  • 웹캠 로지텍 HD 웹캠 C270
읽은 후 작가의 아이디어를 조금 발전시키기로 결정했습니다.
아는 사람
먼저 주요 "구성 요소"에 대해 알아 보겠습니다.
라즈베리 파이 외관:

형질:

  • FPU 및 Videocore 4 GPU를 탑재한 Broadcom BCM2835 700MHz ARM1176JZFS 프로세서
  • GPU는 Open GL ES 2.0, 하드웨어 가속 OpenVG 및 1080p30 H.264 하이 프로파일 디코드를 제공합니다.
  • GPU는 텍스처 필터링 및 DMA 인프라를 통해 1Gpixel/s, 1.5Gtexel/s 또는 24GFLOPS를 지원합니다.
  • 512MB RAM
  • Linux 운영 체제 버전을 실행하여 SD 카드에서 부팅합니다.
  • 10/100 BaseT 이더넷 소켓
  • HDMI 비디오 출력 소켓
  • USB 2.0 소켓 2개
  • RCA 컴포지트 비디오 출력 소켓
  • SD 카드 소켓
  • microUSB 소켓에서 전원 공급
  • 3.5mm 오디오 출력 잭
  • Raspberry Pi HD 비디오 카메라 커넥터
  • 크기: 85.6 x 53.98 x 17mm"
pi@hall-pi ~ $ cat /proc/cpuinfo 프로세서: 0 모델 이름: ARMv6 호환 프로세서 rev 7 (v6l) BogoMIPS: 2.00 기능: swp half Thumb fastmult vfp edsp java tls CPU 구현자: 0x41 CPU 아키텍처: 7 CPU 변형 : 0x0 CPU 부분: 0xb76 CPU 개정: 7 하드웨어: BCM2708 개정: 000e 시리얼: 000000005a82c372

공식적으로 지원되는 배포판 목록을 찾을 수 있습니다. 저는 그래픽 쉘이 없는 Raspbian을 선택했습니다.

설치 과정은 매우 간단하며 필요하지 않습니다. 상세 설명, 주목할만한 주요 사실을 나열하겠습니다.

  1. 시간대 설정
  2. 컴퓨터 이름 설정
  3. SSH 액세스 활성화
  4. 시스템 업데이트
필요한 모든 설정을 완료한 후 시작할 수 있습니다.
준비
먼저 필요한 모든 패키지를 설치해 보겠습니다.
sudo apt-get 설치 imagemagick libav-tools libjpeg8-dev 전복
그런 다음 mjpg-streamer를 다운로드하고 어셈블하십시오.
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
왜냐하면 우리는 모든 데이터를 클라우드에 저장하고 원격으로 작업을 설정합니다 파일 시스템 WebDAV를 통해:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
사용자 이름과 비밀번호를 매번 입력하지 않으려면 파일에 추가해야 합니다.
/etc/davfs2/secrets
/mnt/dav 사용자 비밀번호
작업 과정
WebDAV를 마운트하고 네트워크에 브로드캐스팅하기 위한 스크립트를 실행하기 위해 /etc/rc.local에 명령을 추가해 보겠습니다.
마운트 -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
이제 http://:8080/으로 이동하여 카메라에 액세스할 수 있습니다. 남은 것은 라우터의 포트를 전달하는 것뿐입니다. 그러면 로컬 네트워크 외부에서 카메라에 액세스할 수 있습니다.
타임랩스 동영상 만들기
우선, 카메라에서 이미지를 얻어야 합니다. 왜냐하면 이미 사용 중이면(이미지가 웹 서버에 의해 브로드캐스팅됨) 웹 서버에서 현재 이미지를 수신할 수 있는 기회를 활용합니다.
컬 http://localhost:8080/?action=snapshot > out.jpg
이미지에 사진의 날짜를 그리려면 변환 명령을 사용할 수 있습니다.
timestamp=`stat -c %y out.jpg` 변환 out.jpg -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" out_.jpg
풀 버전스크립트:
#!/bin/bash filename=$(perl -e "print time") 폴더 이름=$(date --rfc-3339=date) 컬 http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$foldername Convert $filename -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /out/$foldername/$filename.jpg rm $filename
비디오는 avconv 명령을 사용하여 어셈블됩니다.
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
비디오 어셈블리 스크립트의 정식 버전:
#!/bin/bash filename=$(date --rfc-3339=date) i=0 for f in `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
이제 남은 것은 Cron 스케줄러에 스크립트 실행을 등록하는 것입니다.
* * * * * 파이 bash /home/pi/cam.sh 59 23 * * * 파이 bash /home/pi/build.sh
예시 영상
결론
이 접근 방식을 사용하면 비디오를 시청하는 데 많은 시간을 소비할 필요가 없어지고 최종 제품의 비용도 절감됩니다. 본격적인 OS가 있기 때문에 올바른 방향으로 기능을 확장하는 것이 가능해집니다.

왜냐하면 이 컴퓨터는 Wi-Fi를 통해 카메라(예: USB 카메라)에서 다른 장치로 비디오를 수신, 저장, 처리 및 전송할 수 있는 충분한 성능을 갖추고 있습니다. Raspberry PI의 특수 커넥터에 연결되는 특수 카메라와 임의의 USB 카메라에 연결되는 특수 카메라가 있습니다. USB 포트라즈베리파이에서. 왜냐하면 일반적으로 USB 카메라는 특수 카메라보다 훨씬 저렴하므로(더 나쁘기는 하지만) 다음에는 Raspberry PI와 함께 USB 카메라를 사용하는 것을 고려해 보겠습니다. USB 카메라에서 영상을 캡처하는 프로그램은 여러 가지가 있고, 직접 작성할 수도 있지만 단순화를 위해 먼저 모션 프로그램을 사용하여 영상을 캡처하고 전송하는 방법을 살펴보겠습니다. Raspberry PI에 모션 프로그램을 설치하려면 먼저 Putty 프로그램(또는 SSH를 통해 통신할 수 있는 다른 터미널 프로그램)을 통해 연결해야 합니다(이를 수행하는 방법에 대한 자세한 내용은 이전 기사 "Raspberry PI 3" 참조). WIFI를 통해 GPIO 설정 및 관리”). Raspberry PI에 연결한 후 다음 명령을 사용하여 시스템을 업데이트해야 합니다.

Sudo apt-get 업데이트

Sudo apt-get 업그레이드

시스템 업데이트가 성공적으로 완료되면 다음 명령을 사용하여 모션 프로그램을 설치해야 합니다.

Sudo apt-get 설치 모션

설치 중에 "계속하시겠습니까?"라는 질문이 나타날 수 있습니다. 그런 다음 문자 "Y"를 입력해야 합니다. 모션 프로그램을 설치한 후 구성 파일을 일부 변경해야 합니다. 다음 명령을 사용하여 nano 편집기에서 Motion.conf 파일을 엽니다.

Sudo nano /etc/motion/motion.conf

그 다음에

로 교체되다

다음으로 변경할 다른 행을 찾습니다. 이를 위해 CTRL+W 키 조합을 누르고 "stream_localhost"를 입력한 후 Enter 키를 누릅니다. 그런 다음 필요한 행을 찾아야 합니다. 찾을 수 없으면 "stream_localhost" 변수를 입력합니다. ”는 다른 이름으로 불립니다(예: “webcam_localhost” 또는 이와 유사한 것). 이 변수가 있는 줄을 찾은 후에는 다음을 수행해야 합니다.

Stream_localhost 켜짐

~로 교체되다

Stream_maxrate 1

그리고 다음으로 교체하세요.

Stream_maxrate 100

로 교체되다

그 다음에

최소_프레임_시간 0

로 교체되다

최소_프레임_시간 1

후자는 프레임이 초당 한 번씩 출력되도록 수행됩니다. 이는 보기에는 좋지 않지만 이미지가 갑자기 변경되어도 비디오는 사라지지 않습니다. 각 변수의 목적은 주석에서 읽을 수 있습니다.
이제 CTRL+O를 눌러 변경 사항을 저장하고 Enter를 누른 다음 CTRL+X를 누르고 종료합니다. 나노 에디터. 이제 다른 파일을 편집해 보겠습니다. 이를 위해 다음 명령을 입력합니다.

Sudo nano /etc/default/motion

그리고 라인 교체

Start_motion_daemon=아니요

Start_motion_daemon=yes

그런 다음 CTRL+O를 눌러 변경 사항을 저장하고 Enter를 누른 다음 CTRL+X를 누르고 nano 편집기를 종료합니다. 이제 다음 명령을 사용하여 비디오 전송을 시작할 수 있습니다(USB 카메라는 포트 중 하나에 연결되어야 함).

Sudo 서비스 모션 시작

명령으로 중지

Sudo 서비스 모션 중지

동영상을 보려면 브라우저를 열고 주소 표시줄에 Raspberry PI의 IP 주소를 입력한 다음 콜론과 8081(Raspberry PI의 IP 주소: 8081)을 입력하고 Enter 키를 눌러야 합니다. USB 카메라의 비디오가 브라우저에 나타나야 합니다. 이 모든 작업이 어떻게 수행되는지, 결과 및 기타 내용을 비디오에서 확인하실 수 있습니다.

이와 같이 간단한 방법으로 Raspberry PI에 연결된 USB 카메라에서 영상을 얻을 수 있습니다. Wi-Fi가 내장되어 있고 보조 배터리(또는 다른 휴대용 전원)로 전원이 공급되는 Raspberry PI 3인 경우(예를 들어 이 제품 또는 더 저렴한 제품이지만 저렴한 제품인 Raspberry PI를 사용하는 것은 권장되지 않습니다) 모든 기능을 사용하려면 일반 전원이 필요합니다. 또한 라즈베리 작동 중에 개발되는 프로세서 및 기타 미세 회로용 방열판을 설치하는 것이 매우 좋습니다. 이상적으로 방열판은 구리여야 하며 특수 검정색 페인트로 코팅되어야 합니다. 그런 다음 모든 기반을 기반으로 합니다. 이를 통해 일종의 비디오 감시 시스템, 비디오 카메라 또는 이와 유사한 것을 만들 수 있습니다.




맨 위