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

Game Pixel Chaser

Komponen dan persediaan

Arduino Nano R3
× 1
Adafruit NeoPixel Ring:WS2812 5050 RGB LED
× 1
Ukuran Setengah Papan Tempat Memotong Roti Tanpa Solder
× 1
Resistor 10k ohm
× 1
Sakelar Tombol Tekan SparkFun 12mm
× 1
Kabel jumper (generik)
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Saya dulunya adalah pengembang game, dan salah satu tujuan utama dalam pengembangan game seluler adalah membuat game "satu ketukan" terbaik.

Saya ingin melihat apakah saya dapat membuat game "fisika" sekali klik yang mengagumkan menggunakan pengontrol mikro, tombol, dan beberapa bentuk umpan balik visual.

Memperkenalkan PIXEL CHASER!

Ini adalah build yang cukup mudah, jadi mari kita mulai!

Bagian apa yang kita butuhkan?

Kami membutuhkan yang berikut ini:

  • Arduino Nano (atau pengontrol mikro apa pun dengan 2 pin IO yang tersedia )
  • Ring atau strip "NeoPixel" RGB
  • Tombol sesaat
  • Resistor 10k
  • Breadboard
  • Kabel

Langkah 1

Tempatkan Nano di salah satu ujung papan tempat memotong roti dengan konektor USB di tepinya.

Langkah 2

Tempatkan tombol di ujung lain papan tempat memotong roti, sedekat mungkin dengan tepi sehingga mudah dijangkau.

Langkah 3

Tambahkan resistor 10k di antara salah satu sisi tombol dan rel GND papan tempat memotong roti. Ini akan menjadi status tombol RENDAH default. Kami menggunakan resistor untuk memastikan tidak ada hubungan pendek antara VCC dan GND saat tombol ditekan karena dapat merusak mikrokontroler dan komponen lainnya.

Langkah 4

Hubungkan kabel jumper dari sisi berlawanan tombol ke rel VCC. Tombol akan menjadi tinggi saat ditekan.

Langkah 5

Hubungkan kabel jumper dari sisi GND tombol ke D3 pada Nano. Kami akan membaca D3 untuk menentukan status tombol.

Langkah 6

Pasang strip/cincin RGB ke papan tempat memotong roti. Hubungkan kabel VCC ke power rail VCC, kabel GND ke power rail GND dan kabel DI (Data In) ke D4 pada Nano. Kami akan mengontrol piksel dengan D4.

Langkah 7

Hubungkan jumper kabel dari pin 5V pada Nano ke power rail VCC, lalu sambungkan kabel jumper dari pin GND pada Nano ke power rail GND.

Langkah 8

Unggah kode dan mainkan!

Saya harap Anda menikmati proyek ini!

Anda dapat menemukan lebih banyak proyek menyenangkan seperti ini di saluran YouTube saya.

Ikuti Saya:

http://twitter.com/unexpectedmaker

https://www.facebook.com/unexpectedmaker/

https://www.instagram.com/unexpectedmaker/

https://www.patreon.com/unexpectedmaker

https://www.tindie.com/stores/seonr/

Kode

  • Game Pixel Chaser - Kode Arduino
