Arduino-пинбол: постройте свой игровой автомат своими руками
Компоненты и материалы
| Arduino Mega 2560 | 1 | |
| LCD-дисплей 2-pin (I2C/Serial, Adafruit) | 1 | Для счёта и номера шара |
| Блок питания 24V | 1 | Для флипперов, бамперов, слайнгшотов |
| Датчик силы (Force Sensor, Adafruit) | 1 | Определение потери шара |
| Pop Bumper Assembly (сборка поп-бампера) | 1 | |
| Pop Bumper Switch (контакт бампера) | 1 | |
| Target Switch (мишень) | 1 | |
| Rollover Switch (ролловер) | 1 | |
| Flipper Assembly (флиппер) | 1 | |
| LED-лампы (пинбольные) | 1 набор |
О проекте
Построение пинбола на Arduino — совмещение столярки, механики, электроники и программирования. Заняло ~6 месяцев частичной работы. Информации в сети мало, поэтому автор делится опытом. Главное правило: прототипируйте каждый узел на лишнем фанере перед монтажом в корпус.
Корпус
- Фанера под дуб (20×23 дюйма фронт/бэк, 20×47 боковины).
- Сборка на скобах (biscuit joiner) + клей. Полка 1 дюйм от дна — для БП (не клеить, для расширения).
- Игровое поле: 22×42 дюйма, береза ¼ дюйма, ламинированное фото NASA.
- Ноги — регулируемые: деревянные, в сверленную дырку 12 дюймов эпоксидкой закреплена гайка M10, шток с опорой. Угол наклона 1–7° регулируется высотой ног.
- Крышка — рама из дуба, оргстекло (плексиглас) в пазе, пианино-петель, LED-подсветка под крышкой.
Электроника и Arduino
Arduino Mega 2560 выполняет 4 задачи:
- Опрос контактов (targets, rollovers, pop bumpers, slingshots).
- Управление лампами (включение при попадании).
- Подсчёт очков и бонусов (при закрытии всех мишеней одного типа — мигание и повышение ценности).
- Вывод счёта и номера шара на LCD (SoftwareSerial на TX Pin 17).
Подключение контактов
Простые контакты (таргеты, ролловеры) — к цифровым входам с INPUT_PULLUP. Срабатывание = LOW.
Pop Bumper питание 24V, контакт даёт высокое напряжение → нужен делитель напряжения на аналоговый вход Arduino (порог >500 из 1023).
Питание
24V БП → шины (bus bars) под игровым полем. 16 AWG для 24V, 22 AWG для сигналов Arduino.
Механические узлы (закупаются как запчасти для пинбола)
- Плунжер (Ball Shooter) — отверстие во фронте, выравнивание по центру шара (1 1/16 дюйма).
- Флипперы — схема подключения катушек и EOS-контактов (см. фото).
- Слайншоты (Slingshots) — полные сборки, резиновые кольца, металлические рельсы (автор согнул из хромированной проволоки).
- Pop Bumpers — 3 отверстия (2 штока + вал контакта). Шар давит вал → контакт → катушка → кольцо отбрасывает шар.
- Targets, Rollover, Lamps — стандартные пинбольные детали, схемы одинаковые.
Код (Arduino)
Основной цикл опрашивает 8 таргетов, 3 ролловера, 4 поп-бампера (аналогово), 2 контакта пуска шара, датчик силы. Обрабатывает очки, бонусы, мигание ламп, конец игры (5 шаров). Вывод на LCD через SoftwareSerial.
// Ключевые константы и массивы
const int TxPin = 17;
long Score = 0, OldScore = 0;
long TargetVal = 1, PopVal = 1, RollVal = 10;
int Targets[8], Rolls[3], Pops[4];
int Ball = 0, Shot = 0, Lost = 0, Pressure = 1024;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(255, TxPin);
void setup() {
// пины таргетов 2-9, ролловеров 10-12, пуск 15-16, LCD 17
// лампы таргетов 32-39, ролловеров 40-42, попов 50-53
mySerial.begin(9600); mySerial.write(12); mySerial.write(17); // clear, backlight on
// pinMode для всех входов INPUT_PULLUP, выходов OUTPUT
}
void loop() {
// Опрос таргетов (2-9)
for (int i=0;i<8;i++) if (digitalRead(i+2)==LOW) { Targets[i]=1; Score+=TargetVal; digitalWrite(i+32,HIGH); delay(10); break; }
// Проверка все ли таргеты зажжены -> мигание, TargetVal*=5
// Опрос ролловеров (10-12) -> Score+=RollVal, лампы 40-42, бонус Score*=2, RollVal*=10
// Опрос поп-бамперов (аналог 0-3 >500) -> Score+=PopVal, лампы 50-53, бонус PopVal*=2
// Пуск шара (пины 15,16) -> Ball++, сброс при Ball==6
// Датчик силы (A7) -> потеря шара, Game Over при Ball==5: мигание всех ламп, "Game Over!!!" на LCD
// Вывод счёта и Ball на LCD при изменении
}
Полный код в разделе Code.
Схема подключения
Упрощённая схема (PNG) — показано подключение одного элемента каждого типа. Полная схема слишком громоздка.
Производственный процесс
- Умный выключатель питания AC под управлением SMS с Raspberry Pi и Hologram
- Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
- Настольная RGB-лампа с управлением жестами – Интерактивное беспроводное освещение
- Создание ультразвукового левитатора на Arduino: пошаговое руководство
- Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
- Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
- Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
- Умный беспроводной выключатель света: Arduino-контроллер для удаленного управления
- Голосовой робот на Arduino Nano: Управление речью через Bluetooth
- DIY Arduino Smartwatch: самодельные умные часы в стиле Apple Watch