Оглавление:

Хронограф Nerf и скорострельность ствола: 7 шагов
Хронограф Nerf и скорострельность ствола: 7 шагов

Видео: Хронограф Nerf и скорострельность ствола: 7 шагов

Видео: Хронограф Nerf и скорострельность ствола: 7 шагов
Видео: [Страйкбол для чайников 9] Что такое ХОП-АП и как его настраивать. Настройка HOP-UP 2024, Ноябрь
Anonim
Image
Image
Хронограф Nerf и скорострельность ствола
Хронограф Nerf и скорострельность ствола

Вступление

Как мастеру-мастеру всегда очень приятно видеть числовые результаты своей работы. Многие из нас раньше модифицировали пистолеты Nerf, и кто не любит бросать куски пены по дому со скоростью более 100 кадров в секунду?

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

Nerf Modulus Ghost-Ops Хроно Бочка

Версия Nerf также питается от батареи и отображает счетчик выстрелов дротиков. Instructable здесь также включает в себя экран и кнопку сброса, однако полагается на длину дротика для расчета скорости и, похоже, не использует прерывания. Основное внимание в этом проекте будет уделяться последовательной связи (такой простой пример, который было не так просто найти в сети) и использованию прерываний для точного определения времени. Скорее всего, его можно легко превратить в хронограф для страйкбола по тем же причинам, с более плотным корпусом и лучшей системой крепления для оружия для страйкбола. Без использования прерываний код может быть медленнее и менее эффективным, также гораздо труднее рассчитать время в отношении микросекунд точно, поскольку миллисекунды не дают точных значений для скорости дротика.

Я не буду уделять слишком много внимания дизайну корпуса, хотя файлы STL доступны в GitHub, потому что любой может просто купить версию Nerf, которая определенно лучше для реальной игры, но будущая версия может смягчить результаты.

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

  • Имеет форму стандартной бочки Нерфа.
  • Использование фототранзисторов в качестве временных ворот для дротика.
  • Показывает использование прерываний Adruino для определения времени
  • Использование обработки с Arduino для последовательной связи

Объем проекта:

Я планирую в основном остановиться на деталях этого проекта с некоторыми краткими обзорами и рекомендовать прочитать ссылки на Arduino и Processsing для получения более конкретной информации. Это не научит вас паять, а скорее научит интегрировать Arduino и Processing и использовать прерывания. Большая часть этого обучения будет происходить через чтение самого закомментированного кода, поэтому, пожалуйста, убедитесь, что вы прочитали весь код, прежде чем слепо загружать и пытаться заставить его работать.

Преимущества перед аналогичными проектами:

  • Использование прерываний для точного измерения высокой скорости
  • Обширный раздел отладки фототранзисторов
  • Расчет скорострельности (ROF) с выводом выстрелов в секунду (RPS)
  • Полноэкранный компьютерный интерфейс - бесполезен во время битвы, но отлично подходит, если вы хотите показать другим результаты в потоке или на Youtube с помощью средства записи экрана.
  • Возможность адаптации для страйкбола или пейнтбола путем модификации только корпуса
  • Нет необходимости в специальных печатных платах (было бы неплохо в будущем обновлении, но любой может сделать это по относительно низкой цене.
  • Общая стоимость менее 10 долларов США при разборке деталей и при наличии 3D-принтера - на уровне коммерческой стоимости с добавлением ROF.

Шаг 1. Необходимые детали и инструменты

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

Если у вас есть 3D-принтер, это будет отличный проект для вас, так как я предоставлю файлы для корпуса. Не стесняйтесь обновлять корпус. У меня не было под рукой ЖК-дисплеев, но, надеюсь, вторая версия будет иметь ЖК-дисплей и использовать WEMOS D1 или аналогичную плату с поддержкой WiFi / BT и аккумулятор. Это позволит регистрировать данные на мобильном устройстве и получать обратную связь в режиме реального времени - например, сколько дротиков осталось в оружии. Рекомендуется некоторый опыт пайки, если вы не чувствуете себя комфортно, я рекомендую следовать инструкциям по пайке и, возможно, покупать дополнительные электронные компоненты на всякий случай.

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

  1. Паяльник
  2. Нагнетатель горячего воздуха / тепловой пистолет / зажигалка (при использовании термоусадки)
  3. Инструмент для зачистки проводов
  4. Кабель USB Mini-B (или любой другой кабель, который требуется для вашего микроконтроллера)
  5. Пистолет для горячего клея или аналогичный (я использовал ручку для 3D-печати, чтобы прикрепить все компоненты к корпусу для 3D-печати)

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

  1. 22AWG Сплошной провод, например: набор сплошных проводов 22AWG
  2. Arduino Nano (или аналогичный, я использовал клон), например: 3 x Arduino Nano (клон)
  3. Комплект резисторов (2 x 220 Ом, 2 x 220 кОм) Вы можете успешно использовать понижающие резисторы с меньшим значением, такие как 47 кОм, я просто случайно обнаружил, что мне нужно это значение для его работы. В руководстве по поиску и устранению неисправностей описывается, как определить, является ли понижающий резистор правильным значением для вашего конкретного фототранзистора и набора светодиодов. По этой причине я рекомендую приобрести набор: например, набор резисторов.
  4. 2 x ИК-светодиода, например: ИК-светодиод и набор фототранзисторов
  5. 2 фототранзистора
  6. 1 x корпус, напечатанный на 3D-принтере - в непрозрачной нити для инфракрасного излучения (Hatchbox Silver Worked и был единственным цветом, который я тестировал)
  7. Полные файлы проекта доступны здесь, на GitHub, а также в прикрепленном Zip-файле. STL также доступны на Thingiverse здесь.

Шаг 2: Тестирование макета

Тестирование макетов
Тестирование макетов
Тестирование макетов
Тестирование макетов

Как только электроника будет доставлена, припой к фототранзисторам и ИК-светодиодам ~ 20-30 см для отладки, я рекомендую их термоусадку. У меня не было термоусадки подходящего размера, и для этого прототипа пришлось использовать изоленту. Это позволит вам использовать их для тестирования в корпусе. Если вы распечатали корпус и установили светодиоды и фототранзисторы в правильных положениях, вы можете начать тестирование.

Убедитесь, что у вас установлены Arduino и Processing.

В zip-файле в начале есть весь код, а также файлы STL для печати корпуса.

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

Вы можете попробовать просто запустить дротик Nerf через хронограф с Chronogrpah_Updated.ino, установленным на Arduino. Если это сработает, то все готово. Если это не сработает, вам, вероятно, придется отрегулировать номиналы резистора. Это обсуждается на следующем шаге.

Немного о том, как работает код:

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

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

  5. Скорость и скорострельность отправляются через последовательный порт, разделенный запятой, либо на последовательный монитор в Arduino, либо в скетч обработки, что позволяет создать приятный пользовательский интерфейс (сосредоточьтесь на обработке, когда все остальное работает!).

Шаг 3. Тестирование и отладка

Если у вас не получилось выполнить первоначальный тест, то нам нужно выяснить, что пошло не так.

Откройте пример Arduino AnalogReadSerial, который находится в File-> Примеры-> 0.1 Basics -> AnalogReadSerial.

Мы хотим убедиться, что фототранзисторы работают так, как мы от них ожидаем. Мы хотим, чтобы они читали ВЫСОКИЙ, когда дротик их не блокирует, и НИЗКИЙ, когда дротик не блокирует их. Это связано с тем, что код использует прерывания для записи времени, когда дротик проходит мимо датчика, а тип используемого прерывания - ПАДЕНИЕ, что означает, что оно срабатывает при переходе от ВЫСОКОГО к НИЗКОМУ. Чтобы убедиться, что вывод ВЫСОКИЙ, мы можем использовать аналоговые выводы для определения значения этих выводов.

Загрузите пример Arduino AnalogReadSerial и перейдите с цифрового вывода D2 или D3 на A0.

D2 должен быть первым датчиком, а D3 - вторым датчиком. Выберите 1, чтобы прочитать и начать с него. Следуйте приведенному ниже руководству, чтобы определить правильное решение на основе показаний:

Значение 0 или очень низкое:

Первоначально значение должно быть около 1000, если оно показывает очень низкое значение или ноль, убедитесь, что ваши светодиоды подключены правильно и не перегорели, а также хорошо выровнены. Я перегорел свои светодиоды при тестировании при использовании резистора 100 Ом вместо 220 Ом. Лучше всего обратиться к таблице данных светодиодов, чтобы определить правильное значение резистора, но большинство светодиодов, вероятно, будут работать с резистором 220 Ом.

Светодиоды работают, а значение все еще равно 0 или очень низкое:

Вероятно, проблема в том, что понижающий резистор имеет слишком низкое сопротивление. Если у вас возникла проблема с резистором 220 кОм, вы можете увеличить его выше, но может возникнуть шум. Вы должны убедиться, что ваш фототранзистор не перегорел.

Значение - средний диапазон:

Это вызовет множество проблем, в основном ложных срабатываний или никогда не вызывает кайфа. Нам нужно убедиться, что получено HIGH, для этого нам нужно значение ~ 600, но давайте стремимся к 900+, чтобы быть в безопасности. Слишком близкое к этому порогу значение может вызвать ложные срабатывания, поэтому мы хотим избежать ложных срабатываний. Чтобы отрегулировать это значение, мы хотим увеличить сопротивление понижения (220 кОм). Я уже делал это несколько раз в своей конструкции, и вам, вероятно, не придется этого делать, поскольку это очень большое значение для понижающего резистора.

Value очень шумный (много прыгает без внешних стимулов):

Убедитесь, что ваша проводка правильная, с помощью понижающего резистора. Если это правильно, вам может потребоваться увеличить номинал резистора.

Значение застревает на 1000+, даже если датчик заблокирован:

Убедитесь, что ваш понижающий резистор подключен правильно, это может произойти, если нет понижающего сопротивления. Если проблема не исчезла, попробуйте уменьшить сопротивление понижающего резистора.

Значение высокое и стремится к нулю при блокировке света:

Этого должно быть достаточно для работы датчика, однако мы можем не реагировать достаточно быстро, когда дротик пересекает путь. В цепи есть некоторая емкость, и с резистором 220 кОм может потребоваться некоторое время, чтобы напряжение упало ниже требуемого порога. Если это так, уменьшите этот резистор до 100 кОм и посмотрите, как работают тесты.

УБЕДИТЕСЬ, ЧТО ЛЮБЫЕ ИЗМЕНЕНИЯ РЕЗИСТОРА СООТВЕТСТВУЮТ ОБОИМ ДАТЧИКАМ

Обеспечение идентичных цепей для обоих датчиков обеспечивает одинаковую задержку между резисторами, что обеспечивает максимальную точность измерений.

Если у вас возникнут дополнительные проблемы, оставьте комментарий ниже, и я сделаю все возможное, чтобы вам помочь.

Шаг 4: Сборка оборудования

Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования

Припаяйте компоненты к маленькой печатной плате, как показано здесь:

Провода для светодиодов и фототранзисторов должны быть обрезаны до длины, примерно _.

Припаяйте Arduino к плате и подключите резисторы от земли к доступным контактам. Кроме того, убедитесь, что 4 положительных провода можно легко соединить вместе. Если у вас возникли проблемы с этим, вы можете зачистить кусок провода и припаять его ко всем выводам на концах.

Я подключил датчики к противоположной стороне корпуса, но не стесняйтесь подключать их, если вы сохраняете согласованность сторон. Я отрезал провода до длины и припаял провода к каждому из диодов в последнюю очередь. Я немного обновил разводку проводов, чтобы было больше места и меньше беспокоиться о том, что одни провода находятся под печатной платой, а другие - над ней, для удобства использования. Файлы STL находятся в полном zip-файле проекта в начале проекта.

Шаг 5: Окончательная сборка

Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка
Окончательная сборка

Если отверстия на печатной плате не совпадают с отверстиями на основном корпусе хронографа, вы, вероятно, можете закрепить электронику в корпусе с помощью ленты или горячего клея, я обнаружил, что это не нужно закреплять после провода и USB. были на месте, однако ваши результаты могут отличаться. Он предназначен для вдавливания нити 1,75 мм в отверстия для винтов для теплового закрепления, однако печатную плату также можно вкручивать или приклеивать. Наиболее важной частью здесь является обеспечение доступности порта USB.

Накройте электронику крышкой для электроники. Обновленные файлы должны подходить лучше, чем мои, и, надеюсь, вдавятся на место, однако я использовал ручку для 3D-печати, чтобы приварить крышки на месте. Теперь вы готовы стрелять дротиками!

В будущих обновлениях может использоваться внутренняя разводка проводов, но крышки в этом случае немного уступают эстетике Nerf.

Шаг 6: хронограф в действии

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

Открытие файла обработки: Chronograph_Intitial_Release позволит создать действительно приятный пользовательский интерфейс для хронографа, отображающего как FPS, так и RPS (количество раундов в секунду). Если у вас возникли проблемы с подключением, убедитесь, что вы закрыли свой последовательный монитор Arduino, вам также может потребоваться изменить последовательный порт в коде, но это прокомментировано и должно быть простым. Чтобы сбросить максимальные значения, просто нажмите клавишу пробела на вашем компьютере.

Немного о том, как работает код (фото пользовательского интерфейса можно увидеть выше):

  1. Получает ввод от Arduino
  2. Сравнивает это с прошлым вводом, чтобы найти максимальное значение
  3. Отображает текущие и максимальные значения в полноэкранном режиме для удобной визуальной обратной связи
  4. Сбрасывает максимальное значение при нажатии пробела

Шаг 7: планы на будущее

Будущее обновление для этого будет включать следующие улучшения. Если у вас есть дополнительные функции, которые вам нужны, дайте мне знать, и я постараюсь их реализовать.

  1. Включите ЖК-экран
  2. Включите батареи
  3. Совместимые с Nerf точки крепления
  4. Обновленный корпус
  5. Железные прицелы

Рекомендуемые: