Страйкбольный дробовик "Убойник" из серии игр Metro

litarb

✩✩✩✩✩✩✩
13 Фев 2022
1
1
Всем привет! У меня однажды в голову ударила идея сделать страйкбольный дробовик из серии игр Metro. Одной скучной ночью эта идея пришла мне в голову.
Пока у меня есть код для ардуино, но он работает как пулемет, но лично мне хочется чтобы он стрелял одиночным выстрелом. Пока все только в голове, но я попробую описать принцип действия.
Итак, имеется 2 кнопки,один предохранитель,второй в роли спуска; два мосфета, пинающие соленоиды; ардуино нано; планируется раздельное питание на 5 в и на 12 в
Кнопка-предохранитель(BTN_SAFE) не дает сделать случайный выстрел, кнопка-спуск(BTN_TRG) отвечает за выстрел, один мосфет-ударник(HITTER)пинает соленоид, ударяя какой-нибудь железкой по поршне в патроне, и с задержкой(пока для начала пол секунды) мосфет-поршень(MOVER) толкает ударник со стреляной гильзой назад и, возвращаясь назад, подхватывает новый патрон из магазина и запихивает в патронник за один выстрел
Я сделал код, нашел напарника, он немного сделал покрасивее
Пока код на 16 февраля в таком состоянии:

код для убойника:
#define HITTER 3      // пин ударника-соленоида (мосфет 1)
#define MOVER 5      // пин затвораного соленоида (мосфет 2)
#define BTN_TRG 4   // пин спуска
#define BTN_SAFE 2 //пин предохранителя

void setup() {
  pinMode( HITTER, OUTPUT);           //пин ударника-соленоида как выход
  pinMode( MOVER, OUTPUT);           // пин затвора-соленоида как выход
  pinMode( BTN_SAFE, INPUT_PULLUP); // ПИН ПРЕДОХРАНИТЕЛЯ КАК ВХОД
  pinMode( BTN_TRG, INPUT_PULLUP); // пин спуска как выход
}

void loop() {
  if  (digitalRead(BTN_SAFE) == 0)  {          //если предохранитель снят
    if (digitalRead(BTN_TRG) == 0) {          //если произошло нажатие кнопки
      fire();
      delay(500);
    }
  }
}

void fire() { 
 
  digitalWrite(HITTER, 0);        // срабатывание соленоида-ударника
  delay(500);                    //задержка чтобы шары вылетели
  digitalWrite(HITTER, 1);      //переключение соленоида-ударника в исходное состояние
  digitalWrite(MOVER, 0);      //сдвиг соленоида-затвора назад для перезарядки
  delay(500);                 //задержка для выталкивания  пустой гильзы и подачи новой
  digitalWrite(MOVER, 1);    // возвращение соленоида в исходное состояние

}

Что сделано?
-Код для дробовика который работает как пулемет


Что еще нужно сделать?
-Доделать код, чтобы самозарядный дробовик не превратился в пулемет
-Сделать хотя бы для теста механизмы заряжания, примыкания механизма и прочее.
-Реализовать это все хотя бы в одном экземпляре, с возможностью созданий информаций для копирования/улучшения имеющегося

Понимаю ли я, что проект будет открыты?
-Да, потому что это как минимум будем не красиво т к другим потраченное время и силы будет жалко, если результаты я закопаю и приберу себе

Кто нам нужен?
-Люди с умением писать код для ардуино
-Люди с 3д принтерами
-Люди, которые смогут образовать все в 3д модель для печати

А что за схема?
Вот
unknown-942.jpg
 
  • Лойс +1
Реакции: IvanTopGaming