산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino 게임 컨트롤러

구성품 및 소모품

SparkFun Pro Micro - 5V/16MHz
× 1
Arduino Leonardo
× 1
SparkFun 푸시버튼 스위치 12mm
× 12
저항 10k 옴
× 1
맞춤형 에칭 PCB
× 1
UTSOURCE 전자 부품
× 1

필요한 도구 및 기계

염화제일철 분말
3D 프린터(일반)
드릴/드라이버, 무선

앱 및 온라인 서비스

Arduino IDE
오토데스크 퓨전 360

이 프로젝트 정보

동영상

소개

그래서 이 게시물은 "DIY 게임 USB 컨트롤러"에 관한 것입니다. 최근 ElectroPunkz Labs에서 작업하고 있습니다.

여기서 아이디어는 게임을 하는 데 사용할 수 있는 버튼과 아날로그 조이스틱이 있는 저렴한 Atmega32U 기반 USB 컨트롤러를 만드는 것입니다.

NFS, GTA, 반감기, LITTLE FIGHTER 2!

컨트롤러를 두 가지 폼 팩터로 만들었습니다. 첫 번째는 PS1 또는 SNES 구성을 기반으로 하고 다른 하나는 아날로그 스틱과 버튼(아직 확정되지 않음)이 있는 직선형 Xbox USB 컨트롤러입니다.

이번 포스트에서는 PS1 레이아웃 컨트롤러인 V1을 만들어 보겠습니다!

프로젝트의 Video First를 보시면 더 좋습니다-

자료

하드웨어는 매우 간단하고 얻기 쉽습니다. (PCB를 제외하고는 PCB의 첨부된 PDF 파일로 직접 만들 수 있습니다)

<울>
  • Arduino Leonardo/ Pro Micro/ Atmega32U
  • 버튼(틱 압정 스위치)
  • 맞춤형 에칭 PCB(버튼 매트릭스 PDF 첨부)
  • 10K 저항기
  • 점퍼 와이어
  • 감사합니다 UTSOURCE.net이 이 프로젝트에 전자 부품을 제공합니다! UTSOURCE.net에서 확인할 수 있습니다. 예를 들어 이 프로젝트에 사용된 모든 구성 요소와 같은 모든 종류의 전자 구성 요소를 취급합니다!

    빌트 프로세스 (배선, 조립 , 등)

    가장 먼저 해야 할 일은 Pro Micro와 함께 풀다운 구성으로 연결된 기본적으로 12개의 푸시버튼인 기본 설정을 준비하는 것입니다. 기본적으로 이것은-

    이것을 브레드보드에서 테스트한 다음 위의 회로도에 따라 PCB를 준비했습니다.

    PCB(OrCad 케이던스)를 만든 후 광택 용지에 TOP 레이어의 PDF를 인쇄했습니다.

    광택지를 PCB 모양에 맞게 잘라 동박판에 올려놓고 열을 가하면 광택지에서 동박판으로 잉크가 전사됩니다. (기본 톤 전송 방법, 이 주제에 대한 내 비디오 보기)

    PCB를 준비한 후 Etching Solution에 떨어뜨리고 PCB를 에칭한 후 구성 요소를 위한 구멍을 뚫고 DIY GAME CONTROLLER PCB 준비되었습니다!

    그런 다음 회로도에 따라 모든 것을 배치하고 회로가 준비되었습니다.

    회로 준비를 마친 후 Fusion360에서 컨트롤러용 PCB 하우징/케이스를 설계 및 3D 인쇄했습니다.

    이제 코드를 업로드하고 코드로 게임을 하기만 하면 됩니다.

    코드

    Pro Micro에 제공된 코드를 업로드하십시오.

    조언의 말씀, 먼저 보드/설정을 철저히 테스트하고 PCB 트레이스의 저항과 연결을 확인하십시오. 무언가 누락된 경우 접지선이 없으면 핀에 불규칙한 신호를 보내고 프로 마이크로는 계속 유지되기 때문에 많은 키보드 오류가 발생할 수 있기 때문입니다. Pro micro를 재프로그래밍하는 것을 매우 어렵게 만드는 임의의 키를 누를 때.

    테스트

    가장 먼저 해야 할 일은 메모장을 열고 컨트롤러의 키를 누르기 시작하고 프레스의 키가 할당된 올바른 단어를 표시하는지 확인하는 것입니다.

    또는 키보드 테스트 앱이나 웹 앱을 사용하세요.

    모든 것이 코드에 따라 작동한다면 아무 게임이나 열고 이 DIY 게임 콘솔로 게임을 시작하세요!

    비디오 보기-

    추가 개선 사항

    이 설정에 가장 먼저 추가할 것은 XBOX ONE CONSOLE과 같이 마우스를 사용하여 플레이어를 탐색하는 적절한 게임을 하기 위한 아날로그 조이스틱입니다.

    V2에는 XBOX One 컨트롤러 레이아웃이 포함된 적절한 PCB가 있으므로 계속 지켜봐 주시기 바랍니다.

    문제가 있으면 댓글을 남겨주세요!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 코드
  • 코드C/C++
    #include int WPin =2; // UP int SPin =3; // DOWNint APin =4; //왼쪽 정수 DPin =5; //RIGHTint UPLpin =7; //왼쪽 위 Qint UPRpin =9; //상단 오른쪽int Xpin =14;//xint Apin =10; //iint Ypin =15;//yint Bpin =16;//bvoid setup(){ pinMode(WPin, INPUT); 핀모드(SPin, 입력); 핀모드(APin, INPUT); 핀모드(DPin, 입력); 핀모드(UPL핀, 입력); 핀모드(UPR핀, 입력); 핀모드(X핀, 입력); 핀모드(Apin, INPUT); 핀모드(Y핀, 입력); 핀모드(B핀, 입력); 디지털 쓰기(WPin, 높음); 디지털 쓰기(SPin, HIGH); 디지털 쓰기(APin, HIGH); 디지털 쓰기(DPin, HIGH); 디지털 쓰기(UPLpin, HIGH); 디지털 쓰기(UPR핀, 높음); 디지털 쓰기(Xpin, HIGH); digitalWrite(Apin, HIGH); 디지털 쓰기(Ypin, HIGH); 디지털 쓰기(Bpin, HIGH); Keyboard.begin(); } 무효 루프(){ if (digitalRead(WPin) ==0) { Keyboard.write('W'); 지연마이크로초(1); } if (digitalRead(SPin) ==0) { Keyboard.write('S'); 지연마이크로초(1); } if (digitalRead(APin) ==0) { Keyboard.write('A'); 지연마이크로초(1); } if (digitalRead(DPin) ==0) { Keyboard.write('D'); 지연마이크로초(1); } if (digitalRead(UPLpin) ==0) { Keyboard.write('q'); 지연마이크로초(1); } if (digitalRead(UPRpin) ==0) { Keyboard.write('e'); 지연마이크로초(1); } if (digitalRead(Xpin) ==0) { Keyboard.write('x'); 지연 마이크로초(1); } if (digitalRead(Apin) ==0) { Keyboard.write('i'); 지연 마이크로초(1); } if (digitalRead(Ypin) ==0) { Keyboard.write('y'); 지연 마이크로초(1); } if (digitalRead(Bpin) ==0) { Keyboard.write('b'); 지연 마이크로초(1); }} 

    맞춤형 부품 및 인클로저

    회로도


    제조공정

    1. MPU-6050을 사용한 Arduino 자이로스코프 게임
    2. Arduino 디지털 주사위
    3. 수제 16x8 매트릭스의 Arduino Nano 테트리스 게임
    4. Arduino 기반 물병
    5. 픽셀 체이서 게임
    6. Alexa에 의해 활성화된 Arduino 홈 컨트롤러
    7. NeoMatrix Arduino Pong
    8. 스마트 장갑
    9. WS2812 LED 스트립이 있는 DIY Arduino 1D 탁구 게임
    10. Arduino DMX-512 테스터 컨트롤러