Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Game Roulette LED

Komponen dan persediaan

LED (generik)
6 merah, 2 kuning, 1 hijau
× 9
Sakelar Tombol Tekan SparkFun 12mm
× 1
Arduino Nano R3
× 1
Judul Wanita 8 Posisi 1 Baris (0,1")
× 1
Jack Barrel DC
× 1

Alat dan mesin yang diperlukan

Router CNC

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Video:

Ikhtisar

Sudah lama saya ingin membuat game sederhana namun menyenangkan yang hanya membutuhkan satu orang untuk bermain. Ini sangat sederhana, hanya membutuhkan satu Arduino Nano untuk menjalankannya. Ini adalah roulette LED. Tujuan dari permainan ini adalah untuk berhenti di LED hijau, menghindari yang merah dan kuning. Tampaknya mudah untuk dimainkan dan dibuat, dan memang begitu.

Langkah 1

Pertama, saya mulai dengan mendesain perangkat di Fusion 360. Saya mendesain pelat depan berisi 9 LED, 6 merah, 2 kuning, dan 1 hijau. Saya juga membuat ruang untuk saklar bijaksana untuk pergi di bagian bawah. Saya kemudian menggunakan router Millright CNC saya untuk memotong bagian yang saya rancang.

Langkah 2

Mekanisme permainannya seperti ini:Sebuah lampu akan "bergerak" bolak-balik di antara dua sisi, dan akan berhenti setiap kali ada tombol yang ditekan. Agar segera bereaksi, saya menggunakan interupsi. Setiap LED sesuai dengan indeks dalam larik yang digilir. indeks LED saat ini mendapatkan variabelnya sendiri juga. Ada juga penundaan antara setiap langkah, sesuai dengan kesulitannya. Saat startup, pengguna memilih kesulitan dengan menekan tombol untuk mengurangi penundaan antara setiap perubahan LED. Setelah LED yang benar menyala, pengguna dapat mengklik dua kali untuk menguncinya.

Langkah 3

Saya menggunakan beberapa amplas untuk menambahkan hasil akhir yang bagus dan pembulatan ke potongan kayu lapis. Setelah itu, saya menggunakan lem panas untuk merekatkan potongan-potongan itu.

Kesimpulan

Sekarang, setiap kali saya ingin memainkan permainan sederhana, baik untuk jalan atau hanya untuk menjauh dari layar, perangkat ini memberi saya penangguhan hukuman yang luar biasa. Saya juga dapat membuatnya multipemain dengan membuat setiap LED menjauh dari hijau sejumlah poin tertentu, membuat orang yang mendapatkan jumlah poin paling sedikit pada akhirnya menang.

Kode

  • Kode
KodeC/C++
/*Gunakan pin 2-10Anda bisa mendapatkan perpustakaan TTBOUNCE di sini:https://github.com/TOLDOTECHNIK/TTBOUNCE*/#include int delay_time =0;const uint8_t led_array[9] ={ 4,3,5,6,7,8,9,10,11};const uint8_t button =2;uint8_t kesulitan =0;uint8_t current_led =0;bool dir_flag =true; //true ke kanan, false ke kiribool game_ended =false;bool is_win =false;bool is_finished_selecting =false;TTBOUNCE b =TTBOUNCE(button);void doubleClick(){ Serial.println("double click"); is_finished_selecting =benar; delay_time =lantai(500/(kesulitan+1)); //Rumus:delay (dalam ms) =500 / (kesulitan + 1) Serial.println("kesulitan:" + String(delay_time)); sapu();}void klik(){ Serial.print("Klik | "); digitalWrite(led_array[kesulitan], RENDAH); kesulitan++; if(kesulitan>8){ kesulitan =0; } digitalWrite(led_array[kesulitan], TINGGI); Serial.println("Kesulitan adalah:"+String(Kesulitan)); delay(100);}pengaturan batal(){ Serial.begin(9600); b.attachDoubleClick(doubleClick); b.attachClick(klik); b.setActiveLow(); b.enablePullup(); for(int i=0;i<9;i++){ pinMode(led_array[i], OUTPUT); } menyapu(); detak(); kesulitan =0; digitalWrite(led_array[kesulitan], TINGGI); while(!is_finished_selecting){ b.update(); } b.perbarui(); pinMode(tombol, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(button), button_pressed, FALLING); delay(1000);}void loop(){ if(game_ended==false){ move_led(); tunda(waktu_tunda); } else if(game_ended){ Serial.println(game_ended); Serial.println("Permainan selesai"); if(is_win){ Serial.println("Anda menang"); untuk(int i=0; i<5;i++){ pulsa(); penundaan(100); } } menyapu(); game_ended =salah; is_win =salah; penundaan(2000); }}void move_led(){ digitalWrite(led_array[current_led], RENDAH); if(current_led ==8){ dir_flag =false; arus_led -=1; } else if(current_led ==0){ dir_flag =true; arus_led +=1; } else if(dir_flag){ current_led +=1; } else if(!dir_flag){ current_led -=1; } digitalWrite(led_array[current_led], HIGH);}void pulse(){ for(int i=0; i<9;i++){ digitalWrite(led_array[i], HIGH); } penundaan(100); for(int i=0; i<9;i++){ digitalWrite(led_array[i], RENDAH); }}void menyapu(){ untuk(int i=0; i<9;i++){ digitalWrite(led_array[i], HIGH); penundaan (50); digitalWrite(led_array[i], RENDAH); } untuk(int i=8; i>=0;i--){ digitalWrite(led_array[i], HIGH); penundaan (50); digitalWrite(led_array[i], RENDAH); }}void button_pressed(){ Serial.println("Tombol ditekan pada LED:"+String(current_led)); game_ended =benar; if(current_led==4){ is_win =true; } else if(current_led !=4){ is_win =false; } saat ini_led =0; delay(500);}

Skema


Proses manufaktur

  1. Game Arduino Gyroscope dengan MPU-6050
  2. Arduino Digital Dice
  3. Game Roulette LED 37 DIY
  4. Pengontrol Game Arduino
  5. Game Arduino Nano Tetris di Matriks 16x8 Buatan Sendiri
  6. Arduino dengan Bluetooth untuk Mengontrol LED!
  7. Arduino Quadruped
  8. Game Pixel Chaser
  9. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  10. Matriks LED Tunggal Arduino Flip Clock