Halo semuanya! Sejak kecil, saya suka alam semesta Star Wars. Ketika saya berusia 7 tahun, saya menonton episode 4-6 berkali-kali sehingga saya dapat menceritakan kembali isinya dengan sangat rinci.
Tidak diragukan lagi, tayangan yang paling jelas dari film-film tersebut adalah pertarungan lightsaber. Dua tahun lalu, saya tersandung di Internet pada sebuah artikel pendek tentang memilih lightsaber sebagai hadiah, menjadi tertarik dan mempelajari topik ini secara rinci.
Pada akhir tahun, episode 8 keluar, 4 Mei sudah dekat dan pada malam hari internasional Star Wars, saya memutuskan untuk menulis artikel ini.
Di bawah potongan, saya akan berbagi informasi tentang produsen lightsabers dan berbicara tentang membuat pedang anggaran dengan suara berdasarkan Arduino.
Sekarang di Internet ada banyak produsen komersial lightsabers, yang paling penting menurut saya:
● ● ● Genesis Custom Sabres - Pegangan custom-made yang sangat berkualitas tinggi, harga untuk pedang custom elit dengan suara bervariasi sekitar 1500-3000 USD.
● ● ● Sabre Forge adalah pilihan yang bagus, harga lebih terjangkau, tetapi pedang tidak seotentik dalam Genesis CS. Harga pedang dengan suara sekitar 300 USD.
● ● ● Ultrasabers adalah salah satu toko yang paling manusiawi dalam hal harga. Pedang dengan suara dasar harganya sekitar 160 USD. Anda dapat memesan komponen individual untuk proyek Anda.
● ● ● Toko Sabre Kustom - Situs dengan toko dan desainer untuk membuat pedang Anda.
Ada beberapa produsen lightsaber lain, misalnya,
● ● ● Makoto Tsai , yang membuat pedang paling terang berdasarkan strip LED buatan rumah.
Tetapi bagaimana jika Anda tidak ingin menghabiskan banyak uang, tetapi Anda benar-benar menginginkan lightsaber? Hanya ada satu jalan keluar - untuk mengumpulkan 5.000 rubel dan membuat pedang untuk diri sendiri.
Pada saat dimulainya proyek saya, saya praktis tidak memiliki pengalaman pemrograman, saya tidak memiliki pengetahuan elektronik. Mungkin saya melakukan sesuatu yang tidak dengan cara terbaik, tetapi saya terus belajar dan akan senang dengan saran Anda.
Dalam menggambarkan proses menciptakan pedang, saya akan mencoba menggambarkan semua kesulitan utama.
Jadi mari kita mulai. Berikut adalah daftar semua yang saya gunakan:- Arduino Pro micro 5v ~ 250 rubel pada Ali
- Modul suara WT588D-U ~ 250 rubel pada Ali
- Step-up 3-5V ~ 100 rubel pada Ali
- Speaker Ø28mm, 8ohm, 2W ~ 40 rubel pada Ali
- Accelerometer ADXL335 ~ 200 rubel pada Ali
- N-MOSFET IRF530N x2 ~ 40 rubel di Amperka
- LED Luxeon memberontak 3W ~ 70 rubel pada Ali
- Lensa untuk LED 8 ° ~ 50 rubel pada Ali
- Baterai CR123A x2 3.7V ~ 400 rubel pada Ali
- Baterai Krona 9v untuk daya Arduino
- Dudukan baterai ~ 15 rubel pada Ali
- Tombol anti-perusak ~ 100 rubel pada Ali
- Sakelar sakelar ~ 50 rubel pada Ali
- Tabung polikarbonat putih 1 ”~ 800 rubel di Moskow (ada banyak toko, ada di Google)
- Pipa PVC untuk menangani pembuatan
Anda juga membutuhkan kabel, sekrup untuk memasang pipa polikarbonat di pegangan dan penutup untuk pipa polikarbonat dengan reflektor.
Saya memesan topi dengan reflektor di toko sabre Custom dari $ 7 di sana, pengiriman untuk barang-barang kecil harganya $ 14.
Anda juga perlu mendapatkan suara untuk pedang di suatu tempat, biasanya seperangkat suara on / off, suara operasi (hum), suara ayunan (ayunan), suara tabrakan (bentrokan).
Saya membeli satu set suara di situs web
Saberfont dengan harga $ 7, tetapi saya yakin Anda dapat menemukan suara gratis.
Total komponen keluar sekitar 5.000 rubel jika Anda membeli suara, jika tidak, maka di wilayah 4.000.
Ada dua jenis utama penerangan "bilah" - satu LED kuat di dasar tabung polikarbonat, cahayanya dipantulkan oleh penutup di ujung tabung dan jenis kedua adalah strip LED bersegmen buatan sendiri. Segmen diperlukan untuk menghidupkan pedang dengan lancar, seperti dalam film.
Sebagai contoh, Makoto menggunakan beberapa pita tersegmentasi di pedang yang paling terang.
Saya sarankan menggunakan satu LED yang kuat untuk bangunan pertama, jauh lebih sederhana dan cukup cerah.
Saya ingin mengatakan bahwa pedang pada video terlihat lebih cerah daripada dalam hidup, karena matriks kamera menumpuk cahaya, tidak seperti mata kita. Jangan berharap pedang Anda bersinar seperti di film.
Saya mengusulkan untuk memulai perakitan prototipe dengan pengaturan suara.
Bagian tersulit dalam proyek ini adalah menangani suara, modul WT588D dalam kasus saya ternyata menjadi pilihan ideal, karena Ini menyediakan pemutaran file audio terus menerus, tidak memerlukan flash drive.
Sebelum mengunggah file ke WT, saya harus mengeditnya sedikit, untuk ini Anda dapat menggunakan program
Audacity gratis.
Hal ini diperlukan untuk membuka setiap file secara bergantian, pilih area dengan suara (saya punya beberapa detik keheningan di akhir setiap file), di sudut kiri bawah layar Anda perlu mengatur frekuensi dari 16.000 menjadi 22.000 Khz. Jika frekuensinya lebih dari 22000, WT tidak akan mengizinkan untuk mengunduh file. Ekspor Selanjutnya dipilih - 16 bit.
Untuk mengunduh file ke WT588D, Anda memerlukan
program untuk mengunduh suara dari pabrikan modul - Waytronic (ini hanya berfungsi di Windows, saya menjalankannya di MAC via BootCamp).
Anda perlu menjalankan perangkat lunak dan memilih bahasa Inggris di pengaturan. Ada beberapa mode operasi di WT588D, saya memilih mode One-line, karena Membutuhkan penyolderan minimum, modul berkomunikasi dengan Arduino melalui satu pin.
Bidang kerja dibagi menjadi 3 bagian, di sebelah kiri adalah daftar file yang diunggah ke modul, di tengah adalah daftar playlist, di sebelah kanan adalah daftar file di playlist.
Untuk mengunduh file, klik kanan pada daftar file yang diunduh dan pilih Load - find dan pilih file audio yang diproses dalam Audacity. Ulangi untuk semua file.
Selanjutnya, Anda perlu membuat daftar putar, menambahkan banyak suara berulang dari kebisingan pekerjaan setelah suara inklusi dan suara ayunan / tabrakan. Ini diperlukan agar tidak menulis kode untuk beralih ke noise setelah mengaktifkan / gesekan.
Kami akan memanggil nomor daftar putar nanti dalam sketsa kami. Setelah mengunduh suara dan menyiapkan daftar putar, Anda perlu menghubungkan daya ke WT, menghubungkan speaker, dan menghubungkan pin Data WT ke Arduino. Juga sambungkan tombol untuk menyalakan / mematikan lampu / suara dan LED melalui MOSFET ke Arduino.
Ini diagram koneksi saya:

