roboforum.ru

Технический форум по робототехнике.

Робоконструктор

Re: Робоконструктор

kos_ua » 12 мар 2010, 13:46

Добрый день всем.
Я решил написать сообщение по данной теме из тех соображений, что уже год занимаюсь разработкой визуальной средой проектирования для МК.
К сожалению проект медленно продвигается потому что есть основная работа.
На данном этапе у меня разработана программа аналог FBD диаграм с выходным СИ кодом. Дляее я подключаю компилятор СИ кода в АСМ и получаю загрузочный фаил. Среда пректирования так же обладает симулятором.
Дальнейшее развите программы вижу в реализации программных модуле работы с модулями ввода-вывода и интерфейса связи с ситемой визуализации(например последовательный интерфейс протокол Модбас).
Если кому интересно обращайтесь могу выслать проект).
Сразу хочу оговориться что мой проект разрабатывается исключительно на интузиазме поэтому сроки его разработки затягиваются + ко всему я один этим занимаюсь(не с кем посоветоваться))

Re: Робоконструктор

Michael_K » 12 мар 2010, 13:52

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

Вот именно!

Добавлено спустя 5 минут 24 секунды:
аналог FBD диаграм

Эмм... это что-то такое типа логических схем и без явного
пути исполнения, или я ошибаюсь?
Там циклы и ветвления есть?

Re: Робоконструктор

Angel71 » 12 мар 2010, 13:54

kos_ua, наверно всем интересно. :) может в отдельную темку тут на форуме как-то всё организуете?

Re: Робоконструктор

vadinator » 12 мар 2010, 14:02

FBD диаграм с выходным СИ кодом.

вот это уже интересно :)

Добавлено спустя 2 минуты 37 секунд:
ко всему я один этим занимаюсь(не с кем посоветоваться))

не дрейфь, советчиков думаю найдётся :D

Re: Робоконструктор

dtcDev » 12 мар 2010, 14:09

спасибо всем откликнувшимся :) не думал, что за те четыре часа, что я спал на клаве, появится так много постов :)

Значит, отвечаю, как я надеюсь, на все вопросы:

1. Что есть:
Есть программа, которая при установке создает необходимую для себя архитектуру на компьютере пользователя.
Затем она предоставляет возможность выбора ЦПУ и плат обвязки. Подгружая при этом картинки и характеристики устройств. Затем она создает директории под будущий проект, и предоставляет визуальную среду для разработки, отладки (баг-трекинг), окна для настройки свойств и панель айтемов. На этом месте всё застопорилось. Почему? Читаем далее

2. Нет данных о системе команд ЦПУ, о том, какие платы могут к нему подключаться. Почему я не сделаю эфимерную конструкцию и не переведу язык кубиков в программу?
Потому что я не знаю, что может делать робот и какие свойства. Поясню на примере.

Возьмём движение, простейшее. Любой робот должен двигаться.
Так вот. Допустим, у нас есть иконка, которая говорит, что левый двигатель должен крутиться вперёд. Но для этой иконки нужно задать свойство, в котором будет указано, с какой скоростью движется двигатель. А какова дискретность этого параметра? Каким образом он будет работать - либо разные иконки "вперёд/назад", либо одна, отвечающая за движение, но с разным знаком (+ вперёд; - назад).
И таких вопросов масса. Чуть ли не на каждом шаге.

3. Почему я за модульную конструкцию. Потому что проще всего таким образом создавать пространство для расширения конструкции. потому что закодить проект для одного робота, а потом переписывать для другого - не рационально.

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

И потом, моделирование движения. Даже такой простой вопрос - гусеничное или колёсное шасси - уже совершенно разное поведение...

Добавлено спустя 6 минут 18 секунд:
kos_ua писал(а):Добрый день всем.
Я решил написать сообщение по данной теме из тех соображений, что уже год занимаюсь разработкой визуальной средой проектирования для МК.
К сожалению проект медленно продвигается потому что есть основная работа.
На данном этапе у меня разработана программа аналог FBD диаграм с выходным СИ кодом. Дляее я подключаю компилятор СИ кода в АСМ и получаю загрузочный фаил. Среда пректирования так же обладает симулятором.


Скажите, а на каком языке программирования Вы разрабатываете проект?

Re: Робоконструктор

kos_ua » 12 мар 2010, 14:15

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

Добавлено спустя 58 секунд:
Я использую Делфи 6.0
Вложения
MK.JPG

Re: Робоконструктор

Angel71 » 12 мар 2010, 14:18

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

Re: Робоконструктор

vadinator » 12 мар 2010, 14:23

kos_ua а можно посмотреть сгенерированный Си-код из вашего примера?

Re: Робоконструктор

Michael_K » 12 мар 2010, 14:25

что по хорошему вашей среде это должно быть фиолетово

Языку - фиолетово, но, видимо, хочется еще и симулятор.
А симулятор уже должен знать, если на правом колесе "скорость 15", то разворачиваюсь я за секунду или за две минуты...

Re: Робоконструктор

kos_ua » 12 мар 2010, 14:27

vadinator писал(а):kos_ua а можно посмотреть сгенерированный Си-код из вашего примера?


легко.....
Да и прошу прощения....нажал не на кнопку цитата а на кнопку жалоба)))
Получается что пожаловался на Ваше сообщение....Сорри.

Код: Выделить всёРазвернуть
#include <function.h>
#include <io.h>

//--------Create all variable----------
xdata struct sTbIN Var_MAIN_bIN1;
xdata struct sTbIN Var_MAIN_bIN2;
xdata struct sTbOUT Var_MAIN_bOUT1;
xdata struct sTbAND Var_MAIN_bAND1;
xdata struct sTbRS Var_MAIN_bRS1;
xdata struct sTbIN Var_MAIN_bIN3;
xdata struct sTbOUT Var_MAIN_bOUT2;
xdata struct sTpPID Var_MAIN_pPID1;
//**************************************

//--------Create all function----------
//***** Task MAIN*****
void FC_MAIN(void)
{
    fTbIN(&Var_MAIN_bIN2,0,0,1);
    Var_MAIN_bAND1.IN2=Var_MAIN_bIN2.OUT;

    fTbIN(&Var_MAIN_bIN1,0,0,0);
    Var_MAIN_bAND1.IN1=Var_MAIN_bIN1.OUT;

     fTbAND(&Var_MAIN_bAND1,2);
    Var_MAIN_bOUT1.IN=Var_MAIN_bAND1.OUT;
    Var_MAIN_bRS1.R=Var_MAIN_bAND1.OUT;

    fTbIN(&Var_MAIN_bIN3,0,0,2);
    Var_MAIN_bRS1.S=Var_MAIN_bIN3.OUT;

    fTbOUT(&Var_MAIN_bOUT1,1,0,0,0);

    Var_MAIN_bRS1.useEN=0;
    fTbRS(&Var_MAIN_bRS1);
    Var_MAIN_bOUT2.IN=Var_MAIN_bRS1.OUT;

    fTbOUT(&Var_MAIN_bOUT2,1,0,1,0);

    Var_MAIN_pPID1.useEN=0;
    fTpPID(&Var_MAIN_pPID1);

}

//***********End all Task***************

//-------------Free cycle-------------
void FreeCycle(void)
{
    FC_MAIN();
}

//-------------Int_OnStart-------------
void Int_OnStart(void)
{
}

//-------------Int_T100ms-------------
void Int_T100ms(void)
{
}

//-------------Int_T1s-------------
void Int_T1s(void)
{
}

//-------Функцию main------
void main(void)
{
   initialize_system();
   Int_OnStart();       // OnStartUp function
   while(1)
   {
            // *******IO_Read(mAddr, sAddr, Len)   Read from input module*******
      FreeCycle();   // Free cycle function
         // *******IO_Write(mAddr, sAddr, Len);  Write to output module*******
   }
}
Последний раз редактировалось kos_ua 12 мар 2010, 14:35, всего редактировалось 1 раз.

Re: Робоконструктор

Angel71 » 12 мар 2010, 14:35

да, не спорю, нужно знать и скорость и диапазоны и направление передачи данных/команд и... :) где описание модели? или под каждый новый "кубик" будет среда переделываться? ладно, скажу проще. это должно быть примерно как обычный "визуальный компонент", в котором всё необходимое для среды описано. можно хоть вплоть до "скинул в папку с компонентами новый файлик и работай"

Re: Робоконструктор

vadinator » 12 мар 2010, 14:48

Каждый кубик, это готовая функция...начиная от простейшей логики - и, или, не ...и заканчивая таймерами, счётчиками, генераторами ШИМ и т.п. Вся прелесть в том, что программа рисуется как простая электронная схема...
и я так понимаю, что полученный С-код, передаётся компилятору...а значит на выходе имеем готовую прошивку для МК?

Добавлено спустя 3 минуты 3 секунды:
Возможно, лучше перенести посты по FBD в отдельную тему?

Добавлено спустя 2 минуты 22 секунды:
kos_ua, а возможно ли создавать собственные функции...по типу макросов хотя бы?

Re: Робоконструктор

Michael_K » 12 мар 2010, 15:06

dtcDev писал(а):2. Нет данных о системе команд ЦПУ, о том, какие платы могут к нему подключаться.
Потому что я не знаю, что может делать робот и какие свойства.

Возьмём движение, простейшее. Любой робот должен двигаться.
Так вот. Допустим, у нас есть иконка, которая говорит, что левый двигатель должен крутиться вперёд



dtcDev, мне кажется что у вас какой-то уж очень специфичный подход...

Тут нужно понимать, что код, который вы генерируете для робота - это как бы совсем не то,
что исполняется на самом роботе. Процессор не будет выполнять команду "поставить скорость правого мотора 17".
Никакой.

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

Так вот, поскольку в боте будет своя программа (прошивка, фирмварь, библиотеки),
то перевести ваше "скорость мотора 17" в параметры дерганья ногами или настройки конкретного
аппаратного таймера - это ее задача, а не ваша.
И сколько на самом деле это "17" - будет определяться вовсе не процессором,
не мотором и не гусеницей, а именно встроенным в него тем или иным образом софтом.
Поскольку такой софт все-равно придется писать (а его придется писать так или иначе),
то для вас должно быть все равно, сколько это "17"... Это внутренний софт должен заботиться
о том чтобы 17 соответствовало, например, двум метрам в минуту, а не ваш.
По крайней мере это - самая естественная и логичная организация, которая приходит в мою больную голову :)


dtcDev писал(а):В принципе, я могу пойти по пути "хочу чтобы было так".

Так и надо, по-моему.
Надо железо затачивать под человеческие потребности, а не наоборот :wink:

dtcDev писал(а):Но я не знаю, где стоит останавливать свою бурную фантазию, а где - продолжать :)

Я где-то на первой странице пытался описать модельку... может быть меня тут дополнят...

Добавлено спустя 9 минут 22 секунды:
Посмотрите на NXTG или RoboLab - там можно увидеть,
какие функции _могут_ быть, и как они используются....
Не обязательно повторять, но сама идеология будет понятна.

Re: Робоконструктор

=DeaD= » 12 мар 2010, 15:19

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

Давайте сначала поймём какой графический язык мы реализуем - классический с переходом управления или событийно-ориентированный, как VPL?

Re: Робоконструктор

repository » 12 мар 2010, 15:21

EdGull писал(а):безпроводство и бутлоадерство в МиниБоте уже давно есть

Так и думал, но точно не знал, по этому писал только про свое мнение претендуя на звание конечного пользователя:)


cron
Rambler\'s Top100 Mail.ru counter