roboforum.ru

Технический форум по робототехнике.
Текущее время: 17 фев 2025, 09:24

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: LUA скрипты
СообщениеДобавлено: 10 июл 2007, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
В этой(http://www.roboforum.ru/viewtopic.htm?p=32459#32459) теме Digit попросил рассказать что такое LUA скрипты и с чем их едят.
Для начала:Это интерпретируемый язык программирования под ПК(не под МК), необходимость внедрения интерпретатора скриптов в моей программе возникла после того как я сделал манипулятор(копия с LynxMotion).
Робот представлял собой манипулятор с 5ю степенями свободы, МК - MEGA32 соединенный с ПК по RS232, управляющая прога была написана на С#, можно было управлять каждой сервой в отдельности(угол,скорость).

Все было хорошо, но для того чтоб робот выполнил определенную последовательность команд(отсылок в МК по УСАРТ) приходилось каждый раз перекомпилировать исходник. Меня это категорически не устраивало, и тут я вспомнил о скриптах(в играх).

Сначала я попробовал XML(просто записывал последовательность комманд) но он оказался слишком неудобным и громоздким, к тому же это не скриптовый язык в чистом виде.

И тут я вспомнил о FARCRY, как известно там используется LUA.
Сначала я  подумал что будет очень гемморойно внедрить ЭТО в свою прогу, но как оказалось все проще пареной репы.
Пару строк:
Код:
public void ReadLuaDocument(string filename)
     {
         
         Lua l = new Lua();
         l.RegisterFunction("ExampleFunction", R, R.GetType().GetMethod("ExampleFunction"));
//ExampleFunction - функция в главной программе которую теперь можно вызывать из скрипта, R - класс который содержит эту функцию
         l.DoFile(filename);
                               
                                   
     }

И все!!!!!

Из скрипта можно создавать формы, элементы управления, производить расчеты и т.д
Короче все что душе угодно.

По синтаксису LUA это что-то среднее между JAVA и СИ, главное есть доступ к переменным и функциям из скрипта в главную программу и обратно.
ОЧЕНЬ полезная функция - возможность функций возвращать несколько результатов одновременно.

Для роботов которые управляются с ПК это самое то, все расчеты и новые фишки можно выполнить в скрипте, и главную прогу не надо перекомпилировать.

В общем высказывайтесь.

ССЫЛКИ:
http://ru.wikipedia.org/wiki/LUA
http://einfall.blogspot.com/2006/05/scripting-with-lua-in-c.html
http://www.botik.ru/%7Erldp/mysql/mysqldev/glava04.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июл 2007, 22:25 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Где был взят порт под мегу и сколько занял памяти в ней?

Идеальное решение сам думал об интерпретпторе бейсика, Но LUA намного интереснее.
Можно организовать подгрузку оверлеев из из I2С памяти  - Надо поразбираться.
СПАСИБО за информацию.

(через пол часа  :lol: )
Я чтото не врубился Ты просто управляющую программу на LUA написал или таки загнал ее в МК
Я чтото не врубился
Полазил по инету народ не видит возможности втолкнуть LUA  в мегу. даже в 128ю
По подробнее пожалуста


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июл 2007, 23:30 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Tracer, нет - он же написал что в управляющую прогу на компе,
для мк я видел только бейсик.

ЛУА представляет из себя библиотеку,
также как и SQLite...

хотя для армов вроде есть питон


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июл 2007, 23:54 
Не в сети
Аватара пользователя

Зарегистрирован: 04 май 2007, 17:56
Сообщения: 50
Откуда: Москва
ну можно было бы  юзать скриптовый язык идущий вместе с QT называемый QSA (тем кто пользуется QT должны знать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июл 2007, 01:43 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Для АВР порта нет, максимум под АРМ(но я не искал).
Я использую версию под Windows(.NET) благо Micro$oft подсуетилась :D
Такую вещь МК не потянет, ресурсов нехватит.
Версия под Линух тоже наверно есть(под лицензией GPL все-таки)

Я вообще считаю интерпретатор в МК загонять - маразм в чистом виде.

К тому-же я написал что управляющая программа на ПК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июл 2007, 09:32 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Да, когда просил про LUA рассказать, я думал, что в МК интерпретатор затолкан :)
Скрипты для управляющей проги на ПК - это правильно. И для этого не обязаельно пользовать ЛУА - кто что знает, тот тем и пользуется. Я в проги предпочитаю внедрять РНР  :lol:  Просто потому, что знаю его хорошо...
Интерпретатор в МК - это возможно правильно для больших систем - теоретически проще сделать самомодифицирующийся код... Генетические всякие алгоритмы задействовать и прочее... Но насколько гибче получится система по сравнению с бутлоадерами - это вопрос.

2 Lirzman: спасибо за инфу =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июл 2007, 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Помню я тоже пытался использовать PHP года 2 назад, правда тогда в СИ я был не очень силен, и мне показалось черезчур сложным внедрение кода интерпретатора в свою прогу, к тому-же PHP имеет более узкую специализацию.
Ну каждому - свое. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июл 2007, 20:45 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
лично по моему мнению лучше внедрять
питон/руби (питон имхо лучше)

у питона есть одна приятность - он как и джава(я предпочитаю именно нак произносить) компилит байт-код за счет чего почти также быстр как и джава.

хотя ЛУА тоже ечень удобный язык, не зря же его использует femm...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июл 2007, 21:18 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
LUA тоже может компилить байт-код ;)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO