라즈베리파이 & 임베디드 기초
2026. 1. 10. 11:11ㆍ📚 Linux
🍓 라즈베리파이 & 임베디드 기초 학습 정리
1. 라즈베리파이 (Raspberry Pi) 개요
- 정의: SBC (Single Board Computer). 많은 리눅스 및 임베디드 SW 개발자가 교육용으로 다루는 훌륭한 MPU.
- 역할: GUI 원격 제어기로서 Edge Device와 DB 사이에서 중계 및 제어 역할을 담당.
- 라즈베리파이 5 스펙 (Model B):
- 칩셋: Broadcom BCM2712
- CPU: 2.4GHz ARM Cortex-A76 쿼드코어
- RAM: 8GB
- 통신: WiFi, BLE (Bluetooth 5.0), 이더넷 등
- IDE: Thonny Python IDE 내장 (Python 주로 사용)
2. 전기전자 기초
🔹 전압과 전류
임베디드 장치는 적절한 용량의 전기가 공급되어야 고장나지 않고 동작합니다.
- 전압 (Voltage, V): 전하가 갖는 전위의 차이. (압력)
- 전류 (Current, A): 단위 시간당 흐르는 전하의 양. (흐름)
- 전력 (Power, W):
W = V * A - 멀티미터 측정:
- 병렬 연결: 전압 측정
- 직렬 연결: 전류 측정
- 전원: 임베디드는 주로 직류(DC)를 사용하며, 항상 VCC(+)와 GND(-)를 가짐.
🔹 저항 (Resistor)
- 역할: 전기의 흐름을 방해하여 원하는 전압/전류를 맞춤 (과전류 방지).
- 주요 저항 색띠:
- 220Ω: 빨/빨/갈 (4띠), 빨/빨/검/갈 (5띠)
- 10kΩ: 갈/검/주
- 브레드보드: 빨간색 라인(VCC), 파란/검정 라인(GND) 연결.
🔹 정격 전압/전류 (Rating)
- 정격: 기기가 동작하는 데 필요한 표준 값.
- 규칙: 공급 전압은 정격과 일치해야 하며, 공급 전류는 정격보다 커야 함.
- 라즈베리파이 5 전원: 5V / 5A (정품 어댑터 권장).
- GPIO 전기 규격:
- 공급 전압: 최대 3.3V
- 핀당 최대 전류: 16mA
- 모든 핀 총 전류: 1A
3. 임베디드 개발 방식
🔹 개발 형태 분류
- Bare-metal (Firmware):
- OS 없이 하드웨어 위에서 직접 동작하는 코드 작성.
- 주로 작은 MCU(마이크로컨트롤러) 개발 시 사용.
- RTOS (Real Time OS):
- 실시간성을 보장하는 가벼운 OS 사용.
- Embedded Linux:
- 리눅스 기반의 풍부한 개발 도구와 생태계 활용. (라즈베리파이 해당)
🔹 크로스 컴파일 (Cross Compile)
- 정의: 개발 환경(PC)과 실행 환경(타겟 보드)의 아키텍처가 다를 때 사용하는 컴파일 방식.
- 이유: 개발 PC(Host)의 성능이 임베디드 보드(Target)보다 훨씬 우수하기 때문에, PC에서 컴파일하여 실행 파일만 보드로 전송하여 실행함.
4. GPIO 제어 및 실습
🔹 GPIO (General Purpose Input Output)
- 정의: 칩 제작사가 용도를 고정하지 않고, 사용자가 자유롭게 H/W를 연결해 제어하도록 만든 핀.
- 제어 방법:
- Device Driver: 리눅스 커널 레벨에서 제어.
- Library: 랩핑(Wrapping)된 함수를 사용하여 쉽게 제어.
- Pinout 가이드: https://pinout.xyz/
🔹 파이썬 라이브러리
- gpiozero (추천): 초보자가 사용하기 쉽도록 직관적으로 설계됨.
- RPi.GPIO: 더 세부적인 로우 레벨 설정이 가능함.
🔹 LED 제어 실습 코드 (led.py)
from gpiozero import LED
from time import sleep
red = LED(14) # GPIO 14번 핀에 연결
while True:
red.on() # High 신호 (켜기)
sleep(1)
red.off() # Low 신호 (끄기)
sleep(1)
실행: python3 led.py
주의: LED는 긴 쪽이 +, 짧은 쪽이 -. 사용하지 않는 모듈은 분리(특히 GND).
5. 스위치와 플로팅(Floating) 상태
🔹 플로팅 상태란?
스위치를 누르지 않았을 때, 핀의 전압이 High(1)인지 Low(0)인지 확정할 수 없는 불안정한 상태.
모든 MCU 입력 핀에서 발생 가능.
🔹 해결 방법 (Pull-up / Pull-down)
저항을 사용하여 평소 상태(Default)를 고정해 줌.
풀업 (Pull-up):
평소(스위치 Open)에 High 상태 유지.
스위치를 누르면 Low가 됨.
VCC 쪽에 저항 연결.
선호: 노이즈 제거 및 회로 보호에 유리하여 더 많이 사용됨.
풀다운 (Pull-down):
평소에 Low 상태 유지.
스위치를 누르면 High가 됨.
GND 쪽에 저항 연결.
Tip: 라즈베리파이 GPIO 핀에는 내부 풀업 회로가 내장되어 있어, 소프트웨어적으로 설정하거나 자동으로 적용되는 경우가 많습니다.
🛠️ 기타 팁
VNC 접속 불가 시: Raspberry Pi Configuration → Interfaces → VNC 활성화(Enable) 체크.
회로 연결 순서: 항상 3.3V와 GND를 먼저 연결하여 기준 전위를 잡을 것.
'📚 Linux' 카테고리의 다른 글
| [Linux] Build System 이해 (0) | 2026.01.12 |
|---|---|
| [Raspberry pi] sensor (1) | 2026.01.10 |
| [Linux] 원격접속 / 사용자와 파일 권한 (0) | 2026.01.05 |
| [Linux] vi / plugin (0) | 2026.01.05 |
| Linux Shell (0) | 2026.01.02 |