Semuanya dimulai dengan permainan kecil dari zaman kegelapan yang disebut "Mario", sejak menjadi seorang pria kecil yang melompat di atas bebek untuk menyelamatkan putri saya hingga menjadi Pangeran tampan maskulin yang berkeliaran di Persia (Prince of Persia) melawan kegelapan untuk menyelamatkan dunia saya. Saya telah menjadi penggemar berat bermain video game dan saya tumbuh besar memainkannya. Tapi terkadang mereka bosan dan saya merasa kurang terlibat di dalamnya. Saat ini, konsol game yang canggih memungkinkan game virtual dan membantu kami merasakan game tersebut jauh lebih baik daripada yang dapat dilakukan keyboard atau mouse.
Menjadi Penggemar Arduino Saya lelah memainkan game terkenal yang disebut "Angry Birds" menggunakan keyboard & mouse dan memutuskan untuk membuat Game Controller saya sendiri menggunakan Sensor Fleksibel dan Potensiometer. Ketika sensor fleksibel ditarik, burung di ketapel juga akan ditarik dan Anda dapat menggunakan potensiometer untuk mengatur arah peluncurannya. Kemudian saat Anda melepaskan sensor fleksibel, burung itu akan diluncurkan. Saya sangat menikmati melakukannya, jadi jika Anda ingin membuat sesuatu yang sangat mirip maka tutorial ini akan sangat membantu. Tutorial ini juga akan membantu dalam Mengontrol Kursor Mouse menggunakan Potensiometer.
Persyaratan Software dan Hardware:
Perangkat lunak:
- IDE Arduino
- Memproses IDE
- Game Angry Birds di Komputer
Perangkat keras:
- Arduino (Versi Apa Pun)
- Potensiometer
- Sensor Fleksibel
- Resistor 47K ohm
- Menghubungkan Kabel
- Papan tempat memotong roti
Konsep Dibalik:
The Arduino Dewan membaca nilai dari potensiometer dan Flex Senor dan mengirimkan mereka ke Laptop / PC melalui USB port COM melalui yang normal Serial.write () fungsi. Kami kemudian membaca informasi ini menggunakan Memproses dan mengontrol kursor mouse menggunakan kelas Robot di Java yang didukung oleh pemrosesan IDE. Kami telah memprogram IDE pemrosesan sedemikian rupa sehingga ketika sensor Flex ditarik, klik mouse akan dibuat dan berdasarkan seberapa banyak ia ditarik, penunjuk mouse akan bergerak ke arah X. Kemudian berdasarkan nilai dari potensiometer kita akan menggerakkan kursor mouse ke arah Y, dengan cara ini kita dapat mengatur arah peluncuran burung.
Diagram Sirkuit:
Sirkuit untuk memainkan Angry Bird menggunakan Sensor Flex dan Potensiometer sangatlah mudah.
Kami telah menghubungkan potensiometer dan sensor fleksibel ke input Analog (A0, A1) dari Arduino. Output dari sensor Flex juga ditarik ke bawah menggunakan resistor pull down 47K.
Anda dapat langsung menghubungkannya di papan tempat memotong roti atau menyoldernya ke papan Perf dan memasangnya di sarung tangan atau sesuatu untuk membuatnya lebih kreatif. Saya hanya menggunakan papan tempat memotong roti untuk melakukan koneksi seperti yang ditunjukkan di bawah ini:
Program Arduino:
Kode Arduino lengkap diberikan di akhir tutorial. Beberapa baris penting dijelaskan di bawah ini.
Kami menginisialisasi program untuk bekerja dengan 9600 baud rate dan mulai membaca nilai dari sensor Flex dan Potensiometer. Seperti yang kita ketahui, fungsi serial.write () hanya dapat mengirim satu byte data dalam satu waktu. Karena Satu byte adalah 8 bit dan 2 ^ 8 = 256. Kita akan dapat mengirim nilai dari 0 sampai 256. Jadi kita harus mengkompres nilai keluaran sensor Flex dan Keluaran Potensiometer menjadi 0 sampai 256.
Untuk melakukan itu kami menggunakan fungsi map () di Arduino. Semua nilai dari flex sensor diubah dari 5 menjadi 100, jadi ketika kita membengkokkan sensornya akan bertambah dari 5 dan ketika dilepaskan akan kembali ke 5. Untuk menyebutkan nilai klik mouse 1 dan 0 digunakan. Ketika 1 dikirim mouse ditekan dan ketika 0 dikirim mouse dilepaskan.
if (FlexValue> = 65 && FlexValue <= 120) // sensor fleksibel saya bervariasi dari 65 hingga 120, Anda mungkin berbeda {FlexValue = map (FlexValue, 120,65,0,100); // berdasarkan pembengkokan, ubah ke 0 hingga 100 jika (FlexValue> = 5) // 1 dan 0 digunakan untuk klik mouse jadi mulailah dari 5 {Mclick = true; Serial.write (1); // 1 dikirim untuk membuat klik kiri mouse Serial.write (FlexValue); // Nilai flex adalah jarak untuk menggerakkan mouse ke arah X} else {Mclick = false; Serial.write (0);}}
Demikian pula nilai dari potensiometer diubah dari 101 menjadi 200 sing fungsi map () dan dikirim ke port COM Laptop menuntut fungsi Serial.write () seperti yang ditunjukkan di bawah ini.
if (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // Berbasis pada gilirannya, ubah menjadi 101 menjadi 201 Serial.write (potValue); // Nilai pot adalah jarak untuk menggerakkan mouse ke arah Y}
Sisa program dijelaskan menggunakan komentar.
Kode Pengolahan:
Pemrosesan adalah aplikasi pengembangan Sumber Terbuka dan dapat dengan mudah diunduh dan digunakan untuk mengembangkan proyek menarik menggunakan Arduino atau Mikrokontroler lainnya. Kami telah melakukan beberapa proyek menggunakan Pemrosesan dan Anda dapat memeriksanya dengan mengklik tautan di bawah.
- Radio FM DIY Menggunakan Pemrosesan
- Kontrol Virtual Reality / Gesture menggunakan Arduino
- Ruang Obrolan Pribadi menggunakan Arduino.
- Sistem Radar Arduino menggunakan Processing APP dan Ultrasonic Sensor
- Deteksi Wajah dan Pelacakan Real Time menggunakan Arduino
- Speedometer DIY menggunakan Arduino dan Pemrosesan
- Game Ping Pong menggunakan Arduino Accelerometer
- Robot Biped Menggunakan Arduino
- Kamera Pencitraan Termal Arduino DIY
Dalam proyek ini kami telah menggunakan IDE pemrosesan untuk membaca nilai port COM dan mengontrol penunjuk mouse berdasarkan nilai yang diterima melalui port COM. The Kode Pengolahan lengkap untuk Angry Bird Kontroler Game ini dapat didownload dari link di bawah ini:
- Memproses Kode untuk Pengontrol Game Angry Bird ini (Klik kanan dan 'Simpan tautan sebagai')
Program Arduino dapat ditemukan di akhir tutorial ini. Kode Pemrosesan telah dimodifikasi agar sesuai dengan tujuan kita dari kode yang diberikan oleh yoggy di halaman GitHub miliknya.
Data yang berasal dari port COM harus dibaca dalam baud rate yang sama dengan yang dikirim dari Arduino. Periksa juga port COM mana yang terhubung dengan Arduino Anda dengan menggunakan pengelola perangkat. Arduino saya terhubung ke COM3 dan itu adalah Port ke 0 di komputer saya dan baud rate di Arduino adalah 9600 jadi kodenya adalah sebagai berikut
port = New Serial (ini, Serial.list (), 9600);
Setelah kami mulai membaca nilai, kami membedakannya dengan mengenalinya berdasarkan nilainya pada cara kami mengirim dari Arduino. Nilainya dipetakan lagi dari 0 hingga 100 sehingga kita dapat mengontrol mouse berdasarkan nilai tersebut.
if (port.available ()> 0) {data = port.read (); println (data); // Membaca data dari COM port dan menyimpannya di data} if (data> = 101 && data <= 201) // Jika nilai jika 101 hingga 201 maka harus dari Potensiometer {Turn = int (map (data, 101.201,0.100)); // Gunakan nilai tersebut untuk memutar catapullt} if (data> = 5 && data <= 100) // Jika nilai jika dari 5 menjadi 100 maka harus dari Flex Sensor {Pull = int (map (data, 5,100, 0,100));} // Gunakan nilai tersebut untuk menarik ketapel if (data == 1) click = true; // Gunakan nilai tersebut untuk menekan tombol mouse if (data == 0) click = false; // Gunakan nilai itu untuk melepaskan tombol mouse
Setelah kami mengkategorikan data, kami kemudian dapat mengontrol mouse menggunakan Robot Java Class in Processing. Perintah robot.mouseMove (crntX-Pull, crntY + Turn); dapat digunakan untuk menggerakkan mouse ke posisi yang diinginkan dan garis robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); dan robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); dapat digunakan untuk menekan atau melepaskan tombol mouse.
if (click == false) // ketika Flex Sesnor tidak ditarik {crntX = (int) p.getX (); crntY = (int) p.getY (); jika (Tarik> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Lepaskan tombol mouse} if (klik == true) // saat Flex Sesnor ditarik {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Tekan tombol mouse robot.mouseMove (crntX-Pull, crntY + Turn); // Gerakkan mouse berdasarkan nilai Flex dan POT}}
IDE pemrosesan saat diluncurkan juga akan menampilkan Kotak dialog kecil tempat Anda dapat menemukan nilai Tarik, Putar, dan status Klik Mouse seperti yang ditunjukkan di bawah ini
Detail ini dapat digunakan untuk men-debug Program atau mengoreksi data yang diperlukan.
Kerja:
Untuk membuat Proyek Angry Bird ini bekerja menggunakan kode yang disediakan, rakit perangkat keras Anda sesuai dengan diagram rangkaian dan unggah Kode Arduino yang diberikan. Kemudian Catat port COM mana yang terhubung dengan Arduino Anda dan buat perubahan yang diperlukan dalam kode Pemrosesan dan luncurkan sketsa pemrosesan.
Sekarang, cukup luncurkan permainan angry bird dan letakkan kursor di dekat ketapel dan tarik sensor fleksibel untuk menarik burung dan atur arah menggunakan potensiometer. Setelah arah diatur, lepaskan sensor Flex
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Burungmu akan terlempar ke udara dan BOOMM !! Di atas babi. Pekerjaan lengkap dapat ditemukan di Video yang diberikan di bawah ini.
Semoga Anda menikmati proyek ini dan dapat membangun sesuatu yang serupa. Jika Anda ragu, Anda dapat menghubungi saya di bagian komentar atau memposting pertanyaan Anda di forum untuk pertanyaan teknis.
Sekarang, waktunya untuk menabrak piggy box itu dan mendapatkan kembali telur burung kita !!!!