Tentang proyek ini
Saya selalu menikmati membangun dan menciptakan sesuatu, jadi saya memutuskan untuk membuat props dan replika dari objek yang ditemukan dalam film dan video game. Membawa objek virtual menjadi kenyataan, lalu berbagi teknik saya dengan mereka yang memiliki minat yang sama.
Kreasi terbaru dan terhebat saya adalah Kang Tao, senjata pintar yang ditampilkan dalam video game mendatang Cyberpunk 2077 . Untuk membuat objek yang sedemikian kompleks, printer 3D digunakan untuk mencapai estetika dan penyesuaian mekanis bagian-bagiannya.
Objek statis akan terlalu mudah, saya ingin tantangan. Jadi saya mendesainnya sebagai Nerf Blaster yang fungsional.
Untuk mencapai fungsi ini, diperlukan kontrol solenoid dan ESC untuk motor brushless. Relay dan waktu tunda dll akan terlalu rumit dan Arduino adalah solusi yang lebih praktis.
Tulisan ini akan difokuskan pada aspek sirkuit Arduino dan listrik dari proyek ini (karena ini adalah situs Arduino). Saya memberi label ini 'mudah' karena bagian Arduino cukup sederhana. Desain mekanis dan pencetakan 3D sudah canggih. Jika Anda ingin mengontrol Brushless ESC, Brushless Motors, dan Solenoid dengan Arduino untuk Nerf Blasters, panduan ini cocok untuk Anda!
Desain CAD, Pencetakan 3D, dll dijelaskan di sini:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/
atau di sini:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/
Tutorial pembuatan video di sini:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber
Skema (lihat bagian skema) digambar untuk mengilustrasikan bagaimana semuanya terhubung. Arduino Nano digunakan karena ukurannya yang kecil. Ini harus bekerja dengan Uno dan yang lainnya juga.
Lihat skema untuk terminologi di bawah ini, MS1, C2, dll.
Rujuk ke Kode bagian pada penjelasan dari bagaimana yang kode berfungsi.
Pemicu dengan Roda Gila &Solenoid
Cara kerja kode, adalah ketika MS2 (pemicu microswitch sekunder) ditahan, motor brushless berputar.
Saat MS1 (pemicu microswitch utama) ditekan atau ditahan, sinyal dikirim ke gerbang MOSFET untuk menyalakan Solenoid (S ) berkali-kali. Solenoid mendorong panah Nerf keluar dari mag dan masuk ke roda gila (M1 &M2 ) yang kemudian mempercepat anak panah keluar dari laras.
Namun, MS1 hanya aktif saat MS2 diadakan. Ini membantu mencegah kemacetan jika anak panah didorong ke roda gila yang tidak berputar. Dalam kode (lihat bagian kode), di situlah '&&' digunakan.
Daya yang disuplai ke motor brushless dan solenoid tidak mengalir melalui microswitch. Ini berarti Anda tidak memerlukan microswitch berperingkat tinggi.
Motor Tanpa Kuas
Saya tidak akan menjelaskan bagaimana brushless berbeda dari motor brushed di sini, Anda dapat mencari beberapa penjelasan yang bagus.
Ada inrunner dan lebih cepat motor tanpa sikat. Anda menginginkan seorang lebih cepat motor karena bentuknya lebih rata sehingga Anda tidak memiliki kaleng jelek yang mencuat di sisi blaster Nerf Anda. Motor outrunner juga memiliki bagian luar yang dapat berputar dengan poros. Ini memudahkan roda gila cetak 3D untuk melewati motor.
Dapatkan motor dengan lubang pemasangan belakang .
Tegangan motor harus menangani setidaknya 12,6V (lipo 3 detik).
Arus motor tidak boleh melebihi rating arus Brushless ESC.
Daya motor harus>60W. Proyek ini menggunakan tegangan suplai 12,6V x penarikan motor 7A terukur =~80W masing-masing.
RPM motor brushless harus ~25k dan ditentukan oleh peringkat kV x Tegangan. Proyek ini menggunakan motor 2600kV @ 12.6V. Oleh karena itu 2600 x 12,6 =~32, 760RPM. Saya hanya menjalankan motor dengan kecepatan setengah dan anak panah terbang sejauh 25m / 82 kaki!
ESC tanpa sikat
Ini pada dasarnya mengontrol kekuatan motor brushless.
Motor tanpa sikat tidak berfungsi dengan ESC yang disikat, jadilah tanpa sikat.
Anda membutuhkan satu ESC per motor. Jika tidak, EMF belakang dari dua motor yang terhubung ke satu ESC akan mengacaukan waktu ESC dan merusak ESC dan/atau motor tersebut.
Nilai arus ESC harus lebih tinggi dari arus tarikan motor. Motor dalam hal ini diukur pada 7A masing-masing. Rekomendasikan ESC adalah 20A atau lebih tinggi.
Peringkat tegangan ESC harus setidaknya 12,6V (3s Lipo).
ESC tidak membutuhkan BEC bawaan. Anda dapat menggunakan ESC 'OPTO'. Jika Anda memiliki ESC dengan BEC, sambungkan kabel ground dan sinyal ke Arduino seperti yang ditunjukkan pada skema. JANGAN sambungkan ESC Kabel Merah 5V untuk apa saja. (Kecuali Anda memiliki tujuan khusus untuk itu dan tahu apa yang Anda lakukan).
Baterai
Satu baterai untuk memberi daya segalanya. Saya sarankan menggunakan konektor XT60.
Tegangannya adalah Baterai Lipo 3S 12,6V.
Kapasitas minimum yang disarankan adalah 1300mAH.
Nilai Pengosongan Arus baterai harus cukup untuk penarikan daya dari semua beban. Dalam proyek ini, arus beban adalah ~25A.
Laju pengosongan baterai maksimum dihitung dengan Laju Pengosongan (25C) x Kapasitas dalam Ah (1, 300mAh =1,3Ah).
Oleh karena itu 25 x 1,3 =32A tingkat debit maksimum untuk baterai. Anda seharusnya dapat menemukan angka-angka ini dalam spesifikasi baterai.
MOSFET
Menghidupkan Solenoid 12V / 8A langsung dari Arduino akan menyebabkan asap ajaib (Arduino mati). Larutan? MOSFET.
MOSFET daya digunakan sebagai sakelar hidup / mati untuk Solenoid. Ini pada dasarnya mengganggu tanah yang memberi daya pada Solenoid. Ini dikenal sebagai MOSFET N-Channel. Pastikan Anda mendapatkan N-Channel.
MOSFET tahu kapan harus hidup dan mati karena sinyal yang dikirim ke pin gerbang MOSFET dari pin keluaran Arduino (D4 pada kasus ini). Arduino mengeluarkan 5V, dan gerbang harus sepenuhnya menyala pada 5V. Agar ini berfungsi, perlu MOSFET Tingkat Logika.
Penarikan arus dari Solenoid diberi peringkat 8A. Pastikan MOSFET memiliki rating arus maks yang lebih tinggi. Proyek ini menggunakan MOSFET dengan nilai maksimum 30A.
Tegangan meskipun MOSFET adalah 12.6V untuk menyalakan solenoida. MOSFET ini memiliki rating maks 60V yang merupakan ruang kepala yang cukup.
Suhu MOSFET kurang dari 35 ° C dalam kasus ini. Ini dicapai karena MOSFET diberi peringkat untuk 30A, meskipun hanya ada ~8A beban yang ditarik melaluinya. Alasan lainnya adalah beban (Solenoid) hanya dihidupkan sesaat sebelum dimatikan, bukan dihidupkan terus-menerus. Pendingin tidak diperlukan dalam kasus ini.
Solenoid
Ini mendorong anak panah ke roda gila. Yang Anda inginkan hanyalah Solenoid berperingkat 12V dengan panjang langkah 35mm. Pukulan yang lebih pendek tidak akan mendorong panah Nerf tipe panjang penuh cukup jauh.
Tingkatkan pegasnya menjadi kawat berdiameter 0,9 mm, panjang 14 mmOD &40 mm untuk mencegah kemacetan.
Karena Solenoid dinyalakan sesaat, bukan terus-menerus, Solenoid hanya akan sedikit hangat ~40°C dan karenanya tidak memerlukan pendinginan.
Solenoid ini relatif murah dan generik. Mereka dapat ditemukan di Ebay, Aliexpress, dll.
Sakelar Pengaman
SW sakelar pengaman hanyalah sakelar penggeser 2 posisi. Ini memiliki 3 kontak, meskipun hanya 2 yang digunakan. Matikan Arduino saat keselamatan aktif, mencegah flywheel &solenoid aktif.
Sirkuit Perlindungan
Bagian ini menjelaskan cara mencegah penggorengan elektronik Anda!
C1 33μF (disarankan 100μF) &C2 100nF (0,1µF) mengurangi fluktuasi tegangan ke input daya Arduino.
Perhatian:C1 sensitif terhadap polaritas, sisi bergaris negatif, lainnya itu pergi bang!
H1 mencegah tegangan balik ke Arduino VIN. Perhatikan polaritasnya.
H2 adalah dioda fly-back / freewheeling. Ini mencegah solenoid (atau induktor lainnya) dari menciptakan kembali EMF. EMF kembali ini dapat merusak MOSFET. Perhatikan polaritasnya.
R1 &R2 adalah resistor pull-up 4.7kΩ untuk MS1 &MS2. Ini mencegah tegangan mengambang di microswitch.
R3 adalah resistor pull-down 10kΩ untuk mencegah tegangan mengambang di gerbang MOSFET.
R4 adalah 150rbΩ untuk opsional LED. LED saya adalah 2 seri pada masing-masing 2.4V / 50mA. Nilai resistor Anda mungkin berbeda. Lampu kilat LED ini menyala dan mati sinkron dengan solenoida untuk meniru lampu kilat moncong!
Penjelasan video &uji penembakan di bawah ini!
Itu meringkas panduan ini, jika ada pertanyaan, tinggalkan komentar di bawah :)
Download File Jadi Bisa Cetak Sendiri!
PERBARUI:Ini tautan ke file Thingiverse, selamat menikmati!
https://www.thingiverse.com/thing:3984125
Kode
- Nerf Blaster Brushless Motor &Solenoid Arduino Code - Clark3DPR
Nerf Blaster Brushless Motor &Solenoid Arduino Code - Clark3DPRArduino
1. Ketika Arduino dihidupkan melalui sakelar pengaman, Arduino menjalankan urutan mempersenjatai untuk ESC tanpa sikat. ESC saya membutuhkan waktu 3,7 detik (3700 dalam kode). Anda mungkin harus meningkatkan nilai ini hingga 10.000 (10 detik) tergantung pada ESC Anda sendiri untuk membuatnya keluar dari mode aman.
2. Tahan microswitch sekunder untuk memutar roda gila, lalu tekan atau tahan microswitch primer untuk menyalakan.
2. Ubah throttle.write(92) untuk menambah/mengurangi kecepatan idling motor atau mematikannya. Secara default motor akan berputar pada kecepatan rendah untuk mengurangi waktu putaran. (Nilai tergantung pada motor Anda / ESC)
Ubah throttle.write(97) untuk mengubah kecepatan tertinggi dan kecepatan dart motor. (Nilai tergantung pada motor Anda / ESC)
Ubah delay(90) dan delay(100) untuk menambah/mengurangi fire rate dari solenoid.
4. Saat Microswitch dilepaskan, sinyal ESC PWM untuk flywheels &sinyal ke gerbang MOSET agar solenoid berhenti berputar/aktif.
5. Saat ESC kehilangan sinyal dari Arduino (saat sakelar pengaman aktif dan Arduino dimatikan), ESC kembali ke mode aman dan mematikan motor.const int buttonPinF =2; // Nomor pin microswitch Rev Roda Gilaconst int buttonPinS =5; // Nomor pin microswitch solenoidint buttonStateF =0; // Variabel untuk membaca Flywheel Rev microswitch statusint buttonStateS =0; // Variabel untuk membaca status microswitch Solenoid in solenoidPin =4; // Nomor pin Solenoid MOSFET Gate#include Throttle servo;int pos =0;int pin =3; // setup pinvoid sinyal ESC() { pinMode(buttonPinF, INPUT); // Inisialisasi pin microswitch Flywheel sebagai input pinMode(buttonPinS, INPUT); // Inisialisasi pin microswitch Solenoid sebagai input throttle.attach(pin); pinMode(solenoidPin, OUTPUT); // Menetapkan pin Gerbang MOSFET Solenoid sebagai output // Urutan Persenjataan ESC untuk (pos =90; pos <=91; pos +=1) { throttle.write(pos); penundaan (3700); // Tunggu hingga ESC mengaktifkan / Keluar dari mode keamanan// Tingkatkan nilai 3700 ini tergantung pada berapa lama waktu yang dibutuhkan ESC untuk mengaktifkan }}void loop() { buttonStateF =digitalRead(buttonPinF); // Baca status nilai microswitch Flywheel jika (buttonStateF ==HIGH) { // Periksa microswitch ditekan, jika demikian Flywheel buttonState HIGH throttle.write(92); // <(92) =Motor mati / (92) =Kecepatan idle } else { throttle.write(97); // Motor hidup (92) =Kecepatan idle / ~(115) =Kecepatan maks }buttonStateS =digitalRead(buttonPinS); // Baca status nilai microswitch Solenoid if (buttonStateF ==LOW &&buttonStateS ==LOW) { digitalWrite(solenoidPin, HIGH); // Mengaktifkan penundaan Solenoid ON (90); // ON durasi digitalWrite(solenoidPin, LOW); // Matikan Solenoid penundaan(100); // Durasi OFF } else { digitalWrite(solenoidPin, LOW); // Matikan Solenoid }}
Skema
Ini adalah bagaimana semuanya terhubung. Perhatikan polaritas dioda dan kapasitor. Digambar dengan AutoCAD.