Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Полностью автоматический бесщеточный контроллер Nerf Blaster Arduino с 3D-печатью

Компоненты и расходные материалы

Arduino Nano Every
Arduino Nano Every Очень компактен, чтобы поместиться в пушку Nerf, сохраняя при этом всю необходимую вам функциональность.
× 1
Линейный соленоид, 12 В постоянного тока
Убедитесь, что длина хода 35 мм рассчитана на 12 В.
× 1
Бесщеточный двигатель постоянного тока
Кожухи маховика Nerf лучше всего работают с бесщеточными двигателями типа Outrunner. Убедитесь, что он может выдерживать 12 В (3 с Lipo).
× 2
Бесщеточный ESC
Убедитесь, что бесщеточный ESC может выдерживать как минимум на 20% больше тока, чем потребляет двигатель. Убедитесь, что он может работать с 3s Lipo. Один ESC на двигатель.
× 2
Lipo Battery 3S 11.1-12.6V 1300mAh 25C
Убедитесь, что скорость разряда батареи соответствует текущему потреблению всего, плюс 20% запас прочности. Рекомендуем минимум 1300 мАч.
× 1
Микропереключатель, миниатюрный
Любой стандартный микропереключатель. Не должно быть сильноточного.
× 2
N-канал Power MOSFET
Убедитесь, что это логический уровень! Канал N> 20 В> 15 А сток-исток при напряжении затвора 5 В.
× 1
Резистор 10 кОм
R3 в схеме - предотвращает плавающее напряжение на затворе MOSFET.
× 1
Резистор в сквозное отверстие, 4,7 кОм
R1 в схеме для включения микропереключателя MS2.
× 1
Резистор в сквозное отверстие, 150 Ом
Для светодиодов (значение зависит от ваших настроек).
× 1
Резистор 220 Ом
R2 в схеме для ограничения тока от затвора MOSFET. Это может быть необязательным, хотя я не тестировал без него.
× 1
1N4007 - высоковольтный диод с высоким номинальным током
Общий диод, используемый в качестве обратного диода D2 для защиты полевого МОП-транзистора от обратной ЭДС соленоида. D1 для защиты входа питания Arduino от обратного напряжения.
× 2
Конденсатор 100 мкФ
Уменьшите просадку напряжения на входе питания Arduino - чувствительность к полярности, поэтому подключите его правильно или все идет хлопнуть! C1 на схеме.
× 1
Конденсатор 100 нФ
Это действует как фильтр шума / интерференции для ввода питания Arduino. C2 на схеме.
× 1

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

3D-принтер (общий)
Мой 3D-принтер Evnovo (Artillery) X1 - 300x300x400 мм

Об этом проекте

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

Мое последнее и самое лучшее творение - это Кан Тао, умное оружие, представленное в грядущей видеоигре Cyberpunk 2077 . . Для создания такого сложного объекта был использован 3D-принтер для достижения эстетики и механической подгонки деталей.

Однако статический объект был бы слишком легким, я хотел испытать себя. Поэтому я разработал его как функциональный Nerf Blaster.

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

Эта статья будет сосредоточена на аспектах Arduino и электрических схем в этом проекте (поскольку это сайт Arduino). Я назвал это «простым», поскольку часть Arduino довольно проста. Тем не менее, механический дизайн и 3D-печать продвинуты. Если вы хотите управлять бесщеточным ESC, бесщеточными двигателями и соленоидом с помощью Arduino для бластеров Nerf, это руководство для вас!

CAD-дизайн, 3D-печать и т. Д. Описаны здесь:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/

или здесь:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/

Видеоуроки по сборке здесь:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as=subscriber

Схема (см. Раздел схемы) была нарисована, чтобы проиллюстрировать, как все связано. Arduino Nano используется из-за его небольшого размера. Это должно работать с Uno и другими.

См. схему ниже терминологии MS1, C2 и т. д.

Обратитесь в Код раздел on объяснение из как the код работает.

Триггеры с маховиком и соленоидом

Код работает так:когда MS2 (вторичный микровыключатель) удерживается, бесщеточные двигатели набирают обороты.

Когда MS1 (триггер основного микропереключателя) нажат или удерживается, сигнал посылается на затвор полевого МОП-транзистора, чтобы запустить соленоид ( S ) неоднократно. Соленоид выталкивает дротик Nerf из магнита в маховики ( M1 & M2 ), которые затем ускоряют дротик из ствола.

Однако MS1 активируется только при MS2 проводится. Это помогает предотвратить застревание в случае, если дротик попадет в не вращающиеся маховики. В коде (см. Раздел кода) используется '&&'.

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

Бесщеточные двигатели

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

Есть inrunner и беглый бесщеточные двигатели. Вам нужен бегун двигатель, так как они более плоские по форме, поэтому у вас не будет уродливых банок, торчащих из стороны вашего бластера Nerf. Двигатели Outrunner также имеют внешнюю часть, которая может вращаться вместе с валом. Это упрощает 3D-печать маховиков над двигателем.

Получите двигатель с задними монтажными отверстиями . .

Напряжение двигателей должно быть не менее 12,6 В (3 с липо).

Ток двигателя не должен превышать номинальный ток бесщеточного ESC.

Мощность двигателей должна быть> 60 Вт. В этом проекте используется напряжение питания 12,6 В x измеренная потребляемая мощность двигателя 7 А =~ 80 Вт каждый.

Частота вращения бесщеточных двигателей должна составлять ~ 25k и определяется номиналом в кВ x напряжением. В этом проекте используются двигатели на 2600 кВ при 12,6 В. Следовательно, 2600 x 12,6 =~ 32, 760 об / мин. Я запускаю моторы только на половину дроссельной заслонки, а дротики летят на 25 м / 82 фута!

Бесщеточные регуляторы скорости

Они в основном управляют мощностью бесщеточных двигателей.

Бесщеточные двигатели не работают с щеточными регуляторами скорости, становитесь бесщеточными.

Вам нужен один ESC на двигатель. В противном случае обратная ЭДС от двух двигателей, подключенных к одному ESC, нарушит синхронизацию ESC и повредит упомянутый ESC и / или двигатели.

Номинальный ток ESC должен быть выше, чем ток, потребляемый двигателем. Мотор в этом случае был измерен на 7А каждый. Рекомендуем ESC 20A или выше.

Номинальное напряжение ESC должно быть не менее 12,6 В (3 с Lipo).

ESC не требует встроенного BEC. Вы можете использовать ESC «OPTO». Если у вас есть ESC с BEC, подключите заземляющий и сигнальный кабели к Arduino, как показано на схеме. НЕ подключайте ESC 5 В красный кабель ни к чему. (Если у вас нет конкретной цели и вы не знаете, что делаете).

Аккумулятор

Один аккумулятор для всего. Я рекомендую использовать разъем XT60.

Напряжение составляет 12,6 В 3S Lipo Battery.

Рекомендуемая емкость составляет не менее 1300 мАч.

Номинальный ток разряда батареи должен быть достаточным для потребляемой мощности всех нагрузок. В этом проекте ток нагрузки ~ 25А.

Максимальная скорость разряда батареи рассчитывается как скорость разряда (25C) x емкость в Ач (1,300 мАч =1,3 Ач).

Следовательно, 25 x 1,3 =максимальная скорость разряда аккумулятора 32 А. Вы должны найти эти числа в характеристиках батареи.

МОП-транзистор

Питание соленоида 12 В / 8 А прямо от Arduino вызовет волшебный дым (Arduino умирает). Решение? МОП-транзистор.

Силовой полевой МОП-транзистор используется в качестве переключателя для соленоида. Он в основном прерывает заземление, которое питает соленоид. Это известно как N-канальный МОП-транзистор . Убедитесь, что у вас есть N-канал.

MOSFET знает, когда включать и выключать из-за сигнала, отправляемого на вывод затвора MOSFET с вывода Arduino ( D4 в таком случае). Ардуино выдает 5 В, а вентиль должен быть полностью включен при 5 В. Чтобы это работало, это должен быть МОП-транзистор логического уровня .

Ток, потребляемый соленоидом, составляет 8 А. Убедитесь, что MOSFET имеет более высокий максимальный ток. В этом проекте используется полевой МОП-транзистор с максимальным током 30 А.

Напряжение на полевом МОП-транзисторе составляет 12,6 В для питания соленоида. Этот полевой МОП-транзистор рассчитан на максимальное напряжение 60 В, что является достаточным запасом.

В этом случае температура полевого МОП-транзистора составляет менее 35 ° C. Это достигается благодаря тому, что полевой МОП-транзистор рассчитан на 30 А, хотя через него протягивается только ~ 8 А. Другая причина заключается в том, что нагрузка (соленоид) включается только на мгновение перед выключением, а не постоянно. В этом случае радиатор не требуется.

Соленоид

Это толкает дротик в маховики. Все, что вам нужно, это соленоид с номиналом 12 В и длиной хода 35 мм. Более короткие удары не позволят продвинуть дротики типа Nerf во всю длину достаточно далеко.

Обновите его пружину до проволоки диаметром 0,9 мм, наружным диаметром 14 мм и длиной 40 мм, чтобы предотвратить заедание.

Поскольку соленоид включается мгновенно, а не постоянно, он должен нагреваться только слегка, ~ 40 ° C и, следовательно, не требует охлаждения.

Эти соленоиды относительно дешевы и универсальны. Их можно найти на Ebay, Aliexpress и т. Д.

Защитный выключатель

SW предохранительный выключатель - это просто двухпозиционный ползунковый переключатель. У него 3 контакта, но используются только 2. Отключает Arduino при включении безопасности, предотвращая срабатывание маховиков и соленоидов.

Схема защиты

В этом разделе объясняется, как предотвратить поджаривание электроники!

C1 33 мкФ (рекомендуется 100 мкФ) и C2 100 нФ (0,1 мкФ) снижает колебания напряжения на входе питания Arduino.

Внимание! C1 чувствителен к полярности, сторона с полосами - отрицательная . еще это идет бац!

D1 предотвращает обратное напряжение к Arduino VIN. Обратите внимание на полярность.

D2 - обратный / обратный диод. Это предотвращает создание обратной ЭДС соленоидом (или другими катушками индуктивности). В противном случае эта обратная ЭДС могла повредить полевой МОП-транзистор. Обратите внимание на полярность.

R1 & R2 - подтягивающие резисторы 4,7 кОм для MS1 и MS2. Это предотвращает плавающее напряжение на микровыключателях.

R3 представляет собой понижающий резистор 10 кОм для предотвращения плавающего напряжения на затворе полевого МОП-транзистора.

R4 составляет 150 кОм для дополнительного Светодиоды. Мои светодиоды - два последовательно подключенных по 2,4 В / 50 мА каждый. Значение вашего резистора может отличаться. Эти светодиоды включаются и выключаются синхронно с соленоидом, имитируя дульную вспышку!

Видео-объяснение и тестовые стрельбы ниже!

Это подводит итог этого руководства, любые вопросы оставляйте комментарии ниже :)

Скачайте файл, чтобы вы могли его распечатать!

ОБНОВЛЕНИЕ. Вот ссылка на файлы Thingiverse, наслаждайтесь!

https://www.thingiverse.com/thing:3984125

Код

  • Код Arduino для бесщеточного двигателя и соленоида Nerf Blaster - Clark3DPR
Код Arduino для бесщеточного двигателя и соленоида Nerf Blaster - Clark3DPR Arduino
1. Когда Arduino включается через предохранительный выключатель, он запускает последовательность включения бесщеточных регуляторов скорости. Мой ESC занимает 3,7 секунды (3700 в коде). Возможно, вам придется увеличить это значение до 10000 (10 секунд) в зависимости от вашего собственного ESC, чтобы заставить его выйти из безопасного режима.

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

2. Измените throttle.write (92), чтобы увеличить / уменьшить скорость холостого хода двигателя или выключите их. По умолчанию двигатели будут вращаться на низкой скорости, чтобы уменьшить время раскрутки. (Значение зависит от вашего двигателя / ESC)
Измените throttle.write (97), чтобы изменить максимальную скорость двигателя и скорость дротика. (Значение зависит от вашего двигателя / ESC)

Измените задержку (90) и задержку (100) для увеличения / уменьшения скорости срабатывания соленоида.

4. Когда микровыключатель отпускается, сигнал ESC PWM для маховиков и сигнал на затвор MOSET для соленоида перестают вращаться / активироваться.

5. Когда ESC теряет сигнал от Arduino (когда предохранительный переключатель включен и Arduino выключен), ESC возвращается в безопасный режим и выключает двигатели.
 const int buttonPinF =2; // Номер контакта микропереключателя оборотов маховика const int buttonPinS =5; // Номер контакта микровыключателя соленоида int buttonStateF =0; // Переменная для чтения состояния микропереключателя оборотов маховика int buttonStateS =0; // Переменная для чтения состояния микропереключателя соленоида int solenoidPin =4; // Номер контакта затвора электромагнитного МОП-транзистора # include  Серво дроссель; int pos =0; int pin =3; // сигнал ESC pinvoid setup () {pinMode (buttonPinF, INPUT); // Инициализируем вывод микровыключателя Маховика как входной pinMode (buttonPinS, INPUT); // Инициализируем контакт микропереключателя соленоида как входной throttle.attach (pin); pinMode (solenoidPin, ВЫХОД); // Устанавливает вывод затвора соленоидного полевого МОП-транзистора в качестве выхода // Последовательность постановки на охрану ESC для (pos =90; pos <=91; pos + =1) {throttle.write (pos); задержка (3700); // Подождите, пока ESC поставит на охрану / Выйдите из режима безопасности // Увеличьте это значение 3700 в зависимости от того, сколько времени потребуется, чтобы ваш ESC поставил на охрану}} void loop () {buttonStateF =digitalRead (buttonPinF); // Считываем состояние микропереключателя маховика if (buttonStateF ==HIGH) {// Проверяем, что микровыключатель нажат, если да, то состояние кнопки Flywheel - HIGH throttle.write (92); // <(92) =Двигатель выключен / (92) =Скорость холостого хода} else {throttle.write (97); // Двигатель включен (92) =Скорость холостого хода / ~ (115) =Максимальная скорость} buttonStateS =digitalRead (buttonPinS); // Считываем состояние микропереключателя соленоида if (buttonStateF ==LOW &&buttonStateS ==LOW) {digitalWrite (solenoidPin, HIGH); // Задержка включения соленоида (90); // Продолжительность включения digitalWrite (solenoidPin, LOW); // Задержка выключения соленоида (100); // длительность выключения} else {digitalWrite (solenoidPin, LOW); // Выключаем соленоид}} 

Схема

Вот как все устроено. Обратите особое внимание на полярность диодов и конденсаторов. Нарисовано в AutoCAD.

Производственный процесс

  1. Сделайте машинку для письма домашнего задания дома
  2. Создание монитора Ambilight с помощью Arduino
  3. Включение Alexa Control для потолочного вентилятора
  4. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  5. Управление монетоприемником с помощью Arduino
  6. Центр управления Arduino
  7. Arduino с Bluetooth для управления светодиодом!
  8. Роботизированная рука, напечатанная на 3D-принтере Arduino
  9. Управление увлажнителем Arduino
  10. Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика