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

뱀 LED 매트릭스 게임

구성품 및 소모품

Arduino Proto Shield
× 1
Arduino UNO
× 1
아날로그 조이스틱(일반)
일반 검은색 조이스틱입니다.
× 1
남성/여성 점퍼 와이어
× 1
SparkFun LED 어레이 - 8x7
이것은 RGB가 아닌 일반 8*8 LED 매트릭스입니다.
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

Meccanoid와 Erector를 프레임으로 설정하여 멋진 게임 콘솔을 만들고 Sergey Royz를 사용했습니다. 코드(CHECK IT OUT)를 추가하고 속도를 높여 원활하게 이동했습니다. 액자 만드는 방법은 따로 설명하지 않겠지만, 액자를 직접 만들어보는 것을 추천합니다. 하지만 프레임이 필요합니다. 이것으로 당신이 원하는 것을 즐기십시오. 이 프로젝트가 마음에 드셨으면 좋겠습니다! 질문이 있는 경우 댓글을 남겨주시면 최대한 빨리 답변해 드리겠습니다. 다음 프로젝트에 대한 권장 사항이 있으면 댓글로 알려주세요. 또한 내 fritzing이 작동하지 않았으므로 다음과 같이 말하겠습니다.

회로도:

쉴드를 Arduino Uno에 부착하면 브레드보드를 ​​사용하지 않고도 더 많은 GND 및 5v 콘센트를 사용할 수 있습니다.

매트릭스:

<울>
  • VCC에서 5V Arduino로
  • <울>
  • GND에서 GND Arduino로
  • <울>
  • DIN을 Arduino의 디지털 핀 10번으로 연결
  • <울>
  • Arduino의 디지털 핀 9에 대한 CS
  • <울>
  • Arduino의 디지털 핀 8에 대한 CLK
  • 조이스틱:

    <울>
  • Arduino의 Gnd-Gnd 핀
  • <울>
  • Arduino에서 +5v ~ 5V
  • <울>
  • Arduino에서 VRX에서 A0으로
  • <울>
  • Arduino에서 VRY에서 A1으로
  • <울>
  • 디지털 핀 2로 SW
  • <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • C/C++
    코드를 복사하여 붙여넣기만 하면 됩니다.
    /** * Snake * 뱀이 끊임없이 움직이고 플레이어가 자신 및 경계와의 교차를 피해야 하는 고전적인 Snake 게임의 구현 *. * 뱀이 음식을 먹으면 성장하고 속도가 약간 빨라집니다. * * 2016년 6월 23일 * 작성:Sergey Royz 및 사냥꾼 Buzzell */#include /* 조이스틱 PIN */#define VRX A0#define VRY A1#define SW 2/* 디스플레이 PIN */#define CLK 8# define CS 9#define DIN 10#define SIZE 8#define ADVANCE_DELAY 20int snake[SIZE*SIZE][2];int length;int food[2], v[2];bool is_game_over =false;long current_time;long prev_advance; int 깜박임 수; const 짧은 메시지 속도 =5; LedControl lc =LedControl(DIN, CLK, CS, 1); 무효 init_game() { prev_advance =current_time =0; 깜박임 횟수 =3; 정수 절반 =크기 / 2; 길이 =크기 / 3; for (int i =0; i <길이; i++) { snake[i][0] =half - 1; 뱀[i][1] =반 + 나; } 음식[0] =절반 + 1; 음식[1] =절반 - 1; v[0] =0; v[1] =-1;}void render() { for (int i =0; i =SIZE) { 지연(1000); showGameOverMessage(); true를 반환합니다. } if (head[1] <0 || head[1]>=SIZE) { 지연(1000); showGameOverMessage(); true를 반환합니다. } for (int i =0; i =0, i--) { 뱀[i + 1][0] =뱀[i][0]; 뱀[i + 1][1] =뱀[i][1]; } 뱀[0][0] +=v[0]; 뱀[0][1] +=v[1]; return false;} 무효 설정() { pinMode(SW, INPUT_PULLUP); 핀모드(VRX, 입력); 핀모드(VRY, 입력); attachInterrupt(digitalPinToInterrupt(SW), 다시 시작, RISING); lc.shutdown(0, 거짓); lc.setIntensity(0, 8); 초기화 게임(); render();}void 루프() { if (!is_game_over) { clearScreen(); 세우다(); if (current_time - prev_advance> ADVANCE_DELAY) { is_game_over =Advance(); prev_advance =현재_시간; } } else { while (blink_count> 0) { clearScreen(); 지연(300); 세우다(); 지연(300); 깜박임--; } } readControls(); current_time++;}재시작 무효() { init_game(); is_game_over =false;} 무효 readControls() { int dx =map(analogRead(VRX), 0, 906, 2, -2); 정수 dy =map(analogRead(VRY), 0, 906, -2, 2); if (dx !=0) {dx =dx / abs(dx);} if (dy !=0) {dy =dy / abs(dy);} if (dy !=0 &&v[0] !=0 ) { v[0] =0; v[1] =다이; } if (dx !=0 &&v[1] !=0) { v[0] =dx; v[1] =0; }} const PROGMEM 부울 gameOverMessage[8][90] ={ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0 ,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0 ,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0 ,1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0 ,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,0,1 ,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0 ,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 ,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0 ,0}, {0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0 ,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0 ,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0 ,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0 ,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,0 ,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1 ,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0 ,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1 ,0,0,1,1,0, 0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0, 0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1, 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0, 1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1, 0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0, 0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0, 0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0}}; 무효 showGameOverMessage() { for (int d =0; d   

    제조공정

    1. Arduino 게임 컨트롤러
    2. MAX7219가 있는 24x16 매트릭스의 Arduino Pong 게임
    3. 수제 16x8 매트릭스의 Arduino Nano 테트리스 게임
    4. Bluetooth가 탑재된 Arduino로 LED 제어!
    5. LED 매트릭스 + 모션 센서 도어 디스플레이 [Arduino Holiday]
    6. Arduino Quadruped
    7. 픽셀 체이서 게임
    8. 단일 LED 매트릭스 Arduino 플립 시계
    9. Arduino RGB 컬러 믹서
    10. Arduino Uno로 LED 매트릭스 제어