Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/1619: Рейтинг темы: голосов - 1619, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000

Создаем ROBO_API

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

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

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

Понятно, что шасси и механика может быть различной, но в данном случае это уже зависит от реализации непосредственно виртуальной машины, а нам бы общую концепцию выработать. Синтаксис. Может даже свой язык. А если кто и компилятор осилит накатать ваще будет феерично.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2010, 08:30
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

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

PS: Я одно время разрабатывал свой собственный компилятор паскаля, как раз для PIC. Сейчас хочу вернуться к старому проекту, переработать (классы, авр-архитектура) и закончить его. Все компиляторы паскаля для PIC, которые я видел до этого, мне очень сильно не нравились.
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
20.02.2010, 16:16
micropascal у него.
0
SWK
20.02.2010, 23: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
DY HOTT
Спасибо, я так и думал

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

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

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

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

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

вот такого вида:
Code
1
2
3
4
5
6
7
8
9
10
11
12
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
};
Сам язык это просто обвязаные макросами номера по таблице смещений на функции ВМ.

Code
1
2
3
4
5
6
7
8
9
//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ти разрядную задержку загребает так:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2010, 12:07

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru