www.open-tager.ru
https://open-tager.ru/forum/

Скрипты - попробуем абстрагироваться от железа?
https://open-tager.ru/forum/viewtopic.php?f=5&t=3231
Страница 1 из 3

Автор:  Pingvin [ 29 янв 2014, 06:22 ]
Заголовок сообщения:  Скрипты - попробуем абстрагироваться от железа?

Тут неоднократно всплывала тема использования скриптов, реализующих алгоритм работы лазертаг-устройств.
Тему считаю интересной, перспективной и заслуживающей отдельной ветки.
В чем суть?
Суть - реализовать в прошивке скриптовый движок, некое API, в которое вынести основные используемые функции.
Ну как пример - в Аскете можно через консоль воспроизвести звук командой
play_sound n
n - номер звукового файла

Но ведь можно эту команду прочитать и из файла и выполнить.
И другие команды.


Что это дает?
Это дает "скриптописателю" полную свободу выбора платформы - будь то Аскет, LTK, Армада или что другое (разумеется, если в прошивке будет реализован этот скриптовый движек).
Абсолютная переносимость.
Скриптописателю не надо знать тонкости реализации той или иной функции и особенности железа, он лишь реализует игровой алгоритм, геймплей.

Теперь о деталях - как это можно реализовать?
Мне видятся два варианта.
1. Интерпритатор.
То есть считываем команды из файла одна за другой в реальном времени, анализируем (парсим) и тут же выполняем.
Достоинства метода - не нужен компилятор, легко расширить набор команд, выполнять можно не только из файла скрипты, но и по UART (блютус, GPRS).
Недостатки - довольно сложная прошивка, большой расход флеш памяти, быстродействие под вопросом.

2. Байт-код.
Это примерно то, как работает Java.
Пишем код на разработанном нами языке, потом "компилируем" - преобразуем команды в соответствующие им числа.
Прошивка считывает эти байты, и легко (через switch) запускает соответствующие обработчики.
Преимущества - экономия флеш памяти, быстродействие.
Недостатки - нужно писать "компилятор".

Ну и в любом случае нужно определиться со списком API функций и самим языком написания скриптов.
Может это будет что то Си-подобное, или Бейсик подобное.
Или вообще в виде XML файлов.


Какие будут мысли?

Автор:  Pacifist [ 29 янв 2014, 10:08 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

А зачем писать еще одну "Ардуину"?
Все уже там есть, и компилятор, и библиотеки. И варианты досок для ПИК и СТМ тоже ;). Переделать плату под свои размеры (схемотехника там не сложнее чем у Аскета) - и вперед.

Автор:  Pingvin [ 29 янв 2014, 10:16 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

Pacifist писал(а):
А зачем писать еще одну "Ардуину"?
Все уже там есть, и компилятор, и библиотеки. И варианты досок для ПИК и СТМ тоже ;). Переделать плату под свои размеры (схемотехника там не сложнее чем у Аскета) - и вперед.

Боюсь в этих библиотеках нет функций, на подобии send_ir_package(...)
Хотя вариант интересный, согласен.

Автор:  Pingvin [ 29 янв 2014, 10:26 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

LTagKirov писал(а):
Pacifist писал(а):
А зачем писать еще одну "Ардуину"?
Все уже там есть, и компилятор, и библиотеки. И варианты досок для ПИК и СТМ тоже ;). Переделать плату под свои размеры (схемотехника там не сложнее чем у Аскета) - и вперед.



Так ведь нет готовых лазертаг библиотек в ардуино 8-)
Даже готового модуля поддержки клавиатуры с буфером нет, опрос контактов есть а клавиатуры нет....

Зато куча разных шилдов есть.

Автор:  Pingvin [ 29 янв 2014, 10:32 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

LTagKirov писал(а):
Pingvin писал(а):
Зато куча разных шилдов есть.


ага захотел послушать музыку с телефона - покупаешь шилд за цену дороже телефона, который без телефона даже не включается 8-)

Ну согласен - цена часто (да всегда, в общем) - явно неадекватная.
Надо попробовать тем же путем идти - мезонная (или как там её?) архитектура и куча дополнительных приблуд.

Автор:  Pacifist [ 29 янв 2014, 13:24 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

Pingvin писал(а):
Боюсь в этих библиотеках нет функций, на подобии send_ir_package(...)

Так допишите модуль, заодно и клавиатуру с буффером ;)

Просто сейчас уже есть очень большая аудитория, знакомая с Ардуино. И мне кажется что если ваша платка будет ее (ардуины) модифицированным клоном - то намного быстрее найдется человек, желающий попробовать свои силы в лазертагостроении, чем желающий изучать новый скриптовый язык под неизвестную платформу. ИМХО.

Автор:  DanGion [ 29 янв 2014, 13:28 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

pingvin!

Вы сейчас открыли один из основных законов программирования группой лиц.

Создается интерфейс (скажем вызов функции с определенными параметрами), я не знаю (да возможно и не хочу знать), как он там внутри работает. Но я знаю как он вызывается, что ему скармливать и что он делает.

ЗАчастую реализацию могут постоянно дорабатывать, но программист, который работает только с интерфейсом даже ничего и не заметит.

Очень часто в итоге соновная функция выглядет так:
Код:
{
start(get_local_time());
}


И роде все так безобидно... А потом Кентуки! Какое еще кентуки? Нету больше вашего Кентуки! :lol: :lol: :lol:
Но такое решение требует многовато ресурсов. Не такой уж и сложный проект, чтобы начинать писать так.

P.S. Мож просто ядро linux заведем и направославном BASHике? :lol:

P.P.S. Короче я считаю, что под узкоспециальзированный проект, не нужно.

Автор:  Pacifist [ 29 янв 2014, 13:38 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

DanGion писал(а):
P.S. Мож просто ядро linux заведем и направославном BASHике? :lol:

А под это дело проще купить РасбериПи - в нем есть все, что планирует Пингвин в будущей АРМаде - и память СД, и звуковой контроллер, и видео. Ресурсов - попой жуй ;).

ЗЫ: Кстати недавно на Хабре была статья как на малине запускать свою программу без операционки.

Автор:  Pingvin [ 29 янв 2014, 13:39 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

Pacifist писал(а):
DanGion писал(а):
P.S. Мож просто ядро linux заведем и направославном BASHике? :lol:

А под это дело проще купить РасбериПи - в нем есть все, что планирует Пингвин в будущей АРМаде - и память СД, и звуковой контроллер, и видео. Ресурсов - попой жуй ;)
Кстати недавно на Хабре была статья как на малине запускать свою программу без операционки.

Жрет много, цука.
И габариты, не очень...
Но скоро мне в лапки несколько экземпляров попадут - помучаю.

Автор:  DanGion [ 29 янв 2014, 13:57 ]
Заголовок сообщения:  Re: Скрипты - попробуем абстрагироваться от железа?

Зачем оно?

1.Запросит Вишлист у заинтересованых в развитии Аскет.
2.Запилить все.
3.Добавить в конфигуратор вкл/выкл вишлист-фич.
4.???
5.Профит!

Те кого что-то не устроит - форкнут. :geek:

Страница 1 из 3 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/