본문 바로가기
Computer Science/Embedded System Design

[임베디드] 2장 라즈베리파이 소개

by na1-4an 2023. 10. 20.

1. 라즈베리파이

  • 개발: 2006년 영국 에반업튼 박사가 개발.
  • 목적: 영국 라즈베리 파이 재단이 학교, 개발도상국에게 컴퓨터 보급하기 위해 만든 싱글보드 컴퓨터.
  • 특징(3): 저렴한 가격, 신용카드 크기, 컴퓨터로 동작할 정도로 충분한 성능

2. 라즈베리파이 VS 아두이노

  - 아두이노: 펌웨어를 구동하는 임베디드 보드

  - 라즈베리파이: 운영체제(리눅스)를 구동하는 컴퓨터. (ARM CPU)

 

3. 라즈베리 파이 특징(10) - Model 4B 기준.

  • 프로세서: .5GHz로 클록된 네 개의 ARM Cortex-A72 코어가 있는 프로세서를 사용.
  • 메모리: DRAM은 2, 4, 8GB. Micro-SD카드는 클래스 4이상 권장.
  • 전원: 5V DC 전원을 USB 플러그로 입력. 최대 2.5A 전류 입력
  • 비디오 출력: HDMI, Dual 4K 비디오.
  • 오디오 출력: 표준 3.5mm 오디오 
  • 이더넷: RJ45 커넥터
  • USB: 단자 4개
  • 디지털 신호레벨: 3.3V - High, GND(0V) - Low.  (cf. 아두이노는 5V, 0V)
  • 인터럽트 조건(4): HIGH, LOW 레벨 감지, HIGH->LOW, LOW->HIGH 변화 감지
  • 운영체제(3): 리눅스 기반으로 만든 Raspberry Pi OS, 우분트메이트, 윈도우즈 10 IoT core

4. 라즈베리파이 GPIO 핀

  - GPIO: 다용도 입출력 포트

  - GPIO 핀 0과 1은 보드에 존재하지만 (물리적 핀 27 및 28), 고급 사용을 위해 남겨두어야함.

5. 라즈베리 파이 운영체제

  - RPi OS: RPI의 공식 운영체제. 라즈베리파이 재단에 의해 지원됨. piwheel.org 웹에서 앱패키지 제공.

  - Raspberry Pi Imager: 라즈베리 파이 장치에 os를 설치하는데 사용되는 도구.

  - 라즈베리파이 장치에 OS 설치하기

  • 컴퓨터에 SD카드 삽입.
  • 저장소로 SD카드 선택.
  • Raspberry Pi OS (64bit) 설치.
  • 설치가 끝나면 SD카드를 라즈베리파이에 장착.
  • 마우스, 키보드 연결.
  • 파워 꽂으면 부팅 시작.
  • 초기 설정. (아래 그림 참고)

  - 라즈베리 파이 OS 업데이트

     (1) $ sudo apt-get update: 패키지 목록 업데이트

     (2) $ sudo apt-get upgrade: 패키지 업그레이

     (3) $ sudo apt-get rpi-update: 펌웨어 업데이트

 

6. 라즈베리 파이 소프트웨어

  • (메뉴-> 기본 설정 -> 권장소프트웨어) Thonny설치. (이외: LibreOffice(오피스업무), Mathematica(계산))
  • piwheel.org에서 패키지 제공하지만, 64bit PI OS는 지원 안함. 필요시 apt, apt-get으로 설치 가능.
  • OpenCV, Tensorflow 설치.
  • Keras, Pandas 설치.($ pip install keras)
  • Exfat 설치(USB에 널리 사용되는 파일 시스템)( $ sudo apt install exfat-fuse )( $ sudo apt install exfat-utils )

7. 원격 접근 설정

: Menu->기본 설정->Raspberry Pi Configuration -> Interface -> VNC나 SHH 켠 후 IP 주소 확인.

  • VNC: PC에 Real VNC클라이언트 설치 후 실행. IP 주소로 접속.
  • SSH: 윈도우에서 PowerShell 실행 후 다음 명령어 실행( –PS C:\User\User> ssh username@ip_addr

8. RPi Camera

  - 패키지 설치: $ sudo pip install ”picamera[array]”

  - RPi Camera 연결

  • 카메라 연결: 가드 위로 올리고 케이블 삽입. 삽입 후 가드 내리기.
  • 카메라 제거 시: 가드 올리고 제거.
  • 카메라 동영상 찍기: $ libcamera-vid --frames 300 --qt-preview -o source.h264

(libcamera라이브러리를 사용해 비디오를 캡쳐해라) (300개 프레임을 캡쳐해라)

(퀵타임 미리보기 활성화) (비디오 저장될 출력파일 지정)

from picamera2 import Picamera2
from libcamera import controls	

picam2 = Picamera2()	# Picamera2 클래스의 인스턴스 생성
picam2.start(show_preview=True)	# 미리보기 활성화, 카메라 시작
picam2.start_and_capture_files("fastfocus-test{:d}.jpg", num_files=3, delay=0.5)
# 경로로 파일 지정하고, 3장의 이미지를 캡쳐, 이미지간 딜레이는 0.5
picam2.stop_preview()	# 미리보기 중지
picam2.stop()	# 카메라 중지

 

9. 기타

  • sudo: Superuser Do로, 관리자 권한으로 명령어 실행.
  • apt: 패키지 관리 도구. 패키지 설치, 업데이트, 제거.
  • pip: Pip install package-name으로, 파이썬 패키지 설치하는 데에 사용.
  • 시리얼 통신: 직렬 통신
  • 소스코드 -> 빌드 -> 실행파일 -> 실행