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

닌자 달러 - LCD 게임

구성품 및 소모품

Arduino UNO
× 1
Adafruit Standard LCD - 파란색 바탕에 16x2 흰색
× 1
브레드보드(일반)
공간을 더 확보하기 위해 2개를 사용했습니다. 브레드보드는 1개만 사용할 수 있습니다.
× 2
단일 회전 전위차계 - 10k 옴
× 1
LED(일반)
× 2
저항 1k 옴
× 4
SparkFun 푸시버튼 스위치 12mm
× 2
RobotGeek 부저
× 1
점퍼 와이어(일반)
× 1

필요한 도구 및 기계

납땜 인두(일반)
납땜 LCD용

이 프로젝트 정보

이것은 간단한 LCD 게임입니다. 내 영감은 Google Chrome의 Dinosaur 게임이었지만 몇 가지 변경 사항을 더 추가했습니다. 달러 전사는 끊임없이 움직이며 장애물을 피하기 위해 점프하고 "별" 포인트를 수집할 수 있습니다. 장애물을 뛰어 넘으면 1점, 별을 잡으면 5점을 받습니다. 그는 또한 그의 앞에 있는 장애물을 쏘고 제거할 수 있습니다. 점프하거나 쏘는지 여부를 나타내는 LED 다이오드도 있습니다. 그가 10, 20 또는 30 포인트를 모으면 이전보다 더 빠르게 움직이기 시작합니다. 그가 50점을 모으면 당신이 이깁니다. 장애물에 부딪히면 패배합니다. 물론 코드에서 이러한 경계를 쉽게 변경할 수 있습니다. 또한 전사가 점프하거나 쏠 때 소리가 나는 패시브 부저와 이기거나 졌을 때 특별한 멜로디를 추가했습니다. 이것은 나의 첫 번째 프로젝트이며 당신이 그것을 좋아하기를 바랍니다. 귀하의 의견과 리뷰를 알려주세요.

동영상

연결

LCD(Liquid Crystal Display) 모듈의 아래쪽에는 16핀 수 헤더가 있습니다. 이것을 그림과 같이 브레드보드에 꽂습니다. LCD에 전원을 공급하고 제어하는 ​​모든 전자 신호는 이 헤더를 통과합니다.

이 핀은 (왼쪽에서 오른쪽으로):

<울>
  • GND - 전원 접지 신호
  • <울>
  • VCC - 양의 전력 신호
  • <울>
  • V0 - 대비 조정
  • <울>
  • RS - 등록 선택
  • <울>
  • R/W - 읽기/쓰기 선택
  • <울>
  • E - 신호 활성화
  • <울>
  • D0 - 데이터 비트 0(여기서 사용되지 않음)
  • <울>
  • D1 - 데이터 비트 1(여기서 사용되지 않음)
  • <울>
  • D2 - 데이터 비트 2(여기서 사용되지 않음)
  • <울>
  • D3 - 데이터 비트 3(여기서 사용되지 않음)
  • <울>
  • D4 - 데이터 비트 4
  • <울>
  • D5 - 데이터 비트 5
  • <울>
  • D6 - 데이터 비트 6
  • <울>
  • D7 - 데이터 비트 7
  • <울>
  • A - 백라이트 LED 포지티브
  • <울>
  • K - 백라이트 LED 네거티브
  • 점퍼선을 사용하여 Arduino의 5V 신호를 브레드보드 상단의 빨간색 행과 연결합니다.

    점퍼선을 사용하여 Arduino의 GND 신호를 브레드보드 상단의 파란색 행과 연결합니다.

    <울>
  • VSS 핀을 접지에 연결
  • <울>
  • VDD 핀을 5V 신호에 연결
  • <울>
  • 전위차계 출력 핀에 대한 V0 핀
  • <울>
  • RS 핀을 Arduino 핀 12로
  • <울>
  • RW 핀을 접지로
  • <울>
  • E 핀 - Arduino 핀 11
  • <울>
  • D4에서 Arudino 핀 5로
  • <울>
  • D5에서 arduino 핀 4로
  • <울>
  • D6에서 Arduino 핀 3으로
  • <울>
  • D7에서 Arduino 핀 2로
  • <울>
  • 5V 신호에 대한 핀
  • <울>
  • GND 신호에 대한 K 핀
  • 나머지 전위차계 핀을 5V 신호와 GND 신호에 연결합니다.

    3 핀 피에조 버저가있는 경우 S 핀을 Arduino 7 핀에 연결하고 '-'핀을 GND에 연결하고 나머지 핀을 5V 신호에 연결하십시오. 2핀 피에조 부저가 있는 경우 한 핀을 GND 신호에 연결하고 다른 핀을 Arduino 7 핀에 연결합니다.

    회로도에 따라 스위치 버튼을 연결합니다. 첫 번째 버튼(점프 버튼)은 Arduino 핀 1에 연결되고 두 번째 버튼(촬영 버튼)은 Arduino 핀 6에 연결됩니다. LED는 Arduino가 아닌 버튼으로만 제어됩니다. 양극은 Arduino에 연결된 버튼 핀에 연결되고 음극은 접지에 연결됩니다.

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

    코드

    <울>
  • dollar_warrior
  • dollar_warrior아두이노
    #include const int rs =12, en =11, d4 =5, d5 =4, d6 =3, d7 =2;const int buttonPin1=1;const int buttonPin2=6;const int Buzzer=7;unsigned long pts=0;//set buttonstatesbool buttonState1=0;bool buttonState2=0;//장애물의 위치에 대한 난수신트 randomNums[6];//장애물의 수에 대한 난수sint randomNum=0;// ptsint의 위치에 대한 난수 randomNums1[3];//ptsint의 수에 대한 난수 randomNum1=0;//점차 감소하는 시작 지연 시간 unsigned int myDelay=500;// itbool temp=0;//이 변수는 전사가 쏘는 동안 위치를 저장합니다. 전사는 16개의 위치를 ​​가지고 있기 때문에 16개의 위치가 있을 수 있습니다.int tempI[16];// 이 부울 값을 사용하여 포인트가 catchedbool temp1=0인지 확인합니다. // 이 변수를 사용하여 잡은 포인트의 위치를 ​​저장합니다. 첫 번째 for 루프의 한 번의 반복에서 모든 점의 위치를 ​​저장하려면 이어야 하고 배열이어야 합니다. 한 위치만 저장한 경우 "이전" 지점이 새 반복에서 다시 나타납니다.int tempI1[3]; //이 변수를 사용하여 배열의 길이이기도 한 전사의 샷 수를 갖습니다. tempIint button2IsPressed=0;LiquidCrystal lcd(rs, en, d4, d5, d6, d7);void setup() { / / LCD의 열과 행 수 설정:lcd.begin(16, 2); // 버튼핀 모드 설정 pinMode(buttonPin1,INPUT); 핀모드(버튼핀2,입력); 핀모드(부저, 출력); lcd.setCursor(4,0); lcd.print("게임"); lcd.setCursor(2,1); lcd.print("시작"); lcd.print("5"); 지연(1000); lcd.setCursor(12,1); lcd.print("4"); 지연(1000); lcd.setCursor(12,1); lcd.print("3"); 지연(1000); lcd.setCursor(12,1); lcd.print("2"); 지연(1000); lcd.setCursor(12,1); lcd.print("1"); 지연(1000); lcd.clear();}void 루프() { 여기:randomNum=random(5); for(int i=0; i9 &&pts<20) {lcd.setCursor(14,0); myDelay=400; } else if(pts>19 &&pts<30) { lcd.setCursor(14,0); myDelay=300; } else if(pts>29 &&pts<50) { myDelay=200; lcd.setCursor(14,0); } else if(포인트>=50){ 포인트=0; myDelay=500; lcd.clear(); lcd.setCursor(5,0); lcd.print("승리"); 톤(부저,262); 지연(200); 톤(부저,330); 지연(200); 톤(부저,392); 지연(100); 톤(부저,330); 지연(100); 톤(부저,392); 지연(100); 톤(부저,523); 지연(200); 노톤(부저); 지연(3000); lcd.clear(); 여기로 이동; } 그렇지 않으면 lcd.setCursor(15,0); lcd.print(포인트); buttonState1=디지털읽기(버튼핀1); buttonState2=디지털읽기(버튼핀2); //전사가 총을 쏘지 않았거나 쐈지만 점프한 경우 장애물 설정 if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j],1); lcd.print("#"); } } } //설정 ptsif(!temp1){ for(int j=0; j  

    회로도

    game_aUIjA6VZxX.fzz

    제조공정

    1. 체스
    2. 핀볼
    3. 축구
    4. MPU-6050을 사용한 Arduino 자이로스코프 게임
    5. DIY 37 LED 룰렛 게임
    6. 3D RGB Arduclock
    7. 마이리버
    8. 조이스틱 게임
    9. 나를 찾기
    10. 128x64 LCD 디스플레이의 DIY 10Hz-50kHz 오실로스코프