Mục lục:
- Bước 1: Cách xây dựng bảng điều khiển VGA Arduino của riêng bạn
- Bước 2: Trò chơi từ các tác giả khác
- Bước 3: Phụ lục 1: Thêm chi tiết về cách tạo bộ điều khiển
- Bước 4: Phụ lục 2: Một số lưu ý về giới hạn bộ nhớ
Video: Bảng điều khiển Arduino VGA với 5 trò chơi: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Trong Tài liệu hướng dẫn trước đây của tôi, tôi đã tái tạo các phiên bản đơn giản hóa của một số trò chơi arcade cổ điển phổ biến nhất, bằng Arduino trần và một số thành phần khác. Sau đó, tôi đã ghép năm người trong số họ lại với nhau trong một bản phác thảo. Ở đây tôi sẽ chỉ cho bạn cách bạn có thể xây dựng một bảng điều khiển đơn giản có thể chơi Pong, Breakout, Bomber, Tetris và một đồ chơi vẽ lấy cảm hứng từ Etch-a-Sketch. Bảng điều khiển này cũng có thể được sử dụng để chơi Snake, và hai trò chơi khác do các tác giả khác viết: Bit Ninja của Sandro Maffiodo hay còn gọi là "Smaffer" và Stacker của Nikita Kurylev.
Tính năng chính là tạo ra tín hiệu VGA, nhờ vào thư viện VGAx, do đó bàn điều khiển cần có màn hình VGA. Mục tiêu của tôi, như thường lệ, là tránh bất kỳ "thành phần đặc biệt" nào để xây dựng nó, khi đó bạn không cần bất kỳ vi mạch hoặc lá chắn hỗ trợ nào! Các thành phần duy nhất là hai chiết áp, năm nút, một vài điện trở và một đầu nối DSUB15 (VGA). Một loa piezo là tùy chọn. Bạn có thể xem các trò chơi này trông như thế nào trong các hình ảnh trong trang này.
Thư viện VGAx cho phép sử dụng bốn màu với độ phân giải 120 x 60 pixel, không nhiều nhưng đủ cho máy chơi game retro này. Đồ họa là thô nhưng, nhờ sử dụng chiết áp, trò chơi chạy mượt mà. Hiệu ứng âm thanh đơn giản cũng có sẵn.
Bước 1: Cách xây dựng bảng điều khiển VGA Arduino của riêng bạn
Trước tiên, hãy tải xuống mã ArduinoVGAgame.ino và / hoặc Snake.ino ở cuối trang này và sao chép chúng vào PC của bạn trong một thư mục có cùng tên. Tải xuống thư viện VGAx từ liên kết này trên GitHub. Cách dễ nhất là sao chép nó trong thư mục con của phần mềm Arduino có tên là "thư viện", để được nhận ra ngay lập tức.
QUAN TRỌNG: thư viện này hoạt động cho Arduno IDE 1.6.4 nhưng nó không hoàn toàn tương thích với các phiên bản cũ hơn hoặc mới hơn.
Tải lên mã trong bảng Arduino của bạn (Tôi đã thử nghiệm cả Uno và Nano). Một cảnh báo cho bộ nhớ khả dụng thấp là bình thường. Nếu bạn không gặp các lỗi khác, mọi thứ đều ổn và bạn có thể bắt đầu ngay lập tức xây dựng bảng điều khiển của riêng mình.
Đối với điều này, bạn cần:
- Arduino Uno Rev. 3 hoặc Arduino Nano 3.x (ATmega328)
- Đầu nối DSUB15, tức là đầu nối VGA cái hoặc cáp VGA bị cắt.
- điện trở: 2 x 68 Ohm và 2 x 470 Ohm và 5 x 1 đến 2 kOhm
- hai chiết áp tuyến tính 10 kOhm (các giá trị tương tự cũng tốt)
- năm nút
- một số đoạn cáp
- một hoặc hai hộp đẹp để đặt tất cả các thành phần.
Thuận tiện:
- một breadboard hoặc một bảng dải
- loa piezo
Sơ đồ được báo cáo ở đầu bước này, cùng với một ví dụ về “bảng điều khiển” đã hoàn thành.
sơ đồ cho thấy cách kết nối một nút và một chiết áp. Cụ thể hơn, bạn cần kết nối năm nút với các chân 5, 10, 11, 12 và 13 tương ứng. Hành động được thực hiện bởi mỗi nút được mô tả trong bảng phía trên bên phải trong giản đồ. Ở bên trái, nó được hiển thị cách kết nối một chiết áp (bạn cần hai chiết áp vào chân A1 và A2). Loa phải được kết nối với chân analog A0.
Tôi đã đặt bảng Arduino với đầu nối VGA trong một hộp gỗ, nơi chứa chiết áp đầu tiên và bốn nút, trong khi chiết áp của người chơi thứ hai và nút khởi động của nó nằm trong một hộp riêng biệt và nhỏ hơn.
Nếu bạn thích món đồ chơi này và bạn quyết định tái sản xuất nó, tôi đánh giá cao nếu bạn viết bình luận hoặc gửi hình ảnh trong phần bình luận bên dưới.
Bước 2: Trò chơi từ các tác giả khác
Sandro Maffiodo gần đây đã phát hành trò chơi BitNinja. Bạn có thể tìm thêm thông tin tại đây và tải xuống mã tại đây.
Để sử dụng bảng điều khiển của tôi, bạn chỉ cần sửa lại nút trong mã của anh ấy như sau:
#define BTN_UP 11 (thay vì 13)
#define BTN_LEFT 10 (thay vì 12)
#define BTN_RIGHT 12 (thay vì 11)
Stacker, từ Nikita Kurylev, có sẵn tại đây. Thông tin thêm tại đây.
Một lần nữa, bạn phải sửa lại một nút, trong phần khác của mã: chỉ cần thay thế digitalRead (2) bằng digitalRead (13)
Bước 3: Phụ lục 1: Thêm chi tiết về cách tạo bộ điều khiển
Bạn có thể nhận ra bộ điều khiển theo nhiều cách khác nhau, tùy thuộc vào vật liệu có sẵn và sở thích của bạn.
Tôi thích nhận ra chúng bằng hộp gỗ (xem các hình ảnh trong trang này). Một hộp chính cho Arduino, đầu nối VGA và các nút trình phát đầu tiên và máy đo điện tử; một cái thứ hai (nhỏ hơn) chỉ dành cho nút và bánh xe của trình phát thứ hai (cần cho Pong và đồ chơi vẽ). Một khả năng khác là đặt mọi thứ trong một hộp lớn hơn.
Đầu tiên tôi reccomand để kết nối cổng VGA. Trong hình đầu tiên và thứ hai, bạn có thể thấy một số chi tiết: lưu ý hai điện trở 470 Ohm cho Đỏ và Xanh lá cây được kết nối tương ứng với chân 6 và 7, và hai 68 Ohm vào chân 3 và 9 cho tín hiệu đồng bộ ngang và dọc.
Bạn có thể chọn các kết hợp màu sắc khác nhau tùy thuộc vào các chân cắm mà bạn kết nối trên đầu nối VGA DSUB15, các chân 1, 2 và 3 lần lượt đại diện cho Đỏ, Xanh lá cây, Xanh lam (RGB). Tôi đã kết nối các chân 1 và 2, do đó tôi có sự kết hợp màu sau: (0, 0) = black; (1, 0) = đỏ; (0, 1) = xanh lục; (1, 1) = màu vàng.
Đối với tất cả các khả năng khác nhau, tôi khuyên bạn nên đọc chi tiết trong trang nơi bạn tải xuống các thư viện VGAx.
Ngay sau khi đầu nối VGA đã sẵn sàng, bạn có thể chuẩn bị tất cả các loại cáp khác cho các nút, bánh xe và loa (xem hình 2).
Bây giờ chỉ cần đặt mọi thứ lại với nhau: hãy nhớ rằng mỗi chân nút cần được kết nối với đất thông qua một điện trở 1 hoặc 2 kOhm, nếu không khi nút đang mở, trạng thái của chân có thể không được xác định. Điều này có nghĩa là nếu chân cắm trái bị ngắt kết nối, bạn có thể có một điện áp ngẫu nhiên (tĩnh) trên đó có thể kích hoạt nó. Xem để biết thêm chi tiết về sơ đồ trong bước thứ hai của hướng dẫn này.
Bước cuối cùng là sửa chữa mọi thứ tại chỗ. Tôi đã sử dụng súng bắn keo nóng, nhưng bạn có thể sử dụng phương pháp ưa thích của mình.
Bước 4: Phụ lục 2: Một số lưu ý về giới hạn bộ nhớ
Thật tuyệt vời khi một Arduino đơn giản lại có thể tạo ra tín hiệu VGA và tất cả các trò chơi này cùng nhau. Cổ chai thực sự là thiếu SRAM. Bộ vi điều khiển AVR chỉ có sẵn 2048 byte để lưu trữ và thao tác các biến, và thư viện VGAx lưu trữ các biến màn hình trong bộ đệm khung 120x60 pixel trong đó mỗi pixel cần 2 bit (4 màu), tổng cộng là 1800 byte. Điều này có nghĩa là chỉ còn lại 248 byte cho các biến phác thảo. Hơn nữa, theo kinh nghiệm của tôi, người ta nên để trống ít nhất 100 byte để tránh sự bất ổn. Sử dụng trên 1950 byte bộ nhớ động, bộ vi điều khiển bắt đầu thể hiện những hành vi kỳ lạ và không thể đoán trước được.
Điều này có nghĩa là tất cả các biến phải được chia sẻ giữa các trò chơi khác nhau và điều này làm cho mã khá khó đọc và khó gỡ lỗi. Nó không chỉ là một vấn đề để "thêm một trò chơi mới" vào bản phác thảo trước đó, mà tất cả các mã phải được sửa đổi sâu và tối ưu hóa.
Hơn nữa, tôi phải sử dụng định dạng biến tối thiểu có thể có: ví dụ: đối với tất cả các tọa độ, tôi phải sử dụng "byte" thay vì "int" hoặc, trong các trường hợp khác, tôi phải thích "int" thay vì "float".
Cuối cùng, kiến thức của tôi thuộc về Sandro Maffiodo hay còn gọi là Smaffer, người tạo ra thư viện VGAx và trò chơi tuyệt vời BitNinja. Nếu không có thư viện này, dự án này đã không thể thành hiện thực.
Cũng xin cảm ơn Nikita Kurylev về trò chơi Stacker đơn giản nhưng vui nhộn.
Đề xuất:
Bộ điều khiển trò chơi tự làm dựa trên Arduino - Bộ điều khiển trò chơi Arduino PS2 - Chơi Tekken với tự làm trò chơi Arduino: 7 bước
Bộ điều khiển trò chơi tự làm dựa trên Arduino | Bộ điều khiển trò chơi Arduino PS2 | Chơi Tekken với Bàn điều khiển Arduino tự làm: Xin chào các bạn, chơi game luôn thú vị nhưng chơi với Bộ điều khiển trò chơi tùy chỉnh tự làm của riêng bạn sẽ thú vị hơn
Bộ điều khiển trò chơi không dây với Arduino và NRF24L01 + (hỗ trợ một hoặc hai bộ điều khiển): 3 bước
Bộ điều khiển trò chơi không dây với Arduino và NRF24L01 + (hỗ trợ một hoặc hai bộ điều khiển): Bạn có thể tìm thấy dự án hoàn chỉnh từ trang web của tôi (bằng tiếng Phần Lan): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla / Đây là một bản tóm tắt thực sự ngắn về dự án. Tôi chỉ muốn chia sẻ nó nếu ai đó muốn
Bảng điều khiển trò chơi mini Ardubaby với 500 trò chơi: 10 bước
Ardubaby Mini Game Console Với 500 Trò chơi: Tín dụng cho người sáng tạo (Kevin Bates), Arduboy là một bảng điều khiển trò chơi 8 bit rất thành công. Đã có hàng nghìn trò chơi được viết bởi người có sở thích này đã chia sẻ chúng miễn phí trên diễn đàn cộng đồng của Arduboy để nhiều người có thể học cách viết mã hơn
Trình mô phỏng trò chơi điện thoại thông minh- Chơi trò chơi Windows bằng IMU điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: 5 bước
SmartPhone Game Simulator- Chơi Windows Games Sử dụng IMU Điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: Hỗ trợ dự án này: https://www.paypal.me/vslcreations bằng cách quyên góp cho mã nguồn mở & hỗ trợ để phát triển hơn nữa
Trò chơi Platformer điều khiển bằng Arduino với Cần điều khiển và Bộ thu IR: 3 bước (có Hình ảnh)
Trò chơi platformer điều khiển bằng Arduino với Joystick và IR Receiver: Hôm nay, chúng ta sẽ sử dụng vi điều khiển Arduino để điều khiển một trò chơi platformer đơn giản dựa trên C #. Tôi đang sử dụng Arduino để lấy đầu vào từ mô-đun cần điều khiển và gửi đầu vào đó đến ứng dụng C #, ứng dụng này sẽ lắng nghe và giải mã đầu vào qua Serial c