본문 바로가기

728x90
반응형

GPIO

파이썬으로 라즈베리 파이 GPIO 제어하기 - RPi.GPIO vs gpiozero 2024. 1. 26. RPi.GPIO 모듈로 라즈베리 파이의 GPIO를 제어하는 방법에 대해서는 포스팅을 한 적이 있습니다. 파이썬으로 GPIO를 제어할 때, RPi.GPIO를 사용할 수도 있지만, gpiozero라는 모듈을 사용할 수 있습니다. 다시 한 번 GPIO 제어에 대한 내용을 상기하면서 RPi.GPIO와 gpiozero가 어떻게 차이가 있는지 함께 살짝 들여다보겠습니다. 라즈베리 파이의 GPIO 라즈베리 파이에는 40핀의 헤더가 있습니다. 쉽게 눈에 보입니다. raspberrypi.com에 가면 Raspberry Pi OS 문서에 이 40핀 헤더의 핀 배치가 나와 있습니다. 라즈베리 파이의 터미널에서 'pinout' 커맨드를 사용해도 역시 핀 배치를 볼 수 있습니다. 이 중에 'GPIOx'라고 이름이 붙어 있는 핀.. 더보기
버저(Buzzer)로 음악 연주하기 2023. 6. 6. 음악을 연주한다는 것은 어떤 높이의 소리를 어떤 길이로 내는 것을 연달아 이어 놓은 것입니다. 소리의 높이라는 것은 주파수를 달리함으로써 만들어 내게 됩니다. 소리라는 것은 공기의 떨림인데, 정해진 시간 동안 공기가 더 많이 떨리게 하면 높은 소리가 나는 것입니다. 버저에 다른 주파수의 신호를 인가하면 다른 소리가 나는 이유입니다. 이런 서로 다른 높이의 소리를 얼마나 길게 내느냐에 따라 음악은 또 달라지게 됩니다. 내친김에 버저로 간단하게 음악을 연주하게 만들어 봅시다. 예, 한 20년 전에는 버저로 벨소리를 만들었으니까요. 물론 버저의 특성이 모든 가청 주파수(audible frequency)에 일정한 것이 아니라서 깨끗하고 맑은 음악은 아니겠지만, 가락을 만들어 낼 수는 있을 것입니다. 소리의 높이.. 더보기
버저(Buzzer) 울리기 - 피에조 버저(Piezo Buzzer)의 구동 2023. 5. 7. 요즘의 휴대전화기는 실제 음원을 사용하여 벨소리를 만들지만, 아주 오래 전의 휴대전화기들은 버저(Buzzer)를 이용해서 벨소리를 만들었습니다. 그때의 버저음이 생각이 나서 라즈베리 파이(Raspberry Pi)에 버저를 연결해서 삑삑거리는 것을 해 볼까 생각을 하면서 살펴보다 보니 버저에 대해서 생각해 보지 않았던 것들이 많이 있더라고요. 버저를 울리기 전에 버저 자체에 대한 이야기를 먼저 시작해 볼까 해요. 일반적으로 버저(Buzzer)는 마그네틱 버저(Magnetic Buzzer)와 피에조 버저(Piezo Buzzer)로 나뉩니다. [1] 마그네틱 버저는 전자석에 의해서 자성체가 끌려오는 윈리를 이용한 것입니다. 전자석과 같은 원리를 이용하는 것이기 때문에 기본적으로 인덕턴스로 모델링이 됩니다. 때.. 더보기
여러 개의 7-Segment LED 표시하기 2023. 4. 23. 7-Segment LED에 숫자를 표시하는 법에 대해서 이야기했었습니다. 한 자리를 표시하는 방법, 한 자리를 표시하기 위한 디코딩에 관한 이야기였죠. 그런데, 보통 이런 7-Segment LED는 한 자리만 표시하는 것보다는 여러 자리를 표시하게 되죠. 전자계산기 같은 것 말이죠. 그게 뭐 어려운가? 그냥 여러 개 나란히 놓고 각각 한 자리씩 출력하면 되지. 맞습니다. 두 자리면 아마 다음 회로처럼 되겠죠. 이렇게 생각하는 것이 가장 쉽습니다. A1, B1, ..., G1, DP1은 첫 번째 자리, A2, B2, ..., G2, DP2는 두 번째 자리를 표시하도록 연결하는 것입니다. 2개의 한 자리 7-Segment LED를 나란히 놓은 것입니다. 3자리를 표시하려면? 하나 또 나란히 놓고 A3, B3.. 더보기
7-Segment LED 표시하기 2023. 4. 2. 아무리 전자 전기에 무관심한 사람이라고 하더라도 주위에 위의 사진과 같은 장치에 숫자가 표시되는 것은 많이 보았을 것입니다. 흔하게는 전자시계에 많이 나타나지요. 각각의 구분된 구간이 따로 불이 켜지는데, 이를 조합하여 숫자의 형상을 만들어 냅니다. 각각의 구분된 구간을 세그먼트(segment)라고 부르고, 숫자를 표시하기 위하여 7개의 세그먼트를 가지다고 하여 7-세그먼트(7-segment)라고 하는 장치입니다. 각각의 세그먼트가 각각 하나의 LED이기 때문에 7-세그먼트(7-segment) LED라고 부릅니다. 물론 소수점까지 표시하면 8개의 LED이지만, 숫자를 표시하는 부분만 따져서 7-세그먼트 LED라고 하지요. 각각의 7개 세그먼트는 위치에 따라 A부터 G까지 이름이 붙습니다. 숫자를 표기할 .. 더보기
아날로그(Analog)의 표현 PWM (Pulse Width Modulation) 2022. 12. 27. LED는 정방향전류($V_F$)를 조절함으로써 그 밝기를 조절할 수 있습니다. 정방향전류를 조절하는 방법은 옴의 법칙에 따라서 전압을 조절하거나 전류 제한을 위한 저항을 조절하면 되겠죠. 예전 글에서 가변 저항을 사용하여 LED의 밝기를 조절해 본 적이 있습니다. 그런데, 이것을 컴퓨터로 조절을 해 보려면 어떻게 해야 하죠? 라즈베리 파이에서 GPIO를 제어해 본 적이 있지만, 라즈베리 파이와 같은 미니 컴퓨터든 단일칩 마이크로 컨트롤러든 GPIO는 켜짐과 꺼짐, 2가지의 전압 밖에 출력을 할 수가 없는데요. 더욱이 컴퓨터로 저항(resistance)을 직접 조절할 수는 없습니다. 이런 경우에는 눈에 보이지 않을 만큼 빠르게 LED를 껐다 켰다를 반복하되 밝게 켜고 싶을 때에는 켜는 시간을 길게, 어둡게.. 더보기
라즈베리 파이(Raspberry Pi)에서 RPi.GPIO Python module을 사용한 GPIO 출력 제어, 그리고 Drive Strength에 대하여 2022. 10. 29. 라즈베리 파이는 교육용으로 개발되었다고는 하지만, 대량 생산이 아닌 경우에는 여러 분야에서 외부 하드웨어 제어를 위해서 사용되기도 합니다. 개발자에게는 별도로 컴퓨팅 하드웨어를 개발하는 부담을 줄이고, 필요한 최소한의 하드웨어와 소프트웨어만으로 어플리케이션을 완성하게 하는 것이지요. 특히 라즈베리 파이에서 외부 하드웨어를 제어하고자 할 때, GPIO(General Purpose Input/Output; 범용 입출력)를 사용하여 간단한 외부 하드웨어를 제어합니다. GPIO에 대한 상세한 내용은 Wikipedia에 잘 나와 있으니 참조하시고, 우리는 라즈베리 파이의 GPIO, 나아가서는 다른 여러 MCU의 GPIO를 사용하는 데에 집중하도록 하겠습니다. ☞ https://en.wikipedia.org/wik.. 더보기

728x90
반응형