roboforum.ru

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

 

Hexapod

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Re: Hexapod

Сообщение =DeaD= » 11 июн 2008, 17:12

hudbrog писал(а):Совсем оффтопик уже, но это вопрос подхода. Есть подход более сложный/дорогой, но и гибкий. Есть подход менее гибкий, зато быстрый и простой. Я ситаю что правильно обучать более сложному подходу, зато позволяющему в дальнейшем расширяться. Хотя, может я и не прав. Может для популяризации направления стоит идти по простой дороге.

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

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

Re: Hexapod

Сообщение hudbrog » 11 июн 2008, 17:42

Вопрос: у вашей системы радиочастотной идентификации маяки со своим питанием или как метки RFID?
На сколько сложна в повторении система в домашних условиях на коленке? И на сколько я понял, это была комерческая разработка и исходников со схемами нам не видать как своих ушей :wink: ?

Да, к сожалению ни исходников, ни схем дать не могу. Максимум - могу дать кусочек библиотеки работы с трансивером ATA5428 от того же атмела. Ибо этих библиотек, как оказалось, нет в природе почему-то. Хотя сразу скажу, что не стоит эту 5428 трогать. Зло это глючное. В некоторых моментах фактическая реализация отличается от даташита, что приводит к желанию разработчика повесица.
Питались от одной литиевой батарейки-таблетки. Такой батарейки в штатном режиме работы должно хватать, по прикидкам, на годик примерно. Но это уже особенности. По поводу наколенности.. Прототипы плат и монтаж на них я заказывал, ибо дюже ленив. Хотя можно и спаять, коли руки на месте.
Вообще задача-то не сложная, особенно если правильный трансивер выбрать. Проблему я там вижу тока одну - антенна. Ибо определение расстояния происходит по энергетике сигнала, а для большинства вариантов антенн(особенно миниатюрных и печатных) у них диаграмма направленности очень уж некрасивая.
Вообще правильным более простым подходом считаю вариант с прерываниями, которые вызываются только когда надо.
Более универсальным и сложным подходом надо пожалуй считать дочерние МК, как предложили тут тоже уже.

Дык, а я о чем и говорил. За жесткую логику в отдельных корпусах я как раз никого ни разу не агитировал. Я агитировал за отдельное решение. Не обязательно МК. Может лучше даже ПЛИСы, но это уже отдельная песня, сильно зависит от требований решения.
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1567
Зарегистрирован: 14 май 2008, 15:49
Откуда: Минск
ФИО: Алексей

Re: Hexapod

Сообщение Сергей » 11 июн 2008, 18:13

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

Добавлено спустя 5 минут 35 секунд:
кстати, на схеме что я приводил, можно было на одном таймере юзать до 32 серв если я не ошибаюсь..
Сергей
 
Сообщения: 3741
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Hexapod

Сообщение blindman » 11 июн 2008, 18:28

Панацеи не существует. Это миф :)

