Концепция ORFA и немного шире

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 18 май 2010, 08:30

Это на прошивках которые я только что выложил или на тех, которые с автодетектом скорости?

Добавлено спустя 32 секунды:
Вообще после старта контроллера некоторое время бутлоадер ждёт прошивку - в это время у меня сервы спокойно стоят.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение pashteet » 18 май 2010, 08:33

на той, которая с автодетектом. А у тебя при включении сервы вообще не дергаются?
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 18 май 2010, 08:39

При включении дергаются вроде, но недолго.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение Vooon » 18 май 2010, 08:48

Так с автодетектом нужно сначала восемь раз перевод строки отправить.
Зря я что ли руководство писал?
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Концепция ORFA и немного шире

Сообщение pashteet » 18 май 2010, 09:39

=DeaD= писал(а):Я снова взялся за ORFA. Для начала добавил возможность плавных движений в серводрайвер OR-AVR-M128-*, теперь команда <номер_сервы_1байт> <позиция_2байта> дополнилась командами:

<номер_сервы_1байт+128> <максимальная_скорость_2байта>

и

<255> <общее_время_выполнения_команды_2байта>

Так что функционал ORFA и ORC-32 почти сравнялся. осталось добавить команды запроса положения сервы и окончания всех операций.

Приведи какой-нибудь пример

Добавлено спустя 22 минуты 19 секунд:
все, разобрался

Добавлено спустя 50 секунд:
Блин, теперь когда отдаешь команду двум сервам одновременно, то одна начинает двигаться сильно позже чем вторая =(
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 18 май 2010, 10:17

Очень странно про "сильно позже" - давай пример, вечером проверю. Видимо какой-то мой глюк.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение pashteet » 18 май 2010, 12:48

Пример простой:
Код: Выделить всё
S40 11 00 04C9 08 01F4 80 0096 88 0096 P

Ставит две боковые сервы в крайнее положение со скоростью 150. Серва 00 начинает движение, после паузы около 1 сек серва 08 начинает движение. Ну и соответственно серва 00 приходит в крайнее положение раньше, чем серва 08 где-то на 1 сек

Добавлено спустя 2 минуты 19 секунд:
А если гнать сервы на полную скорость, т.е.:
Код: Выделить всё
S40 11 00 04C9 08 01F4 P

то стартуют почти одновременно, "на глаз" разницы во времени незаметно

Добавлено спустя 2 минуты 1 секунду:
Кстати, с новой прошивкой большие сервы не дергаются после запуска контроллера, а маленькие все-равно дергаются :(
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 18 май 2010, 20:21

Нашел ошибку в драйвере серв M128-DS, вчера для M128-S исправил, а тут забыл :(

Вот пофиксенные версии:
orfa-new-ds-115200.zip
(8.51 КиБ) Скачиваний: 0

orfa-new-ds-9600.zip
(8.51 КиБ) Скачиваний: 0


Добавлено спустя 1 час 33 минуты 38 секунд:
Приступим к дальнейшему развитию проекта.

В общем и целом направление - что-то типа командной оболочки, может быть даже help встроим в прошивку, чтобы на инструкции не переключаться из терминала :)

Итак основные идеи:
1. Оболочка будет поддерживать множество контроллеров на общей шине RoboBus[i2c], т.е. подав команду на головной можно будет обеспечить её выполнение на любом из подчиненных;
2. Для этого все парсеры "человеческих не-i2c" команд будут переводить полученную команду в i2c-формат и отправлять на вполнение на этот или подчиненный контроллер;

Переключение между контроллерами будет выполняться отдельной командой "!<controller_number>" при этом за каждым номером кроме 0 будет закреплён свой i2c-адрес подчиненного контроллера. Под номером 0 всегда будет локальный контроллер. Для назначения и сканирования на предмет драйверов любого контроллера с номером >0 нужно будет дать команду "@<controller_number>=<i2c_address>"

Внутри каждый парсер будет отвечать за какую-то букву, с которой будут начинаться команды для него. Кроме того каждый "человеческий" парсер будет выбирать из предложенных ему UIDов драйверов выбранного контроллера тот, который наиболее ему удобен. Так же каждый парсер будет иметь свою справку по синтаксису - в короткой версии выдаваемой со списком команд по запросу "?" и в полной версии выдаваемой по запросу "?<первый символ команды>".

Так что мы разделим парсинг всех команд типа "L", "C", "V" и "S" по отдельным файлам, что упростит отладку и ликвидирует возможность внести баги в одну команду при правке другой.

Добавлено спустя 4 минуты 12 секунд:
Например на запрос "?" будет выдаваться что-то типа:

ORFA version 0.8.3, list of currently supported commands:

L - Set local i2c-address, example: "L40<cr>"
V - Get firmware version, example: "V<cr>"
B - Goto bootloader for firmware update, example: "B<cr>"
S - Execute i2c-request, example: "S40 00 00 S41 01 P<cr>"
# - Servo control, example: "#0 P1500 T1000<cr>"

For detail syntax type "?{cmd}<cr>", example: "?S<cr>"
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение pashteet » 18 май 2010, 20:54

Теперь все отлично! Старт одновременный, финиш тоже :good:
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 19 май 2010, 11:35

Кстати, надо поддержку датчиков цвета поверхности добавить в ORFA, а то я так никогда их не протестирую иначе :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 21 май 2010, 14:42

Движемся дальше потихоньку с парсерами.

Каждый парсер имеет следующие обязательные поля\методы:
1. Символ, на который должны начинаться команды для этого парсера;
2. Ссылка на таблицу поддерживаемых UID'ов;
3. Ссылка на строку короткой подсказки по синтаксису парсера;
4. Ссылка на строку полного описания синтаксиса парсера;
5. Ссылка на функцию парсинга очередного символа (изначально в неё передаётся символ 0х00, при начале команды, а в конце передается символ "\n" - окончание команды);


Обычному парсеру команд для работы предоставляются функции:
1. Получения UID'а драйвера который на текущем контроллере ему доступен, либо возвращается 0 если никакой не подошел;
2. Выполнения i2c запроса без указания i2c-адреса получателя (он известен на более высоком уровне и тут не нужен) и в относительной нумерации регистров (т.е. начальный регистр обычному парсеру не нужен);

Служебным парсерам дополнительно предоставляются функции:
1. Определения текущего i2c-адреса;
2. Назначения UID'ов драйверов другим парсерам по каждому контроллеру;
3. Определение начальных регистров другим парсерам по каждому контроллеру;
4. Управление настройками i2c - выбор скорости, выбор своего i2c-адреса;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение Алексей » 04 июн 2010, 09:58

blindman писал(а):Писал его его я. Тоже жду OR-AVR-M128-DS, как приедет - буду тестить

Приехал :?:
Алексей
 
Сообщения: 152
Зарегистрирован: 12 дек 2009, 23:44
Откуда: Киев
ФИО: Алексей Диомидов

Re: Концепция ORFA и немного шире

Сообщение blindman » 04 июн 2010, 12:33

Приехал.

Сегодня тестил в конфигурации : мастер - OR-AVR-M128-DS, слэйв - OR-AVR-M32-D. С первого раза не запустилось, нашел баг - не устанавливался адрес слэйва при старте. Пофиксил. Попытался управлять выходами серв - реакции ноль. Пересобрал слэйв без поддержки серв, погами подергал - все нормально.

Итоги:
1. либо драйвер серв для OR-AVR-M32-D поломан, либо я не умею его готовить. Судя по http://hg.vehq.ru/orfa/rev/87bb193bd004 , скорее первое
2. I2C-slave будет работать, когда запушу багфикс
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Концепция ORFA и немного шире

Сообщение =DeaD= » 04 июн 2010, 12:35

А если слэйвом сделать OR-AVR-M128-DS?

Добавлено спустя 31 секунду:
драйвер серв для OR-AVR-M32-D поломан :( надо починить.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Концепция ORFA и немного шире

Сообщение blindman » 04 июн 2010, 12:49

=DeaD= писал(а):А если слэйвом сделать OR-AVR-M128-DS?

Работает конечно, чего б ему не работать :)
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Пред.След.

Вернуться в Open Robotics

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

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