Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Несколько лет назад я увидел проект, в котором была продемонстрирована полуавтономная башня, которая могла вести огонь самостоятельно после прицеливания. Это натолкнуло меня на идею использовать камеру Pixy 2 для обнаружения целей, а затем автоматически наводить нерф-пушку, которая могла бы захватить и стрелять сама по себе.
Этот проект спонсировался DFRobot.com
Необходимые детали:
Шаговый двигатель DFRobot с коробкой передач -
Драйвер шагового двигателя DFRobot -
DFRobot Pixy 2 Cam -
Шаговый двигатель NEMA 17
Ардуино Мега 2560
HC-SR04
Нерф Нитрон
Шаг 1: Компоненты
Для этого проекта пистолету потребуются глаза, поэтому я решил использовать Pixy 2 из-за того, насколько легко он может взаимодействовать с материнской платой. Затем мне понадобился микроконтроллер, поэтому я выбрал Arduino Mega 2560 из-за того, сколько в нем контактов.
Поскольку для пушки требуется две оси, рыскание и тангаж, для нее требуются два шаговых двигателя. Из-за этого DFRobot прислала мне свою двойную плату драйвера двигателя DRV8825.
Шаг 2: CAD
Я начал с загрузки Fusion 360 и вставки прикрепленного холста Nerf Gun. Затем я создал твердое тело из этого холста. После того, как ружье было спроектировано, я сделал платформу с несколькими опорами на подшипниках, которые позволили бы ружью вращаться слева направо. Я поместил шаговый двигатель рядом с вращающейся платформой, чтобы управлять им.
Но более серьезный вопрос заключается в том, как сделать шаг вперед и назад. Для этого требовалась система линейного привода с одной точкой, прикрепленной к подвижному блоку, и другой точкой на задней части орудия. Стержень соединял две точки, позволяя ружью поворачиваться вдоль его центральной оси.
Вы можете скачать все необходимые файлы здесь:
www.thingiverse.com/thing:3396077
Шаг 3: Изготовление деталей
Почти все детали в моем дизайне предназначены для 3D-печати, поэтому я использовал два своих принтера для их создания. Затем я создал передвижную платформу, сначала используя Fusion 360 для создания необходимых траекторий для моего фрезерного станка с ЧПУ, а затем вырезал диск из листа фанеры.
Шаг 4: Сборка
После того, как все детали были созданы, пришло время их собирать. Я начал с подсоединения опор подшипников к вращающемуся диску. Затем я собрал сборку с линейным шагом, пропустив 6-миллиметровые алюминиевые стержни и стержень с резьбой через детали. Наконец, я прикрепил сам Nerf Gun с помощью стального стержня и двух стоек, сделанных из алюминиевых профилей.
Шаг 5: Программирование
Теперь самая сложная часть проекта: программирование. Машина для стрельбы снарядами очень сложна, и математика, стоящая за ней, может сбивать с толку. Я начал с поэтапного написания программы и логики, подробно описывая, что будет происходить в каждом состоянии машины. Различные состояния выглядят следующим образом:
Получить цель
Установите пистолет
Раскрутите моторы
Стрелять из пистолета
Сбросьте моторы
Для захвата цели необходимо сначала настроить Pixy на отслеживание неоново-розовых объектов в качестве целей. Затем пистолет перемещается до тех пор, пока цель не окажется в центре поля зрения Pixy, где затем измеряется ее расстояние от ствола пистолета до цели. Используя это расстояние, можно найти горизонтальные и вертикальные расстояния с помощью некоторых основных тригонометрических функций. В моем коде есть функция get_angle (), которая использует эти два расстояния, чтобы вычислить, какой угол необходим, чтобы поразить эту цель.
Затем пистолет перемещается в это положение и включает двигатели через полевой МОП-транзистор. После того, как он намотается в течение пяти секунд, он перемещает серводвигатель, чтобы нажать на спусковой крючок. Затем полевой МОП-транзистор выключает двигатель, а затем нерф-пушка возвращается к поиску целей.
Шаг 6: развлекайтесь
Я прикрепляю к стене неоновую розовую учетную карточку, чтобы проверить точность пистолета. Все прошло хорошо, так как моя программа калибрует и регулирует угол для измеренного расстояния. Вот видео, демонстрирующее работу пистолета.