0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
1

Создаем ROBO_API

18.02.2010, 08:30. Показов 292580. Ответов 148
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пища для размышлений:

Виртуальные машины

Понятно, что шасси и механика может быть различной, но в данном случае это уже зависит от реализации непосредственно виртуальной машины, а нам бы общую концепцию выработать. Синтаксис. Может даже свой язык. А если кто и компилятор осилит накатать ваще будет феерично.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2010, 08:30
Ответы с готовыми решениями:

Создаем полноценный функциональный генератор
Отпуск! Время, когда можно плотно заняться тем, что тебе интересно, что давно вынашивал в планах,...

СОЗДАЁМ САЙТ
Вообще я первый раз сел за компьютер 3 месяца назад, а мне уже 42 года. Не думал, что когда-то...

Создаем проект
Ищу сотрудников для создания проекта по Кс Го. Попытаемся созхдать что - то вроде FGCL.ru или...

Создаём сеть
Доброго времени суток. Строим сеть общего пользования масштаба города с доступом пользователей по...

148
otix_os
19.02.2010, 16:07 41
Author24 — интернет-сервис помощи студентам
Хочу прикрутить нечто подобное к глобусу, но нацеленное на отображение графики в память, откуда оно будет выводиться на светодиоды, касательно компилятора - проблем нет, как будет относительно продуманный синтаксис и система байткода - обращайтесь, сделаю :-)
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
19.02.2010, 16:49 42
otix_ac, а зачем скрипт глобусу? Для смены картинки ему лучше битмап загружать. Там же только изображение, никаких действий особо
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
19.02.2010, 17:00 43
SWK

> Если же свалить все в одну кучу, на один контроллер, пусть даже ARM, да еще с виртуальными машинами, вообще замаешься отлаживать
> все сразу: и работу датчиков, и ходовую, и скрипты, и ВМ...

Вот! В контроллере (пусть и арм) будет только ВМ и драйверы устройств. Ничего больше, поэтому и отлаживать будет почти нечего! Вся отладка будет вестись на ПК - отладка скриптов :) Да, ВМ, конечно, сначала придется разработать и заставить работать, но без этого никуда не деться

> А нафига? Центральный контроллер будет получать от компа конкретные задания высокого уровня

Потому, что ваш ЦК и будет всю жизнь выполнять только эти действия. А его перепрограммирование на что-то другое займет кучу времени, так как еще и отладка понадобится. Естественно, что для создания робота под конкретные действия лучше зашить все и сразу, но для экспериментов , имхо, лучше скрипты.

> Если же ему спускать целую портянку скриптов, в которых уже жестко прописаны все мелкие действия, какой же это интеллект? Это
> уровень древней ЭВМ с перфолентой.

Так у вас то же самое, но без скриптов и ВМ
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
19.02.2010, 17:06 44
Кстати на счет интеллекта. Первый путь - это алгоритмизация относительно внешних объектов и событий. Тут мы в любом случае получаем пусть и сложный, но автомат. Второй путь - нечеткая логика. А это классификация и нейронные сети. Но для второго пути нужны мощности и объемы. Для ВМ объемы не проблема (см. выше), но с мощностью придется что-то делать. Это либо переход на другой проц, либо модернизация алгоритмов для выноса из них операций с плавающей точкой (или свести их к минимуму)
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
19.02.2010, 19:28 45
А зачем фаззи лоджику плавающая точка? Там можно все и целочисленно намутить.
0
SWK
19.02.2010, 19:40 46
Цитата Сообщение от DY HOTT
А зачем фаззи лоджику плавающая точка? Там можно все и целочисленно намутить.
Тысячи лет люди обходились без плавающей точки, пока ее не придумали, - и ничего, и деньги считали, и даже наука была. А робот тем более проживет. Тем более что при небольшой разрядности контроллера вычисления с плавающей точкой не дают повышения точности по сравнению с целочисленной арифметикой, только память жрут, а порядки учесть и уравнять при вычислениях - не проблема.
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
19.02.2010, 21:56 47
Поэтому я и сказал - оптимизировать
0
Svimssom
20.02.2010, 10:29 48
Цитата Сообщение от SWK
Ох, не люблю я скриптовые языки почему-то... Еще со времен DOS к ним какое-то отвращение, на уровне подсознания, как к чему-то примитивному и ненадежному. Предпочитаю передавать параметры в программу в фиксированном формате, чтобы не заморачиваться с разборкой скриптов. Тем более в мелких контроллерах, где каждый байт на счету.
Ну не люблю я скрипты... хотя на них почти полвиндов построено. Потому Винды такие тормозные и глючные.
Это вы, возможно, с линуксами не встречались.
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
20.02.2010, 14:08 49
Holy War Mode off

И меня в это не втягивайте, а то знаете же...
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
20.02.2010, 15:36 50
SWK
Я смотрю, ты программу для PIC пишешь на Паскале. Каким компилятором ты пользуешься ?

PS: Я одно время разрабатывал свой собственный компилятор паскаля, как раз для PIC. Сейчас хочу вернуться к старому проекту, переработать (классы, авр-архитектура) и закончить его. Все компиляторы паскаля для PIC, которые я видел до этого, мне очень сильно не нравились.
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
20.02.2010, 16:16 51
micropascal у него.
0
SWK
20.02.2010, 23:52 52
Я смотрю, ты программу для PIC пишешь на Паскале. Каким компилятором ты пользуешься ?
Сейчас пока в основном MikroPascal Pro 1.4. Есть также скачанные до версии 3.2, но особой разницы почти нет, 3.20 проинсталировал, просмотрел, но исходники лень перетаскивать, так пока 1.40и пользую. Есть все, что надо, вплоть до Ethernet, многие библиотеки продублированы и для софтовой, и для аппаратной реализации интерфейсов. Единственно, чего нехватает - почему-то нет поддержки I2C Slave, только для Master. В принципе, несложно добавить несколько аналогичных процедур на ассемблере, и использовать также, как библиотечные для Мастера, но лучше бы были. В остальном замечаний нет, все прекрасно сделано и работает. Я уже несколько раз писал про компиляторы от МикроЭлектраники по другим темам.
PS: Я одно время разрабатывал свой собственный компилятор паскаля, как раз для PIC. Сейчас хочу вернуться к старому проекту, переработать (классы, авр-архитектура) и закончить его. Все компиляторы паскаля для PIC, которые я видел до этого, мне очень сильно не нравились.
Мне тоже другие компиляторы не нравились, приходилось писать на ассемблере, пока не попробовал от МикроЭлектраники. Лучше не видел, а самому писать - только время терять, и вряд ли лучше получится.
Я в 80х годах на работе от нужды, чтобы работать с однокристаллками РВЕ35 (КР1816ВЕ35), позже с 48, сделал микропроцессорный отладочный комплекс на КР580ВМ80А, для которого написал полную кросс - систему, - редактор, компилятор, дизассемблер, отладчик, программатор. Программы хранил на нигнитофоне Илеть 203... Потратил полгода, зато сэкономил потом кучу времени на разработках контроллеров. Из заводских компов у нас в то время были только ДВК-2, и то гораздо позже, когда у меня уже все работало... В 89г купили 3шт "Корвет" (сам с Москвы их поездом вез), там в комплекте уже было 10 языков и 2 операционки - CP/M-80 и МикроДОС.
Сейчас намахать компилятор для микроконтроллера, например, на DELPHI, не проблема, только зачем, когда готовых полно...
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
21.02.2010, 00:10 53
DY HOTT
Спасибо, я так и думал

--
To Ott
Что с виртуальной машиной? Не хочется что бы обсуждение умерло. Предлагайте свои идеи что ли :)
Начать, я думаю, лучше с синтаксиса и основных механизмов входного языка. Свой вариант я уже предложил. Так же нужно подумать о вычислительной модели и разрядности ВМ. Предлагаю для простоты ВМ сделать 8-разрядной регистровой с одним аккумулятором. Я думаю, что это упростит вычисления на микроконтроллере и сильно уменьшит размер занимаемой памяти по сравнению со стековой ВМ.

Так же хотелось бы услышать соображения по поводу распараллеливания процессов
0
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
21.02.2010, 00:15 54
SWK
Спасибо за ответ. На делфи и намахивал :)
А работать я стал именно над паскалем, так как он не очень популярен в среде микроконтроллеров. Вот разве что от микроэлектроники компилятор более-менее, но то что они сделали с механизмом библиотек для меня не понятно.. И к тому же оптимизатор там не очень - код сжирает кучу памяти. Были у них и другие недостатки, уже не вспомню. Сделать лучше чем они вполне реально. Даже одному, имхо, главное что бы желание было. Долго, правда.. :)
0
SWK
21.02.2010, 00:30 55
Цитата Сообщение от oiori
SWK
Спасибо за ответ. На делфи и намахивал :)
А работать я стал именно над паскалем, так как он не очень популярен в среде микроконтроллеров. Вот разве что от микроэлектроники компилятор более-менее, но то что они сделали с механизмом библиотек для меня не понятно.. И к тому же оптимизатор там не очень - код сжирает кучу памяти. Были у них и другие недостатки, уже не вспомню. Сделать лучше чем они вполне реально. Даже одному, имхо, главное что бы желание было. Долго, правда.. :)
Я MikroPascal for PIC начинал 2 года назад с версии 8.0.0.1, сравнивал с компиляторами, в основном С, других фирм и был приятно поражен размерами кода. В позапрошлом году я приводил результаты. Просто вы наверное пробовали совсем старые версии...
0 / 0 / 0
Регистрация: 15.02.2010
Сообщений: 28
21.02.2010, 00:48 56
Цитата Сообщение от SWK
Я MikroPascal for PIC начинал 2 года назад с версии 8.0.0.1, сравнивал с компиляторами, в основном С, других фирм и был приятно поражен размерами кода. В позапрошлом году я приводил результаты. Просто вы наверное пробовали совсем старые версии...
Да, версия была довольно старая.. но это что касается оптимизации. В более поздних версиях у них все равно остался сишный подход к библиотекам. Правда, как обстоят дела сейчас я не знаю.
0
SWK
21.02.2010, 01:22 57
В более поздних версиях у них все равно остался сишный подход к библиотекам.
В каком смысле? И что именно не нравится?
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
21.02.2010, 06:27 58
А что я уже скелетик набросал. Сегодня наверное первый прототип выложу на обсуждение.
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
21.02.2010, 08:05 59
Архитектуру я закладываю такую:
8ми разрядная, с жесткой привязкой по функционалу к железу. Т.е. это не универсальная ВМ которую можно куда угодно воткнуть, а скорей концепция и ВМ придется писать под каждую железку заново, с учетом ее функционала.

Коды команд 8разрядов+операнды (любое число). Есть несколько десятков (максимум 255) РОН с которыми можно обращаться по усмотрению. Сами команды очень похожи на ассемблерные. Т.е. по сути я делаю надассемблер, управляющий уже не процессорным ядром, а устройством.
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
21.02.2010, 12:07 60
Ну вот. Тягайте проект:
http://iosyitistromyss.ru/file... C-RTOS.ZIP

Пока самый мизер. Потому как обкатал просто технологию. Еще все сыро и в зачатках, но идея будет уже ясна.

в файле VM_PROG.h находится собственно код программы для VM

вот такого вида:
Код
static u08 VM_PGM[]=

{
FWD,            //0
DLY,T(1000),      //1,2,3
STP,            //4
DLY,T(1000),      //5,6,7
BCK,            //8
DLY,T(2000),      //9,10,11
STP,            //12
OFF               //13
};
Сам язык это просто обвязаные макросами номера по таблице смещений на функции ВМ.

Код
//VM Task Table ==========================================================
static TPTR VM_FUNC[] PROGMEM =
{
&VM_OFF,      //0
&VM_Back,      //1
&VM_Forward,      //2
&VM_Delay,      //3
&VM_Stop      //4
};
Параметры идут после номера команды. Например, функция DELAY свою 16ти разрядную задержку загребает так:

Код
void VM_Delay(void)
{
u16 delay;
u08 *OneByte;

OneByte = (u08 *)&delay;

*OneByte = VM_PGM[++VM_PC[0]];
OneByte++;
*OneByte = VM_PGM[++VM_PC[0]];

VM_PC[0]++;

SetTimerTask(VM,delay);
}
VM_PC это виртуальный Prokramm counter. Массивом -- потому что планируется многозадачность и думаю будут еще паралельные ветви, но пока не допетрил как бы это красивей реализовать. (надо чтобы в диспетчер ВМ передавался номер треда, но где его хранить я ума не приложу пока. Думаю, что сделать надстройку над диспетчером ядра - добавить параметры, но может удастся сделать и красивей)
0
21.02.2010, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2010, 12:07
Помогаю со студенческими работами здесь

Создаем TimeMsgDlg!
Идея такова: Создать MessageDialog который появляется на указанное время и исчезает, не требуя от...

создаём статейки
Вопрос следующий: Допустим мне хочется создать сайт, в котором одна из вкладок направляет...

Создаём игру
Ищу человека с которым мож было создать не маленькую игру, кому помочь???

Создаём игру!
Здравствуйте! Производим набор программистов желающих поучаствовать в создании игры на...

Создаём wi-fi сеть
Здрасте всем ^^ нужно сделать wi-fi сеть с доступом в инет, между компом с роутером(TP-LINK WR542G)...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru