Внимание! Присутствуют идеи, явно опережающие время.
Общаясь с нашим сотрудником, который является специалистом в области программирования контроллеров (имя которого я оставлю в секрете по морально-этическим соображениям), я спросил:
– «А что можно написать на СПК?»
– «Да что угодно, это свободно-программируемое устройство.»
– «А игру можно написать?»
– «Да, можно.»
– «Подержи моё пиво!»
И вот я преступил к написанию, наверное, первой в мире игры на СПК. При том что я не программист, и никогда этим не занимался.
Оборудование, которое было использовано:
СПК107 – Контроллер с сенсорным экраном 7” для локальных систем.
БП30Б-Д3-24 – Блок питания для промышленной автоматики.
МК110-224.8Д.4Р – Модуль дискретного ввода/вывода (с интерфейсом RS-485).
MTB2-PE5 – Корпус кнопочных постов MTB2-PE.
MTB2-BAZ112 – Кнопки с плоским толкателем, с пружинным возвратом 3 шт.
MTB2-BDZ133 – Переключатель с короткой рукояткой черный, 3 положения 2NO, с фиксацией.
MT22-A14 – Сигнальная лампа, 24V AC/DC, цвет красный, 1шт.
За основу взята игра «динозаврик» из браузера google chrome.
Цель игры: прыгать через препятствия.
При включении СПК отображается стартовый экран с общей информацией и одной кнопкой «Играть». Нажимая на которую, пользователь переходит на второй экран где и происходит весь «экшн».
На втором (игровом) экране расположено три кнопки: старт, прыжок и перезапуск игры после аварии. В левом верхнем углу отображается текущий счет. Эффект движения достигается за счет перемещения дороги и преград по оси Х в отрицательную сторону. Прыжок мотоцикла сделан по такому же принципу, только перемещение происходит по оси Y и с небольшим вращением относительно центра. В процессе игры скорость движения дороги и препятствий увеличивается.
Как оказалось, при нажатии на экран ответ от кнопок был очень долгим. Было принято решение управлять игрой по сети RS485. Под руку попался модуль МК110-224.8Д.4Р не требующий внешнего питания для кнопок. Так как в данном модуле присутствуют дискретные выходы, один из них (выход 1) был задействован для отображения аварии. Корпус кнопочных постов выполнил роль «эргономичного геймпада», в котором расположились кнопки управления, переключатель подачи питания и сигнальная лампа аварии.
Ну и конечно геймплей:
Но почему же «идеи, явно опережающие время»?
Потому, что:
– «СПК не для игр, а для автоматизации!»
Спасибо всем, кто оказал помощь в программировании и просто принимал участие в разработке данного проекта.
Ниже приложены файлы программы: готовый загрузочный проект для загрузки с помощью Flash накопителя и файл экспорта. Для тех кому интересно что внутри.
Настройки модуля:
Скорость – 115200.
Адрес – 16.
Тип протокола определяется прибором автоматически. (Modbus RTU)
Назначение входов/выходов:
Вход 1: Прыжок.
Вход 2: Старт.
Вход3: Перезапуск игры.
Выход 1: Авария.
Загрузка игры на СПК с помощью Flash накопителя:
1. Flash носитель должен быть отформатирован в FAT32.
2. В корне носителя поместить папку с названием “app” (из архива).
3. Подключить Flash к СПК.
4. Войти в загрузочное меню.
5. Выполнить пункт «обновить проект».
6. Через некоторое время на СПК запустится обновленный проект.
7. Извлечь Flash. Новый проект уже является загрузочным и сохранится при отключении питания.