İçindekiler:

Nerf Kronograf ve Ateş Namlusu Hızı: 7 Adım
Nerf Kronograf ve Ateş Namlusu Hızı: 7 Adım

Video: Nerf Kronograf ve Ateş Namlusu Hızı: 7 Adım

Video: Nerf Kronograf ve Ateş Namlusu Hızı: 7 Adım
Video: Ateş Topu Atan Eldiven 2024, Kasım
Anonim
Image
Image
Nerf Chronograph ve Rate of Fire Barrel
Nerf Chronograph ve Rate of Fire Barrel

Tanıtım

Bir tamirci olarak, tamirciliğinizin sayısal sonuçlarını görmek her zaman çok tatmin edicidir. Birçoğumuz daha önce Nerf silahlarını değiştirdik ve 100 fps'nin üzerinde köpük parçalarını evin her yerine fırlatmayı kim sevmez ki?

Hayatım boyunca birçok Nerf silahını değiştirdikten sonra, babamla ~10 yaşımdayken başlayıp şu ana kadar ben ve oda arkadaşlarım apartmanda birbirimize köpük atmaya devam ederken, her zaman dartların tam olarak ne kadar hızlı uçtuğunu bilmek istemişimdir., ve oda arkadaşlarım Rapid-Strike saniyede kaç dart atıyor. Nerf ve Airsoft için ticari kronograflar mevcuttur, ancak yüksek hassasiyetli olanlar pahalıdır ve kendi başımıza bir tane oluşturmak eğlencelidir. Bir tane satın almak istiyorsanız, Nerf bu projede yer alan ile neredeyse aynı olan (daha iyi endüstriyel tasarıma sahip) bir namlu çıkardı ve burada bulunabilir:

Nerf Modülü Ghost-Ops Chrono Barrel

Nerf versiyonu da pille çalışır ve atılan dartlar için bir sayaç görüntüler. Buradaki Eğitilebilirlik ayrıca bir ekran ve bir sıfırlama düğmesi içerir, ancak hız hesaplaması için dart uzunluğuna dayanır ve kesintileri kullanmaz. Bu projenin ana odak noktası, seri iletişim (bunun gibi basit bir örnek olarak, çevrimiçi olarak bulmak en kolay değildi) ve doğru zamanlama için kesintilerin kullanımı üzerinde olacaktır. Bu, airsoft tabancaları için daha sıkı bir muhafaza ve daha iyi bir montaj sistemi ile aynı nedenlerle kolayca bir airsoft kronografına dönüştürülebilir. Kesintiler kullanılmadan kod daha yavaş ve daha az verimli olabilir, ayrıca milisaniyeler dart hızı için doğru değerler üretemeyeceğinden mikrosaniye cinsinden doğru bir şekilde zamanlamak çok daha zordur.

GitHub'da STL dosyaları bulunsa da kasa tasarımına çok fazla odaklanmayacağım, çünkü herkes gerçek oyun için kesinlikle daha iyi olan Nerf sürümünü satın alabilir, ancak bunun gelecekteki bir sürümü sonuçları azaltabilir.

Temel İlkeler (Öğrenme Çıktıları):

  • Standart bir Nerf Barrel formuna sahiptir
  • Dart için zamanlama kapıları olarak fototransistörlerin kullanılması.
  • Zamanlama için Adruino kesmelerinin kullanımını gösterir
  • Seri İletişim için Arduino ile İşleme Kullanımı

Proje kapsamı:

Bazı kısa genel bakışlarla bu projenin çoğunlukla özelliklerini gözden geçirmeyi planlıyorum ve daha spesifik bilgi için Arduino ve İşleme referanslarını okumanızı tavsiye ediyorum. Bu size nasıl lehim yapılacağını öğretmeyecek, daha çok Arduino ve İşlemeyi nasıl entegre edeceğinizi ve kesintileri nasıl kullanacağınızı öğretecektir. Bu öğrenmenin çoğu, yorum yapılan gerçek kodu okuyarak olacaktır, bu nedenle lütfen körü körüne yüklemeden ve çalıştırmaya çalışmadan önce tüm kodu okuduğunuzdan emin olun.

Benzer Projelere Göre Avantajları:

  • Yüksek hızın doğru ölçümü için Kesintilerin Kullanımı
  • Fototransistörler için kapsamlı hata ayıklama bölümü
  • Atış Hızı (ROF) Hesaplaması, Saniyedeki Tur Sayısını (RPS) verir
  • Tam ekran bilgisayar arayüzü - savaş sırasında kullanışlı değil, ancak sonuçları bir ekran kaydedici ile akışta veya Youtube'da başkalarına göstermek istiyorsanız harika.
  • Yalnızca muhafazanın değiştirilmesiyle Airsoft veya Paintball'a uyarlanma potansiyeli
  • Özel PCB'lere gerek yok (Gelecekteki bir güncellemede iyi olurdu, ancak herkes bunu nispeten düşük maliyetle yapabilir
  • Parçalar ayrıldığında ve bir 3D yazıcı mevcut olduğunda toplam maliyet 10 doların altında - ROF ilavesiyle ticari maliyetle eşit

Adım 1: Gerekli Parçalar ve Araçlar

Gerekli Parçalar ve Araçlar
Gerekli Parçalar ve Araçlar

Bir 3D yazıcınız varsa, bu sizin için harika bir proje olacaktır, çünkü muhafaza için dosyaları sağlayacağım. Muhafazayı güncellemekten çekinmeyin. Elimde herhangi bir LCD yoktu, ancak ikinci bir sürümde umarım bir LCD bulunur ve bir WEMOS D1 veya benzeri WiFi/BT özellikli bir kart ve bir pil kullanır. Bu, mobil ve gerçek zamanlı geri bildirimde veri kaydına izin verecektir - örneğin, tabancada kaç dart kaldı. Biraz lehimleme deneyimi önerilir, kendinizi rahat hissetmiyorsanız, lehimleme için bir Talimatı takip etmenizi ve muhtemelen her ihtimale karşı ekstra elektronik bileşenler satın almanızı öneririm.

Gerekli araçlar:

  1. Havya
  2. Sıcak hava üfleyici/ Isı Tabancası/ Çakmak (Isı büzüşmeli kullanılıyorsa)
  3. Tel Sıyırıcılar
  4. Mini - B USB Kablosu (veya mikro denetleyiciniz için hangi kablo gerekliyse)
  5. Sıcak Tutkal Tabancası veya Benzeri (Tüm bileşenleri 3B baskılı muhafazaya eklemek için bir 3B baskı kalemi kullandım)

Gerekli malzemeler:

  1. 22AWG Solid-core tel örn: Solid Core Wire Set 22AWG
  2. Arduino Nano (veya benzeri, bir klon kullandım) ör: 3 x Arduino Nano (Klon)
  3. Direnç Kiti (2 x 220 ohm, 2 x 220k ohm) 47k gibi daha düşük değerli pulldown dirençlerini başarıyla kullanabilirsiniz, sadece çalışması için bu değere ihtiyacım olduğunu buldum. Sorun giderme kılavuzu, belirli fototransistör ve LED setiniz için açılan direncin doğru değer olup olmadığını nasıl belirleyeceğinizi özetler. Bu nedenle bir set almanızı tavsiye ederim: ör: Direnç Seti
  4. 2 x IR LED örneğin: IR LED ve FotoTransistör Seti
  5. 2 x FotoTransistör
  6. 1 x 3D baskılı Muhafaza - IR Opak Filamentte (Hatchbox Silver Çalıştı ve test ettiğim tek renkti)
  7. Tam Proje Dosyaları burada GitHub'da ve ekteki Zip Dosyasında mevcuttur. STL'ler ayrıca burada Thingiverse'de mevcuttur.

Adım 2: Breadboard Testi

Breadboard Testi
Breadboard Testi
Breadboard Testi
Breadboard Testi

Elektronikler geldiğinde, lehim fototransistörlere ve IR Led'lere hata ayıklama için ~20-30cm'ye gider, bunları ısıyla büzüştürmenizi öneririm. Doğru boyutta ısı büzüşmesine sahip değildim ve bu prototip için elektrik bandı kullanmak zorunda kaldım. Bu, bunları muhafazada test etmek için kullanmanıza izin verecektir. Muhafazayı yazdırdıysanız ve LED'ler ve foto transistörler doğru konumlardaysa, test etmeye başlayabilirsiniz.

Arduino ve Processing'in kurulu olduğundan emin olun.

Başlangıçtaki zip dosyası, muhafazayı yazdırmak için STL dosyalarının yanı sıra tüm koda sahiptir.

İlk başta hata ayıklamak için Arduino'yu kullanın ve yalnızca son testler için işlemeyi kullanın (Arduino'dan seri monitörde her şeyi görebilirsiniz).

Arduino'da kurulu Chronogrpah_Updated.ino ile kronograftan bir Nerf dart atmayı deneyebilirsiniz. Bu işe yararsa, o zaman hepiniz hazırsınız. Bu işe yaramazsa, muhtemelen direnç değerlerini ayarlamanız gerekecektir. Bu bir sonraki adımda tartışılmaktadır.