Game Pixel Chaser - Kode ArduinoArduino
Tambahkan kode ini di Arduino dan ikuti petunjuk pembuatannya!
/*---------------------------------- ----------------------------------------- Permainan Pixel Chaser - v1.0.0 - 24 /03/2019.AUTHOR/LICENSE:Dibuat oleh Seon Rozenblum - [email protected] Hak Cipta 2016:GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.htmlLINKS:Blog:terdugamaker.comYOUTUBE:youtube .com/c/unexpectedmakerDISCLAIMER:Perangkat lunak ini dilengkapi "apa adanya", tanpa dukungan teknis, dan tanpa jaminan, tersurat maupun tersirat, untuk kegunaannya untuk tujuan apa pun.TUJUAN:Pengontrol ini adalah perangkat lunak yang berjalan pada Reflow Master pengontrol oven pemanggang roti yang dibuat oleh Unexpected MakerHISTORY:24/03/2019 v1.0.0 - Rilis awal.CATATAN:Ini adalah pekerjaan yang sedang berlangsung ......------------------ -------------------------------------------------- ------*/// Pustaka ini perlu diinstal dari pengelola perpustakaan#include #include "OneButton.h"// Apa GPIO adalah strip yang terhubung ke#define PIXELPIN 4// Berapa banyak Ne oPiksel dalam strip#define NUMPIXELS 24// Tombol terhubung ke GPIO apa?#define BUTTON_TAP 3// Inisialisasi tombol, dengan tombol default lowOneButtonTAP(BUTTON_TAP, false);// Inisialisasi strip pikselAdafruit_NeoPixel piksel =Adafruit_NeoPixel(NUMPIXEL , PIXELPIN, NEO_GRB + NEO_KHZ800);// Sekelompok variabelint playerIndex =-1;int playerIndexTrail =-1;int playerDirection =1;float nextMove =0;float currentPlayerSpeed ​​=150;unsigned long countdown =0;int musuhIndex =- 1;int coinIndex =-1;int skor =0;int bestScore =0;int lastScore =0;bool gameOver =false;void setup(){ // jadikan tombol pin input pinMode( BUTTON_TAP, INPUT ); // Melampirkan fungsi klik ke tombol buttonTAP.attachClick(singleClick); buttonTAP.attachLongPressStart(klik panjang); // Inisialisasi strip dan atur kecerahannya menjadi 20% piksel.begin(); piksel.setBrightness(20); // mengatur hitungan mundur 2 detik sebelum pemain muncul dan mulai bergerak countdown =milis() + 2000;}void loop(){ // Setiap siklus kita perlu mencentang status tombol buttonTAP.tick(); // Jika game dalam status game over, keluar dari loop lebih awal jika ( gameOver ) kembali; // Atur status tampilan piksel level // Ini mengatur posisi musuh dan posisi koin SetLevel(); // tunggu sebentar sampai pemain bersiap-siap if ( countdown> millis() ) { pixels.show(); kembali; } // Semua tampilan pemain, gerakan dan logika permainan ada di sini DisplayPlayer(); // Ini mengirimkan warna piksel yang diperbarui ke perangkat keras. pixels.show();}// Hapus level, atur semua piksel ke blackvoid ClearLevel(){ for(int i=0;i=0 ) pixels.setPixelColor(playerIndexTrail, pixels.Color(0, 0, 0)); if ( indeks pemain>=0) { piksel.setPixelColor(Indeks pemain, piksel.Warna (0, 100, 0)); playerIndexTrail =playerIndex; } // Pindahkan pemain ke arah saat ini playerIndex +=playerDirection; // Bungkus pemain di tepi strip jika ( playerIndex <0 ) playerIndex =NUMPIXELS - 1; else if ( playerIndex ==NUMPIXELS ) playerIndex =0; piksel.setPixelColor(Indeks pemain, piksel.Warna (0, 255, 0)); // Apakah pemain memukul koin? // Jika demikian, tingkatkan skor, setel ulang koin dan posisi musuh, dan bersihkan level // Loop berikutnya SetLevel() akan mengatur ulang musuh dan koin // Kecepatan pemain juga meningkat untuk setiap pukulan koin jika ( playerIndex ==coinIndex ) { indeks musuh =-1; indeks koin =-1; skor++; currentPlayerSpeed ​​=kendala( currentPlayerSpeed ​​- 10, 50, 150 ); ClearLevel(); piksel.setPixelColor(Indeks pemain, piksel.Warna (0, 255, 0)); } // Apakah pemain memukul musuh? // Tetapkan skor terakhir/terbaik dan panggil game over else if ( playerIndex ==musuhIndex ) { lastScore =skor; jika ( skor>=skor terbaik ) skor terbaik =skor; Tamat(); gameOver =benar; indeks musuh =-1; indeks koin =-1; indeks pemain =-1; } }}// Satu tombol clickvoid singleClick(){ // Tidak ada input sampai pemain terlihat jika ( countdown> millis() ) kembali; // mengganti arah pemain playerDirection =-playerDirection;} // Tombol panjang clickvoid longClick(){ // Beralih game over state // Jika game over, mulai game, jika tidak batalkan game yang sedang berlangsung gameOver =!gameOver; if ( gameOver ) { indeks musuh =-1; indeks koin =-1; indeks pemain =-1; Kecepatan Pemain saat ini =150; ClearLevel(); } else { ClearLevel(); skor =0; Kecepatan Pemain saat ini =150; hitung mundur =mili () + 2000; }}

Proses manufaktur

  1. Game Arduino Gyroscope dengan MPU-6050
  2. Arduino Digital Dice
  3. Game Arduino Pong - Tampilan OLED
  4. Game Roulette LED 37 DIY
  5. Pengontrol Game Arduino
  6. Game Breakout Arduino Touch
  7. Game Arduino Nano Tetris di Matriks 16x8 Buatan Sendiri
  8. Arduino Repulsive Electromagnetic Levitation
  9. Game Dino otomatis menggunakan arduino
  10. Arduino Home Controller Diaktifkan oleh Alexa