
Классический пинсеттер — это полностью механизированный агрегат, функционально напоминающий автомат заряжания в бронетехнике. При попадании шара в кегли срабатывает оптический датчик (к слову, реагирующий на любое перекрытие луча). Следом опускается измерительная рамка с отверстиями, положение которых верифицируется фотодиодами или механическими щупами.
Полученная телеметрия передается на серверный узел — «ветерана» Dell OptiPlex 3020 образца 2014 года. Мы продолжаем массово закупать эти надежные машины для нашей сети из 12 клубов Brooklyn Bowl.
Наша цель — транслировать данные непосредственно в мобильное приложение игрока. Мы испробовали три различных стратегии интеграции, но каждый раз упирались в непреодолимую закрытость легаси-оборудования. Будучи не IT-специалистами, мы привлекали сторонних экспертов, но воз и ныне там.
В конечном итоге мы решили пойти путем реверс-инжиниринга модуля оцифровки сигналов, что фактически означает пересборку узла управления машиной. Это решение вряд ли можно назвать изящным или высокотехнологичным, однако оно демонстрирует стабильную работоспособность.
Давайте разберем, в каких именно аспектах мы столкнулись с трудностями.

Так выглядит техническая зона позади дорожек:

Краткий видеообзор принципа работы пинсеттера:
Базовая архитектура процесса:
— Дорожка, покрытая специализированным маслом для скольжения шара.
— Зона установки кеглей в конце дорожки.
— Удар шаром приводит к падению или смещению кеглей.
— После того как шар проходит через оптический барьер, машина делает паузу, опускает измерительную рамку и определяет конфигурацию оставшихся кеглей.

— Выполняется попытка «добить» оставшиеся кегли.
— Рамка повторно сканирует площадку для финального подсчета.

— Специальный механизм сметает сбитые кегли, отправляя их в систему возврата.

— В тыльной части система автозагрузки поднимает кегли вверх, откуда они поступают в «обойму» пинсеттера.



— Рамка опускает кегли в нужные позиции для следующего раунда.
В машине постоянно циркулируют 23 кегли: пока одни стоят на дорожке, другие подготавливаются, а 3 дополнительные — это страховой резерв на случай штатных заминок. Это число не случайно — оно выведено эмпирически как оптимум для бесперебойной работы механизма.

Большинство боулинг-центров используют механику Brunswick, а Dell 3020 выступает в роли административного сервера управления (Front Desk).


Машина транслирует сигналы датчиков матрицы наружу по кабелю. Однако сама она не оцифровывает данные: этим занимается промежуточный блок NextGen, преобразующий сигналы в логические события игры.


Два десятилетия назад концепции вроде IoT или промышленного Ethernet не были распространены. Поэтому блоки NextGen связаны цепочкой через проприетарный последовательный интерфейс (токовая петля). Данные передаются в «сыром» hex-формате, документация отсутствует как класс. Сервер постоянно опрашивает узлы, обновляет состояние матча и выводит счет на мониторы.






Основные препятствия:
— Закрытая экосистема: Производители вроде Brunswick и AMF изначально проектировали оборудование как «черный ящик», вынуждая покупать лицензии на любую интеграцию стороннего софта (мониторинг в баре, бонусные программы и т.д.).
— Технологический багаж: В основе лежат устаревшие базы данных FoxPro с постоянными блокировками записи и Sybase SQL Anywhere, требующая специфических драйверов ODBC, а учетные данные «зашиты» непосредственно в исполняемые файлы.
— Отсутствие событийной модели: Система не умеет передавать данные по запросу (push). Она постоянно спамит статусами, периодически корректируя предыдущие сообщения (например, сначала заявляя о падении 2 кеглей, а через мгновение — об их полном отсутствии). Синхронизация этих корректировок — настоящая головоломка.

Мы пробовали:
— Напрямую обращаться к БД сервера.
— Парсить сигналы NextGen.
— Внедрить компьютерное зрение для контроля дорожки.
— Пытались переписать логику работы NextGen.
Методы вроде OCR через HDMI-сплиттер, эмуляция принтера или сетевой сниффинг признаны малоэффективными. В итоге только отдельный аппаратный стенд для обработки «сырых» сигналов показал приемлемый результат. Вот первый и второй ролики с демонстрацией процесса.
Будем рады свежим идеям и профессиональным комментариям. Если вы знаете, как решить эту задачу изящнее, пишите в комментариях или на адрес rakhmeev@brooklynbowl.ru. Такое оборудование установлено в сотнях клубов страны, так что это потенциально масштабируемое решение для всей нашей сети.
_0_large.png)