Kodun nasıl çalıştığı hakkında biraz:

  1. Dart bir geçitten geçtiğinde kodu durdurur ve zamanı mikrosaniye cinsinden belirler
  2. Bununla hız hesaplanır ve süre kaydedilir.
  3. Çekimler arasındaki süre hesaplanır ve saniyedeki turlara dönüştürülür
  4. Kapılar arasındaki süre hesaplanır ve kapı mesafesine bağlı olarak fit/saniyeye dönüştürülür.

    İki kapının kullanılması, aynı zamanlama ile (sensörün ne kadarının kapsanması gerektiği) daha iyi sonuçlar alınmasını sağlar ve histerezisi azaltır

  5. Ateş hızı ve hızı, virgülle ayrılmış seriler yoluyla ya arduino'daki seri monitöre ya da güzel bir kullanıcı arayüzüne izin veren işleme taslağına gönderilir (her şey çalıştığında işleme odaklanın!).

3. Adım: Test Etme ve Hata Ayıklama

İlk testte başarılı olamadıysanız, neyin yanlış gittiğini bulmamız gerekir.

Dosya-> Örnekler->0.1 Temel Bilgiler -> AnalogReadSerial içinde bulunan Arduino örneğini AnalogReadSerial'ı açın

Fototransistörlerin beklediğimiz gibi çalıştığından emin olmak istiyoruz. Dart onları engellemediğinde YÜKSEK ve dart onları engellemediğinde DÜŞÜK okumalarını istiyoruz. Bunun nedeni, dartın sensörü geçtiği zamanı kaydetmek için kodun Kesintileri kullanması ve kullanılan kesme türünün DÜŞÜK olmasıdır; bu, YÜKSEK'ten DÜŞÜK'e giderken tetikleneceği anlamına gelir. Pimin YÜKSEK olduğundan emin olmak için bu pinlerin değerini belirlemek için analog pinleri kullanabiliriz.

Arduino Örneği AnalogReadSerial'ı yükleyin ve dijital pin D2 veya D3'ten A0'a atlayın.

D2 ilk sensör ve D3 ikinci sensör olmalıdır. Okumak ve oradan başlamak için 1'i seçin. Okumalara göre doğru çözümü belirlemek için aşağıdaki kılavuzu izleyin:

Değer 0 veya çok düşük:

Değer başlangıçta 1000 civarında olmalıdır, çok düşük bir değer veya sıfır okuyorsa, LED'lerinizin doğru şekilde bağlandığından ve yanmadığından ve iyi hizalandığından emin olun. 220 ohm yerine 100 ohm'luk bir direnç kullanırken LED'lerimi testte yaktım. Doğru direnç değerini belirlemek için LED'lerin veri sayfasına başvurmak en iyisidir, ancak çoğu LED muhtemelen 220 ohm dirençle çalışacaktır.

LED'ler Çalışıyor ve Değer hala 0 veya çok düşük:

Sorun, aşağı çekme direncinin dirençte çok düşük olması muhtemeldir. 220k dirençle ilgili bir sorun yaşıyorsanız, belki bundan daha yükseğe yükseltebilirsiniz, ancak gürültü alabilirsiniz. Foto transistörünüzün yanmadığından emin olmalısınız.

Değer bir orta aralıktır:

Bu, çoğunlukla yanlış tetikleyiciler olmak üzere çok sayıda soruna neden olur veya hiçbir zaman yüksek bir değere neden olmaz. YÜKSEK bir değerin alındığından emin olmalıyız, bunu yapmak için ~600 değerine ihtiyacımız var ama 900+'nin güvenli olmasını hedefleyelim. Bu eşiğe çok yakın olmak yanlış tetikleyicilere neden olabilir, bu nedenle yanlış pozitiflerden kaçınmak istiyoruz. Bu değeri ayarlamak için aşağı çekme direncini (220K) artırmak istiyoruz. Bunu tasarımımda zaten birkaç kez yaptım ve bir aşağı çekme direnci için çok büyük bir değer olduğu için muhtemelen bunu yapmak zorunda kalmayacaksınız.

Değer çok gürültülü (dış uyaran olmadan çok fazla zıplamak):

Aşağı çekme direnci ile kablolamanızın doğru olduğundan emin olun. Bu doğruysa, direncin değerini artırmanız gerekebilir.

Sensör bloke edilirken bile değer 1000+'de kalıyor:

Aşağı çekme direncinizin doğru şekilde kablolandığından emin olun, aşağı çekme yoksa bu durum meydana gelebilir. Bu hala bir sorunsa, aşağı açılan direnç değerini düşürmeyi deneyin.

Değer yüksek ve ışığı bloke ederken sıfıra gidiyor:

Bu, sensörün çalışması için yeterli olmalıdır, ancak dart yolu geçerken yeterince hızlı bir tepki vermeyebiliriz. Devrede bir miktar kapasitans vardır ve 220K direnç ile voltajın gerekli eşiğin altına düşmesi biraz zaman alabilir. Bu durumda, bu direnci 100K'ya düşürün ve testlerin nasıl çalıştığını görün.

HER İKİ SENSÖR ARASINDAKİ DİRENÇ DEĞİŞİKLİKLERİNİN TUTARLI OLDUĞUNDAN EMİN OLUN

Her iki sensör için aynı devrelerin sağlanması, ölçümlerde en iyi doğruluğu sağlayacak olan dirençler arasında aynı gecikmeyi korur.

Başka sorunlarınız varsa, aşağıya bir yorum bırakın, size yardımcı olmak için elimden geleni yapacağım.

Adım 4: Donanım Montajı

Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı

Bileşenleri burada görüldüğü gibi küçük PCB'ye lehimleyin:

LED'lerin ve FotoTransistörlerin kabloları yaklaşık olarak _ uzunlukta kesilmelidir.

Arduino'yu tahtaya lehimleyin ve dirençleri zeminden erişilebilir pinlere bağlayın. Ek olarak, 4 Pozitif kablonun birbirine kolayca bağlanabilmesini sağlayın. Bununla ilgili sorunlarınız varsa, telin bir parçasını soyabilir ve sonunda tüm uçlara lehimleyebilirsiniz.

Sensörleri muhafazanın karşı tarafına bağladım, ancak kenarları tutarlı tuttuğunuz sürece ikisinden birini kablolamaktan çekinmeyin. Kabloları uzunlamasına kestim ve kabloları en son diyotların her birine lehimledim. Daha fazla yer sağlamak ve bazı kabloların PCB'nin altında, diğerlerinin ise kolay kullanım için üzerinde olması konusunda daha az endişe sağlamak için kablo yönlendirmesini biraz güncelledim. STL'ler, projenin başlangıcındaki tam proje zip dosyasındadır.

Adım 5: Son Montaj

Son montaj
Son montaj
Son montaj
Son montaj
Son montaj
Son montaj

PCB Delikleriniz ana kronograf gövdesindeki deliklerle uyuşmuyorsa, muhtemelen kasadaki elektroniği bir miktar bant veya sıcak tutkalla sabitleyebilirsiniz, kablo ve USB'den sonra sabitlenmesine gerek olmadığını gördüm. yerindeydi, ancak sonuçlarınız değişebilir. 1.75 mm filamentin ısıyla yapıştırma için vida deliklerine bastırılmasına izin verecek şekilde tasarlanmıştır, ancak PCB ayrıca vidalanabilir veya yapıştırılabilir. Buradaki en önemli kısım, USB portunun erişilebilir olmasını sağlamaktır.

Elektronik aksamı elektronik kapakla kapatın, Güncellenen Dosyalar benimkinden daha iyi sığacak ve umarım yerine oturacaktır, ancak kapakları yerinde kaynaklamak için bir 3D baskı kalemi kullandım. Artık biraz dart atmaya hazırsınız!

Gelecekteki bir güncelleme, teller için dahili yönlendirmeyi kullanabilir, ancak bu durumda kapaklar, Nerf estetiğine biraz yol açar.

6. Adım: Kronograf İş Başında

Image
Image
Kronograf İş Başında
Kronograf İş Başında

İşleme Dosyasını Açmak: Chronograph_Intitial_Release, hem FPS hem de RPS (Saniyedeki Tur Sayısı) görüntüleyen kronograf için gerçekten güzel bir kullanıcı arayüzüne izin verecektir. Bağlanmakta sorun yaşıyorsanız Arduino seri monitörünüzü kapattığınızdan emin olun, koddaki seri bağlantı noktasını da değiştirmeniz gerekebilir, ancak bu yorumlanmıştır ve basit olmalıdır. Maksimum değerleri sıfırlamak için bilgisayarınızdaki boşluk çubuğuna basmanız yeterlidir.

Kodun nasıl çalıştığı hakkında biraz bilgi (Kullanıcı arayüzünün fotoğrafı yukarıda görülebilir):

  1. Arduino'dan girdi alır
  2. Maksimum değeri bulmak için bunu geçmiş girdiyle karşılaştırır
  3. Kolay görsel geri bildirim için mevcut ve maksimum değerleri tam ekranda görüntüler
  4. Boşluğa basıldığında maksimum değeri sıfırlar

7. Adım: Gelecek Planları

Bunun için gelecekteki bir güncelleme aşağıdaki iyileştirmeleri içerecektir. İstediğiniz ek özellikler varsa, bana bildirin, bunları uygulamaya çalışacağım.

  1. LCD Ekranı Dahil Et
  2. Pilleri Dahil Et
  3. Nerf Uyumlu Ek noktaları
  4. Güncellenmiş Muhafaza
  5. Demir Manzaraları

Önerilen: