PDA

Просмотр полной версии : Игра на СПК107



d.bort
13.09.2019, 19:26
Внимание! Присутствуют идеи, явно опережающие время.


Общаясь с нашим сотрудником, который является специалистом в области программирования контроллеров (имя которого я оставлю в секрете по морально-этическим соображениям), я спросил:


– «А что можно написать на СПК?»
– «Да что угодно, это свободно-программируемое устройство.»
– «А игру можно написать?»
– «Да, можно.»
– «Подержи моё пиво!»:)

И вот я преступил к написанию, наверное, первой в мире игры на СПК. При том что я не программист, и никогда этим не занимался.


Оборудование, которое было использовано:
СПК107 (https://owen.ru/product/spk107) – Контроллер с сенсорным экраном 7” для локальных систем.
БП30Б-Д3-24 (https://owen.ru/product/bloki_pitaniya_dlya_promishlennoj_avtomatiki) – Блок питания для промышленной автоматики.
МК110-224.8Д.4Р (https://owen.ru/product/moduli_diskretnogo_vvoda_vivoda_s_interfejsom_rs_4 85) – Модуль дискретного ввода/вывода (с интерфейсом RS-485).
MTB2-PE5 (https://owen.ru/product/meyertec_korpusa_knopochnih_postov) – Корпус кнопочных постов MTB2-PE.
MTB2-BAZ112 (https://owen.ru/product/meyertec_metallicheskaya_seriya_ip65) – Кнопки с плоским толкателем, с пружинным возвратом 3 шт.
MTB2-BDZ133 (https://owen.ru/product/meyertec_metallicheskaya_seriya_ip65) – Переключатель с короткой рукояткой черный, 3 положения 2NO, с фиксацией.
MT22-A14 (https://owen.ru/product/meyertec_signal_nie_ustrojstva_monoblok) – Сигнальная лампа, 24V AC/DC, цвет красный, 1шт.



За основу взята игра «динозаврик (http://chrome://dino/)» из браузера google chrome.

Цель игры: прыгать через препятствия.


https://owen.ru/forum/attachment.php?attachmentid=44643&stc=1


При включении СПК отображается стартовый экран с общей информацией и одной кнопкой «Играть». Нажимая на которую, пользователь переходит на второй экран где и происходит весь «экшн».



https://owen.ru/forum/attachment.php?attachmentid=44644&stc=1



На втором (игровом) экране расположено три кнопки: старт, прыжок и перезапуск игры после аварии. В левом верхнем углу отображается текущий счет. Эффект движения достигается за счет перемещения дороги и преград по оси Х в отрицательную сторону. Прыжок мотоцикла сделан по такому же принципу, только перемещение происходит по оси Y и с небольшим вращением относительно центра. В процессе игры скорость движения дороги и препятствий увеличивается.


https://owen.ru/forum/attachment.php?attachmentid=44645&stc=1



Как оказалось, при нажатии на экран ответ от кнопок был очень долгим. Было принято решение управлять игрой по сети RS485. Под руку попался модуль МК110-224.8Д.4Р не требующий внешнего питания для кнопок. Так как в данном модуле присутствуют дискретные выходы, один из них (выход 1) был задействован для отображения аварии. Корпус кнопочных постов выполнил роль «эргономичного геймпада», в котором расположились кнопки управления, переключатель подачи питания и сигнальная лампа аварии.



https://owen.ru/forum/attachment.php?attachmentid=44646&stc=1


Ну и конечно геймплей:


https://youtu.be/syWs8YJUXwM






Но почему же «идеи, явно опережающие время»?


Потому, что:


https://owen.ru/forum/attachment.php?attachmentid=44647&stc=1


– «СПК не для игр, а для автоматизации!»




Спасибо всем, кто оказал помощь в программировании и просто принимал участие в разработке данного проекта.





Ниже приложены файлы программы: готовый загрузочный проект для загрузки с помощью Flash накопителя и файл экспорта. Для тех кому интересно что внутри.



Настройки модуля:
Скорость – 115200.
Адрес – 16.
Тип протокола определяется прибором автоматически. (Modbus RTU)
Назначение входов/выходов:
Вход 1: Прыжок.
Вход 2: Старт.
Вход3: Перезапуск игры.
Выход 1: Авария.

Загрузка игры на СПК с помощью Flash накопителя:
1. Flash носитель должен быть отформатирован в FAT32.
2. В корне носителя поместить папку с названием “app” (из архива).
3. Подключить Flash к СПК.
4. Войти в загрузочное меню.
5. Выполнить пункт «обновить проект».
6. Через некоторое время на СПК запустится обновленный проект.
7. Извлечь Flash. Новый проект уже является загрузочным и сохранится при отключении питания.

SA104
13.09.2019, 19:33
лет 5 назад на пр114 игру делал, в связке с Trace Mode..

приборист
13.09.2019, 21:13
Судя по лагам - это как раз время опережает данную игрушку.

melky
13.09.2019, 23:06
Находится же у людей время заниматься фигней....

S#716_0P
19.09.2019, 09:50
А кто-нибудь в курсе можно ли выйти из оболочки СПК и попасть в консоль Linux?

and909
20.09.2019, 06:19
У нас есть оборудование одного производителя, где на панелях Омрон записана игра типа хомячков, вылезающих из норок.

and909
20.09.2019, 06:26
Я, когда упражнялся с панелью (не Овен), сделал метеостанцию: подключил уличный и комнатный датчики, сделал тренды, ну и часы с датой, будильником и временем включения-отключения, чтобы ночью подсветка не мешала. Ещё хочу добавить датчик давления и влажности (и чего ещё можно прикрутить), но руки пока не дошли.

S#716_0P
23.09.2019, 09:03
SysExecute чем не устраивает?
Всем не устраивает.

Zerling
23.09.2019, 09:54
если узнаешь - напиши мне тоже, пожалуйста)

EVGEN_
01.10.2022, 17:00
А на каком языке писалась игра?

Евгений Кислов
01.10.2022, 17:04
А на каком языке писалась игра?

На CFC.
Исходники выложены в первом посте.