스네이크 게임 은 휴대폰이 시작된 이래로 매우 인기가있었습니다. 처음에는 흑백 휴대 전화로 등장했고 곧 매우 유명해졌습니다. 그런 다음 휴대폰의 발전과 함께이 게임도 많이 변경되었으며 이제이 게임의 많은 그래픽 및 다채로운 버전을 사용할 수 있습니다.
스네이크 게임은 전자 애호가와 학생에게 매우 인기있는 DIY 프로젝트가 되었습니다. 그래서 오늘 우리는 Arduino Snake Game의 모든 기본 기능을 동시에 간단하게 유지하면서 시연 할 것 입니다.
사용 된 구성 요소:
- Arduino UNO
- 8x8 LED 도트 매트릭스 디스플레이
- 시프트 레지스터 74HC595
- 16x2 LCD
- POT 1K
- 푸시 버튼
- 전선 연결
- 브레드 보드
- 전원 공급
작동 설명:
이건 조금 복잡한 게임입니다. 하지만이 튜토리얼에서는 간단하게 만들었습니다. 이 프로젝트를 만들기 위해 우리는 뱀과 먹이 점을 표시하는 8x8 빨간색 도트 매트릭스 디스플레이, 포인트 또는 점수를 표시하는 LCD, 방향을 제공하고 게임을 시작하는 5 개의 푸시 버튼, 마지막으로 제어를위한 Arduino UNO를 사용했습니다. 전체 과정. 원본 이미지가 포함 된 8x8 LED 도트 매트릭스 디스플레이의 핀 다이어그램은 다음과 같습니다.
회로의 전원을 켤 때 먼저 환영 메시지를 표시 한 다음 LCD에 "Press Start To Play"힌트를 표시합니다. 그 후 LCD는 점수를 0으로 표시하고 도트 매트릭스 디스플레이는 두 개의 점을 뱀으로, 하나의 점을 음식으로 표시합니다.
이제 사용자는 게임을 시작하기 위해 중간 버튼을 눌러야하며 스네이크는 기본적으로 위쪽 방향으로 움직이기 시작합니다. 그런 다음 사용자는 가운데 버튼 주변의 '방향 키'를 눌러 스네이크에게 방향을 제공해야합니다. 여기에서는 왼쪽 키, 오른쪽 키, 위쪽 키, 아래쪽 키 및 시작 키의 5 개 키 (푸시 버튼)를 사용했습니다. 뱀이 음식점에 도달하거나 음식을 먹을 때마다 점수가 매번 5 점씩 증가하고 뱀의 길이는 매번 점 (LED)이 1 점씩 증가하며 뱀 속도도 이전보다 빨라집니다. 그리고 뱀이 벽을 치거나 LED 매트릭스의 끝에 도달 할 때마다 게임을 종료합니다 (“게임 오버”). 그런 다음 사용자는 시작 키를 눌러 게임을 다시 시작해야합니다.
회로 설명:
이 뱀 게임 프로젝트의 회로 는 조금 복잡합니다. 여기에서는 시프트 레지스터 74HC595 를 사용하여 도트 매트릭스 디스플레이를 연결했습니다. 여기서 두 개의 시프트 레지스터가 사용되는데, 하나는 열을 구동하고 두 번째는 행을 구동하는 데 사용됩니다. 레지스터, 열 시프트 레지스터 및 행 시프트 레지스터 (SH, ST)의 제어 핀 ,Arduino의 핀 번호 14와 16에 각각 직접 연결됩니다. 그리고 컬럼 쉬프트 레지스터의 DS 핀과 로우 쉬프트 레지스터는 Arduino의 15 번과 17 번 핀에 직접 연결되어 있습니다. 게임 시작을위한 시작 버튼은 핀 3 번, 왼쪽 방향 버튼은 핀 4, 오른쪽 방향 버튼은 핀 6, 위쪽 방향 버튼은 핀 2, 아래쪽 방향 버튼은 핀 5에 LCD가 연결되어 있습니다. 점수를 표시합니다. RS 및 EN 핀은 핀 13 및 12에서 직접 연결됩니다. RW 핀은 직접 접지됩니다. 그리고 데이터 핀 d4-d7은 Arduino의 핀 11, 10, 9, 8에 연결됩니다. 나머지 연결은 회로도에 나와 있습니다.
프로그래밍 설명:
이 Arduino 뱀 게임 코드를 작성하려면 먼저 헤더 파일을 포함하고 LCD 용 핀을 정의합니다. 그런 다음 방향 버튼 용 핀과 시프트 레지스터 용 데이터 핀을 정의합니다.
#포함
그런 다음 프로그램에서 사용한 모든 것을 초기화합니다. 에서 설정 기능 우리 입출력 핀에 방향을 부여 풀업 비트 및 LCD에 환영 메시지를 보여주는 LCD를 초기화한다.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (시작, INPUT);……………
그런 다음 루프 기능 에서 게임을 시작 합니다.
void show_snake (int temp) {for (int n = 0; n
여기에서는 푸시 버튼에서 입력 방향을 읽기 위해 아래 기능을 사용했습니다.
void read_button () {if (! digitalRead (left)) {move_r = 0; move_c! =-1? move_c = -1: move_c = 1; while (! digitalRead (왼쪽));……………
아래 에서 뱀 게임 의 전체 C 코드를 확인하십시오.