Mục lục:

Trò chơi chiến hạm Arduino: 3 bước
Trò chơi chiến hạm Arduino: 3 bước

Video: Trò chơi chiến hạm Arduino: 3 bước

Video: Trò chơi chiến hạm Arduino: 3 bước
Video: BIẾN MỘT CỤC SẮT THÀNH SIÊU CHIẾN HẠM SIÊU VIP X99999 DAME !!! (Pobbrose Siêu chiến hạm) ✔ 2024, Tháng mười một
Anonim
Trò chơi chiến hạm Arduino
Trò chơi chiến hạm Arduino

Tôi nhớ mình đã chơi phiên bản bằng giấy và bút chì của Trò chơi chiến hạm khi còn nhỏ. Trên thực tế, nó đã xuất hiện từ khoảng Thế chiến 1. Tôi cũng có một biến thể "điện tử" vào đầu những năm 1960 có tên là "Sonar Sub Hunt" có đèn và âm thanh và mìn ẩn. Theo tiêu chuẩn trò chơi điện tử ngày nay, Battleship khá nhàm chán nhưng tôi nghĩ dù sao thì tôi cũng sẽ làm một cái chỉ để xem các bà nội nghĩ gì về nó. Rốt cuộc, đôi khi phong cách cổ điển có thể rất thú vị.

Có những phần nhỏ của dự án này sẽ hữu ích ở những nơi khác ngay cả khi bạn không quan tâm đến việc làm trò chơi Battleship. Nó có giao diện LCD 4-bit 1602 đơn giản bao gồm một quy trình để thiết lập vị trí ký tự cụ thể. Ngoài ra còn có một giao diện để giải mã ma trận chuyển mạch 4x4. Hai giao diện này có sẵn dưới dạng các tệp bao gồm riêng biệt để chúng có thể dễ dàng vận chuyển. Trò chơi cũng có các quy trình hiệu ứng âm thanh khác nhau và mạch khuếch đại âm thanh một bóng bán dẫn đơn giản.

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng

Sơ đồ được trình bày ở đây là dành cho một người chơi nên cần phải tạo ra hai đơn vị. Các thiết bị giao tiếp bằng cách sử dụng giao diện 3 dây bao gồm các đường UART TX và RX và một dây nối đất. Tôi đã chọn sử dụng giắc cắm tai nghe âm thanh nổi 1/8 inch tiêu chuẩn và cáp tiêu chuẩn có phích cắm đực ở cả hai đầu. RX từ một hộp đi đến TX của hộp kia và ngược lại. Bạn có thể làm điều đó bằng cách hoán đổi các dây được hàn vào giắc cắm tai nghe bên trong hộp hoặc hoán đổi chúng trên bảng mạch khi bạn chế tạo nó.

Trò chơi cổ điển được sắp xếp dưới dạng ma trận nhưng tôi quyết định thực hiện một cách đơn giản bằng cách sử dụng màn hình LCD 1602. Dòng đầu tiên hiển thị vị trí tàu của người chơi và các cú đánh của đối thủ. Dòng thứ hai hiển thị các cú đánh của người chơi và bất kỳ cú đánh nào vào tàu của đối thủ. Điều đó cung cấp 16 vị trí có thể cho tàu. Số lượng tàu được thiết lập trong phần mềm và tôi tự ý chọn 5 chiếc.

16 vị trí tàu phù hợp với các yêu cầu chuyển đổi vì nó cho phép tạo ra ma trận 4x4. Có sẵn các miếng chuyển mạch ma trận 4x4 nhưng tôi đã chọn sử dụng các công tắc riêng lẻ trong một dòng để phù hợp với màn hình tuyến tính. Tuy nhiên, tôi đã đấu dây các công tắc dưới dạng ma trận 4x4 để chỉ cần tám chân Arduino. Tham khảo sơ đồ đấu dây của công tắc và sơ đồ để biết các kết nối thích hợp.

Màn hình LCD có dây cho giao diện 4 bit. Tôi cũng đã thêm một đèn LED bên ngoài trên chân D13 để cho biết người chơi nào nên chụp. Ban đầu, người chơi quyết định ai là người thực hiện lượt bắn đầu tiên và sau đó phần mềm sẽ tự động điều khiển việc quay lại trò chơi.

Tôi muốn thêm các hiệu ứng âm thanh đơn giản cho cảnh quay, các vụ nổ, trò chơi đã sẵn sàng và người thắng / người thua. Tôi đã thử sử dụng một bộ rung piezo đơn giản nhưng cuối cùng chỉ sử dụng một loa nhỏ. Dòng điện mà loa yêu cầu vượt quá những gì Arduino có thể xử lý nên một bộ khuếch đại bóng bán dẫn đơn giản đã được thêm vào. Âm thanh vẫn không tuyệt vời nhưng nó tốt hơn so với bộ rung. Loa của tôi là 4 ohms nhưng nếu bạn có một cái 8 ohm thì hãy thay đổi điện trở trong sơ đồ từ 39 ohms đến 33 ohms. Nếu bạn sử dụng bộ rung piezo, bạn có thể điều khiển nó trực tiếp từ chân Arduino với mặt còn lại của bộ rung được kết nối với đất.

Một công tắc đặt lại bên ngoài cũng được bao gồm và được nối trực tiếp giữa mặt đất và chân "đặt lại" trên Arduino. Điều đó cung cấp phương tiện để khởi động lại trò chơi.

Bước 2: Phần mềm

Phần mềm có tệp bao gồm cho giao diện LCD của tôi và tôi cũng đã tạo tệp bao gồm để quét ma trận chuyển mạch 4x4. Quá trình khởi tạo sẽ nhắc người chơi chọn vị trí cho tàu của mình và sau đó chuyển sang trạng thái “Sẵn sàng”. Khi cả hai người chơi đã sẵn sàng, một trong số họ bắt đầu trò chơi bằng cách nhấn vào một công tắc.

Vị trí bắn được truyền qua UART tới người chơi khác và kết quả thích hợp được truyền lại cho người chơi đã bắn. Như đã đề cập trước đó, khi bức ảnh đầu tiên được chụp, phần mềm sẽ kiểm soát ai sẽ chụp bức ảnh tiếp theo. Trước khi một bức ảnh được truyền đi, nó sẽ được kiểm tra so với vị trí của các bức ảnh trước đó. Nếu vị trí đó đã được sử dụng, thì ảnh sẽ không được truyền đi. Đèn LED “My_Shot” xác định lượt của ai. Ngoài ra còn có âm thanh bắn được tạo ra để lựa chọn hợp lệ và âm thanh nổ nếu tàu bị bắn trúng. Các hiệu ứng âm thanh được lấy từ các ví dụ tìm thấy trực tuyến với các sửa đổi cho phù hợp với trò chơi.

Khi tất cả các tàu của đối thủ đã bị đánh trúng, một thông báo sẽ hiển thị trên mỗi màn hình LCD - một là người chiến thắng và một là người thua cuộc. Thông báo cũng chỉ rõ rằng trò chơi có thể được khởi động lại bằng cách nhấn nút đặt lại. Ngoài ra còn có các hiệu ứng âm thanh riêng biệt cho người chiến thắng và người thua cuộc.

Bước 3: Chụp màn hình

Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình
Ảnh chụp màn hình

Đây là một số ảnh chụp màn hình từ trò chơi. Đó là nó cho bài đăng này. Kiểm tra các Sách hướng dẫn khác của tôi và cả trang web của tôi tại: www.boomerrules.wordpress.com

Đề xuất: