Mục lục:
Video: Trò chơi điện tử Cyclone LED: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Mục đích của dự án này là tạo ra một trò chơi đơn giản sử dụng Arduino có thể tương tác và giải trí cho trẻ em. Tôi nhớ trò chơi arcade Cyclone là một trong những trò chơi arcade yêu thích của tôi khi tôi còn nhỏ, vì vậy tôi quyết định nhân rộng nó. Đây là một dự án rất đơn giản bao gồm Arduino, chuỗi các đèn LED có thể nhấn riêng lẻ và một nút nhấn.
Mục tiêu của trò chơi là dừng đèn xe đạp khi nó đến đèn LED (màu đỏ) được chỉ định. Nếu thành công, mức độ khó sẽ tăng lên. Nếu không thành công, chu kỳ ánh sáng sẽ khởi động lại ở mức độ khó hiện tại.
Hướng dẫn này là một nguồn tài nguyên khổng lồ cho cốt lõi mã hóa của tôi.
Bước 1: Thu thập nguồn cung cấp
-
Các thành phần chính:
- Arduino (tôi đã sử dụng UNO)
- Chuỗi đèn LED có thể định địa chỉ riêng (tôi đã sử dụng liên kết)
- Nút nhấn (Tôi đã sử dụng liên kết)
- Bảng mạch in (PCB) hoặc bảng mạch bánh mì
-
Bộ nguồn (Tôi đã sử dụng hai bộ nguồn riêng biệt, bạn có thể lấy một bộ nếu bạn sáng tạo)
- 5V 3A cho đèn LED
- 9V 1A cho Arduino
-
Khung:
- Vỏ thiết bị điện tử (Tôi đã sửa đổi một đèn cố định bằng gỗ từ Goodwill)
- Vỏ đèn LED (Tôi đã sửa đổi đồng hồ treo tường tiêu chuẩn của bạn và các lỗ khoan bằng cách sử dụng số nhận dạng phút làm dấu lỗ. Hãy sử dụng đồng hồ gỗ nếu có thể để việc khoan dễ dàng hơn.)
- Vỏ nút (tôi đã sử dụng một ống PVC khuỷu tay)
-
Công cụ / Vật liệu khác:
- Dây dự phòng cho mạch của bạn
- Điện trở 10K (điện trở kéo xuống cho công tắc) và 470 ohm (cho dây dữ liệu trên đèn LED)
- Khoan để tạo lỗ để đặt đèn LED của bạn và tạo bất kỳ lỗ cần thiết nào trên thiết bị cố định của bạn để luồn dây qua
- Hàn sắt để hàn mạch của bạn với PCB
- Súng bắn keo nóng để cố định đèn LED vào thiết bị cố định của bạn
- Velcro hoặc một số phương tiện để bảo mật khung với nhau
- Các miếng đệm tùy chọn cho các lỗ được khoan để dây đi qua
Bước 2: Tải lên mã
Đảm bảo bạn tải xuống và thêm thư viện "FastLED"
Cốt lõi của mã (void loop) bao gồm hai trạng thái: nút nhấn cao (Kết thúc trò chơi) và nút nhấn thấp (Đang chơi). Khi người dùng nhấn nút, địa chỉ đèn LED đã dừng bật sẽ được so sánh với địa chỉ của đèn LED trung tâm. Nếu chúng không giống nhau, tất cả các đèn sẽ nhấp nháy màu đỏ hai lần và mức hiện tại sẽ khởi động lại. Nếu chúng giống nhau, cylon (tập lệnh thư viện FastLED) chạy hai lần, mức độ khó tăng lên và tiếp tục chơi. Sau khi người chơi vượt qua cấp độ cuối cùng, cylon chạy lần thứ tám và trò chơi khởi động lại ở cấp độ 1.
// Trò chơi lốc xoáy
#include "FastLED.h" // lên đến 50 #define NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB // phạm vi 0-64 #define BRIGHTNESS 50 // Định nghĩa mức độ khó #define EASY 1 #define MEDIUM 2 #define HARD 3 #define ON_SPEED 4 #define SONIC_SPEED 5 #define ROCKET_SPEED 6 #define LIGHT_SPEED 7 #define MISSION_IMPOSSIBLE 8 // Độ khó bắt đầu từ độ khó = 1; // Xác định mảng led CRGB led [NUM_LEDS]; // Người chơi có thắng trong vòng này không? Thẻ này được sử dụng cho các thông số độ khó. bool wonThisRound = false; // Vị trí bắt đầu của đèn đi qua int LEDaddress = 0; // Trò chơi có đang chạy không? bool Playing = true; // Đây có phải là chiến thắng đầu tiên không? bool CycleEnded = true; // Chi tiết nút const int buttonPin = 9; int buttonState = 0; // Khởi tạo thư viện led và các hàm arduino void setup () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (BRIGHTNESS); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Thịt và khoai tây // Hai chế độ - Đang chơi và Kết thúc trò chơi void loop () {// KẾT THÚC TRÒ CHƠI buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Đang phát = false; // Người dùng đã nhấn nút và đèn LED đã dừng trên địa chỉ chiến thắng. for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Đen; } leds [CENTER_LED] = CRGB:: Đỏ; leds [LEDaddress] = CRGB:: Màu xanh lá cây; FastLED.show (); if (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // Tìm khoảng cách giữa đèn led sáng và đèn led trung tâm if (diff == 0) {wonThisRound = true; // Người chơi thành công vượt qua cấp độ if (khó! = MISSION_IMPOSSIBLE) {for (int i = 0; i <2; i ++) {cylon (); }} if (khó khăn == MISSION_IMPOSSIBLE) {for (int i = 0; i <8; i ++) {cylon (); } khó khăn = 0; } gainDifficulty (); wonThisRound = false; } else {delay (1000); for (int i = 0; i <2; i ++) {flash (); }} CycleEnded = false; } LEDaddress = 0; chậm trễ (250); buttonState = digitalRead (buttonPin); if (buttonState == LOW) {Đang phát = true; }} // CHƠI if (Đang phát) {for (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Black; // Tắt tất cả các led} leds [CENTER_LED] = CRGB:: Red; // Đặt màu đèn led trung tâm thành đèn led xanh lục [LEDaddress] = CRGB:: Green; // Đặt màu led cyling thành đỏ FastLED.show (); // Khởi tạo chu kỳ ánh sáng LEDaddress ++; // Đặt chu kỳ ánh sáng cho một đèn LED tại một thời điểm if (LEDaddress == NUM_LEDS) {LEDaddress = 0; } delay (getTime (khó khăn)); buttonState = digitalRead (buttonPin); if (buttonState == HIGH) {Đang phát = false; CycleEnded = true; }}} // Tham số mức int getTime (int diff) // Trả về độ trễ thời gian cho chuyển động của led dựa trên độ khó {int timeValue = 0; switch (diff) {case EASY: timeValue = 100; nghỉ; trường hợp MEDIUM: timeValue = 80; nghỉ; case HARD: timeValue = 60; nghỉ; case ON_SPEED: timeValue = 40; nghỉ; case SONIC_SPEED: timeValue = 30; nghỉ; case ROCKET_SPEED: timeValue = 20; nghỉ; case LIGHT_SPEED: timeValue = 13; nghỉ; case MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Trả về lượng thời gian trễ} // Tham số tăng độ khó chiến thắng void tăngDifficulty () {if (khó! = MISSION_IMPOSSIBLE && wonThisRound) {khó ++; }} // Mất đèn LED Hiển thị void flash () {fill_solid (led, NUM_LEDS, CRGB:: Red); FastLED.show (); chậm trễ (500); fill_solid (led, NUM_LEDS, CRGB:: Black); FastLED.show (); chậm trễ (500); } // Giành LED Hiển thị void fadeall () {for (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} void cylon () {static uint8_t hue = 0; Serial.print ("x"); // Đầu tiên trượt led theo một hướng for (int i = 0; i = 0; i--) {// Đặt led thứ i thành led đỏ = CHSV (hue ++, 255, 255); // Hiển thị các led FastLED.show (); // bây giờ chúng ta đã hiển thị led, hãy đặt lại led thứ i thành màu đen // leds = CRGB:: Black; phaiall (); // Chờ một chút trước khi lặp lại và thực hiện lại delay (10); }}
Bước 3: Cài đặt trong Fixture
Tôi sẽ không đi vào chi tiết trong phần này. Có hàng nghìn cách khác nhau để thực hiện phần này và tôi nghĩ bạn nên sáng tạo để làm cho nó trông theo cách bạn thích. Điều đó đang được nói, đồng hồ khá thuận tiện để sử dụng cho các đèn LED vì nó có các chỉ số phút mà tôi có thể sử dụng làm dấu khoan. Ngoài ra, nắp kính cũng cho phép tôi sử dụng nó như một chiếc bàn.
Khóa dán cũng rất hữu ích để giữ cố định đèn LED vào bộ cố định vỏ thiết bị điện tử. Tôi cũng đã sử dụng khóa dán trên Arduino. Điều này rất thuận tiện cho việc kéo Arduino ra nếu tôi muốn sửa đổi mã.
Đề xuất:
Chạy các trò chơi Steam của bạn trên Bộ máy trò chơi cổ điển với Raspberry Pi: 7 bước
Chạy các trò chơi Steam của bạn trên Bộ máy trò chơi cổ điển với Raspberry Pi: Bạn có tài khoản Steam với tất cả các trò chơi mới nhất không? Làm thế nào về một tủ arcade? Nếu vậy, tại sao không kết hợp cả hai thành một máy chơi game Steam Streaming tuyệt vời. Cảm ơn những người ở Steam, giờ đây bạn có thể phát trực tuyến các trò chơi mới nhất từ PC hoặc Ma
Tính điểm điện tử cho trò chơi ném túi đậu Trò chơi bóng chày: 8 bước (có hình ảnh)
Tính điểm điện tử cho trò chơi ném túi đậu Trò chơi bóng chày: Tài liệu hướng dẫn này sẽ giải thích cách tự động giữ điểm số bằng phương pháp điện tử cho trò chơi bóng chày theo chủ đề Túi đậu. Tôi sẽ không trình bày cách xây dựng chi tiết của trò chơi bằng gỗ, bạn có thể tìm thấy những kế hoạch đó trên trang web của Ana White tại: https: // www
Trò chơi Aruduino LED Nhấp nhanh Trò chơi hai người chơi: 8 bước
Aruduino LED Game Fast Click Two Player Game: Dự án này được lấy cảm hứng từ @HassonAlkeim. Nếu bạn sẵn sàng tìm hiểu sâu, đây là một liên kết bạn có thể kiểm tra https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Trò chơi này là một phiên bản cải tiến của Alkeim's. Nó là mộ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
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