Arduino는 취미 프로젝트 및 게임 구축에 매우 인기가 있으며 이전에 Arduino를 사용하여 Snake 게임, Ping pong 게임, 우주 경주 게임 등을 구축했습니다. 오늘 우리는 Arduino- Buzz 와이어 게임 또는 Steady 핸드 게임을 사용하여 하나 더 인기있는 게임을 구축하고 있습니다..
이 프로젝트에서는 Arduino Uno, Buzzer 및 두 개의 알루미늄 와이어를 사용합니다. 게임 상태를 표시하기 위해 16x2 LCD도 인터페이스됩니다. 미로 와이어의 양쪽 끝은 Arduino의 디지털 핀 2 및 3에 연결되고 핸들 와이어는 Arduino의 접지 핀에 연결됩니다. 디지털 핀은 INPUT_PULLUP 핀으로 정의됩니다. 따라서 핸들 와이어가 미로 와이어에 닿으면 디지털 핀 상태가 로우로 변경되고 부저가 울립니다.
미로 선의 끝에 다이오드가 연결되어 있으므로 해당 다이오드를 지나서 둥근 손잡이 선으로 미로 선을 만지면 하나의 핀 (핀 3) 만 낮아집니다. 이 상태에서 축하 메시지 (잘하셨습니다)가 LCD에 표시됩니다.
필요한 구성 요소
- Arduino Uno
- 알루미늄 와이어
- 16x2 LCD
- I 2 C 모듈
- 브레드 보드
- 부저
- 다이오드
회로도
Arduino Buzz Wire Game의 회로도는 위에 나와 있습니다. I2C 모듈의 SCL 및 SDA 핀은 Arduino의 A5 및 A4 핀에 연결되고 I2C 모듈의 V CC 및 GND 핀은 Arduino의 5V 및 GND 핀에 연결됩니다. Buzzer의 양극 레일은 Arduino의 디지털 핀 4에 연결되고 음극 레일은 GND에 연결됩니다. 알루미늄 와이어를 잘라 지그재그 모양으로 구부립니다. 와이어의 한쪽 끝에 다이오드를 납땜하십시오. 그런 다음 다른 와이어를 잘라 핸들을 만들고 한쪽 끝을 루프로 구부립니다.
16x2 LCD는 I2C 모듈을 사용하지 않고도 Arduino와 인터페이스 할 수 있습니다.
Arduino의 D2 및 D3 핀을 Zig-Zag 와이어의 양쪽 끝에 연결하고 핸들 와이어를 Arduino의 GND 핀에 연결합니다.
코드 설명
이 Arduino Buzz Wire 게임에 대한 전체 코드 는 문서 끝에 제공됩니다.
LCD 모듈 용 라이브러리 파일을 포함하여 코드를 시작합니다. LiquidCrystal_I2C.h 라이브러리는 Arduino와 LCD 모듈 간의 I2C 통신에 사용됩니다.
#포함
그런 다음 부저, 와이어의 시작점 및 와이어의 끝점에 대한 Arduino 핀을 정의하십시오.
const int startPin = 2; const int endPin = 3; const int 부저 = 4;
그런 다음 두 개의 변수 start 및 end_를 정의 하십시오. 이 변수는 와이어의 판독 값을 저장하는 데 사용됩니다.
int 시작, 끝 _;
이제 부저 핀을 출력으로 정의하고 와이어 핀을 INPUT_PULLUP 으로 정의합니다. Arduino에는 약 20k ohm 값의 내부 풀업 저항이 있습니다. 이러한 저항은 INPUT_PULLUP을 사용하여 내부적으로 연결할 수 있습니다. INPUT_PULLUP을 정의하는 것은 핀과 + 5V 사이에 ~ 20k 옴 저항을 연결하는 것과 기능적으로 동일합니다.
pinMode (부저, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
보이드 루프 내부에서 와이어 핀의 상태를 읽습니다.
시작 = digitalRead (startPin); end_ = digitalRead (endPin);
이제 와이어 핀의 판독 값을 비교하십시오. 두 핀이 모두 낮 으면 부저가 울리도록 와이어를 건드린 것입니다. 와이어의 시작 핀이 높고 끝 핀이 낮 으면 끝점에 도달했음을 의미합니다.
if (start == LOW && end _ == LOW) {digitalWrite (buzzer, HIGH); 지연 (1000); digitalWrite (부저, LOW); lcd.setCursor (0,0); lcd.print ("다시 시도"); Serial.print ("다시 시도"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("잘했습니다"); Serial.print ("잘했습니다"); }
Buzz Wire 게임 테스트
하드웨어를 연결하고 주어진 코드를 업로드 한 후 게임을 시작할 수 있습니다. 따라서 손에 원이있는 와이어를 잡고 둥근 와이어가 어디에도 닿지 않도록 지그재그 와이어로 납땜 된 다이오드까지 원이있는 와이어를 끝까지 가져 오십시오. 선을 터치하면 부저가 울리고 LCD에“ 다시 시도 ”가 표시됩니다. 그리고 선을 건드리지 않고 게임을 완료하면 " 잘 했어요 "라고 표시 됩니다 .
이것이 아두 이노로 버즈 와이어 게임을 만드는 방법 입니다. 작동하는 비디오와 완전한 코드가 아래에 나와 있습니다.