Как Сделать Игровой Автомат Что Это Такое
Как сделать игровой автомат
Это не уникальная идея. Семь лет назад я подробно описал, как сделать центр ретро-забав на аркадном автомате на Habr, применяя Raspberry Pi. В то время я все еще осваивал Raspberry Pi и делал корпус с кнопками, но проекта на этом и завершил.
У Habr немало отличных статей о том, как сделать собственные слоты. Несколько из них приведены ниже:
Материалы по теме:
- Как Работают Автоматы
- Две одинаковые пары в покере
- Правила покера для начинающих с картинками
- Покер колоды комбинации
- Стрит в покере с тузом и двойкой
- Вероятность выпадения покер
- Покер без комбинаций
- Сколько карт в покере с джокером
- Автоматы Как В Игровых Залах
- Покер карты комбинации фото
DIY Gaming Arcade (Habr)
Home Arcade for the Rest of Us (Habr)
Подробные разборы:
- Покер простые правила
- Какие Бывают Игровые Автоматы
- Вероятность фулл-хауса
- Что значит комбинация покер
- Комбинации покера для новичков
- История Автоматов
- Покер правила игры фишки
- Понятные правила покера
- Как называются комбинации карт в покере
- Контакты
DIY Console Gaming (Habr)
... и ещё!
Так что вначале пройду легкую часть и покажу свой дизайн!
Дополнительные статьи:
- Шорт дек покер правила
- Что означает туз в покере
- Как Настраивают Игровые Автоматы
- Карточная игра покер правила
- Комбинация пары покер
- Что Значит BAR
- Какая комбинация в покере флэш рояль
- Покер в кости правила игры 5 кубиков
- Карта джокер в покере
Дизайн
Сначала необходимо спроектировать это устройство. Когда я начинал, у меня было в голове всего две принципы: я буду применять Raspberry Pi в качестве основного компонента аркадной автоматы и специализированные игровые переключатели, но я также хотел иметь возможность подключать геймпады, мышь и клавиатуру.
У автоматы должен быть дисплей. Для ретро-развлечений желательно соотношение сторон 4:3, но у меня его нет и мне не хотелось возиться с поиском. Ноутбук-дисплей подойдёт как достойная замена. У меня есть восьмилетний ноутбук (Fujitsu Siemens Amilo 3438G) с 17-дюймовым дисплеем. У него сломан VGA-порт, ОЗУ исчезла (я не знаю, где), и HDD снят. Для творческого подхода допустимо тоже включить динамическую подсветку экрана в рамках проекта, чтобы визуально повысить размер дисплея.
Теперь могу набросать макет, и на этот раз сделаю это в SketchUp.
Для людей, не увлекающихся 3D-графикой, создание макета аппараты в SketchUp может занять вечер. Точность инструмента несколько низкая, но возможно примерно с точностью около 1–2 сантиметров определить, как будет выглядеть ваша машина. Можно применить текстуры и начать процесс восхищения.
Для указанного проекта я в первую очередь буду задействовать имеющиеся сосновые доски, хотя у меня есть шанс применять MDF, древесноволокнистую плита, или фанеру. Планирую разделить проект на две части: верхняя часть будет «bartop» аппараты, нижняя — столик. Определил индивидуальную высоту стола 90 см, что устанавливает высоту переключателей стола на 105 см. Важно определить высоту стола в этом ситуации, потому что она зависит от роста пользователя машины, как будет зависеть монитор и пластину управления. Высота панели с кнопками обычно варьируется от 90 до 115 см. Цель — разместить монитор как можно ближе к игроку, чтобы погружение в игру было максимальным. В ситуации bartop данное не так, и экран будет установлен под углом 30 градусов, а щиток переключателей — под углом 15 градусов и с зазором в 5 см для подсвечивания LED и определения автоматы.
Заказывайте доски, уголки 30 x 30, шарниры разновидности пианино (250 мм), набор винтов (саморезы 3,5 x 16 мм), дверной замок, сетку, акриловое стекло и краску. Примерная потребность — 8 м распиленного панельного сырья и один комплект винтов. Панели будут черными, края и фаски фуксия. Я буду использовать краску для внутреннего зазора вместо ПВХ-кабеля, поскольку не нашёл нужного цвета. Черная краска покроет внутренние стороны пластин из-за видимого зазора подсветки. Открытые внутренние стороны панелей тоже требуется покрасить черной краской для согласованности и чтобы не конфликтовать с дизайном.
Убедитесь, что шаблоны точны для резки боковых пластин и панели кнопок. Я использовал модифицированную вариацию шаблонов Starcade (отдельные отверстия под переключатели и хот-клавиши введены, некоторые удалены). Исходная вариация тоже содержит крайне хорошую DIY-инструкцию с пошаговыми инструкциями.
Плотницкое дело
Режьте пластины и сверлите отверстия под переключатели, джойстики и колонки, применяя фостнеровское сверло или циркулярную пилу. Отверстия под клавиши — 24 мм, отверстия под джойстики — 14 мм, отверстия под динамики варьируются в зависимости от размера динамиков, но мои — 30 мм.
Крайки нужно отшлифовать и скруглить.
Отверстия требуется заполнить (черной краской) и края покрасить (лак-фуксия).
После того как плотницкие деятельности и покраска завершены, вы можете по своему усмотрению обработать лакированные щитка и края яхтенным лаком. Это те края, которые не будут обклеиваться фольгой. Это необязательный шаг для повышения долговечности и износостойкости щитков.
Электрика и электроника
Сначала я думал собрать автомат «из мусора» — задействуя всё, что было у меня от старой матрицы (даже от старого Raspberry Pi v1.0), что служил ретро-игровым центром последние семь лет (хотя у меня есть множество сломанных консолей) и готов был применять старый хлам. Но я понял, что указанное превысит обычный бюджет, и сборка машины должна быть выполнена правильно. Мне кроме того нужно было купить свежий Raspberry Pi, чтобы снизить искушение сэкономить деньги. Основываясь на прошлом опыте с Raspberry Pi v1.0, нельзя с уверенностью считать, что Raspberry Pi v1.0 будет надёжной рабочей лошадкой для развлекательной машины. Чтобы проиллюстрировать указанное, он либо не работает вовсе, либо развлечения MAME (аркада) вместе с значительным числом развлечений N64 и PS1 сильно лагают и становятся непригодными для развлечения. Проблема кроме того возникла бы с динамическим подсветлением с Hyperion, так как устаревшая RetroPie в сочетании с устарелими библиотеками, репозиториями и подобным создавали бы проблемы. Поэтому мы покупаем Raspberry Pi 4 с 4 ГБ, вместе с теплоотводами (а возможно и вентиляторами), карточку microSD на 64 ГБ, адаптер питания USB-C (3–4 А) и кабель microHDMI→HDMI, а кроме того матрицу.
Теперь нам нужно тщательно разобрать ноутбук.
Также требуется открутить матрицу, чтобы узнать её точную модель.
Мы постоянно заказываем LVDS-драйвер матрицы для ноутбука на AliExpress. Так как существует много вариантов драйверов и у большинства различаются конфигурации входа и выхода, мы постоянно проверяем описание, чтобы увидеть, пригоден ли LVDS-драйвер к матрице, и также просим продавца подтвердить. Для нашей автоматизации нам нужен вход HDMI и выход LVDS на матрицу, выход подсвечивания на матрицу и выход в внутренний усилитель с парой подключённых динамиков. Эта плата образца обладает 4-пиновый разъём с выходом на 2 динамика по 8 Ом, 1 В. Она рассчитана на питание от источника 12 В, 4 А. Мы закажем её отдельно, если она не идёт в комплекте с платой.
Выбор переключателей достаточно велик, чтобы удовлетворить вкус любого дизайна. У меня вплоть до есть несколько.
Мы тоже закажем 2 м адресной светодиодной ленты в формате SK9822 или APA012 с источником питания 2–6 А и закажем уголковые крепления.
Мы заказали светодиодную ленту SMD 3528 12 В длиной 1 м или более (в ней 60 светодиодов на метр и потребляет 4,8 Вт на метр) вместе с трансформатором на 15 Вт.
Ниже приведён список мелочей, каковые требуется заказать
- 1 шт. тройной электрический сетевой штепсель
- 1 шт. цепной переключатель длиной 5 м (в том числе, PVE 3x1.5)
- 1 шт. силовой разъём
- 1 м аудиокабеля (в том числе, 2x1)
- 1 шт. выключатель (уже имеется)
- 2 шт. динамика по 1 Вт 8 Ом
- 1 шт. разъём для питания/аудио (вида JST-ZH1.5)
- 2 шт. быстросъёмных коннектора TP-001B и выше
- 1 шт. корпус с вентилятором 12 В 120×120 мм
- Пайка, флюс и т. п. (при необходимости)
Наконец, наша автоматизация будет работать от mains. Мы сможем «активировать» её выключателем на передней пластины. Главный выключатель питает стандартную розетку на 220 В. Все остальные адаптеры будут включаться в неё. Адаптер 12 В (15 Вт) питается через иной проводник (к контактам). Светодиодная лента и вентилятор будут подключены к указанному адаптеру.
Сначала мы подаем питание на LVDS-драйверную плату и подключаем её к матрице через LVDS и питания освещения. HDMI соединяется к видеоприёмнику Raspberry Pi. В такой конфигурации матрица должна включиться и показать изображение. Как только она запустится, используйте пульт дистанционного управления для тонкой настройки цвета и яркости. Далее переходим к CN20 на плате. Подключаем его к JTS, а после этого аудиокабелем к соответствующим динамикам. Маршрут на моей плате таков: [+LEFT, GROUND, GROUND, +RIGHT]
Теперь переходим к динамическому подсвечиванию. Светодиодные ленты освещения (SK9822) необходимо разрезать на 4 участка, после этого соединить, чтобы получился квадрат с угловыми разъёмами. Угловые соединители присоединяются к 5V и GND, а кроме того к пинам GPIO 19 и 23 на Raspberry Pi, чтобы предотвратить мерцание. Светодиод освещения должен быть приклеен к матрице. Лента должна быть очень прочной, чтобы не отклеиться. У меня кроме того есть несколько кусочков ткани на плате, чтобы матрица прижалась к плате и не повредила её.
ПРОГРАММНАЯ КОНФИГУРАЦИЯ
Настройка RetroPie для задействования с Raspberry Pi стала довольно понятный. Нужно только загрузить системное изображение на microSD-карту, присоединить контроллеры и включить питание. К сожалению, вариация, какую мы используем, требует более продвинутой настройки.
Первым шагом является загрузка образа RetroPie для Raspberry Pi четвёртого поколения. Затем используйте BalenaEtcher или Win32 Disk Imager для записи образа на microSD-карту. Затем включите Raspberry Pi и задайте статический IP для облегчения переноса ROM.
Чтобы настроить статический IP, введите следующую команду
sudo nano /etc/dhcpcd.conf
Когда находитесь в конфигурационном файле, внесите последующие преобразования для статического IP:
interface wlan0 (или eth0, если вы используете Ethernet)
static ip_address=192.168.0.66/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
Чтобы включить SSH и SPI, введите следующую команду
sudo raspi-config
Здесь перейдите в Разрешения интерфейсов, включите их, сохраните и выйдите для перезагрузки Raspberry Pi.
ДИНАМИЧЕСКОЕ ПОДСВЕЧИВАНИЕ
После завершения этого вы можете разместить Hyperion для управления подсветкой либо с помощью оригинального Hyperion, либо Hyperion NG.
Чтобы разместить старую вариацию, загрузите installer-скрипт
```bash
wget https://github.com/hyperion-project/hyperion/blob/master/bin/install_hyperion.sh
```
Этот скрипт должен действовать на Raspberry Pi 3, но не поддерживает Raspberry Pi 4, потому вам необходимо переработать скрипт. Найдите следующую строку в скрипте и обновите её:
```bash
CPU_RPI=`grep -m1 -c 'BCM2708\|BCM2709\|BCM2710\|BCM2835' /proc/cpuinfo` # add BCM2711
```
Затем найдите и обновите
```bash
RPI_3=`grep -m1 -c BCM2710 /proc/cpuinfo`
```
На
```bash
RPI_4=`grep -m1 -c BCM2711` # add this line
```
Далее найдите следующую строку
```bash
elif [ $CPU_RPI -eq 1 ] && [ $RPI_3 -eq 1 ]; then
```
Становится
```bash
elif [ $CPU_RPI -eq 1 ] && [ $RPI_3 -eq 1 ] && [ $RPI_4 -eq 1 ]; then
```
Чтобы скрипт стал исполняемым, используйте команду
```bash
sudo chmod +x install_hyperion.sh
```
Затем запустите скрипт
Новый Hyperion NG гораздо удобнее для ваших нужд, но есть компромисс. Вам придётся собрать его самостоятельно. Следуйте приведённым ниже инструкциям:
# установка зависимостей
sudo apt-get update
sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libcec-dev libxcb-image0-dev libxcb-util0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-randr0-dev libxrandr-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev libjpeg-dev libturbojpeg0-dev libssl-dev zlib1
# на всякий ситуация, куда могли закончиться Hyperion
which hyperiond
# далее вам понадобится полный путь к нему
Чтобы зарегистрировать Hyperion NG как службу, вам придётся отредактировать или изготовить файл службы, hyperion.service. В файле включите следующее:
[Unit]
Description=Hyperion Systemd service
[Service]
Type=simple
User=root
Group=root
UMask=007
ExecStart=/usr/local/bin/hyperiond /etc/hyperion/hyperion.config.json
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
Затем просто (пере)загрузите службу
# убедитесь, что hyperion не запущен
systemctl status hyperion.service
Остановите и отключите службу, если hyperion запущен
sudo systemctl stop hyperion.service
sudo systemctl disable hyperion.service
# добавьте hyperion как службу, чтобы она запускалась при загрузке
sudo cp hyperion.service /etc/systemd/system/hyperion.service
sudo systemctl start hyperion.service
На этом Hyperion NG будет действовать. Доступ к веб-интерфейсу можно заработать по адресу:
http://192.168.0.66:8090
В веб-интерфейсе перейдите в Configuration -> LED Hardware -> LED Controller и укажите:
Controller type == apa102
RGB byte order == BGR
Затем сохраните и перейдите в Configuration -> LED Hardware -> LED Layout, чтобы настроить конфигурацию светодиодов. Они будут расположены инверсно к зрителю, так как находятся за матрицей.
Сохраните порядок светодиодов и укажите положение начального светодиода.
Убедитесь, что в Configuration -> Capturing Hardware -> Platform Capture вид = DispmanX. Кроме того, установите предпочтительные настройки в Image Processing.
В Configuration -> Effects -> Boot Effect/Color допустимо выбрать цветовой эффект для загрузки. Можно в том числе задать эффект загрузки для EmulationStation и сделать время загрузки более интересным, заполнив срок загрузки (какое допустимо задать продолжительностью 20 000–40 000 миллисекунд) увлекательным эффектом, пока не появится меню.
Вот и всё, перейдите в Configuration -> General и сохраните. Было бы полезно экспортировать конфигурацию в безопасное место. Наши последние новшества должны быть отражены в /etc/hyperion/hyperion.config.json. Если по каким‑то причинам новшества в конфигурации не отражаются, перезагрузите Pi после копирования экспортированной конфигурации.
Используйте эту команду
sudo shutdown -r now
Функция отображения функционирует только с подключенным монитором, поэтому учтите: если вы попытаетесь посмотреть журнал Hyperion и HDMI не подключен к Pi, вы увидите ошибки DispmanX. Если вы повторно подключите HDMI и захват, отображение начнет действовать, и индикаторы будут захватывать и отображать контент.
Настройки RetroPie
Что касается настроек оболочки, они в большинстве ситуаций зависят от вас. Есть множество статей по этой теме, и я приведу лишь пару «улучшений».
Во-начальных, добавим вариант воспроизводить музыку. Вам необходимо разместить mpg123:
sudo apt-get install mpg123
Теперь сделаем так, чтобы музыка воспроизводилась при загрузке. Сделайте следующее:
sudo nano /opt/retropie/configs/all/autostart.sh
И добавьте в конец
while pgrep omxplayer >/dev/null; do sleep 1; done
(sleep 10; mpg123 -Z /home/pi/bgm/*.mp3 >/dev/null 2>&1) &
Команды запуска при старте и завершении должны иметь два созданных файла:
sudo nano /opt/retropie/configs/all/runcommand-onstart.sh
И добавьте
pkill -STOP mpg123
Затем команда на завершение также должна иметь созданный файл:
sudo nano /opt/retropie/configs/all/runcommand-onend.sh
И добавьте
pkill -CONT mpg123
Теперь сделайте файлы исполняемыми
sudo chmod a+x /opt/retropie/configs/all/runcommand-onstart.sh
sudo chmod a+x /opt/retropie/configs/all/runcommand-onend.sh
Теперь отредактируйте .bashrc
sudo nano /home/pi/.bashrc
И перед строкой, какая говорит # RETROPIE PROFILE END, добавьте:
[[ $(tty) == "/dev/tty1" ]] && pkill mpg123
Также создайте каталог
mkdir /home/pi/bgm
Теперь можете добавлять музыкальные файлы для фона.
Теперь добавим загрузочное окно, что воспроизводится во период загрузки консоли. Просто скопируйте
Далее используйте scp/Winscp и т. д. для копирования ROM-развлечений в консоль (для Raspberry Pi/Linux-Unix/).
Чтобы добавить аркадные игры в RetroPie, скопируйте BIOS в тот же каталог, что и ROM. BIOS-файлы находятся на Emu-land. Аркадные игры сложнее добавлять, потому что требуется несколько версий эмулятора MAME и разных BIOS. Кроме того, ряд развлекательные развлечения требуют иные варианты эмуляторов. Чтобы разместить больше пакетов, перейдите в RetroPie Setup -> Manage Packages -> Manage optional packages (или Manage experimental packages).
Чтобы ваши азарта отображались корректно во frontend, вам понадобится активировать скрейпер развлечений. Пример скрейпера — Skyscraper. Чтобы установить Skyscraper, перейдите в RetroPie Config -> Manage Packages -> Manage optional packages, выберите Skyscraper, после этого Install from the pre-compiled binary. Затем, в терминале (или консоли), выполните следующую команду.
```bash
sudo ./RetroPie-Setup/retropie_setup.sh
```
Снова перейдите в Configuration / Tools и выберите Skyscraper. Затем выберите опцию GATHER и cache resources. Эта опция соберёт ресурсы для всех развлечений и может занять некоторое период.
Будет приятно иметьVIDEOS as screensavers тоже. Чтобы реализовать указанную возможность для нескольких развлечений, просто укажите путь к видео в параметре video. Если у пользователя включен параметр Random-video в интерфейсе Start Menu Options UI Screensaver Settings, аркада будет воспроизводить непредсказуемые видео из списка, указанного в параметре video. Конечно, можно иметь отдельное видео для любой развлечения, используя video scraper, но подумайте о затратах памяти. Поэтому скопируйте одно или несколько видео-дисплеи (в формате mp4) в, например, /home/pi/RetroPie/screensavers/ и настройте параметры для любой консоли (например, ZX Spectrum).
Инструкции говорят
</game>
</gameList>
Соединяя всё воедино, мы будем применять наклейки, чтобы придать внешнему виду нашего кастомного корпуса. С помощью графического редактора допустимо подготовить графику для печати. Мы можем задать размер печати и профиль CMYK. Размер печати можно разместить с плотностью пикселей 250–300 PPI, но мои исходные изображения имели плотность всего 95 PPI, что печать могла бы сделать немного размытой. К счастью, печать получилась аккуратной, и размытость незаметна.
Мы заказываем наклейки, напечатанные на самоклеящейся глянцевой бумаге, какая идет с требуемой ламинацией. Ламинация полезна на поверхностях, которые соприкасаются с игроками, что по крайней мере предлагает пластину переключателей. По возможности тоже ламинируем нижний слой пластины кнопок. Панель клавиш иногда имеет акриловую крышку, но я считаю это чрезмерным для бытового применения. Что касается вывески, возможно применять пленку, что либо прозрачная, либо полупрозрачна. К сожалению, у преобладающей части типографий, с которыми я работаю, не получается разумной расценки на мелкие заказы (около 20 x 50 см), в связи с этим пленка не вариант. Исходя из того, что я видел на практике, двухметровая светодиодная лента, размещенная за акриловой панелью, достаточно освещает, чтобы пропустить свет вплоть до через обычную пленку, приложенную к акрилу.
Какова польза применения полупрозрачной пленки?
Когда пленка приходит, наносим её на поверхность и используем ткань, чтобы выдавить воздух. Любая пленка, оставшаяся по краям, срезается ножом.
Мы также монтируем переключатели на панель управления. Гайки демонтируются с кнопок и снова монтируются в пластину управления. Каждая кнопка и её подсветка подключаются четырьмя проводами. Два провода — положительный и отрицательный. Джойстики прикручиваются самонарезающимися винтами. Идеи и клавиши вставляются в энкодеры с 4-контактными разъемами K1–K12. Конфигурацию клавиш не сложность, так как она выполняется автоматически при запуске EmulationStation. Единственное различие между игроками: у первого пользователя есть горячая клавиша, у второго — нет (и она не нужна).
Увидев энкодеры, вы заметите, что предусмотрено подключение ещё четырех кнопок, четырех тумблеров для турбо, авто, режим и очистка, и четырех 2-контактных разъёмов для 2-контактного джойстика, а тоже предусмотрено питание и прокладка проводов. В комплекте нет проводов и тумблеров, и так как выход Raspberry Pi — мини-USB, мы подсоединяем провода двух энкодеров к USB-портам Raspberry Pi.
Теперь по корпусу. Это самая простая часть, так как необходимо всего лишь просверлить ряд отверстия и соединить углы винтами, а после этого собрать корпус.
Матрица сидит вплотную к передней пластины.
Задняя панель содержит вентиляцию с направляющим шарниром и замком. Я добавил кулер 120 мм. Он шумит как старый мотоцикл, но быстро становится едва заметным. Кажется, он хорошо пригоден к корпусу. Эта вентиляция предоставляет доступ к сборке и обслуживанию внутренних электронных деталей. Все детали и провода зафиксированы зажимами, немало из которых видны через щели. Это комбинация с винтажной эстетикой хорошо пригоден к теме «киберпанк».
Мы режем акриловое стекло и щиток и размещаем её. Её можно закреплять навсегда винтами или клеем, но чтобы избежать беспорядка, я размещаю её на месте с нижней пластиной этикетки.
Мы помещаем стекло дисплея впереди на последнем этапе. Оно закрывает нижнюю этикетку, на что приклеены динамики, и скрываем динамики сеткой. Теперь можно включить устройство, и если кнопки не были настроены, допустимо включить их для воспроизведения.
Все ссылки в статье не являются спонсируемыми или оплачиваемыми, хотя мне бы хотелось, чтобы они были, и предназначены для того, чтобы показать части, что я использовал для сборки аркадного аппарата (или эквиваленты). Я не поддерживаю ни одного поставщика на Habr.
За исключением инструментов, компонентов, расходных заготовок, труда и логистики, рассчитанная стоимость аркадного аппарата составила около 24 000 рублей. Эта расценка сопоставима либо с нынешней консолью видеоигр, либо с готовым аркадным механизмом с PandoraBox, что допустимо найти на AliExpress. Однако указанный опыт бесценен по удовольствие от проектирования и сборки чего-то уникального.
Другие статьи
Правила легкого покера
Покерная игра начался как азартная раздача в Соединённых Штатах, но с тех пор превратился в серьезную игру с фанатами и игроками в разных странах.
Ежегодно проводятся немало новых турниров и соревнований, наиболее заметным из которых является Мировая серия покера (WSOP). Участники со всего мира соревнуются за крупный приз и шанс забрать банк золотую браслетку. Покерные матчи транслируются по телевидению, а некоторых участников даже приглашают на вечеринки и мероприятия в качестве почётных гостей. Самое лучшее в покере — это то, что не существует определённого типа игрока; с достаточной практикой любой может научиться читать оппонентов и контролировать эмоции. Однако есть некоторые основные приемы, которые каждый соперник должен знать до посадки за стол в эту игру. К ним относятся принципы и терминология.