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 - 게임보이 만들기 1


이번 프로젝트는 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 허브 회로가 있는 마더보드 설계다.
컴퓨터로써 거의 모든 회로가 Raspberry Pi Zero W 보드에 있기 때문에 어려울 건 없다.

컨트롤러는 ATmega32u4 칩셋을 활용해 XInput 라이브러리로 컨트롤러 인풋을 구현하여 USB 허브에 연결할 예정이다. 사운드 출력은 GPIO 남는 핀을 이용해서 출력한다.


레이아웃을 고정한 후 그 위에 각 부품들의 풋프린트를 위치시킨다.
USB 허브 칩은 저렴한 FE1.1s 을 사용하였고 총 4채널을 사용할 수 있는데, 외부로 2개만 열어두고 1개는 ATmega32u4 와 연결했다.

전원의 경우 제로 W 의 경우 권장 용량이 1.2A 정도 되고 제로 2 W 는 2A 이다. 
일반적인 경우 제로 보드W의 전류 소비는 300mA 미만의 수준이기 때문에 충전 회로의 경우 1A 급 방전을 가진 IP5305을 사용해 회로 설계를 간소화 시켰다.

단점으로 IP5305는 충전중에는 5V 부스트 회로가 동작하지 않기 때문에 정상적으로 동작하지 못할 것 이다. 이 경우 전압 입력을 인식해서 전압을 선택하도록 하면 되지만 그러면 납땜을 더 해야 함으로 생략했다.


어느정도 만족스러운 설계가 나왔다고 판단하면 주문을 넣는다.
전원부를 제로 W 기준으로 만들었지만 제로 2 W 도 사용 가능 할 것으로 예상한다.
BOM 을 정리하고 PCB 주문을 넣고 하우징 설계를 마무리하였다.


다음 글은 PCB 납땜으로 넘어간다.

Comments

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기