Mündəricat:

Nerf Chronograph və Yanğın Barelinin Hızı: 7 Addım
Nerf Chronograph və Yanğın Barelinin Hızı: 7 Addım

Video: Nerf Chronograph və Yanğın Barelinin Hızı: 7 Addım

Video: Nerf Chronograph və Yanğın Barelinin Hızı: 7 Addım
Video: The NERF ELITE 2.0 DOUBLE PUNCH is the BEST EVER. 2024, Noyabr
Anonim
Image
Image
Nerf xronoqrafı və Atəş Növü
Nerf xronoqrafı və Atəş Növü

Giriş

Tinker kimi, işinizin ədədi nəticələrini görmək həmişə çox məmnun edir. Bir çoxumuz Nerf silahlarını əvvəllər dəyişdirmişik və kim köpük parçalarını evə 100 kadrdan çox sürtməyi sevmir?

Həyatım boyunca bir çox Nerf silahını dəyişdirdikdən sonra, atamla birlikdə ~ 10 yaşımdan başlayaraq bu vaxta qədər və otaq yoldaşlarım bir -birlərinə mənzildə köpük vurmağa davam etdikcə, həmişə dartların nə qədər sürətli uçduğunu bilmək istəmişəm. və otaq yoldaşlarım Rapid-Strike saniyədə neçə dart vurur. Nerf və Airsoft üçün kommersiya xronoqrafları mövcuddur, lakin yüksək dəqiqliyə malik olanlar bahalıdır və öz başımıza tikmək əyləncəlidir. Birini almaq istəsəniz, Nerf bu layihədə göstərilənə bənzər bir barel buraxdı (daha yaxşı sənaye dizaynı ilə) və burada tapa bilərsiniz:

Nerf Modul Ghost-Ops Chrono Barrel

Nerf versiyası da batareya ilə işləyir və atılan dartlar üçün sayğac göstərir. Buradakı Təlimatlandırıcıya bir ekran və sıfırlama düyməsi də daxildir, lakin sürət hesablaması üçün dart uzunluğuna güvənir və fasilələrdən istifadə etmədiyi görünür. Bu layihənin əsas diqqəti serial ünsiyyətinə (bu kimi sadə bir nümunə olaraq onlayn tapmaq asan deyildi) və dəqiq vaxt üçün fasilələrin istifadəsinə yönələcək. Bu, çox güman ki, daha sıx bir mühərrik və daha yaxşı hava yastıqlı silahlar üçün daha yaxşı bir montaj sistemi ilə eyni səbəblərə görə asanlıqla airsoft xronoqrafına çevrilə bilər. Kesintilərdən istifadə etmədən kod daha yavaş və daha az səmərəli ola bilər, eyni zamanda milisaniyələrin dart sürəti üçün dəqiq dəyərlər verməyəcəyi üçün mikrosaniyələri dəqiq hesablamaq çox çətindir.

GitHub -da STL faylları olmasına baxmayaraq, korpus dizaynına çox diqqət yetirməyəcəyəm, çünki hər kəs əsl oyun üçün mütləq daha yaxşı olan Nerf versiyasını ala bilər, amma bunun gələcək versiyası nəticələri azalda bilər.

Əsas Prinsiplər (Öyrənmə Nəticələri):

  • Standart Nerf Barrel formasına malikdir
  • Dart üçün zamanlama qapıları olaraq fototransistorların istifadəsi.
  • Zamanlama üçün Adruino fasilələrinin istifadəsini göstərir
  • Serial Əlaqə üçün Arduino ilə İşlənmənin İstifadəsi

Layihənin əhatə dairəsi:

Qısa icmallarla bu layihənin əsas xüsusiyyətlərini araşdırmağı və daha konkret məlumat üçün Arduino və İşləmə üçün istinadları oxumağı məsləhət görürəm. Bu sizə necə lehim etməyi öyrətməyəcək, daha çox Arduino və Processing -in necə birləşdiriləcəyini və fasilələrin istifadəsini öyrədir. Bu öyrənmənin çoxu faktiki olaraq şərh olunan kodu oxumaqla olacaq, buna görə kor -koranə yükləmədən və işə salmağa çalışmadan əvvəl bütün kodu oxuduğunuzdan əmin olun.

