CastleJo의 개발일지

21-01-09-TiL

|

Getting Started with Raspberry Pi

졸업작품을 할 때 라즈베리파이에 카메라를 붙이고 적외선카메라도 붙인 클라이언트를 만들어야한다…
아두이노를 다뤄본 적은 꽤 많고 외주를 받아본 적도 있지만 라즈베리파이는 다뤄본 적이 없기 때문에 많은 난관이 있을거라고 생각한다.
연구실에 라즈베리파이가 있지만 나는 지금 기숙사에있고 오늘은 연구실에 갈 계획이 없기때문에 미리 하는법만 공부를 해가려고 한다. 오늘은 첫번째로 라즈비안을 설치하고 두번째로 카메라를 연결하는 것만 포스팅하려고 한다.

Difference Between RaspberryPi and Arduino

다른 많은 오픈소스 하드웨어들이 있지만 가장 대표적인 두 개만 조사해보았다. 가장 익숙하기도 하고…
아두이노는 일단 운영체제가 없고, 라즈베리파이는 있다.
아두이노는 외부에서 프로그래밍을 한 뒤 특정 신호가 있을 때 어떤 행동을 하게 하는 느낌이고 라즈베리파이는 작은 컴퓨터 라고 생각이 된다.
따라서 두 개의 사용 용도가 조금 다른데, 아두이노같은 경우는 센서, 모터와 같은 비교적 단순한 동작을 수행하는데 더 유리하고, 라즈베리파이는 비디오나 카메라같은 영상처리나 데이터 처리에 더 적합하다. 물론 라즈베리파이도 아두이노가 할 수 있는 것을 모두 할 수 있지만 비용 측면에서도 자원 측면에서도 낭비라고 생각된다.
졸업 작품에서는 영상 처리와 실시간 통신을 고려하여 생각해보면 라즈베리파이가 적합하다고 생각했다.

Install RaspberryPi OS

일단 라즈베리파이 OS를 공식 홈페이지 에서 다운로드 받아야 한다.
Lite 버전은 용량이 적은 대신 인터넷 연결이 필요하다고 되어있다. 귀찮으니 그냥 풀버전을 받기로 결정했다. 받은 파일을 SD카드로 복사하여 넣어준다. 이때 SD카드는 포맷 방식이 FAT로 되어있는지 확인해야 한다. 그다음 모니터를 연결하기 위해 (라즈베리파이)HDMI-모니터 연결 잭을 준비한다. 이런 다음 라즈베리파이에 전원을 넣어주면 모니터에 신호가 들어온다. SD카드를 삽입하여야 정상적으로 신호가 들어온다. OS를 설치하는 기본 창이 표시된다.
딱 봐도 맞는것같은 선택지를 누르면… 정상적으로 설치가 완료된다.

Using Camera Module in RaspberryPi

라즈베리파이에는 보통 카메라 모듈을 연결할 수 있는 포트가 1개 있다.
클라이언트 설계에는 2개의 카메라가 연결되어야 한다.
아.. 이건 우선 나중에 생각하자… 열 측정을 위한 적외선 카메라는 센서로도 대체할 수 있다. 물론 자존심때문에 그럴 일은 없을것같기도 하다. 나중에 센서로 하게되면 이 말은 삭제해야지
일단 기본 카메라를 연결하는 것부터 해보자.
포트를 정상적으로 연결한 뒤 라즈베리파이의 터미널에서

sudo raspi-config

명령어를 입력한다. 설정창을 여는 명령어다. 다음 5번 interfacing-options에 들어가 P1 Camera 메뉴를 Enable 해준 뒤 재부팅을 한다. 재부팅을 한 뒤 터미널을 열고

raspistill -o (이미지이름.jpg) -t (밀리초)

밀리초 뒤에 이미지 이름으로 사진을 찍으라는 명령어다. 여러가지 옵션들이 있다.

-vf 상하반전
-hf 좌우반전

용도와 환경에 따라 설정해준다.

사진 뿐만 아니라 동영상도 촬영이 된다.

raspvid -o (비디오이름.h264)

기본적으로 5초정도 촬영하고, 옵션에 따라 바꿔줄 수 있다. 포맷이 .h264로 되어있는데 mp4로 인코딩도 해줘야 한다.

터미널에 아래의 명령어를 입력한다

sudo apt-get install -y gpac

다음 아래 명령어를 입력한다

MP4BOX -add (비디오이름.h264) (변경할 비디오이름.mp4)

정상적으로 작동함을 확인할 수 있다.

사실 이 명령어는 기본적으로 작동히 하는지만 확인하는 것이고 실제로는 파이썬 코드 안에 물려서 사용할 예정이다. 이는 다음에 공부해야겠다.

여담

나도 아직 테스트를 못해봤다…
내일은 일요일이지만 뭐… 가서 해봐야겠다
추가) 발음때문에 Raspbian -> Raspberry OS로 바꿨다고 한다..