R3 dalam skematik - Mencegah tegangan floating pada gate MOSFET.
×
1
Resistor Through Hole, 4.7 kohm
R1 dalam skematik untuk pull-up microswitch MS2.
×
1
Resistor Through Hole, 150 ohm
Untuk LED (nilai tergantung pada pengaturan Anda).
×
1
Resistor 220 ohm
R2 dalam skematik untuk membatasi arus dari gate MOSFET. Ini bisa opsional, meskipun saya belum mencoba tanpa.
×
1
1N4007 – Diod High Voltage, High Current
Diod generik digunakan sebagai flyback diode D2 untuk melindungi MOSFET dari back EMF solenoid. D1 untuk melindungi input daya Arduino dari tegangan balik.
×
2
Kapasitor 100 µF
Mengurangi penurunan tegangan input daya Arduino - sensitif polaritas, pasang dengan cara yang benar atau akan meledak! C1 dalam skematik.
×
1
Kapasitor 100 nF
Ini bertindak sebagai filter kebisingan/interferensi untuk input daya Arduino. C2 dalam skematik.
×
1
Alat dan Mesin yang Diperlukan
3D Printer (generic)
Printer 3D saya adalah Evnovo (Artillery) X1 - 300x300x400mm
Tentang Proyek Ini
Saya selalu menyukai membangun dan menciptakan hal-hal, jadi saya memutuskan untuk menciptakan props dan replika dari objek yang ditemukan dalam film dan video game. Membawa objek virtual ke kenyataan, lalu membagikan teknik saya dengan mereka yang memiliki minat yang sama.
Kreasi terbaru dan terhebat saya adalah Kang Tao, sebuah smart gun yang muncul dalam video game yang akan datang Cyberpunk 2077. Untuk menciptakan objek yang kompleks ini, printer 3D digunakan untuk mencapai estetika dan pemasangan mekanis bagian-bagian.
Objek statis terlalu mudah, saya ingin tantangan. Jadi saya merancangnya sebagai Nerf Blaster fungsional.
Untuk mencapai fungsionalitas ini, diperlukan mengontrol solenoid dan ESC untuk motor brushless. Relay dan penundaan waktu terlalu merepotkan dan jadi Arduino adalah solusi yang lebih praktis.
Tulisan ini akan difokuskan pada aspek Arduino dan rangkaian listrik dari proyek ini (karena ini adalah situs Arduino). Saya menandai ini sebagai 'mudah' karena bagian Arduino cukup sederhana. Desain mekanis dan pencetakan 3D adalah tingkat lanjut. Jika Anda ingin mengontrol ESC Brushless, Motor Brushless dan Solenoid dengan Arduino untuk Nerf Blasters, panduan ini untuk Anda!
Desain CAD, Pencetakan 3D dll. dijelaskan di sini:https://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/
Video tutorial pembuatan di sini: https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber
Skematik (lihat bagian skematik) digambar untuk mengilustrasikan bagaimana semuanya terhubung. Arduino Nano digunakan karena ukurannya yang kecil. Ini juga akan bekerja dengan Uno dan yang lainnya.
Lihat skematik untuk terminologi di bawah ini MS1, C2 dll.
Cara kerja kode adalah ketika MS2 (microswitch pemicu sekunder) ditekan, motor brushless akan berputar cepat.
Ketika MS1 (microswitch pemicu primer) ditekan atau dipegang, sinyal dikirim ke gate MOSFET untuk memicu Solenoid (S) berulang kali. Solenoid mendorong peluru Nerf dari mag ke flywheel (M1 & M2) yang kemudian mempercepat peluru keluar dari barrel.
Namun, MS1 hanya aktif saat MS2 dipegang. Ini membantu mencegah kemacetan jika peluru dorong ke flywheel yang tidak berputar. Dalam kode (lihat bagian kode), itu adalah tempat '&&' digunakan.
Daya yang disuplai ke motor brushless dan solenoid tidak melalui microswitches. Ini berarti Anda tidak perlu microswitches berrating arus tinggi.
Motor Brushless
Saya tidak akan menjelaskan bagaimana motor brushless berbeda dari motor brushed di sini, Anda dapat mencari penjelasan yang bagus.
Ada motor brushless inrunner dan outrunner. Anda ingin motor outrunner karena bentuknya lebih datar jadi tidak ada kotak jelek yang mencolok dari sisi blaster Nerf Anda. Motor outrunner juga memiliki sebagian dari kanan eksternal yang berputar dengan poros. Ini memudahkan pencetakan 3D flywheel untuk diletakan di atas motor.
Dapatkan motor dengan lubang montase di belakang.
Tegangan motor harus menangani setidaknya 12.6V (3s lipo).
Arus motor tidak boleh melebihi rating arus ESC Brushless.
Daya motor harus >60W. Proyek ini menggunakan tegangan suplai 12.6V x arus tiruan motor 7A = ~80W masing-masing.
RPM motor brushless harus ~25k dan ditentukan oleh rating kV x Tegangan. Proyek ini menggunakan motor 2600kV @ 12.6V. Oleh karena itu 2600 x 12.6 = ~32, 760RPM. Saya hanya menjalankan motor pada setengah throttle dan peluru terbang 25m / 82ft!
ESC Brushless
Ini dasarnya mengontrol daya motor brushless.
Motor brushless tidak bekerja dengan ESC brushed, belilah yang brushless.
Anda perlu satu ESC per motor. Jika tidak, back EMF dari dua motor yang terhubung ke satu ESC akan mengganggu waktu ESC dan merusak ESC dan / atau motor.
Rating arus ESC perlu lebih tinggi dari arus tiruan motor. Dalam hal ini motor diukur pada 7A masing-masing. Disarankan ESC 20A atau lebih tinggi.
Rating tegangan ESC perlu setidaknya 12.6V (3s Lipo).
ESC tidak perlu BEC bawaan. Anda dapat menggunakan ESC 'OPTO'. Jika Anda memiliki ESC dengan BEC, hubungkan kabel ground dan sinyal ke Arduino seperti yang ditunjukkan dalam skematik. JANGAN hubungkankabel5VMerahESCke apa pun. (Kecuali Anda memiliki tujuan khusus dan tahu apa yang Anda lakukan).
Baterai
Satu baterai untuk memberi daya pada semuanya. Saya merekomendasikan menggunakan konektor XT60.
Tegangan adalah 12.6V 3S Lipo Battery.
Kapasitas adalah minimal 1300mAH yang disarankan.
Rating discharge arus baterai harus cukup untuk beban daya semua beban. Dalam proyek ini, arus beban adalah ~25A.
Tingkat discharge maksimal baterai dihitung dengan Discharge Rate (25C) x Kapasitas dalam Ah (1, 300mAh = 1.3Ah).
Oleh karena itu 25 x 1.3 = 32A tingkat discharge maksimal untuk baterai. Anda harus dapat menemukan angka ini dalam spesifikasi baterai.
MOSFET
Memberi daya pada Solenoid 12V / 8A langsung dari Arduino akan menyebabkan magic smoke (Arduino mati). Solusi? MOSFET.
Power MOSFET digunakan sebagai saklar on / off untuk Solenoid. Ini dasarnya mengganggu ground yang memberi daya pada Solenoid. Ini dikenal sebagai N-Channel MOSFET. Pastikan Anda mendapatkan yang N-Channel.
MOSFET tahu kapan menyala dan mati karena sinyal yang dikirim ke pin gate MOSFET dari pin output Arduino (D4 dalam hal ini). Arduino mengeluarkan 5V, dan gate harus sepenuhnya menyala pada 5V. Agar ini bekerja, itu harus menjadi Logic Level MOSFET.
Arus tiruan dari Solenoid berrating 8A. Pastikan MOSFET memiliki rating arus maksimal yang lebih tinggi. Proyek ini menggunakan MOSFET berrating 30A maksimal.
Tegangan melalui MOSFET adalah 12.6V untuk memberi daya pada solenoid. MOSFET ini berrating 60V maksimal yang cukup banyak headroom.
Suhu MOSFET kurang dari 35°C dalam kasus ini. Ini tercapai karena MOSFET berrating untuk 30A, meskipun hanya beban ~8A yang ditarik melalui alurnya. Alasan lainnya adalah beban (Solenoid) hanya diberi daya sesaat sebelum dimatikan, bukan diberi daya terus-menerus. Heat sink tidak diperlukan dalam kasus ini.
Solenoid
Ini mendorong peluru ke flywheel. Yang Anda inginkan hanyalah Solenoid berrating 12V dengan panjang stroke 35mm. Stroke yang lebih pendek tidak akan mendorong peluru Nerf panjang penuh cukup jauh.
Tingkatkan pegasnya ke kawat berdiameter 0.9mm, 14mmOD & 40mm panjang untuk mencegah kemacetan.
Karena Solenoid diberi daya sesaat dan bukan terus-menerus, itu hanya akan menjadi sedikit hangat ~40°C dan oleh karena itu tidak memerlukan pendingin.
Solenoid ini relatif murah dan generik. Mereka dapat ditemukan di Ebay, Aliexpress dll.
Saklar Keamanan
SW saklar keamanan hanyalah saklar slider 2 posisi. Ini memiliki 3 kontak, meskipun hanya 2 yang digunakan. Mematikan Arduino ketika keamanan menyala, mencegah flywheel & solenoid dari aktifasi.
Rangkaian Perlindungan
Bagian ini menjelaskan cara mencegah elektronik Anda terbakar!
C1 33μF (100μF disarankan) & C2 100nF (0.1µF) mengurangi fluktuasi tegangan ke input daya Arduino.
Hati-hati: C1 sensitif polaritas, sisi bertopeng adalah negatif,selain ituitumeledak!
D1 mencegah tegangan balik ke Arduino VIN. Perhatikan polaritasnya.
D2 adalah dioda fly-back / freewheeling. Ini mencegah solenoid (atau induktor lain) dari menciptakan back EMF. Back EMF ini bisa saja merusak MOSFET. Perhatikan polaritasnya.
R1 & R2 adalah resistor pull-up 4.7kΩ untuk MS1 & MS2. Ini mencegah tegangan floating pada microswitches.
R3 adalah resistor pull-down 10kΩ untuk mencegah tegangan floating pada gate MOSFET.
R4 adalah 150kΩ untuk opsional LED's. LED saya 2 beruntun pada 2.4V / 50mA masing-masing. Nilai resistor Anda mungkin berbeda. LED ini berkedip mati dan nyala sinkron dengan solenoid untuk mereplikasi muzzle flash!
Video penjelasan & tes tembakan di bawah!
Itulah panduan ini, pertanyaan apa saja tinggalkan komentar di bawah :)
Unduhan File Untuk Anda Cetak Sendiri!
UPDATE: Di sini adalah link ke file Thingiverse, nikmati!
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 menyala melalui saklar keamanan, ia menjalankan urutan arming untuk ESC brushless. ESC saya memerlukan 3.7detik (3700 dalam kode). Anda mungkin harus meningkatkan nilai ini hingga 10000 (10detik) tergantung pada ESC Anda agar keluar dari mode aman.
2. Pegang microswitch sekunder untuk memutar flywheel, lalu tekan atau pegang microswitch primer untuk menembak.
2. Ubah throttle.write(92) untuk meningkatkan/menurunkan kecepatan idle motor atau mematikannya. Secara default motor akan berputar pada kecepatan rendah untuk mengurangi waktu spin up. (Nilai tergantung pada motor / ESC Anda) Ubah throttle.write(97) untuk mengubah kecepatan maksimum motor dan kecepatan peluru. (Nilai tergantung pada motor / ESC Anda)
Ubah delay(90) dan delay(100) untuk meningkatkan/menurunkan laju tembakan solenoid.
4. Ketika Microswitch dilepaskan, sinyal PWM ESC untuk flywheel & sinyal ke gate MOSFET untuk solenoid berhenti berputar/mengaktifkan.
5. Ketika ESC kehilangan sinyal dari Arduino (kadar saklar keamanan menyala dan Arduino mati), ESC kembali ke mode aman dan mematikan motor.
const int buttonPinF = 2; // Flywheel Rev microswitch pin number const int buttonPinS = 5; // Solenoid microswitch pin number int buttonStateF = 0; // Variable for reading the Flywheel Rev microswitch status int buttonStateS = 0; // Variable for reading the Solenoid microswitch status int solenoidPin = 4; // Solenoid MOSFET Gate pin number #include <Servo.h> Servo throttle; int pos = 0; int pin = 3; // ESC signal pin void setup() { pinMode(buttonPinF, INPUT); // Initialize the Flywheel microswitch pin as an input pinMode(buttonPinS, INPUT); // Initialize the Solenoid microswitch pin as an input throttle.attach(pin); pinMode(solenoidPin, OUTPUT); // Sets Solenoid MOSFET Gate pin as an output // ESC Arming Sequence for (pos = 90; pos <= 91; pos += 1) { throttle.write(pos); delay(3700); // Wait for ESC to arm / Exit safety mode // Increase this 3700 value depending on how long it takes for your ESC to arm } } void loop() { buttonStateF = digitalRead(buttonPinF); // Read state of Flywheel microswitch value if (buttonStateF == HIGH) { // Check microswitch pressed, if so Flywheel buttonState is HIGH throttle.write(92); // <(92) = Motor off / (92) = Idle speed } else { throttle.write(97); // Motor on (92) = Idle speed / ~(115) = Max speed } buttonStateS = digitalRead(buttonPinS); // Read state of Solenoid microswitch value if (buttonStateF == LOW && buttonStateS == LOW) { digitalWrite(solenoidPin, HIGH); // Switch Solenoid ON delay(90); // ON duration digitalWrite(solenoidPin, LOW); // Switch Solenoid OFF delay(100); // OFF duration } else { digitalWrite(solenoidPin, LOW); // Switch Solenoid OFF } }
Skematik
Ini adalah cara semua dihubungkan. Perhatikan sangat dekat polaritas dioda dan kapasitor. Digambar dengan AutoCAD.