Автоматический стрелок из лего
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 4 | |||
![]() |
| × | 1 | |||
| × | 4 | ||||
![]() |
| × | 1 |
Необходимые инструменты и машины
![]() |
|
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Этот проект о том, чтобы Lego Cannons стреляли автоматически. Мне нравится играть с лего, и мне нравится использовать Arduinos, поэтому я решил заняться этим проектом в свободное время. Сервомоторы с прикрепленными к ним рогами вращаются, нажимая на рычаг и стреляя из пушки. Отличный первый, второй или третий проект для новичков!
Это пошаговое руководство о том, как это сделать.
Шаг 1. Аппаратное обеспечение
Шаг 1 Часть 1: Оборудование Основы
Начните с 5V, идущего к положительно заряженному ряду, и GRND, идущего к отрицательно заряженному ряду. Это будет выглядеть так -

Шаг 1, часть 2. Подключение сервопривода №1
Сервопривод имеет три провода:оранжевый / желтый (сигнальный) займет слот в ЦИФРОВОМ (PWM ~), красный (питание) подключится к VIN (который является любым контактом в положительном ряду), а черный / коричневый провод (GRND) пойдет к отрицательно заряженному ряду, подключенному к выводу GRND на Uno. Цифровой вывод, который я использовал для своего первого сервопривода, - 7. Вот как выглядит схема при подключении первого сервопривода -

Шаг 1, часть 3. Подключение остальных сервоприводов
Как только вы освоитесь с сервоприводами, все остальное будет проще простого. Однако следует отметить одну вещь:вы должны соответствовать цифровым контактам, которые вы прикрепили к сервоприводу в коде.
Например, код (который можно найти внизу страницы) гласит:
secondCannon.attach (8);
Следовательно, второй сервопривод должен быть подключен к цифровому выводу 8.
Таким же образом третий сервопривод должен быть подключен к цифровому выводу 6, а четвертый - к девятому цифровому выводу.
Однако их можно изменить в любом порядке. Просто убедитесь, что вы меняете как аппаратное, так и программное обеспечение для единообразия, иначе код не будет работать.
Вот как должна выглядеть схема для работы с кодом, представленным внизу:

Поздравляю! Вы официально завершили аппаратную часть этого проекта.
Шаг 2. Программное обеспечение
Теперь скопируйте и вставьте код внизу страницы в эскиз Arduino и загрузите его. Перед загрузкой кода убедитесь, что у вас есть библиотека Servo, иначе она не сработает! Ниже приведено пошаговое руководство, объясняющее код и его значение при запуске программы.
#include // Включение библиотеки для ServosServo firstCannon; // Определение Первой Пушки как ServoServo secondCannon; // Определение второй пушки как ServoServo thirdCannon; // Определение Третьей Пушки как ServoServo 4thCannon; // Определение четвертой пушки как серво
Этот код устанавливает Servo.h
библиотека, которая будет играть фундаментальную роль в коде. Это можно показать в следующих строках, используя библиотеку для определения четырех пушек как сервоприводов или двигателей, которые можно поворачивать на 180 градусов.
void setup () {// Код установки или код, который запускается только один раз Serial.begin (9600); // Запуск последовательной связи Serial.println («Защищай клонов! Установите защиту!») // Печатает что-то в последовательном мониторе firstCannon.attach (7); // Присоединяем цифровой контакт 7 к первой пушке secondCannon.attach (8); // Присоединяем цифровой контакт 8 ко второй пушке thirdCannon.attach (6); // Присоединяем цифровой контакт 6 к третьей пушке 4thCannon.attach (9); // Присоединяем цифровой вывод 9 к четвертой пушке}
void setup ()
код используется практически в любом проекте Arduino, и это код, который запускается только один раз. В этом случае мы запускаем последовательную связь новой строки со скоростью 9600 бод. Затем мы печатаем данные в Serial Monitor. Чтобы запрограммировать сервоприводы, мы должны связать их имена с соответствующими цифровыми выводами. Это цель .attach ()
кусок кода.
void loop () {// Код цикла или код, который запускается бесконечное количество раз Serial.println («Начало последовательности запуска») // Выводит что-то в Serial Monitor firstCannon.write (180); // Поворачиваем первый сервопривод на 180 градусов, вызывая задержку первой пушки (100); // Ждем 1/10 секунды firstCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду secondCannon.write (180); // Поворачиваем второй сервопривод на 180 градусов, вызывая задержку второй пушки (100); // Ждем 1/10 секунды secondCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду thirdCannon.write (180); // Поворачиваем третий сервопривод на 180 градусов, вызывая задержку третьей пушки (100); // Ждем 1/10 секунды thirdCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду 4thCannon.write (180); // Поворачиваем первую четвертую на 180 градусов, вызывая задержку четвертой пушки (100); // Ждем 1/10 секунды 4thCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду Serial.println ("Все пушки выстрелили"); Serial.println («Подготовка к перезагрузке»); задержка (10000); Serial.println («Перезагрузка завершена. Подготовка к повторному выстрелу»)}
Это последний фрагмент кода, в котором используется void
loop ()
функция, которая позволяет запускать следующий код бесконечное количество раз. Затем мы печатаем в Serial Monitor, что пушки собираются выстрелить. Сервоприводы для каждой пушки должны вращаться на 180 градусов, а затем по очереди возвращаться в исходное положение. После этого должно пройти 10 секунд (время перезагрузки), пока процесс не повторится снова.
Если у вас есть какие-либо другие проблемы при загрузке кода, вы можете прокомментировать в разделе комментариев, и я отвечу как можно скорее. Если это сработает, переходите к следующему шагу.
Шаг 3. Установка
На последнем этапе требуются пушки лего и старомодная обычная лента. Пушка лего выглядит так -

Запустите код. Посмотрите, в какую сторону вращается сервопривод. Прикрепите сервопривод к пушке лего так, чтобы его траектория установила курс на столкновение с рычагом наверху пушки на картинке выше.
Молодец! Вы официально завершили этот проект. Как я уже сказал, оставляйте комментарии в разделе ниже, если у вас есть какие-либо вопросы.
Если вам понравился этот проект, посмотрите эти ссылки -
https://create.arduino.cc/projecthub/342600/basketball-hoop-with-buzzer-using-an-arduino-693bad?ref=user&ref_id=1536504&offset=1
https://create.arduino.cc/projecthub/ShreyanR/soundbox-826a56
Код
- Кодекс стрелка из Lego Gun
Код Lego Gun Shooter C / C ++
Вставьте это в Arduino IDE#include// Включая библиотеку для ServosServo firstCannon; // Определение Первой Пушки как ServoServo secondCannon; // Определение второй пушки как ServoServo thirdCannon; // Определение Третьей Пушки как ServoServo 4thCannon; // Определение четвертой пушки как сервоида setup () {// Код установки или код, который запускается только один раз Serial.begin (9600); // Запуск последовательной связи Serial.println («Защищайте клонов! Установите защиту!») // Распечатайте что-нибудь в последовательном мониторе firstCannon.attach (7); // Присоединяем цифровой контакт 7 к первой пушке secondCannon.attach (8); // Присоединяем цифровой контакт 8 ко второй пушке thirdCannon.attach (6); // Присоединяем цифровой контакт 6 к третьей пушке 4thCannon.attach (9); // Присоедините цифровой вывод 9 к четвертой пушке} void loop () {// Код цикла или код, который выполняется бесконечное количество раз Serial.println ("Начало последовательности стрельбы") // Распечатайте что-нибудь в Serial Monitor firstCannon. написать (180); // Поворачиваем первый сервопривод на 180 градусов, вызывая задержку первой пушки (100); // Ждем 1/10 секунды firstCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду secondCannon.write (180); // Поворачиваем второй сервопривод на 180 градусов, вызывая задержку второй пушки (100); // Ждем 1/10 секунды secondCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду thirdCannon.write (180); // Поворачиваем третий сервопривод на 180 градусов, вызывая задержку третьей пушки (100); // Ждем 1/10 секунды thirdCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду 4thCannon.write (180); // Поворачиваем первую четвертую на 180 градусов, вызывая задержку четвертой пушки (100); // Ждем 1/10 секунды 4thCannon.write (0); // Вернуть сервопривод в исходное положение для подготовки к задержке перезагрузки (1000); // Ждем 1 секунду Serial.println ("Все пушки выстрелили"); Serial.println («Подготовка к перезагрузке»); задержка (10000); Serial.println («Перезагрузка завершена. Подготовка к стрельбе снова»)}
Схема

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