Trò chơi rắn đã rất phổ biến kể từ khi bắt đầu có điện thoại di động. Ban đầu nó có ở dạng điện thoại di động màu đen và trắng, và nhanh chóng trở nên rất nổi tiếng. Sau đó, với sự tiến bộ của Cellphones, trò chơi này cũng đã thay đổi rất nhiều, và hiện nay có rất nhiều phiên bản đồ họa và màu sắc của trò chơi này.
Trò chơi rắn cũng đã trở thành dự án DIY rất phổ biến đối với những người yêu thích đồ điện tử và sinh viên. Vì vậy, hôm nay chúng tôi sẽ trình diễn Trò chơi rắn Arduino, với tất cả các chức năng cơ bản của nó, đồng thời giữ cho nó đơn giản.
Các thành phần được sử dụng:
- Arduino UNO
- Màn hình ma trận chấm LED 8x8
- Đăng ký Shift 74HC595
- LCD 16x2
- LẨU 1K
- Nút ấn
- Kết nối dây
- Bảng bánh mì
- Nguồn cấp
Giải thích làm việc:
Đây là một trò chơi hơi phức tạp để xây dựng. Nhưng trong hướng dẫn này, chúng tôi đã làm cho nó đơn giản cho bạn. Để thực hiện dự án này, chúng tôi đã sử dụng màn hình ma trận chấm 8x8 màu đỏ để hiển thị con rắn và chấm thức ăn của nó, một màn hình LCD để hiển thị điểm hoặc số điểm, 5 nút nhấn để chỉ đường và bắt đầu trò chơi và cuối cùng là Arduino UNO để điều khiển toàn bộ quá trình. Sơ đồ chân của Màn hình ma trận chấm LED 8x8 với hình ảnh gốc của nó đã được đưa ra dưới đây:
Khi chúng tôi cấp nguồn cho mạch, đầu tiên chúng tôi hiển thị thông báo chào mừng và sau đó là gợi ý “Nhấn Bắt đầu để Phát” trên màn hình LCD. Sau đó, màn hình LCD hiển thị điểm số là 0 và màn hình ma trận điểm hiển thị hai chấm là con rắn và một chấm duy nhất là thức ăn.
Bây giờ người dùng cần nhấn vào nút giữa để bắt đầu trò chơi và con rắn bắt đầu di chuyển theo hướng lên trên theo mặc định. Sau đó, người dùng cần đưa ra hướng đi cho con rắn bằng cách nhấn 'Các phím hướng' xung quanh nút giữa. Ở đây chúng tôi đã sử dụng năm phím (nút nhấn) là phím Trái, phím Phải, phím Lên, phím Xuống và phím Bắt đầu. Bất cứ khi nào con rắn chạm tới chấm thức ăn hoặc ăn thức ăn, điểm số sẽ tăng lên 5 điểm mỗi lần và chiều dài của con rắn được tăng thêm một chấm (đèn LED) mỗi lần, tốc độ của rắn cũng trở nên nhanh hơn trước. Và bất cứ khi nào con rắn tấn công vào bất kỳ bức tường nào hoặc chạm đến cuối ma trận LED, thì nó sẽ kết thúc trò chơi (“Game Over”). Sau đó, người dùng cần bắt đầu lại trò chơi bằng cách nhấn phím bắt đầu.
Giải thích mạch:
Mạch của Dự án trò chơi rắn này hơi phức tạp. Ở đây chúng tôi đã kết nối hiển thị ma trận điểm bằng cách sử dụng Shift Register 74HC595. Ở đây hai thanh ghi shift được sử dụng, một thanh ghi để điều khiển các cột và thanh ghi thứ hai để điều khiển các hàng. Các chân điều khiển của cả thanh ghi, thanh ghi dịch cột và thanh ghi dịch chuyển hàng (SH, ST),được kết nối trực tiếp với chân số 14 và 16 của Arduino tương ứng. Và chân DS của thanh ghi dịch cột và thanh ghi dịch chuyển hàng được kết nối trực tiếp với chân số 15 và 17 của Arduino. Nút bắt đầu để bắt đầu trò chơi được kết nối ở chốt số 3, nút hướng trái ở chốt 4, nút hướng phải ở chốt 6, nút hướng lên ở chốt 2 và nút hướng xuống ở chân 5. Một màn hình LCD cũng được kết nối trong phần cứng của chúng tôi hiện điểm. Các chân RS và EN được kết nối trực tiếp tại chân 13 và 12. Chân RW được nối đất trực tiếp. Và các chân dữ liệu d4-d7 được kết nối tại chân 11, 10, 9, 8 của Arduino. Phần còn lại của kết nối được hiển thị trong sơ đồ mạch.
Giải thích lập trình:
Để viết mã trò chơi con rắn Arduino này, trước hết chúng ta bao gồm các tệp tiêu đề và xác định các chân cho LCD. Và sau đó xác định một số chân cho các nút hướng và chân dữ liệu cho các thanh ghi dịch chuyển.
#include
Sau đó, chúng tôi khởi tạo tất cả những thứ mà chúng tôi đã sử dụng trong chương trình. Trong chức năng cài đặt, chúng tôi khởi tạo LCD, đưa ra hướng cho các chân đầu ra đầu vào, kéo các bit lên và hiển thị thông báo chào mừng trên LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (bắt đầu, INPUT);……………
Và sau đó chúng tôi bắt đầu trò chơi trong chức năng vòng lặp .
void show_snake (int temp) {for (int n = 0; n
Ở đây chúng tôi đã sử dụng chức năng dưới đây để đọc hướng đầu vào từ nút nhấn.
void read_button () {if (! digitalRead (left)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; while (! digitalRead (trái));……………
Kiểm tra mã C đầy đủ của trò chơi Snake bên dưới.