Posts

Showing posts from March, 2024

LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

Raspberry Pi Zero W/2W - 게임보이 만들기 2

Image
PCB 와 3D 프린터 출력물이 도착했다. 집에 3D 프린터를 보유하고 있지만 사이즈가 커지면 뒤틀림도 있고 FDM 방식이라 온라인 서비스에서 SLA로 주문했다. 몇 년 전만 해도 이런 서비스는 단가가 상당했는데 요즘은 개인적인 프로젝트에도 사용할 수 있을 만큼 저렴해졌다. 받은 결과물은 뒤틀림이 거의 없고 내부 구조도 문제 없이 결합이 가능했다.  생각보다 퀄리티도 나쁘지 않아서 매우 마음에 들었다. 가공비만 5만원이 넘는 곳에서도 샘플을 받아봤지만 절반에 못 미치는 가격에도 퀄리티에 큰 차이는 없는 것 같다. 버튼 스위치 같이 설계를 하긴 했지만 주문은 하지 않았다. 고장난 컨트롤러의 부속품을 최대한 재활용하고 나머지는 집에 있는 3D프린터로 출력하려고 한다. PCB 부분은 테스트를 하면서 확인된 두 가지 이슈가 있다. 첫 번째로 앰프 회로를 누락 했다.  오디오 아웃 회로만 구성하고 보유중인 오디오 앰프 IC 중에 쓸만한 것을 찾다가 잊어 먹고 그대로 주문을 넣어버렸다. 이로 인해 소리가 매우 작게 출력 될 것으로 예상된다. 이렇게 되면 앰프 모듈을 별도로 설치해주어야 하는데 공간 확보가 될지 모르겠다. 두 번째로 중국산은 항상 어딘가 실망스럽다. 전원부 충방전 회로에 사용한 IP5305에 문제가 있는데, 충전하면서 사용하다가 충전선을 제거하면 전원이 나갔다 들어온다. 충전 중에는 4.78V 정도가 측정되고 충전선을 제거하면 곧 바로 5.1V 가 측정되는데, 이때 잠깐 이지만 전원 공급이 끊기는 모양이다. 지금 보니 휴대폰이라고 명시한 이유가 있는 것 같다. 아무튼 IP5305은 모바일 기기에 사용하기에는 적합하지 않고, 보조 배터리 같은 제품 설계에 적합한 제품으로 보인다. 아무래도 돈 아끼려다 똥 된 것 같다. 차기 버전에서는 리튬 배터리의 충전은 BQ2407x 시리즈를 사용하고, 5V 를 얻는데 AP63205 같은 고성능 칩셋을 적용해볼 생각이다. 발견한 문제는 뒤로 하고 일단 완성을 시켜서 지금 상태로 동작은 어떤지 확인을 해보았다. 소리도 너무

Raspberry Pi Zero W/2W - 게임보이 만들기 1

