Isi kandungan:
Video: Permainan Arked LED Cyclone: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Tujuan projek ini adalah untuk membuat permainan sederhana menggunakan Arduino yang akan interaktif dan menghiburkan untuk anak-anak. Saya masih ingat permainan Cyclone arcade menjadi salah satu permainan arcade kegemaran saya ketika saya masih muda, jadi saya memutuskan untuk menirunya. Ini adalah projek yang sangat sederhana yang terdiri daripada Arduino, rentetan LED yang dapat ditangani secara individu, dan butang tekan.
Matlamat permainan ini adalah untuk menghentikan lampu berbasikal ketika mencapai LED (merah) yang ditunjukkan. Sekiranya berjaya, tahap kesukaran akan meningkat. Sekiranya tidak berjaya, kitaran cahaya akan dimulakan semula pada tahap kesukaran semasa.
Instruksional ini adalah sumber yang sangat besar untuk inti pengkodan saya.
Langkah 1: Kumpulkan Bekalan
-
Komponen Utama:
- Arduino (saya menggunakan UNO)
- Rentetan daripada LED yang boleh ditujukan secara individu (saya menggunakan pautan)
- Tekan butang (saya menggunakan pautan)
- Papan litar bercetak (PCB) atau papan roti
-
Bekalan Kuasa (Saya menggunakan dua bekalan kuasa yang berasingan, anda mungkin akan melepaskannya jika anda kreatif)
- 5V 3A untuk LED
- 9V 1A untuk Arduino
-
Rangka Kerja:
- Perumahan elektronik (saya mengubah suai lampu kayu dari Muhibah)
- Perumahan LED (Saya mengubah jam dinding standard dan lubang yang digerudi menggunakan pengecam minit sebagai tanda lubang. Gunakan jam kayu jika mungkin untuk membuat penggerudian lebih mudah.)
- Perumahan butang (saya menggunakan paip PVC siku)
-
Alatan / Bahan Lain:
- Pendawaian ganti untuk litar anda
- Perintang 10K (perintang tarik untuk suis) dan perintang 470 ohm (untuk wayar data pada LED)
- Latih tubi untuk membuat lubang untuk menempatkan LED anda dan dan membuat lubang yang diperlukan dalam lekapan anda untuk melewati wayar
- Pateri solder untuk menyolder litar anda ke PCB
- Pistol gam panas untuk mengamankan LED ke lekapan anda
- Velcro atau beberapa kaedah untuk mengamankan rangka kerja bersama
- Gasket pilihan untuk lubang yang digerudi agar wayar dapat dilalui
Langkah 2: Muat naik Kod
Pastikan anda memuat turun dan menambah pustaka "FastLED"
Inti kod (gelung void) terdiri daripada dua keadaan: butang tekan tinggi (Permainan Akhir) dan butang tekan rendah (Bermain). Setelah pengguna menekan butang, alamat LED di mana lampu dihentikan dibandingkan dengan alamat LED tengah. Sekiranya tidak sama, semua lampu menyala merah dua kali dan tahap semasa dimulakan semula. Sekiranya sama, cylon (skrip perpustakaan FastLED) berjalan dua kali, tahap kesukaran meningkat, dan memainkan semula. Setelah pemain mengalahkan tahap terakhir, cylon berjalan kelapan kali dan permainan dimulakan semula di tahap 1.
// Permainan Taufan
#include "FastLED.h" // hingga 50 #tentukan NUM_LEDS 40 #define CENTER_LED 21 #define DATA_PIN 7 #define LED_TYPE WS2811 #define COLOR_ORDER RGB // range 0-64 #define BRIGHTNESS 50 // Definisi tahap kesukaran # tentukan MUDAH 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 // Mula kesukaran int kesukaran = 1; // Tentukan susunan LED CRGB led [NUM_LEDS]; // Adakah pemain memenangi pusingan ini? Teg ini digunakan untuk parameter kesukaran. bool wonThisRound = palsu; // Lokasi permulaan lampu berkitar int LEDaddress = 0; // Adakah permainan berjalan? bool Bermain = benar; // Adakah ini kemenangan pertama? bool CycleEnded = benar; // Butang butiran const int buttonPin = 9; int buttonState = 0; // Memulakan pustaka yang dipimpin dan fungsi arduino membatalkan penyediaan () {FastLED.addLeds (leds, NUM_LEDS); FastLED.setBrightness (KECERDASAN); pinMode (buttonPin, INPUT); Serial.begin (9600); } // Daging dan kentang // Dua Mod - Main dan Tamatkan Gelung kekosongan Permainan () {// TAMAT PERMAINAN butangState = digitalRead (buttonPin); jika (buttonState == TINGGI) {Bermain = salah; // Pengguna telah menekan butang, dan LED berhenti di alamat pemenang. untuk (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Hitam; } leds [CENTER_LED] = CRGB:: Merah; leds [LEDaddress] = CRGB:: Hijau; FastLED.show (); jika (CycleEnded = true) {int diff = abs (CENTER_LED - LEDaddress); // Mencari jarak antara lampu LED dan pusat diketuai jika (diff == 0) {wonThisRound = true; // Pemain berjaya mengalahkan tahap jika (kesukaran! = MISI_TIDAKKAN) {untuk (int i = 0; i <2; i ++) {cylon (); }} jika (kesukaran == MISSION_IMPOSSIBLE) {untuk (int i = 0; i <8; i ++) {cylon (); } kesukaran = 0; } tingkatkan Kesukaran (); wonThisRound = palsu; } lain {kelewatan (1000); untuk (int i = 0; i <2; i ++) {flash (); }} CycleEnded = palsu; } Alamat LED = 0; kelewatan (250); buttonState = digitalRead (buttonPin); jika (buttonState == RENDAH) {Bermain = benar; }} // BERMAIN jika (Bermain) {untuk (int i = 0; i <NUM_LEDS; i ++) {leds = CRGB:: Hitam; // Mematikan semua leds} leds [CENTER_LED] = CRGB:: Merah; // Menetapkan warna led pusat ke led hijau [LEDaddress] = CRGB:: Green; // Menetapkan warna led cyling menjadi FastLED.show merah) (); // Memulakan LED light cycle ++; // Menetapkan kitaran cahaya ke satu petunjuk pada satu masa jika (LEDaddress == NUM_LEDS) {LEDaddress = 0; } kelewatan (getTime (kesukaran)); buttonState = digitalRead (buttonPin); jika (buttonState == TINGGI) {Bermain = salah; CycleEnded = benar; }}} // Parameter Tahap int getTime (int diff) // Mengembalikan kelewatan masa untuk pergerakan dipimpin berdasarkan kesukaran {int timeValue = 0; suis (diff) {case MUDAH: timeValue = 100; rehat; kes MEDIUM: timeValue = 80; rehat; kes HARD: timeValue = 60; rehat; kes ON_SPEED: timeValue = 40; rehat; kes SONIC_SPEED: timeValue = 30; rehat; kes ROCKET_SPEED: timeValue = 20; rehat; kes LIGHT_SPEED: timeValue = 13; rehat; kes MISSION_IMPOSSIBLE: timeValue = 7; } return timeValue; // Pulangkan jumlah kelewatan} // Kesukaran menang meningkatkan parameter batal kenaikan Kesukaran () {if (kesukaran! = MISSION_IMPOSSIBLE && wonThisRound) {kesukaran ++; }} // Lost LED Show flash void () {fill_solid (leds, NUM_LEDS, CRGB:: Red); FastLED.show (); kelewatan (500); fill_solid (led, NUM_LEDS, CRGB:: Hitam); FastLED.show (); kelewatan (500); } // Menang LED Show void fadeall () {untuk (int i = 0; i <NUM_LEDS; i ++) {leds .nscale8 (250); }} tiang kosong () {static uint8_t hue = 0; Cetakan bersiri ("x"); // Luncurkan pertama led ke satu arah untuk (int i = 0; i = 0; i--) {// Tetapkan led ke led merah = CHSV (rona ++, 255, 255); // Tunjukkan leds FastLED.show (); // sekarang setelah kita menunjukkan led, tetapkan semula led ke hitam // leds = CRGB:: Black; fadeall (); // Tunggu sebentar sebelum kita berpusing dan lakukan lagi kelewatan (10); }}
Langkah 3: Pasang di Fixture
Saya tidak akan memperincikan bahagian ini. Terdapat seribu cara yang berbeza untuk menyelesaikan bahagian ini dan saya fikir anda harus kreatif untuk membuatnya kelihatan seperti yang anda suka. Oleh itu, jam itu cukup mudah digunakan untuk memasang LED kerana ia mempunyai petunjuk kecil yang dapat saya gunakan sebagai tanda gerudi. Juga, penutup kaca juga membolehkan saya menggunakannya sebagai meja.
Velcro juga berguna untuk mengamankan lekapan LED ke lekapan perumahan elektronik. Saya juga menggunakan velcro di Arduino. Ini menjadikannya sangat senang untuk menarik Arduino keluar sekiranya saya ingin mengubah kodnya.
Disyorkan:
Permainan Arduino Cyclone: 5 Langkah (dengan Gambar)
Arduino Cyclone Game: Saya tidak pernah bermain permainan siklon arcade sebenar tetapi saya suka idea untuk bermain dengan masa reaksi kami. Saya merancang permainan miniatur. Ini terdiri dari 32 LED yang membentuk bulatan, LED menyala satu per satu sebagai pengejar yang dipimpin. Tujuannya adalah untuk menekan butto
Permainan Dinosaur Hack Permainan Google Chrome: 9 Langkah
Permainan Dinosaur Hack Google Chrome Games: chrome t-rex run adalah permainan yang sangat menyeronokkan. Di sini kita akan menjadikannya lebih menghiburkan dengan menggunakan Arduino. Permainan dino ini tidak akan muncul di laman sambungan internet. Anda juga boleh melakukannya dengan menggunakan raspberry pi di sini kita membandingkan kedua papan secara terperinci Arduino
Permainan Arked Bola Keranjang Pintar Dengan Skor Menghitung Skor Menggunakan Evive- Platform Tertanam Arduino: 13 Langkah
Permainan Arked Bola Keranjang Pintar Dengan Skor Menghitung Skor Menggunakan Platform Tertanam Evive- Arduino: Dari semua permainan di luar sana, yang paling menghiburkan adalah permainan arked. Oleh itu, kami berfikir mengapa tidak menjadikannya sendiri di rumah! Dan inilah kami, permainan DIY paling menghiburkan yang pernah anda mainkan hingga sekarang - Permainan Bola Keranjang Arcade DIY! Bukan hanya
Permainan Arked Perlumbaan Kuda Halloween: 6 Langkah
Permainan Arked Balapan Kuda Halloween: Tahun ini kami memutuskan untuk membuat permainan arked lumba kuda untuk Halloween. Kami diilhamkan oleh versi mekanikal yang disebut Roll-a-Ball Horse Racing. Tujuan kami adalah untuk membuat permainan dengan kawalan lurus ke depan untuk menarik pelbagai pemain. Berdasarkan o
20 Jam $ 20 Arked Meja Atas Meja Dengan Beratus-ratus Permainan Dibangunkan: 7 Langkah (dengan Gambar)
20 Jam $ 20 Aras Atas Meja Dibangunkan Dengan Beratus-ratus Permainan Dibangunkan: Saya ingin membuat sesuatu seperti ini untuk sementara waktu tetapi tidak tergesa-gesa dengan banyak projek lain yang selalu dilakukan. Oleh kerana saya tidak terburu-buru, saya hanya menunggu sehingga saya mengumpulkan semua komponen yang diperlukan untuk membina dengan harga yang murah. Ini