본문 바로가기

728x90
반응형

전자공학

CircuitPython으로 만드는 LED 주사위 놀이 2024. 8. 24. 오래전에 전자공작에 대한 책이나 시판된 키트에 LED로 만들어진 주사위 놀이가 있었습니다. 7개의 LED로 주사위 눈을 표시하던 것이었죠. 문득 생각이 나서 한 번 만들어 보기로 했습니다. 물론 그때에는 콘덴서에 충전을 해서 콘덴서가 모두 방전이 되면 발진을 멈추는 발진기와 카운터 IC를 사용한 것이었지만, 저는 이것을 MCU에 CircuitPython을 이용해서 구현해 보기로 했습니다. CircuitPython에 대해서는 이전에 다룬 적이 있습니다. 컴퓨터가 발달하니 무엇인가 만들고자 할 때 하드웨어가 간단해지죠. LED로 주사위의 각 숫자를 나타낼 때에는 아래 그림처럼 디코딩이 됩니다. 프로그램을 사용해서 이렇게 표시하도록 하면 되겠죠. 회로를 만들고, 표시하고자 하는 주사위 눈에 따라서 위의 그림처.. 더보기
CircuitPython 시작하기 (feat. xG24 Explorer Kit) 2024. 7. 5. Silicon Labs xG24 Explorer Kit과 CircuitPython작은 MCU(Microcontroller Unit)의 어플리케이션을 위해서는 C 언어로 프로그램하는 것이 대세입니다. 대부분의 MCU 제조사들이 C 언어로 되어 있는 SDK(Software Development Kit)를 제공합니다. 간혹 C++가 사용되기도 하지요. 우리가 흔히 사용하는 개인용 컴퓨터와는 다르게 MCU라고 불리는 이러한 소형 컴퓨터는 주로 하드웨어의 제어에 사용됩니다. 그런데, 파이썬(Python)을 MCU 어플리케이션에서 빠르게 프로토타이핑(Prototyping) 하는 데에 사용할 수 없을까 생각하게 됩니다. 물론 라즈베리파이(Raspberry Pi)에서 파이썬을 사용하여 하드웨어 제어를 하고 동작시키는 .. 더보기
원격으로 라즈베리 파이 코드 편집하기 - Visual Studio Code 활용 2024. 6. 2. Visual Studio의 "Remote-SSH" ExtensionVNC 접속을 통하여 라즈베리 파이(Raspberry Pi)에 원격 접속해서 데스크탑 환경을 사용하면 데스크탑 환경을 그대로 사용하기 때문에 편리하기는 합니다. 굳이 bash의 명령을 하나하나 타이프하는 경우가 줄어드니까요. 그렇지만, 데스크탑 환경의 GUI를 필요로 하지 않는 코딩의 경우에는 굳이 데스크탑 환경까지 실행하는 것이 불필요하게 느껴집니다. 그렇다고, 데스크탑 환경 없이 코딩을 하려니 텍스트 콘솔 기반의 편집기를 사용하는 것이 여간 불편하지 않습니다. 내 PC에 있는 에디터로 라즈베리 파이의 프로그램을 직접 편집할 수 있으면 좋을 텐데 하고 생각하던 중에 "Remote-SSH"라는 이름의 Extension을 찾게 되었습니다. .. 더보기
휴대형 멀티미터/오실로스코프 사 봤습니다. (feat. FNIRSI 2C23T) 2024. 5. 22. 집에서 전자공작놀이를 하다 보면 오실로스코프가 아쉬울 때가 있습니다. 대체로 오실로스코프는 실험실에서나 사용하는 비교적 큰돈을 들여야 장만할 수 있는 계측기이니까요. 그래서 취미로 전자공작을 하는 경우에는 기껏해야 멀티미터 정도 장만해서 사용하죠. 몇 천 원짜리 멀티미터도 있는데, 싼 게 비지떡이라고 영 마음에 들지 않아요. 성능이 괜찮은 디지털 멀티미터는 최소 몇 만 원부터 몇 십만 원이니까요. 그렇다고 집에서 사용할 멀티미터정도를 몇 만 원 주고 장만하기는 망설여지고요. 그냥 아쉬운 대로 몇 천 원짜리 허접한 디지털 멀티미터나 아날로그 멀티미터를 사용하게 되죠. 그런데, 요즘 유튜브를 떠돌다 보니 멀티미터 겸 오실로스코프를 리뷰한 영상들이 많이 있네요. 그중에 2 채널 오실로스코프가 가능한 제품을 찾.. 더보기
Python을 이용한 UART 활용 - pyserial과 xmodem 2024. 5. 9. 임베디드 컴퓨팅에서 UART는 두 컴퓨터의 통신에 사용이 됩니다. 특히 한 컴퓨터의 출력 장치로서 현재의 동작 상태를 출력하고, 다른 컴퓨터는 그 출력을 받아 상태를 확인하는 용도로 많이 사용을 합니다. 컴퓨터의 출력을 해석하기 위하여, 다른 한쪽 컴퓨터는 UART의 입력을 받아 그 내용을 해석하는 프로그램을 수행하기도 합니다. 또한, 한 컴퓨터에서 다른 한 컴퓨터로 파일을 전송하기도 하지요. 여기에서 컴퓨터는 넓은 의미로, 작은 MCU에서부터 가정용이나 업무용으로 사용이 되는 고성능 컴퓨터까지 아우릅니다.  용도가 무엇이든 UART로 정보를 보내고 받는 작업을 할 필요가 있습니다.Python을 사용해서 UART를 통하여 데이터를 주고받고, 파일을 전송하는 것에 대하여 이야기해 볼까 합니다.Python이.. 더보기
라즈베리 파이의 Device Tree Overlay와 UART 하드웨어 흐름제어 사용하기 2024. 4. 21. 라즈베리 파이에 대하여 조금이라도 공부한 사람들은 40핀 헤더가 GPIO를 모아 놓은 것이라는 것을 모르는 사람은 없습니다. GPIO는 앞선 포스트에서 다룬 것과 같이 HIGH나 LOW의 디지털 논리 신호를 입출력하는 임베디드 프로세서의 단자입니다. 이들 GPIO 단자를 단순한 디지털 논리 신호의 입출력 이외의 기능으로 사용하기도 하는데, 원래 가지고 있던 입출력 신호 대신 다른 기능들로 사용할 수 있도록 하는 것을 GPIO의 Alternate Function이라고 합니다. GPIO Alternate Function임베디드 프로세서의 데이터 시트나 사용자 매뉴얼을 보면 보통 GPIO에 대하여 하나의 장에 걸쳐 설명하면서 Alternate Function에 대하여 설명하는 표 또는 섹션이 있습니다. 라즈베.. 더보기
라즈베리 파이에서 UART 사용하기 2024. 4. 5. UART는 Universal Asynchronous Receiver Transmitter의 약자입니다. 기기 간 통신에 많이 사용되는 하드웨어입니다. 라즈베리 파이를 단순히 개인용 컴퓨터 용도처럼 사용하는 경우보다는 여러 가지 장치 구현이 많이 사용을 하게 되는데, 이때에도 UART는 가장 인기 있는 선택 중의 하나입니다. 이번 포스트에는 라즈베리 파이에서 UART를 사용하는 몇 가지 방법에 대하여 알아보겠습니다. USB-UART 브릿지 사용하기 USB-UART 브릿지는 USB 디바이스입니다. USB 포트에 연결을 하면, 직렬 포트를 하나 사용할 수 있게 해 주는 디바이스입니다. 아주 오래전엔 직렬 포트가 개인용 컴퓨터에 기본적으로 설치가 되어 있었지만, 요즘 개인용 컴퓨터에서는 사라졌죠. 이 직렬 포트.. 더보기
파이썬으로 라즈베리 파이 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'라고 이름이 붙어 있는 핀.. 더보기

728x90
반응형