Image
이번 프로젝트는 Raspberry Pi Zero W 보드를 활용한 게임 보이다. 회로 기판 설계부터 하우징 설계까지 진행해볼 생각이다. Raspberry Pi Zero W, 와 2.8인치 터치 스크린을 사용해서 게임보이 컨셉으로  만들어보려고 한다.  처음부터 터치스크린으로 만들 생각은 아니였고, 마침 방안 뒤지다 나온 것이 터치스크린이였을뿐이다.  사용하려는 OS 에서 터치가 정상적으로 동작할지는 모르겠다. 맨위 렌더 이미지가 현재 설계중인 게임보이다.  보면 알 수 있지만 ClockWorkPi 의 GameShell 의 영향을 많이 받았다. 하우징은 PSP 나 게임보이 어드벤스 같은 기성품을 이용해도 되지만 가지고 노는재미가 아니라 만드는 재미로 하는 것이기 때문에 직접 설계하기로 하였다. 마음의 반절은 쓰레기 처리하는 기분으로.. 항상 느끼는 부분이지만 디자인, 하우징, PCB 중 어떤 걸 먼저 설계하냐에 정답은 없다고 생각한다. 기어가 맞물릴 수 있도록 맞지 않으면 조금씩 깎아 나가면 된다고 생각한다. 서로 깎이는 걸 실어하면 기어가 통째로 교체되는 수가 있다. 싸우지 말고 존중하고 배려하며 살자 먼저 작품의 대략적인 사이즈를 정하고 PCB 설계로 넘어간다. Raspberry Pi Zero와 디스플레이 모듈의 3D 모델은 인터넷에서 쉽게 구할 수 있다.  해당 모델에 맞춰 먼저 상판을 설계한다.  중앙에 라운드 사각형은 버튼이 아니고 저 부분으로 충전 상태와 동작 상태를 알 수 있도록 LED 를 두려고 한다. D-Pad 와 ABXY 버튼의 경우 고장난 게임패드에서 추출하려고 한다. 버튼들은 처음에는 택트 스위치로 하려고 했지만 소음 때문에 비교적 조용한 멤브레인 방식으로 바꿨다. 게임은 몰래해야 진정한 재미를 느낄 수 있기 때문이다. 각 입출력 장치들의 위치를 대강 잡고 PCB 레이아웃 설계를 위해 dxf 파일로 저장한다. 이렇게 해두면 PCB를 설계 할 때 편하게 설계할 수 있다. 다음은 컨트롤러, 스피커, 리튬 충전, USB 허브 회로가 있는 마더보드

오랜만에 다시 꺼낸 GameShell 그리고 배터리 교체

Image
이것은 3년간 함께한 나의 GameShell 이다. 최근 배터리가 빨리 방전되는 듯한 느낌을 받았다. 그래서 이번 기회에 배터리를 교체하기로 마음먹었다. GameShell 을 잠깐 소개 하자면 요즘 나오는 라즈베리 파이처럼 그렇게 고사양은 아니고  Atari, GBA, NES, SNES 같은 콘솔을 에뮬레이션 할 수 있는 정도의 성능이다.  메탈슬러그는 좀 끊기고 포켓몬스터 정도의 게임은 잘 돌아간다. 무선 통신도 가능한데 Bluetooth 와 Wi-Fi 가 모두 탑재 되어있다. Wi-Fi는 2.4Ghz 만 지원하고, 이걸 통해 펌웨어 업데이트나 바이오스 설치 그리고 TinyCloud를 통해 PC 로 부터 게임 롬 파일 이나 미디어 파일 등을 다운로드 할 수 있다. 블루투스의 경우 문제가 좀 있는데   오디오  출력이 안된다.  키보드나 마우스 같은 HID 장치는 정상적으로 사용 가능하지만 오디오  장치는 연결도 잘 안되고 출력도 안된다.  요즘 같은 세상에 무선 이어폰을 쓸 수 없다는 건 큰 단점 중 하나라고 볼 수 있다.  GameShell 의 상단 에 있는  스테레오 3.5 파이 포트와 HDMI를 통한 오디오 출력은 문제가 없다. 페어링을 시도하면  GameShell 에서 페어링 되었다고 하더라도 바로 연결이 끊어진다. 연결이 된 것 같은 상태일 때도 있는데 여전히 블루투스로는 오디오 출력이 안된다. USB 형태의 블루투스 모듈을 이용한 테스트는  별도로  해보지 않았다. DevTerm 과 uConsole 이라는 두 제품이 더 나온 시점에서 아직도 고쳐지지 않은 걸로 봐서 아마 수정 불가능한 문제가 있는 것이 아닌가 생각해본다. 예전에는 무선 이어폰으로 들었던 기억이 있는 것 같은데 잘못된 기억인지도 모르겠다. 이런 생각을 전에도 했던 것 같은 아련한 느낌 도 든다. 무선 이어폰이 아니라 유선이였던 걸까? 역시 사람의 기억력은 믿을 것이 못 된다. ClockWorkPi OS 는 깃허브 나 커뮤니티를 통해 펌웨어를 받을 수 있다.  최신 버전이  v0.5