Bənzər Layihələrin Faydaları:

  • Yüksək sürətin dəqiq ölçülməsi üçün fasilələrin istifadəsi
  • Fototransistorlar üçün geniş ayıklama bölməsi
  • Atəş Hızı (ROF) Hesablama Çıxış Saniyədə Dövr (RPS)
  • Tam ekranlı kompüter interfeysi - döyüş zamanı faydalı olmur, amma nəticələrini ekran yazıcısı ilə axın və ya Youtube -da başqalarına göstərmək istəyirsinizsə əla olar.
  • Airsoft və ya Paintball üçün yalnız korpus dəyişdirilərək uyğunlaşdırıla bilər
  • Xüsusi PCB -lərə ehtiyac yoxdur (Gələcək bir yeniləmədə yaxşı olardı, amma hər kəs bunu nisbətən aşağı qiymətə edə bilər
  • Parçalar ayrıldıqda və 3D printer mövcud olduqda ümumi dəyəri 10 dollardan aşağıdır - Ticarət dəyəri ilə bərabər, ROF əlavə ilə

Addım 1: Lazım olan hissələr və alətlər

Lazımi hissələr və alətlər
Lazımi hissələr və alətlər

Bir 3D printeriniz varsa, bu sizin üçün əla bir layihə olacaq, çünki qəfəs üçün sənədlər təqdim edəcəyəm. Kassanı yeniləməkdən çekinmeyin. Əlində heç bir LCD yox idi, amma ikinci bir versiyada inşallah bir LCD olacaq və WEMOS D1 və ya bənzər WiFi/BT effektiv lövhə və batareya istifadə edəcək. Bu, məlumatların mobil və real vaxt rejimində daxil edilməsinə imkan verəcək - məsələn, silahda neçə dart qalıb. Bəzi lehimləmə təcrübəsi tövsiyə olunur, əgər özünüzü rahat hiss etmirsinizsə, lehimləmə üçün bir Təlimatı izləməyi və ehtimal ki, əlavə elektron komponentlər almağı məsləhət görürəm.

Lazımi alətlər:

  1. Lehimleme dəmir
  2. İsti hava üfleyici/ İstilik Tabancası/ Çakmak (İstilik büzücü istifadə edilərsə)
  3. Tel çıxarıcılar
  4. Mini - B USB Kabeli (və ya mikro nəzarətçiniz üçün hansı kabel lazımdırsa)
  5. İsti Yapışqan Tabancası və ya bənzəri (bütün komponentləri 3D çap qutusuna bağlamaq üçün 3D çap qələmindən istifadə etdim)

Lazımi materiallar:

  1. 22AWG Qatı nüvəli tel, məsələn: Qatı Nüvəli Tel Seti 22AWG
  2. Arduino Nano (və ya bənzəri, bir klon istifadə etdim) məsələn: 3 x Arduino Nano (Klon)
  3. Rezistor dəsti (2 x 220 ohm, 2 x 220k ohm) 47k kimi aşağı dəyərli aşağı çəkilmə rezistorlarını uğurla istifadə edə bilərsiniz, bu işin işləməsi üçün mənə lazım olduğunu gördüm. Sorun giderme təlimatı, açılan rezistorun xüsusi fototransistorunuz və LED dəstiniz üçün doğru dəyər olub olmadığını necə təyin edəcəyinizi izah edir. Buna görə bir dəst almağı məsləhət görürəm: məsələn: Rezistor dəsti
  4. 2 x IR LED ex: IR LED və PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D çaplı korpus - IR şəffaf olmayan bir filamentdə (Hatchbox Silver işlənmiş və sınadığım yeganə rəng idi)
  7. Tam Layihə Faylları burada GitHub -da və əlavə edilmiş Zip Faylında mövcuddur. STL -lər Thingiverse -də də mövcuddur.

Addım 2: Breadboard Testi

Breadboard Testi
Breadboard Testi
Breadboard Testi
Breadboard Testi

Elektronika gəldikdən sonra, lehim, fototransistorlara və IR LED-lərinə ~ 20-30sm ayıklama aparır, bunları istiliklə kiçiltməyi məsləhət görürəm. Düzgün ölçülü istilik daralma yox idi və bu prototip üçün elektrik lentindən istifadə etmək məcburiyyətində qaldım. Bu, onları korpusda sınaq üçün istifadə etməyinizə imkan verəcəkdir. Kassanı çap etdinizsə və LED və fotoşəkil tranzistorlarını düzgün mövqedə yerləşdirsəniz, sınağa başlaya bilərsiniz.

Arduino və Processing -in quraşdırıldığından əmin olun.

Başlanğıcdakı zip faylı, bütün kodu və qəfəsin çapı üçün STL sənədlərini ehtiva edir.

Əvvəlcə ayıklama üçün Arduino istifadə edin və yalnız son sınaq üçün emaldan istifadə edin (hər şeyi Arduinodan serial monitorda görə bilərsiniz).

Arduino'da quraşdırılmış Chronogrpah_Updated.ino ilə xronoqraf vasitəsilə sadəcə Nerf dart atmağa cəhd edə bilərsiniz. Bu işləyirsə, deməli hər şey hazırdır. Bu işləmirsə, çox güman ki, rezistor dəyərlərini tənzimləməli olacaqsınız. Bu, növbəti addımda müzakirə olunacaq.

Kodun necə işlədiyinə dair bir az:

  1. Bir dart bir qapıdan keçəndə mikrosaniyələrdə vaxtı təyin edən zaman kəsici kodu dayandırır
  2. Sürət bununla hesablanır və vaxt saxlanılır
  3. Atışlar arasındakı vaxt hesablanır və saniyədə dövrə çevrilir
  4. Qapılar arasındakı vaxt hesablanır və qapı məsafəsinə əsasən saniyədə ayağa çevrilir.

    İki qapının istifadəsi eyni vaxtla daha yaxşı nəticələr əldə etməyə imkan verir (sensorun nə qədər hissəsi örtülməlidir) və histerezi azaldır

  5. Atəşin sürəti və sürəti vergüllə ayrılmış serial vasitəsi ilə ya arduinodakı serial monitora, ya da gözəl bir istifadəçi interfeysinə imkan verən emal eskizinə göndərilir (hər şey işlədikdə işlənməyə diqqət!).

Addım 3: Test və Hata Ayıklama

İlk sınaqdan uğur qazanmadınızsa, nəyin səhv olduğunu anlamalıyıq.

Fayl-> Nümunələr-> 0.1 Əsaslar-> AnalogReadSerial-da tapılan Arduino nümunəsi AnalogReadSerial-ı açın.

Fototransistorların gözlədiyimiz kimi işləməsini təmin etmək istəyirik. Dart onları maneə törətmədikdə YÜKSƏK, dart olmadıqda isə LOW oxunmasını istəyirik. Bunun səbəbi, kodun dartın sensordan keçdiyi vaxtı qeyd etmək üçün Kesintilərdən istifadə etməsidir və istifadə olunan kəsilmə növü YÜKSƏLİDİR, yəni YÜKSƏDƏN DÜŞÜK -ə keçərkən tetikleyecek. Pinin yüksək olmasını təmin etmək üçün bu pinlərin dəyərini təyin etmək üçün analoqlardan istifadə edə bilərik.

Arduino Nümunəsi AnalogReadSerial yükləyin və D2 və ya D3 rəqəmsal pinindən A0 -a keçin.

D2 birinci, D3 ikinci sensor olmalıdır. Oxumaq və oradan başlamaq üçün 1 seçin. Oxunuşlara əsaslanaraq düzgün həll yolunu müəyyən etmək üçün aşağıdakı təlimatı izləyin:

Dəyər 0 və ya çox aşağıdır:

Başlanğıcda dəyər təxminən 1000 olmalıdır, çox aşağı bir dəyər və ya sıfır oxuyursa, LED -lərinizin düzgün bir şəkildə bağlandığından və yanmadığından və yaxşı hizalandığından əmin olun. 220 ohm əvəzinə 100 ohm müqavimət istifadə edərkən testlər zamanı LEDlərimi yandırdım. Doğru müqavimət dəyərini təyin etmək üçün LED -lər üçün məlumat cədvəlinə müraciət etmək ən yaxşısıdır, lakin əksər LED -lər 220 ohm rezistorla işləyə bilər.

LEDlər işləyir və dəyər hələ də 0 və ya çox aşağıdır:

Məsələ, çox aşağı müqavimət müqavimətindədir. 220k rezistorla bağlı bir probleminiz varsa, bunu bundan da yüksək artıra bilərsiniz, ancaq səs -küyə səbəb ola bilərsiniz. Foto transistorunuzun yanmadığından əmin olmalısınız.

Dəyər orta diapazondur:

Bu, çoxlu problemlərə səbəb olacaq, əsasən yalançı tetikleyicilər və ya heç vaxt yüksəkliyə səbəb olmayacaq. YÜKSƏK alınmasını təmin etməliyik, bunu etmək üçün ~ 600 dəyərinə ehtiyacımız var, ancaq 900+ təhlükəsiz olmağı hədəfləməliyik. Bu həddə çox yaxın olmaq yanlış tetikleyicilərə səbəb ola bilər, buna görə də yanlış pozitivlərdən qaçmaq istəyirik. Bu dəyəri tənzimləmək üçün açılan rezistoru (220K) artırmaq istəyirik. Dizaynımda bunu artıq bir neçə dəfə etmişəm və çox güman ki, bunu etmək məcburiyyətində qalmayacaqsınız, çünki bu, aşağıya endirilən bir rezistor üçün çox böyük bir dəyərdir.

Dəyər çox səs -küylüdür (xarici stimul olmadan çox gəzir):

Aşağı çəkilən rezistorla naqillərinizin düzgün olduğundan əmin olun. Bu düzgündürsə, rezistorun dəyərini artırmalısınız.

Sensor blok edildikdə belə dəyər 1000 -dən çoxdur:

Yıxılan rezistorunuzun düzgün bir şəkildə bağlandığından əmin olun, bu heç bir açma olmadıqda baş verə bilər. Bu hələ də bir problemdirsə, açılan müqavimət dəyərini azaltmağa çalışın.

İşığı blok edərkən dəyər yüksəkdir və sıfıra bərabərdir:

Sensorun işləməsi üçün bu kifayət olmalıdır, lakin dart yolu keçərkən kifayət qədər sürətli bir cavab verə bilmərik. Dövrdə müəyyən bir tutum var və 220K rezistorla gərginliyin lazımi həddən aşağı düşməsi bir az vaxt ala bilər. Əgər belədirsə, bu rezistoru 100K -a endirin və testlərin necə işlədiyini görün.

HƏR SENSÖR ARASINDA HƏR RESİSTOR DƏYİŞİKLİYİNİN TƏMİN OLMASINI TƏMİN EDİN

Hər iki sensor üçün eyni dövrələrin təmin edilməsi, rezistorlar arasında eyni gecikməni saxlayır ki, bu da ölçmələrdə ən yaxşı dəqiqliyə imkan verəcəkdir.

Əlavə probleminiz varsa, aşağıda bir şərh yazın və sizə kömək etmək üçün əlimdən gələni edəcəyəm.

Addım 4: Avadanlıq Montajı

Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı

Komponentləri burada göründüyü kimi kiçik PCB -yə lehimləyin:

LEDlər və PhotoTransistors üçün aparatlar təxminən _ uzunluğunda kəsilməlidir.

Arduino'yu taxtaya lehimləyin və rezistorları yerdən əlçatan pinlərə bağlayın. Əlavə olaraq 4 Pozitiv telin bir -birinə asanlıqla bağlanmasını təmin edin. Bununla əlaqədar bir probleminiz varsa, bir tel telini soyun və sonunda bütün uclarda lehim edə bilərsiniz.

Sensorları korpusun əks tərəfinə bağladım, ancaq tərəfləri tutarlı saxladığınız müddətdə çəkinməyin. Telləri uzatmaq üçün kəsdim və telləri diodların hər birinə son olaraq lehimlədim. PCB -nin altında bəzi tellərin və digərlərinin istifadəsi asan olması üçün daha çox yer və daha az narahatlıq təmin etmək üçün tel marşrutunu bir qədər yenilədim. STL -lər layihənin əvvəlində tam layihə zip faylındadır.

Addım 5: Son Quraşdırma

Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi

PCB Delikləriniz əsas xronoqraf gövdəsindəki deliklər ilə uyğun gəlmirsə, ehtimal ki, elektronikanı bir az lent və ya isti yapışqan ilə korpusa bağlaya bilərsiniz, tel və USB-dən sonra bərkidilməyə ehtiyac olmadığını gördüm. yerində olsalar da, nəticələriniz fərqli ola bilər. İstilik saxlama üçün vida deliklərinə 1.75 mm filamentin basılmasına imkan vermək üçün hazırlanmışdır, lakin PCB də vidalana və ya yapışdırıla bilər. Burada ən vacib şey USB portunun əlçatan olmasını təmin etməkdir.

Elektronikanı elektronika örtüyü ilə örtün, Yenilənmiş Fayllar mənimkindən daha yaxşı uyğunlaşmalıdır və inşallah yerinə sıxılacaq, amma örtükləri yerində qaynaq etmək üçün 3D çap qələmindən istifadə etdim. İndi bir neçə dart atmağa hazırsınız!

Gələcək bir yeniləmə tellər üçün daxili marşrutlaşdırma istifadə edə bilər, lakin bu vəziyyətdə örtüklər Nerf estetikasına bir qədər verir.

Addım 6: Xronoqraf Fəaliyyətdədir

Image
Image
Xronoqraf Fəaliyyətdədir
Xronoqraf Fəaliyyətdədir

İşləmə Faylının Açılması: Chronograph_Intitial_Release, həm FPS, həm də RPS (Saniyədə Rounds) göstərən xronoqraf üçün həqiqətən gözəl bir istifadəçi interfeysi yaratmağa imkan verəcəkdir. Arduino seriyalı monitörünüzü bağladığınızdan əmin olmaq üçün əlaqə qurmaqda çətinlik çəkirsinizsə, koddakı serial portunu da dəyişə bilərsiniz, ancaq bu şərh edilmiş və sadə olmalıdır. Maksimum dəyərləri sıfırlamaq üçün kompüterinizdəki boşluq düyməsini basın.

Kodun necə işlədiyinə dair bir az (UI şəklini yuxarıda görmək olar):

  1. Arduinodan giriş alır
  2. Maksimum dəyəri tapmaq üçün bunu keçmiş girişlə müqayisə edir
  3. Asan vizual rəy üçün cari və maksimum dəyərləri tam ekranda göstərir
  4. Boşluq basıldıqda maksimum dəyəri sıfırlayır

Addım 7: Gələcək Planlar

Bunun üçün gələcək bir yeniləmə aşağıdakı təkmilləşdirmələri ehtiva edəcək. İstədiyiniz əlavə xüsusiyyətləriniz varsa, mənə bildirin və bunları tətbiq etməyə çalışacağam.

  1. LCD ekran daxildir
  2. Batareyalar daxildir
  3. Nerf Uyğun Əlavə nöqtələri
  4. Yenilənmiş Kassa
  5. Dəmir Görməli yerlər

Tövsiyə: