Оглавление:
- Шаг 1: создание кейса
- Шаг 2: построение механики флиппера
- Шаг 3: Размещение стен
- Шаг 4: Добавление блоков партитуры
- Шаг 5: Добавление контакта Game Over
- Шаг 6: сверление отверстий для кабелей
- Шаг 7: все подключаем
- Шаг 8: загрузка кода
Видео: Arduino: автомат для игры в пинбол: 8 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Поскольку мне всегда нравились и автоматы для игры в пинбол, и электроника, я решил построить свой собственный автомат для игры в пинбол. Я выбрал Arduino для программирования и электроники, потому что это очень доступная платформа, компактная и простая в использовании.
В этом руководстве я объясню свой процесс разработки, так что, возможно, один из вас, энтузиастов, сможет создать что-то подобное.
Шаг 1: создание кейса
Начнем с пинбольного автомата. Я сделал довольно простую конструкцию. Я отпилил нижнюю пластину и использовал 4 крошечных деревянных столбика по углам, чтобы соединить части стены. Размер вашего кейса - ваш собственный выбор, я решил сделать его немного меньше оригинального пинбольного автомата, так как не планировал добавлять какие-либо супер зрелищные дополнения, чтобы заполнить пространство. Я использовал оба винта и клей, чтобы сделать корпус максимально устойчивым. Сзади я просверлил два отверстия в полу для двух ножек, которые придадут автомату для игры в пинбол культовый наклон. Опять же, высота ног зависит от вас. Чем выше вы сделаете ноги, тем быстрее будет катиться мяч (вниз).
Шаг 2: построение механики флиппера
Поскольку я хотел ограничить стоимость этого проекта, я решил сделать полностью механические ласты вместо электронных. Если вас интересуют электронные ласты, вы можете использовать аналогичную конструкцию, но с подключенным к ней так называемым «соленоидом» (соленоиды с достаточной мощностью для управления ластами были для меня слишком дорогими).
Я начал с того, что просверлил два отверстия в основании для точки поворота обоих ласт. Я просверлил отверстия (на мой взгляд) слишком близко друг к другу, и это сделало игру в конце слишком простой. Так что будьте осторожны, не ставьте ласты слишком близко друг к другу, если вам не нужен простой стиль игры.
Я также просверлил два отверстия в обеих боковых стенках параллельно отверстиям ласт. Эти отверстия используются для двух пуговиц.
Я использовал пружины, чтобы вернуть ласты в исходное положение, и сделал поворотную конструкцию между ластами и кнопками, чтобы они вращались при нажатии кнопок. Чтобы пружины не оттягивали ласты слишком далеко, я вставил два винта, чтобы удерживать ласты в исходном положении.
Шаг 3: Размещение стен
Я разместил пару стен, чтобы перенаправить мяч на ласты. Их очень просто сделать. Просто просверлите 3 отверстия в нижней части корпуса и вставьте три деревянных штифта. Оберните резинку вокруг булавок, и все готово.
Шаг 4: Добавление блоков партитуры
Блоки очков - одна из самых важных частей автомата для игры в пинбол, поэтому убедитесь, что вы все делаете правильно. Я сделал три блока очков для своего пинбольного автомата, но, опять же, все зависит от вас.
Я отпилил небольшой кусок от метлы и обмотал его медной проволокой. Arduino будет постоянно запитывать этот медный провод с помощью 5 В. Я припаял четыре пружины ручки сбоку для лучшего контакта с мячом.
Принцип работы блоков оценки заключается в том, что мяч замыкает цепь, которая ведет к входному выводу на Arduino. Я приклеил алюминиевую фольгу к нижней части корпуса (НЕ ПРИКАСАЯСЬ К МЕДИ) и подключил фольгу к контакту на Arduino. Как только мяч попадает в медь и алюминий, цепь замыкается, и Arduino получает сигнал.
Я соединил все блоки надрезов вместе с помощью алюминиевой фольги, но имейте в виду, что липкая сторона НЕ проводит электричество.
Шаг 5: Добавление контакта Game Over
Внизу автомата для игры в пинбол, между ластами, я добавил игру поверх контакта. Каждый раз, когда мяч попадает в этот контакт, игрок теряет мяч. Конструкция, которую я сделал, очень похожа на блоки очков. Только здесь я использовал два винта, и снова кусок алюминиевой фольги снизу.
Шаг 6: сверление отверстий для кабелей
Прежде чем мы начнем подключать все к Arduino, нам нужно сначала просверлить пару отверстий для кабелей. Я просверлил отверстие в обоих кусках алюминиевой фольги, так что одно отверстие в алюминиевой фольге рядом с блоками для надрезания, а одно отверстие в алюминиевой фольге рядом с игрой при контакте.
Помимо этого, я также просверлил отверстие внизу слева, между стенами, для кабеля, ведущего к дополнительному сервоприводу шаровых затворов.
Также должно быть отверстие для кабеля, подключенного к ЖК-дисплею, внизу.
Шаг 7: все подключаем
Я сделал эту схему, чтобы лучше понять, где должны быть проложены все кабели. Крестики - это точки подключения кабелей. Я постарался спаять как можно больше, чтобы все было немного устойчивее и надежнее. Подключение займет некоторое время, но после того, как это будет сделано, вы почти у цели!
Шаг 8: загрузка кода
Загрузите следующий код в свой Arduino, чтобы ваш автомат для игры в пинбол ожил!
// Включаем библиотеку для lcd
#include #include
// Инициализируем выводы данных ЖК-дисплея
ЖК-дисплей LiquidCrystal (7, 8, 9, 10, 11, 12);
// Создаем сервопривод
Серво ballGateServo;
// Создаем переменные для контактов, которые мы используем
int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;
// Инициализируем игровые переменные для пинбольного автомата
int score = 0; int highscore = 500; bool highscoreReached = false; int шары = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;
// запускаем этот код один раз в первом кадре
void setup () {// Устанавливаем pinMode для контактов, которые мы используем pinMode (gameoverPin, INPUT); pinMode (scorePin, ВВОД);
// Инициализируем ЖК-дисплей, задав ширину и высоту
lcd.begin (16, 2);
// Присоедините сервопривод шарового затвора к соответствующему штифту
ballGateServo.attach (ballGateServoPin);
// Сбрасываем сервопривод ворот в исходное положение
ballGateServo.write (0); }
// Запускаем этот код каждый кадр
void loop () {// Захват входов вывода int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// Добавить к счету, если ввод получен
если (ScoreState) {тон (SpeakerPin, 1000); оценка + = 10; } else {noTone (4); }
// Вычитаем из шаров, если срабатывает игровая яма
если (gameoverState и! gameoverTriggered) {шары - = 1; gameoverTriggered = true; gameoverTimer = gameoverTimerDuration; }
// Запускаем таймер окончания игры, как только мяч не касается контакта перехода
если (! gameoverState) {если (gameoverTimer> = 1) {gameoverTimer - = 1; } еще {gameoverTriggered = false; }}
// Мигаем текст прохождения игры на ЖК-дисплее и сбрасываем счет и шары
если (шары <= 0) {lcd.setCursor (0, 0); для (int я = 5; я> = 1; я--) {lcd.clear (); задержка (250); lcd.print («ИГРА ЗАВЕРШЕНА»); lcd.setCursor (0, 1); lcd.print («Попробовать еще раз?»); задержка (250); } lcd.clear (); оценка = 0; ballGateServo.write (0); highscoreReached = false; шары = 3; }
if (score> highscore and! highscoreReached) {
lcd.setCursor (0, 0); для (int я = 5; я> = 1; я--) {lcd.clear (); задержка (250); lcd.print («НОВЫЙ ВЫСОКИЙ ЭКСКУРС»); lcd.setCursor (0, 1); lcd.print («Внезапная смерть!»); задержка (250); } lcd.clear (); шары = 1; ballGateServo.write (120); рекорд = оценка; highscoreReached = true; }
// Обновляем рекорд, если текущий результат выше
если (оценка> результат) {рейтинг = оценка; }
// Устанавливаем курсор на строку 0
lcd.setCursor (0, 0); // Выводим текущий (высокий) результат на ЖК-дисплей if (score <= 0) {lcd.print ("Highscore:" + String (highscore) + ""); } else {lcd.print ("Оценка:" + Строка (оценка) + ""); }
// Устанавливаем курсор на строку 1
lcd.setCursor (0, 1);
// Вывести на ЖК-дисплей текущее количество шаров
lcd.print ("Шарики:" + Струна (шары)); }
Рекомендуемые:
(ОБНОВЛЕНИЕ - ЕСТЬ НЕБОЛЬШАЯ ПРОБЛЕМА) USB-КОНТРОЛЛЕР ИГРЫ ДЛЯ ПК: 10 шагов (с изображениями)
(ОБНОВЛЕНИЕ - ЕСТЬ НЕБОЛЬШАЯ ПРОБЛЕМА) USB-КОНТРОЛЛЕР ИГРЫ ДЛЯ ПК: ИГРОВОЙ КОНТРОЛЛЕР ДЛЯ ЛЮБОЙ ИГРЫ (ПОЧТИ)
Ролик для игры в кости Mason Jar: 5 шагов (с изображениями)
Mason Jar Dice Roller: Вот отличный проект на выходные, если вы планируете играть в какие-либо игры, связанные с настольными играми или игральными костями. Для создания проекта вам понадобится сервопривод непрерывного вращения, аркадная кнопка и плата arduino nano или ESP8266, кроме того, вам понадобится 3D-компьютер
Автомат для игры в пинбол на Arduino: 13 шагов (с изображениями)
Автомат для игры в пинбол Arduino, который играет сам !: «Автомат для игры в пинбол, разве это не лишает его удовольствия?» Я слышал, вы спросите. Может быть, если вам не нравятся автономные роботы, может. Я, однако, очень люблю создавать роботов, которые могут делать крутые вещи, а этот
Настольный пинбол-автомат с использованием встроенной платформы Evive - Arduino: 18 шагов (с изображениями)
Настольный пинбол-автомат с использованием встроенной платформы Evive - Arduino: еще один уик-энд, еще одна захватывающая игра! И на этот раз это не что иное, как всеми любимая аркада - пинбол! Этот проект покажет вам, как легко сделать свой собственный автомат для игры в пинбол в домашних условиях. Все, что вам нужно, это компоненты от Evive
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов
SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития