분류 전체보기(638)
-
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 -
완전 탐색 (Brute Force) 요약
완전 탐색 (Brute Force)완전 탐색(Brute Force)은 가능한 모든 경우의 수를 하나씩 전부 검사하여 정답을 찾는 방법입니다.1. 완전 탐색(Brute Force)란?1.1 개념 이해완전 탐색은 모든 경우의 수를 직접 탐색하여 해답을 찾는 알고리즘입니다.장점: 간단하고 직관적이며, 모든 경우를 확인하므로 정확한 답을 찾을 수 있음.단점: 경우의 수가 많아지면 시간이 오래 걸릴 수 있음. (시간 복잡도 고려 필요)1.2 언제 사용할까?가능한 경우의 수가 작을 때 (예: 100만 이하)최적의 해를 찾는 것이 아니라, 모든 경우를 확인하는 것이 중요한 문제더 효율적인 알고리즘이 떠오르지 않을 때 기본적으로 시도해볼 수 있음2. 완전 탐색 기본 패턴2.1 반복문을 이용한 완전 탐색예제 1: 1부터..
2025.02.25 -
완전 탐색 - 6. 마무리 및 심화 학습
6. 마무리 및 심화 학습완전 탐색(Brute Force)은 가능한 모든 경우의 수를 확인하는 가장 기본적이고 직관적인 방법입니다.하지만 경우의 수가 많아질수록 연산량이 급격히 증가하여 비효율적일 수 있습니다.따라서 문제의 특성에 따라 최적화 기법을 함께 사용하여 성능을 개선하는 것이 중요합니다.✅ 완전 탐색의 장점과 한계🔹 장점✔ 직관적이고 쉬운 구현 → 특별한 알고리즘적 사고 없이도 쉽게 적용 가능✔ 정확한 정답 보장 → 가능한 모든 경우를 탐색하므로 정답을 놓칠 가능성이 없음✔ 기초 알고리즘 학습에 적합 → 초보자가 알고리즘의 동작 방식을 이해하는 데 매우 유용🔹 한계❌ 비효율적일 수 있음 → 경우의 수가 많아지면 시간 복잡도 증가❌ 실제 문제에서는 최적화 필요 → 단순히 모든 경우를 탐색하는 ..
2025.02.25 -
완전 탐색 - 5. 실전 문제 풀이
5. 실전 문제 풀이완전 탐색(Brute Force)을 학습한 후에는 직접 문제를 풀어보면서 실력을 키우는 것이 중요합니다.아래의 연습 문제를 풀면서 완전 탐색의 기본 원리를 익히고, 도전 문제를 통해 백준(BOJ)과 같은 온라인 저지에서 응용력을 키워봅시다.✅ 연습 문제완전 탐색을 활용하여 해결할 수 있는 기본적인 문제들을 소개합니다.1️⃣ 1부터 100까지의 숫자 중에서 7의 배수 출력하기문제 설명1부터 100까지 숫자 중에서 7의 배수를 찾아 출력하는 프로그램을 작성하세요.#include int main() { for (int i = 1; i ✅ 설명:1부터 100까지 반복하며, 7의 배수인지 검사합니다.조건문 if (i % 7 == 0)을 사용하여 7의 배수를 판별합니다.🔹 실행 결과7 1..
2025.02.25