Какую схему ты имеешь виду? Если из проекта Paparazzi - то нет, не получится. Просто принцип работы там такой - максимальное количество серв на одно прерывание равно периоду ШИМ / на макс. ширину импульса, т.е. 20000 / (от 2000 до 2500) = от 8 до 10.
Проект [[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: Hexapod

Сообщение blindman » 14 июн 2008, 18:29

Как и обещал, выложил в вики примеры кода для управления сервами с использованием таймера и прерываний, и схему подключения 4017
Проект [[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: Hexapod

Сообщение Digit » 15 июн 2008, 01:31

Это хорошо. :good:
Только вот есть пожелание: т.к. концепция вики - это статьи, то максимум иллюстрирующего кода и схем публиковать не в архиве, а непосредственно в статье. Например, схему подключения 4017 по тексту вставить, чтоб не требовалось лезть в архив. Если есть возможность, то и какие-то ключевые куски кода запостить текстом со ссылкой, что рабочий проект в архиве...
Тогда это будет законченный материал.
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Hexapod

Сообщение Uncle » 16 июн 2008, 02:30

полностью сгласен, в теории то я и сам мог бы посоветовать чё делать, а вот на практике проблемы, было бы вообще не плохо готовенькое для 18 серв то :Yahoo!:
Uncle
 

Re: Hexapod

Сообщение blindman » 16 июн 2008, 08:21

Digit, понял, учту.

Uncle, если у тебя такие проблемы, то и советовать не стоит. Код смотрел? Комментарии читал? Какие вопросы по коду, что непонятно? В примерах достаточно комментариев, объясняющих, как сделать и 8, и 16, и 24.
Проект [[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: Hexapod

Сообщение sub_null » 03 июл 2008, 11:50

ksp писал(а):Делаю робота на 6 ногах (18 серв):
Подробности http://kspzel.livejournal.com/
Назрел вопрос: можно ли на ATMega16 НОРМАЛЬНО рулить 18 сервами? Нормально - значит хотябы 256 положений для одной сервы и чтобы при этом ничего не тормозило.
У меня пока что положений 20 на каждую.


Где покупали сервы и сколько это стоило вместе с доставкой?
sub_null
 
Сообщения: 57
Зарегистрирован: 20 мар 2006, 00:53
Откуда: ukraine

Re: Hexapod

Сообщение ksp » 03 июл 2008, 16:25

Самые простые сервы
http://rcmag.ru/#product_info.php:cPath ... ts_id=2211
Пришлось подождать месяцок, пока сервы приедут на склад.
Забрал сам (в Москве).
Аватара пользователя
ksp
 
Сообщения: 10
Зарегистрирован: 09 июн 2008, 16:47
Откуда: Зеленоград
Skype: kspzel
прог. языки: c++ delphi php

Re: Hexapod

Сообщение Duhas » 12 июл 2008, 17:42

я конечно понимаю что ся всеми любима, но раз уж возникают моменты когда у вас 90 тактов тратится на сохранние регистров.. то либо у вас ся компилится через 5-ю точку, либо код ужасный..
если мне неименяет память то только SREG потребует на сохранение 6 тактов.. и по 4 на любой другой...сохранить 21 регистр... хех.. этож нада умудриться...

пишите люди на асме...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6341
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Hexapod

Сообщение blindman » 12 июл 2008, 17:54

Расчет как получилось 21 в студию
Проект [[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: Hexapod

Сообщение Duhas » 12 июл 2008, 18:17

я не знаток того, как это делает компилятор, но я делаю так
Код: Выделить всёРазвернуть
CC:
   cli
   in tmp, SREG    ;  1 такт на чтение регистра статуса
   push tmp          ;  2 такта на укладку байта в стек
   push r17           ; -----||-----
   push r16           ; -----||-----
   {interrupt code}
   pop r16           ; 2 такта на вытаскивание из стека
   pop r17           ; -----||-----
   pop tmp          ; -----||-----
   out SREG, tmp    ; 1 такт на восстановление регистра
   sei
reti


итак, на положить вначале и достать вконце тратим 4 такта на 1 регистр
на срег тратим +2 такта на его чтение..
ну итого было 90 тактов.. 90-6=84... срег сохранили.. 84/4 = 21...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6341
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Hexapod

Сообщение blindman » 12 июл 2008, 18:41

Прекрасно. Хорошо считаешь. Правда не забываем, что для того, чтобы перейти с вектора прерывания на обработчик, а затем вернуться из прерывания тоже нужно время.

Компилятор не намного тупее человека, и если для реализации алгоритма компилятор использовал 20 регистров, в большинстве случаев вряд ли удастся написать на ассемблере используя только 10. А вот насколько оптимален алгоритм - это уже другой вопрос.

PS. cli и sei в твоем примере лишние
Проект [[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: Hexapod

Сообщение Duhas » 12 июл 2008, 18:54

они вроде не совсем лишние, пример выдрал с проги что недавно писал.. разве прерывания запрещаются при входе в прерывание ? можно запретить прерывания после сохранения СРЕГ-а, но есть маааленькая вероятность что в этот момент произойдет еще одно прерывание.. я лучше напишу наверняка.. тем более пара байт кода не добавит объема проге, которая и так процента памяти не занимает

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

из опыта написания прог на сях для ПК, скажу что на переменные не скупился.. а тут как-то сразу ощущаешь ограничения.. ив небольших прогах как-то привыкаешь пользоваться отдельными регистрами под отдельные нужды.. и потому при входе в прерывание врятли используется более 5-7 регистров...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6341
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Пред.След.

Вернуться в Наши проекты

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

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

Mail.ru counter