Saya memberi makan WT dari baterai 3.7V yang terpisah melalui MOSFET, menggunakan peningkatan hingga 5V, dalam hal ini saya mendapatkan volume output maksimum.
Pertama, Anda perlu mendaftarkan semua yang akan digunakan dalam sketsa:
#define WT588D_SDA 8 // WT588D // const int xpin = A0; const int ypin = A1; const int zpin = A2; int oldtime; int newtime; int ADXL = 3; int BUTTON_PIN = 7; // int LED_PIN = 9; //MOSFET int WT_MOSFET = 6; //MOSFET WT588D int i = 0; byte file_count = 1; bool saberon; bool swingsound; void setup() { Serial.begin(9600); pinMode(BUTTON_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); pinMode(ADXL, OUTPUT); pinMode(WT_MOSFET, OUTPUT); pinMode(WT588D_SDA, OUTPUT); digitalWrite(ADXL, LOW); digitalWrite(LED_PIN, LOW); digitalWrite(WT588D_SDA, HIGH); digitalWrite(WT_MOSFET, LOW); saberon = false; swingsound = false; oldtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); // }
Agar WT berfungsi, dalam sketsa Anda perlu mendeklarasikan perintah WT_Send_Command (*), untuk ini, tambahkan kode berikut di akhir sketsa:
void WT588D_Send_Command(byte addr) { digitalWrite(WT588D_SDA, LOW); delay(100); for (int i = 0; i < 9; i++) { digitalWrite(WT588D_SDA, HIGH); if (bitRead(addr, i)) { delayMicroseconds(600); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(200); } else { delayMicroseconds(200); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(600); } } digitalWrite(WT588D_SDA, HIGH); delay(50); }
Langkah selanjutnya adalah menulis kode sehingga ketika tombol ditekan, LED menyala dan daftar putar dimainkan dengan suara menyala. Ketika tombol ditekan lagi, LED dimatikan dan daftar putar dimatikan.
Jika Anda tidak memiliki pengalaman pemrograman, untuk pemahaman kode yang lebih baik, saya sarankan Anda membaca materi berikut:
•
Arduino Jika tutorial•
Arduino Boolean tutorial•
Tutorial Tombol ArduinoIni kode saya untuk mengenali keadaan tombol dan menyalakan / mematikan efek:
if (digitalRead(BUTTON_PIN) == LOW) { if (saberon) { WT588D_Send_Command(* ); delay(700); saberon = false; { analogWrite(LED_PIN, LOW); digitalWrite(WT_MOSFET, LOW); delay(1); } } else { digitalWrite(WT_MOSFET, HIGH); delay(100); WT588D_Send_Command(* ); { analogWrite(LED_PIN, HIGH); delay(1); } saberon = true; } }
Jika semuanya dilakukan dengan benar, Anda harus ketika Anda menekan tombol mendengar suara nyala dan berisik, LED harus menyala. Ketika ditekan lagi, suara dimatikan dan LED harus padam.
Bagian utama sketsa sudah siap, sekarang kita akan menghubungkan accelerometer dan membuat WT memainkan suara ombak.
ADXL335 cukup mudah digunakan, tidak perlu menghubungkan perpustakaan apa pun. Berikut adalah diagram koneksi:
Agar accelerometer berfungsi, kami akan melakukan dua pengukuran dan, berdasarkan perbandingan bacaan, putar suara gelombang.
Saya merekomendasikan menempatkan accelerometer sedekat mungkin dengan ujung gagang.
newtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); delay (100); if (newtime - oldtime >= 75 || newtime - oldtime <= -75) { if (swingsound) { swingsound = false; delay (50); } else { swingsound = true; WT588D_Send_Command(* ); delay (150); } } Serial.print(oldtime); Serial.print("\t"); Serial.print(newtime); Serial.print("\t"); Serial.print(newtime - oldtime); Serial.println(); oldtime = newtime;
Semuanya, prototipe sudah siap. Saatnya membuat pegangan dan memasukkan semua isian ke dalamnya.
Saya membuat pegangan dari pipa PVC, insert untuk pisau dengan diameter 28 mm.
Saya punya masalah dengan pegangannya, akibatnya, versi pertama terlalu kecil, sekarang saya melakukan yang baru.
Dalam pembuatan pegangan PVC Anda hanya dibatasi oleh imajinasi Anda, saya hanya bisa memberikan satu saran - sebelum mengecat, perlakukan permukaan pipa dengan amplas halus, jika tidak cat tidak akan tahan dengan baik.
Ini adalah versi pertama dari pegangan saya, di sampul saya mengebor lubang dan menempatkan speaker, dan bilah dipasang di pipa dengan empat sekrup:
Saya tidak memasukkan efek bentrok di pedangku, mungkin aku akan menyusulnya nanti. Tetapi jika Anda ingin mengaktifkan clash, Anda akan memerlukan sensor getaran atau pengaturan accelerometer untuk mengenali percepatan pendek. Jika seseorang dapat mengkonfigurasi accelerometer, jangan terlalu malas untuk membagikan kode, saya akan memasukkannya dalam sebuah artikel yang menyebut Anda sebagai penulis.
Berikut ini adalah tes pedang kecil di jalan di malam hari:
perbarui:
Saya menyelesaikan pegangan dan bekerja pada sinkronisasi suara, menambahkan suara clash di sini adalah video yang diperbarui:
Saya yakin bahwa Geektimes membaca banyak orang yang sangat berbakat dan terampil, saya meminta Anda untuk membagikan pendapat Anda, memberikan saran. Ada kemungkinan bahwa berkat kolaborasi kami akan dapat menyederhanakan / mengoptimalkan proses lebih banyak lagi.
Pastikan untuk membagikan hasil Anda, sangat menarik untuk melihat apa yang Anda dapatkan!
Terima kasih atas perhatian Anda! Dan semoga kekuatan bersamamu!