Съдържание:

Хронограф Nerf и скорост на стрелба: 7 стъпки
Хронограф Nerf и скорост на стрелба: 7 стъпки

Видео: Хронограф Nerf и скорост на стрелба: 7 стъпки

Видео: Хронограф Nerf и скорост на стрелба: 7 стъпки
Видео: [ОБЗОР НЕРФ] Rival Apollo XV-700 (Аполло) 2024, Юли
Anonim
Image
Image
Nerf Chronograph и Rate of Fire Barrel
Nerf Chronograph и Rate of Fire Barrel

Въведение

Като калайджия винаги е много удовлетворяващо да видиш числените резултати от твоята работа. Много от нас са модифицирали пистолети Nerf преди това и кой не обича да хвърля парчета пяна из къщата с над 100 кадъра в секунда?

След като през целия си живот модифицирах много оръжия Nerf, започвайки, когато бях на около 10 години с баща си, досега, когато аз и съквартирантите ми продължихме да хвърляме пяна по апартамента един към друг, винаги съм искал да знам с каква скорост летят дартс, и колко стрели в секунда изстрелват съквартирантите ми Rapid-Strike. Налични са търговски хронографи за Nerf и Airsoft, но тези с висока точност са скъпи и е забавно да ги изградим сами. Ако все пак искате да си купите, Nerf пусна барел, почти идентичен с този, представен в този проект (с по -добър промишлен дизайн) и може да бъде намерен тук:

Модул Nerf Ghost-Ops Chrono Barrel

Версията Nerf също се захранва от батерии и показва брояч за стрелба с дартс. Instructable тук също включва екран и бутон за нулиране, но разчита на дължината на стрелата за изчисляване на скоростта и не изглежда да използва прекъсвания. Основният фокус на този проект ще бъде върху серийната комуникация (като прост пример, като този не беше най -лесният за намиране онлайн) и използването на прекъсвания за точно определяне на времето. Това вероятно може лесно да бъде преобразувано в хронограф на airsoft по същите причини с по -стегнат корпус и по -добра система за монтиране на страйкболни оръжия. Без използване на прекъсвания кодът може да бъде по -бавен и по -малко ефективен, също така е много по -трудно да се измерва времето по отношение на микросекундите точно, тъй като милисекундите няма да дадат точни стойности за скоростта на стрела.

Няма да се фокусирам твърде много върху дизайна на корпуса, въпреки че STL файловете са налични в GitHub, защото всеки може просто да си купи версията Nerf, която определено е по -добра за действителната игра, но бъдеща версия на това може да смекчи резултатите.

Основни принципи (резултати от обучението):

  • Има формата на стандартна Nerf бъчва
  • Използване на фототранзистори като времеви порти за стрелата.
  • Показва използването на прекъсвания на Adruino за определяне на времето
  • Използване на обработка с Arduino за серийна комуникация

Обхват на проекта:

Планирам да разгледам най -вече спецификата на този проект с някои кратки прегледи и препоръчвам да прочетете препратките за Arduino и Processsing за по -конкретна информация. Това няма да ви научи как да запоявате, а по -скоро как да интегрирате Arduino и обработка и да използвате прекъсвания. Голяма част от това обучение ще бъде чрез четене на действителния коментиран код, затова се уверете, че сте прочели целия код, преди да го качите сляпо и да се опитате да го накарате да работи.

Ползи от подобни проекти:

  • Използване на прекъсвания за точно измерване на висока скорост
  • Обширен раздел за отстраняване на грешки за фототранзистори
  • Скорост на стрелба (ROF) Изчисление, извеждащо кръгове в секунда (RPS)
  • Компютърен интерфейс на цял екран - не е полезен по време на битка, но е чудесен, ако искате да покажете на другите резултатите в потока или Youtube с екранен рекордер.
  • Възможност за адаптиране за Airsoft или Paintball чрез промяна само на корпуса
  • Няма нужда от персонализирани печатни платки (би било хубаво в бъдеща актуализация, но всеки може да направи това за относително ниска цена
  • Обща цена под $ 10, когато частите са разделени и ако е наличен 3D принтер - На равна нога с търговската цена, с добавяне на ROF

Стъпка 1: Необходими части и инструменти

Необходими части и инструменти
Необходими части и инструменти

Ако имате 3D принтер, това ще бъде чудесен проект за вас, тъй като аз ще предоставя файловете за кутията. Чувствайте се свободни да актуализирате заграждението. Нямах никакви LCD дисплеи под ръка, но се надявам, че втора версия ще има LCD и ще използва WEMOS D1 или подобна платка с WiFi/BT и батерия. Това ще позволи регистриране на данни на мобилни устройства и обратна връзка в реално време - например колко стрели са останали в пистолета. Препоръчва се известен опит с запояване, ако не се чувствате комфортно, препоръчвам да следвате инструкции за запояване и вероятно да закупите допълнителни електронни компоненти за всеки случай.

Необходими инструменти:

  1. Поялник
  2. Вентилатор за горещ въздух/ Топливен пистолет/ Запалка (ако използвате термосвиване)
  3. Машини за сваляне на тел
  4. Mini - B USB кабел (или който и да е кабел, който е необходим за вашия микроконтролер)
  5. Пистолет за горещо лепило или подобен (използвах химикалка за 3D печат, за да прикрепя всички компоненти към кутията с 3D печат)

Необходими материали:

  1. 22AWG Твърдожилен проводник ех: Комплект тел с твърдо жило 22AWG
  2. Arduino Nano (или подобен, използвах клонинг) например: 3 x Arduino Nano (клониране)
  3. Комплект резистори (2 x 220 ohm, 2 x 220k ohm) Може да успеете да използвате резистори с по -ниска стойност като 47k с успех, просто случайно открих, че имам нужда от тази стойност, за да работи. Ръководството за отстраняване на неизправности очертава как да определите дали падащият резистор е правилната стойност за вашия конкретен фототранзистор и LED комплект. Поради това препоръчвам да получите комплект: например: Комплект резистори
  4. 2 x IR LED ex: IR LED и PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D отпечатан корпус - В инфрачервена непрозрачна нишка (Hatchbox Silver Worked и беше единственият цвят, който тествах)
  7. Пълните файлове на проекта са достъпни тук на GitHub, както и в прикачения Zip файл. STLs също са достъпни в Thingiverse тук.

Стъпка 2: Тестване на дъската

Тестване на дъската
Тестване на дъската
Тестване на дъската
Тестване на дъската

След като електрониката пристигне, спойката води до фототранзисторите и инфрачервените светодиоди ~ 20-30 см за отстраняване на грешки, препоръчвам да ги намалите с топлина. Нямах правилния размер термосвиване и трябваше да използвам електрическа лента за този прототип. Това ще ви позволи да ги използвате за тестване в заграждението. Ако сте отпечатали корпуса и имате светодиоди и фототранзистори в правилните позиции, можете да започнете тестване.

Уверете се, че имате инсталирани Arduino и Processing.

Пощенският файл в началото има целия код, както и STL файловете за отпечатване на кутията.

Използвайте Arduino за отстраняване на грешки отначало и използвайте само обработка за окончателно тестване (можете да видите всичко в серийния монитор от Arduino).

Можете да опитате просто да задействате стрела Nerf през хронографа с Chronogrpah_Updated.ino, инсталиран на Arduino. Ако това работи, тогава сте готови. Ако това не работи, вероятно ще трябва да коригирате стойностите на резистора. Това се обсъжда в следващата стъпка.

Малко за това как работи кодът:

  1. Прекъсване спира кода всеки път, когато стрелка минава през порта и определя времето в микросекунди
  2. С това се изчислява скоростта и времето се запаметява
  3. Времето между изстрелите се изчислява и преобразува в кръгове в секунда
  4. Времето между портите се изчислява и преобразува във футове в секунда въз основа на разстоянието на портата.

    Използването на две врати позволява по -добри резултати с идентично време (колко от сензора трябва да бъде покрито) и намалява хистерезиса

  5. Скоростта и скоростта на стрелба се изпращат чрез сериен код, разделен със запетая или към серийния монитор в arduino, или към скицата за обработка, позволяваща хубав потребителски интерфейс (фокусирайте се върху обработката, когато всичко останало работи!).

Стъпка 3: Тестване и отстраняване на грешки

Ако не сте успели с първоначалния тест, тогава трябва да разберем какво се е объркало.

Отворете примера на Arduino AnalogReadSerial, намерен във Файл-> Примери-> 0.1 Основи-> AnalogReadSerial

Искаме да гарантираме, че фототранзисторите работят така, както очакваме. Искаме те да четат ВИСОК, когато стрелката не ги блокира, и НИСКО, когато стрелката не е. Това е така, защото кодът използва прекъсвания, за да запише времето, когато стрелката преминава през сензора, а видът на прекъсването, което се използва, е FALLING, което означава, че ще се задейства при преминаване от HIGH към LOW. За да се гарантира, че щифтът е ВИСОК, можем да използваме аналоговите щифтове, за да определим стойността на тези щифтове.

Качете Arduino Пример AnalogReadSerial и скочете от цифровия извод D2 или D3 до A0.

D2 трябва да бъде първият сензор и D3 трябва да бъде вторият сензор. Изберете 1 за четене и започнете от там. Следвайте ръководството по -долу, за да определите правилното решение въз основа на показанията:

Стойността е 0 или много ниска:

Стойността първоначално трябва да бъде около 1000, ако отчита много ниска стойност или нула, след това се уверете, че светодиодите ви са свързани правилно и не са изгорели, както и добре подравнени. Изгорих светодиодите си при тестване, когато използвах 100 омов резистор вместо 220 ома. Най -добре е да се обърнете към листа с данни за светодиодите, за да определите правилната стойност на резистора, но повечето светодиоди вероятно ще работят с резистора 220 ома.

Светодиодите работят и стойността е все още 0 или много ниска:

Проблемът е вероятно в съпротивлението на издърпващия резистор да е твърде ниско. Ако имате проблем с 220k резистора, може би можете да го увеличите по -високо от това, но може да получите шум. Трябва да се уверите, че вашият фототранзистор не е изгорял.

Стойността е среден диапазон:

Това ще доведе до много проблеми, най -вече фалшиви задействания, или никога не причинява високо. Трябва да гарантираме, че е получено HIGH, за да направим това, имаме нужда от стойност ~ 600, но позволява да се стремим 900+ да бъдат безопасни. Прекалено близо до този праг може да причини фалшиви задействания, затова искаме да избегнем всякакви фалшиви положителни резултати. За да регулираме тази стойност, искаме да увеличим падащия резистор (220K). Вече направих това няколко пъти в моя дизайн и вероятно няма да се налага да го правите, тъй като това е много голяма стойност за издърпващ се резистор.

Стойността е много шумна (много скачане без външни стимули):

Уверете се, че окабеляването ви е правилно с издърпващия се резистор. Ако това е правилно, може да се наложи да увеличите стойността на резистора.

Стойността се задържа на 1000+, дори когато блокирате сензора:

Уверете се, че вашият издърпващ резистор е свързан правилно, това вероятно ще се случи, ако няма изтегляне. Ако това все още е проблем, опитайте да намалите стойността на падащия резистор.

Стойността е висока и стига до нула при блокиране на светлината:

Това би трябвало да е достатъчно, за да може сензорът да работи, но може да не реагираме достатъчно бързо, докато стрелата пресича пътя. Във веригата има известен капацитет и с 220K резистора може да отнеме известно време, докато напрежението падне под необходимия праг. Ако случаят е такъв, намалете този резистор до 100K и вижте как работят тестовете.

ОБЕЗПЕЧЕТЕ, ЧЕ ИЗМЕНЕНИЯТА НА РЕЗИСТОРА СА ПОСЛЕДОВАТЕЛНИ МЕЖДУ И ДВА СЕНЗОРА

Осигуряването на идентични вериги за двата сензора поддържа една и съща латентност между резисторите, което ще позволи най -добрата точност при измерванията.

Ако имате някакви допълнителни проблеми, оставете коментар по -долу и аз ще направя всичко възможно да ви помогна.

Стъпка 4: Сглобяване на хардуер

Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж
Хардуерен монтаж

Запоявайте компонентите към малката печатна платка, както се вижда тук:

Кабелите за светодиодите и фототранзисторите трябва да се режат на дължина, приблизително _.

Запояйте Arduino върху дъската и свържете резисторите от земята към достъпни щифтове. Освен това се уверете, че 4 -те положителни проводника могат лесно да бъдат свързани заедно. Ако имате проблеми с това, можете да отстраните парче от проводника и да го запоите върху всички проводници в края.

Свързах сензорите към противоположната страна на корпуса, но не се колебайте да ги свържете, стига страните да са еднакви. Нарязах проводниците, за да се удължи и запоявах проводниците към всеки от диодите последно. Актуализирах леко прокарването на проводниците, за да осигуря повече място и по -малко притеснения, че имам някои проводници под печатната платка, а други над нея за лесна употреба. STL са в пълния zip файл на проекта в началото на проекта.

Стъпка 5: Окончателно сглобяване

Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване
Окончателно сглобяване

Ако дупките на вашата печатна платка не съвпадат с отворите на основния корпус на хронографа, най-вероятно можете да закрепите електрониката в кутията с някаква лента или горещо лепило, установих, че не е необходимо да се фиксира след проводника и USB са били на място, но резултатите ви могат да варират. Проектиран е така, че да позволява притискане на 1,75 мм нишка в отворите за винтове за затопляне на топлина, но печатната платка може също да се завинтва или залепва. Най -важната част тук е осигуряването на достъп до USB порта.

Покрийте електрониката с капака на електрониката. Актуализираните файлове трябва да пасват по -добре от моята и да се надяваме, че ще се притиснат на място, но аз използвах химикалка за 3D печат, за да заварявам капаците на място. Вече сте готови да стреляте с дартс!

Бъдеща актуализация може да използва вътрешно маршрутизиране на проводниците, но капаците в този случай леко отстъпват на естетиката на Nerf.

Стъпка 6: Хронограф в действие

Image
Image
Хронограф в действие
Хронограф в действие

Отварянето на обработващия файл: Chronograph_Intitial_Release ще позволи наистина приятен потребителски интерфейс за хронографа, показващ както FPS, така и RPS (Rounds per Second). Ако имате проблеми при свързването, уверете се, че сте затворили серийния монитор на Arduino, може да се наложи да промените и серийния порт в кода, но това е коментирано и трябва да бъде просто. За да нулирате максималните стойности, просто натиснете интервала на вашия компютър.

Малко за това как работи кодът (Снимка на потребителския интерфейс може да се види по -горе):

  1. Получава вход от Arduino
  2. Сравнява това с миналото въвеждане, за да намери максималната стойност
  3. Показва текущите и максималните стойности на цял екран за лесна визуална обратна връзка
  4. Нулира максималната стойност при натискане на интервал

Стъпка 7: Бъдещи планове

Бъдеща актуализация за това ще включва следните подобрения. Ако имате допълнителни функции, които бихте искали, уведомете ме и аз ще се опитам да ги внедря.

  1. Включете LCD екран
  2. Включете батерии
  3. Съвместими с Nerf точки за закрепване
  4. Актуализиран корпус
  5. Железни забележителности

Препоръчано: