Автоматическая LEGO Star Wars пушка на Arduino Uno
Компоненты и материалы
| Компонент | Количество | Примечание |
|---|---|---|
| Arduino UNO | 1 | Использовал эту плату, но подойдёт любой Uno |
| Микросерво SG90 | 4 | Двигатели для курков пушек |
| Перемычки | 1 комплект | |
| LEGO Star Wars Shootable Cannon | 4 | Сами пушки из наборов LEGO |
| Макетная плата | 1 |
Необходимые инструменты
- Изолента (любая лента подойдёт, не обязательно электроизоляционная)
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Проект о том, как заставить LEGO-пушки стрелять автоматически. Люблю LEGO и Arduino — решил совместить в свободное время. Сервоприводы с крепёжными рычагами вращаются, задевают курок и выстреливают. Отличный первый/второй/третий проект для новичков!
Пошаговое руководство.
Шаг 1: Железо
Часть 1: Основы питания
На макетке: 5В на положительную шину, GND на отрицательную.
Часть 2: Подключение серво №1
У сервы 3 провода: оранжевый/жёлтый (сигнал) — на PWM-пин (D7), красный (питание) — на VIN (любой пин положительной шины), чёрный/коричневый (земля) — на отрицательную шину (GND).
Часть 3: Остальные сервы
Принцип тот же. Важно: нумерация пинов в коде должна совпадать с подключением.
В коде (внизу страницы):
secondCannon.attach(8);
thirdCannon.attach(6);
fourthCannon.attach(9);
Значит: серво 2 → D8, серво 3 → D6, серво 4 → D9. Порядок можно менять, но и в железе, и в коде одновременно.
Итоговая схема для данного кода:
Железо готово!
Шаг 2: Софт
Скопируйте код ниже в Arduino IDE, загрузите. Обязательно установите библиотеку Servo.h (идёт в комплекте).
Разбор кода:
#include <Servo.h>
Servo firstCannon, secondCannon, thirdCannon, fourthCannon;
Подключаем библиотеку, объявляем 4 серво.
void setup() {
Serial.begin(9600);
Serial.println("Defend the Clones! Set up the defenses!");
firstCannon.attach(7);
secondCannon.attach(8);
thirdCannon.attach(6);
fourthCannon.attach(9);
}
setup() выполняется раз: запуск Serial, вывод сообщения, привязка серв к пинам.
void loop() {
Serial.println("Beginning firing sequence");
firstCannon.write(180); delay(100); firstCannon.write(0); delay(1000);
secondCannon.write(180); delay(100); secondCannon.write(0); delay(1000);
thirdCannon.write(180); delay(100); thirdCannon.write(0); delay(1000);
fourthCannon.write(180); delay(100); fourthCannon.write(0); delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000);
Serial.println("Reloading Complete. Preparing to fire again");
}
loop() бесконечно: по очереди поворачивает каждую серву на 180° (выстрел), возвращает в 0° (перезарядка), пауза 1 сек между выстрелами, 10 сек — перезарядка всего комплекта.
Если проблемы с загрузкой — пишите в комментариях.
Шаг 3: Монтаж
Нужны LEGO-пушки и обычная лента. Пушка выглядит так:
Запустите код. Посмотрите, куда поворачивается серва. Приклейте серву к пушке так, чтобы её рычаг ударял в курок (как на фото).
Готово! Вопросы — в комментариях.
Если понравилось, посмотрите мои другие проекты:
Код
Lego Gun Shooter Code (C/C++)
#include <Servo.h>
Servo firstCannon, secondCannon, thirdCannon, fourthCannon;
void setup() {
Serial.begin(9600);
Serial.println("Defend the Clones! Set up the defenses!");
firstCannon.attach(7);
secondCannon.attach(8);
thirdCannon.attach(6);
fourthCannon.attach(9);
}
void loop() {
Serial.println("Beginning firing sequence");
firstCannon.write(180); delay(100); firstCannon.write(0); delay(1000);
secondCannon.write(180); delay(100); secondCannon.write(0); delay(1000);
thirdCannon.write(180); delay(100); thirdCannon.write(0); delay(1000);
fourthCannon.write(180); delay(100); fourthCannon.write(0); delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000);
Serial.println("Reloading Complete. Preparing to fire again");
}
Схемы
Производственный процесс
- Универсальный скотч: прочность, гибкость и бытовое применение
- Скотч: история, производство и экологическое воздействие
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
- DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- Гигантский анимированный LEGO-человечек: игра «Операция» на Arduino
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- SunGlass-BOT: Умные солнцезащитные очки с авто-подстройкой под свет
- Оптимизированные решения питания для проектов на Arduino