프로그래밍(94)
-
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot란?)
U-Boot란?U-Boot(Unified Bootloader)는 임베디드 시스템에서 널리 사용되는 오픈소스 부트로더입니다.ARM, RISC-V, PowerPC, MIPS 등의 임베디드 프로세서에서 작동하며, 운영체제(예: 리눅스, RTOS 등)를 로드하고 실행하는 역할을 수행합니다.임베디드 시스템에서 하드웨어 초기화, 부팅 옵션 설정, 네트워크 부팅, 환경 변수 관리 등 다양한 기능을 제공하여, 사용자가 원하는 방식으로 시스템을 부팅할 수 있도록 지원합니다.1. 부트로더의 개념 및 역할부트로더란?부트로더(Bootloader)는 전원이 켜졌을 때 CPU가 실행하는 첫 번째 소프트웨어입니다.운영체제(OS)를 실행하기 전에 하드웨어를 초기화하고, 커널을 로드하는 역할을 합니다.부트 과정 요약1️⃣ ROM 코드 ..
2025.02.26 -
GPIO 프로그래밍 개요 - 4. GPIO 핀 모드 설정 (INPUT, OUTPUT)
4. GPIO 핀 모드 설정 (INPUT, OUTPUT)GPIO 핀은 입력(Input) 모드 또는 출력(Output) 모드로 설정할 수 있으며, 이 설정에 따라 동작 방식이 달라진다.입력 모드는 센서나 버튼 등 외부 장치의 상태를 읽을 때 사용되며, 출력 모드는 LED, 모터 등의 장치를 제어할 때 사용된다.또한, 버튼 입력의 신뢰성을 높이기 위해 풀업 저항(Pull-up Resistor)과 풀다운 저항(Pull-down Resistor)을 설정할 수 있다.📌 1. 입력 모드 (Input Mode)입력 모드는 GPIO가 센서, 버튼 등의 신호를 읽을 때 사용되는 모드이다.이를 설정하면 GPIO 핀이 HIGH(1) 또는 LOW(0) 값을 읽을 수 있게 된다.✔ 입력 모드의 특징✅ 외부 신호(센서, 버튼 ..
2025.02.25 -
GPIO 프로그래밍 개요 - 3. 라이브러리 활용 (wiringPi, pigpio 등)
3. 라이브러리 활용 (wiringPi, pigpio 등)직접 제어 방식(sysfs)은 속도가 느리고 코드가 복잡하므로, 일반적으로 GPIO를 제어할 때 라이브러리를 활용하는 것이 더 효율적이다.라이브러리를 사용하면 더 간단하고 빠르게 GPIO를 제어할 수 있으며, PWM(펄스 폭 변조), 인터럽트(Interrupt) 같은 고급 기능도 쉽게 활용할 수 있다.대표적인 GPIO 제어 라이브러리로는 wiringPi, pigpio가 있으며, 각 라이브러리는 특정한 장점과 차이점을 가지고 있다.📌 wiringPi 라이브러리wiringPi는 C언어 기반 GPIO 제어 라이브러리로, 라즈베리파이에서 널리 사용되었다.하지만 라즈베리파이 OS 최신 버전(2020년 이후)에서는 기본 제공되지 않으며, 직접 설치해야 한다..
2025.02.25 -
GPIO 프로그래밍 개요 - 2. 직접 제어 방식 (sysfs 인터페이스 활용)
2. 직접 제어 방식 (sysfs 인터페이스 활용)리눅스에서는 /sys/class/gpio/ 디렉터리를 통해 파일 시스템 방식으로 GPIO를 직접 제어할 수 있다.이는 GPIO를 제어할 때 별도의 라이브러리 없이 기본적인 파일 읽기/쓰기 명령어(echo, cat)를 활용하는 방식이다.터미널에서 직접 실행하거나, C/C++ 프로그램 내에서 파일 조작을 통해 GPIO 핀을 제어할 수 있다.📌 기본적인 sysfs GPIO 제어 과정sysfs 인터페이스를 활용한 GPIO 제어는 다음 5단계로 진행된다.1️⃣ GPIO 핀을 활성화GPIO를 사용하기 위해서는 먼저 해당 핀을 시스템에 등록(export) 해야 한다.🔧 터미널 명령어 (Bash)echo 17 > /sys/class/gpio/export🔹 GPIO..
2025.02.25 -
GPIO 프로그래밍 개요 - 1. GPIO 접근 방식 개요
GPIO 프로그래밍 개요GPIO 프로그래밍을 통해 센서 입력을 읽거나, LED·모터 등 외부 장치를 제어할 수 있다.이를 위해 GPIO를 프로그래밍하는 여러 방법이 있으며, 주로 직접 제어 방식과 라이브러리 활용 방식이 있다.1. GPIO 접근 방식 개요GPIO(General Purpose Input/Output)는 센서 입력을 읽거나 LED, 모터, 릴레이 등의 외부 장치를 제어하는 데 사용된다.이러한 GPIO를 제어하는 방식에는 크게 두 가지 방법이 있다.1️⃣ 직접 제어 방식 (sysfs 인터페이스 활용)리눅스에서는 sysfs라는 가상 파일 시스템을 통해 하드웨어를 제어할 수 있다.이를 이용하면 별도의 라이브러리 없이 터미널 명령어 또는 C/C++ 코드를 통해 GPIO 핀을 제어할 수 있다.✔ sy..
2025.02.25 -
LoRa - 8. 마무리 및 실전 응용
📚 8. 마무리 및 실전 응용이제까지 LoRa와 LoRaWAN의 개념부터 기본 통신, 네트워크 구축, 데이터 시각화, 저전력 최적화, 산업별 응용 사례까지 살펴보았습니다.이제 실전 프로젝트를 통해 배운 내용을 직접 적용하고, 추가 학습을 통해 더욱 발전할 수 있도록 마무리하겠습니다.📌 1. 최종 프로젝트: LoRa 기반 IoT 시스템 설계 및 구축이제까지 배운 내용을 종합하여 LoRa 기반 IoT 시스템을 설계하고 구축하는 프로젝트를 진행합니다.이 프로젝트는 센서 데이터를 LoRaWAN을 통해 수집하고, 클라우드와 연동하여 시각화하는 완전한 IoT 시스템을 구축하는 과정입니다.✅ 1-1. 프로젝트 개요목표: LoRaWAN을 활용하여 IoT 데이터를 원격으로 수집하고, 실시간 시각화 시스템 구축하드웨어..
2025.02.25