안녕하세요! 이번 포스트에서는 독립형 Arduino 기반 게임 콘솔을 만드는 방법을 소개하려 합니다. 이 게임 콘솔은 배터리로 구동되며, 재충전이 가능하고 두 개 이상의 게임을 포함합니다. 이 프로젝트의 목표는 젊은이들에게 코딩과 전자기기가 접근 가능하고, 약간의 노력으로 재미있고 사용 가능한 것을 만들 수 있다는 것을 보여주는 것입니다. 투명한 인클로저를 사용하여 내부 작동을 볼 수 있도록 하고, 현대 전자기기의 내부 작동을 이해하는 데 도움이 되고자 합니다. 이 프로젝트는 초보자를 위한 것은 아니지만, Arduino 코드, PCB의 거버 파일, 인클로저의 회로도 및 3D 인쇄 파일을 포함한 완전한 키트로 제공할 수 있도록 할 것입니다. 자, 이제 시작해볼까요?
먼저, 하드웨어를 구성합니다. Arduino 보드에 TFT 디스플레이를 연결하고, 버튼과 조이스틱을 배치합니다. 버튼은 게임의 조작을 위해 필요하며, 조이스틱은 방향 조작에 사용됩니다. 배터리 팩과 충전 모듈을 연결하여 전원 공급을 관리합니다.
// 예시 코드: 간단한 버튼 입력 처리
const int buttonPin = 2; // 버튼 핀 번호
const int ledPin = 13; // LED 핀 번호
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
이제 Arduino IDE에서 소프트웨어를 작성합니다. 각 게임의 코드를 작성하고, 메뉴 선택 등을 구현합니다. 게임은 여러 가지가 포함될 수 있으며, 예를 들어 Snake 게임과 Pong 게임을 추가할 수 있습니다.
// 예시 코드: 간단한 게임 루프
void gameLoop() {
// 게임 초기화
// 게임 실행 루프
while(true) {
// 게임 로직
// 디스플레이 갱신
delay(100);
}
}
void setup() {
// 초기 설정
gameLoop();
}
void loop() {
// 메인 루프
}
투명 인클로저를 3D 프린터로 제작합니다. 내부 구조가 잘 보이도록 디자인하며, 모든 부품이 깔끔하게 정리되도록 합니다. 인클로저 설계 파일은 CAD 소프트웨어를 사용하여 작성하고, 3D 프린터로 출력합니다.
저는 많은 재료를 재고로 두고 있지만 이베이, 아마존 또는 지역 전자 제품 공급업체에서 모든 것을 구입할 수 있습니다.
이 프로젝트를 만드는 데 필요한 도구와 재료의 자세한 목록은 다음과 같습니다.
재료:
도구:
인클로저는 레이저로 절단한 3mm 투명 아크릴 시트를 사용하여 만들었습니다. 저는 makercase.com이라는 온라인 도구를 사용하여 상자를 디자인합니다. 이것은 레이저로 절단한 상자를 디자인할 때 많은 어려운 작업을 대신해 주므로 시간을 절약할 수 있는 훌륭한 리소스입니다. 상자 외부를 디자인한 후 CAD 파일을 다운로드한 다음 원하는 2D CAD 패키지를 사용하여 버튼 등을 위한 컷아웃을 추가할 수 있습니다. AutoCAD LT는 인클로저에 모든 추가 기능을 추가하는 데 이상적인 유형의 CAD 패키지입니다. 저는 자를 윤곽선, 텍스트 및 모든 조각에 대해 다른 도면 레이어를 사용하여 레이저 커터 소프트웨어에서 도면을 열 때 레이저 전원을 다른 레이어와 함께 절단 또는 조각하려는 순서와 함께 설정할 수 있도록 하는 경향이 있습니다. 예를 들어 일반적으로 재료가 움직이지 않도록 절단하기 전에 이미지나 텍스트를 조각하고 싶을 것입니다.
상자 모서리에 있는 4개의 나사는 상자를 단단히 고정하므로 상자를 붙일 필요가 없습니다. 저는 콘솔을 나중에 수리하고 수정할 수 있기를 원했기 때문에 부분적으로 이렇게 했습니다. 바닥 구멍은 3.5mm로 잘라낸 다음 이미지에 표시된 대로 4mm 탭으로 트레드합니다.
원하시면 첨부된 CAD 파일을 사용하세요.
이 섹션을 포함시킨 이유는 다른 프로젝트에서 재사용되도록 설계된 프로젝트의 또 다른 영역이기 때문입니다. 베젤은 LCD 화면을 사용하는 프로젝트를 정말 깔끔하게 정리해줍니다. Fusion360을 사용하여 디자인한 다음 Ender 3를 사용하여 3D로 인쇄했습니다.
베젤은 강력한 양면 테이프를 사용하여 인클로저에 부착됩니다.
3D 프린팅으로 LCD 베젤을 직접 제작하고 싶은 사람들을 위해 STL 파일을 포함했습니다.
PCB의 목적은 첫째, Arduino NANO의 연결을 분리하여 모든 인클로저에 장착된 입력 및 출력에 쉽게 연결할 수 있도록 하는 것이고, 둘째, 배터리와 충전 하드웨어를 용이하게 하는 것입니다.
PCB를 자세히 보면 사용하지 않는 연결이 몇 개 있습니다. 이는 PCB를 나중에 다른 용도로 사용할 수 있도록 하고 싶었기 때문입니다. 자체 포함형 충전식 Arduino Nano 기반 PCB가 모든 종류의 프로젝트에 유용할 것이라고 생각했습니다. 각 포트의 핀(향후 인터럽트용)과 I2C 외에도 SPI에 액세스할 수 있도록 했습니다.
PCB가 있으면 사진에 나온 대로 모든 부품을 납땜하기만 하면 됩니다.
배터리는 리튬 18650 배터리입니다. 저는 이 배터리를 사용하는 것을 선호하며, 소프트 케이스 리튬 폴리머 배터리보다 더 안전하다고 생각합니다. TP4056 USB 충전 컨트롤러는 USB 연결을 통해 배터리를 충전하는 데 사용됩니다. 이렇게 하면 배터리가 약 4볼트까지 올라가는데, 이는 Arduino Nano에 전원을 공급하기에 충분하지 않습니다. 충전 컨트롤러와 배터리 연결의 출력은 MT3608 부스트 컨버터에 공급되고, 여기서 출력을 원하는 전압으로 설정합니다. 저는 7볼트를 사용했습니다.
매우 중요해요!!!
Arduino Nano를 연결하기 전에 부스트 컨버터의 출력을 적절한 값으로 설정했는지 확인하세요. 부스트 컨버터는 최대 28볼트를 공급할 수 있기 때문입니다. Arduino NANO에는 온보드 전압 레귤레이터가 있지만 입력 전압은 7-12볼트여야 합니다. Arduino Nano에 높은 전압을 공급하면 칩이 부족할 때 좋지 않은 상황이 되어 죽게 됩니다!
저는 JLC PCB에서 PCB를 만들었지만 PCBWay나 다른 제조업체에서 쉽게 만들 수 있습니다. 구리 클래드 보드를 에칭하여 직접 만드는 것은 그렇게 어렵지 않을 것입니다(하지만 만드는 데 훨씬 덜 지저분합니다). PCB를 만들고 싶으시다면 프리칭 파일을 첨부했습니다.
위의 회로도는 모든 입력 및 출력 장치가 PCB 단자에 연결되는 방식을 보여줍니다.
이전에 말했듯이 저는 적어도 두 개의 게임이 있는 콘솔을 만들고 싶었습니다. 저는 첫 번째 게임에서 Star Chaser라는 제 게임을 직접 쓰기로 했고 두 번째 게임에서는 인터넷에서 찾던 hangman 버전을 사용했습니다.
단 하나의 게임 콘솔을 만드는 것은 어렵지 않지만, Arduino Nano만 사용해서는 두 개의 게임 콘솔을 만드는 것이 더 어렵습니다.
처음 콘솔을 켜면 "A"를 선택하여 Star Chaser를 선택하거나 "B"를 선택하여 Hangman을 선택할 수 있습니다.
모든 부품을 인클로저에 조립합니다. 각 부품이 잘 고정되었는지 확인하고, 배선이 깔끔하게 정리되었는지 점검합니다. 배터리를 충전하고, 게임 콘솔을 켜서 모든 기능이 정상적으로 작동하는지 확인합니다.
이렇게 하면 독립형 Arduino 기반 게임 콘솔이 완성됩니다! 이 프로젝트는 젊은이들에게 코딩과 전자기기의 매력을 소개하는 좋은 기회가 될 것입니다. 투명한 인클로저 덕분에 내부 구조를 쉽게 볼 수 있어, 전자기기의 작동 원리를 이해하는 데 도움이 됩니다. 더 많은 게임을 추가하고, 기능을 확장해보세요. Arduino 프로젝트의 무한한 가능성을 경험해보세요!
궁금한 점이 있으면 댓글로 남겨주시고, 더 많은 프로젝트 아이디어를 원하시면 계속 지켜봐 주세요!
이렇게 블로그 포스트를 작성해 보았습니다. 도움이 되셨기를 바라며, 추가로 궁금한 점이 있으면 언제든지 말씀해 주세요! 😊
집에서 마이크로그린 키우기 DIY (7) | 2024.11.06 |
---|---|
ISP로서의 Arduino UNO - Arduino Pro Micro에서 부트 로더 굽기 (0) | 2024.11.05 |