Мотор-Колесо Yamasaki или что из него можно выжать.

Автор Nickolas, 15 Дек. 2008 в 19:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Nickolas

Цитата: valery от 16 Дек. 2008 в 20:48
Мне кажется, что код Грея в данном энкодере более предпочтительнее, но это только мое частное мнение.
Если это не противоречит вашим планам, опишите логику работы контроллера.
Возможно придут какие либо здравые мысли.
:)
Против кода Грея ничего не имею. Возможность восстанавливать ошибки это здорово! Проблема в технологических возможностях и цене. хотелось все таки влезть в реальную стоимость контроллера.

i

Цитата: Nickolas от 16 Дек. 2008 в 18:40
Цитата: valery от 16 Дек. 2008 в 18:36
К стати хотел спросить, а как сделан ваш энкодер? :)
Приблизительно так :
Вот мои кодовые колёса, на 16 положений и на 32. Можно и больше, но уж слишком мелко получиться.
Это не штрихкод и не "абсолютный" энкодер на коде Грея.
Это мой код промодулированный манчестерским кодом, где один бит кодируется фазовым переходом 0/1 или 1\0.
Одна оптопара (1 светодиод + 1 фотодиод) читает фазовые переходы (они находятся посередине учетной позиции), на основе предыстории процессор принимает его как информационный бит (как 0 или 1) кода позиции. Этот бит докладывается к ранее считанным (в кэше)  и получается номер позиции. Таким образом на обозначение одной позиции уходит ровно один бит. Это значит что код очень плотный или, иначе говоря, площадь занимаемая кодом позиции равна площади одного бита, т.е. снижаются требования к разрешающей способности датчика.
"Абсолютный" энкодер на коде Грея: код позиции занимает площадь N бит, где N разрядность кода.
Штрихкод: код позиции занимает площадь в зависимости от типа, если брать простейший "2из5", то на каждую цифру кода уйдет 5 бит, а на весь код позиции несколько таких штрихкодов. Поэтому штрихкода в энкодерах не применяются.

Теперь о кислом.
Возможность читать код одним датчиком накладывает ограничения:
1. Позиции должны идти последовательно (0,1,2,3... или наоборот), (для энкодера это не мешает)
2. Смена направления вращения должна управляться процессором читающим код, что бы он знал когда код пошел в обратную сторону и очистил кэш. (для мотора это не проблема)
3. Для выхода на режим прямого чтения (после включения или сбоя) необходимо считать N+1 бит, т.е. получить информацию о текущем положении. Для мотора это проблема, так как начинать или продолжать вращение придется "вслепую".

Для прямого чтения, без разбега, можно применять либо "абсолютный" энкодер на коде Грея, либо полный вариант моего кода с полным набором датчиков (например 12 разрядный код "3*4+1" (столбцы*строки+стробовый) будет требовать столько же места на кодовом колесе как и 3-х разрядный код Грея).

valery

А какой должна быть стоимость?
Ведь речь идет, как я понял, о действительно функциональном контроллере.
Не только токи, и экономия энергии, но и индикация скорости, пройденного пути, остатка заряда батареи, GPS.
Или я неправ?
:)

valery

"Его фишка в том, что одной оптопарой можно считывать номер положения. Именно читать, а не отсчитывать от некоей начальной метки, как это обычно делается"

", на основе предыстории процессор принимает его как информационный бит (как 0 или 1) кода позиции."

Эти два высказывания противоречат друг другу.
Или я ошибаюсь.

Именно по этому, я и говорю вся фишка в коде Грея и других фишек нет. :)


valery

Только код Грея с минимальными затратами может выдать точную позицию, без всяких предысторий.
Или я отстал?
:)

Nickolas

Цитата: valery от 16 Дек. 2008 в 21:33
А какой должна быть стоимость?
Ведь речь идет, как я понял, о действительно функциональном контроллере.
Не только токи, и экономия энергии, но и индикация скорости, пройденного пути, остатка заряда батареи, GPS.
Или я неправ?
:)
Вообще-то задача ставилась по другому. Мне нужен был контроллер способный форсировать имеющееся М-К. Причем форсировать не производя диструктивных воздействий .В основном форсировать по моменту.
Способ управления, примененный в родном контроллере мягко выражаясь не оптимальный. Плюс при данном способе управления пульсация момента около 25%. Это безразлично для лисапеда, но для моего приложения принципиально.
Считать скорость и путь очень легко, но для меня не принципиально, если кому-то потребуется, будем считать, есть возможность сделать эти замеры с точностью до милиметра. :bj:

i

Ошибаетесь.
Код Грея хорош тем, что коды соседних позиций отличаются друг от друга на один бит, т.е при смене позиции мы получаем информацию только в 1 бит, но для этого используются [b-b]все [/b-b]датчики, так как этот бит может измениться в любом датчике.
Мой код также меняется в одном бите, но всегда в одном и том же, в первом, поэтому можно обойтись одним датчиком.
Кстати колеса взяты с реального устройства.

i

Цитата: valery от 16 Дек. 2008 в 21:49
Только код Грея с минимальными затратами может выдать точную позицию, без всяких предысторий.
...
Да.
Мой тоже. Предыстория нужна если хотим сэкономить на датчика. :bk:

Nickolas

Цитата: i от 16 Дек. 2008 в 21:55
Ошибаетесь.
Код Грея хорош тем, что коды соседних позиций отличаются друг от друга на один бит, т.е при смене позиции мы получаем информацию только в 1 бит, но для этого используются [b-b]все [/b-b]датчики, так как этот бит может измениться в любом датчике.
Мой код также меняется в одном бите, но всегда в одном и том же, в первом, поэтому можно обойтись одним датчиком.
Кстати колеса взяты с реального устройства.
Что-то меня переклинило, не могу сообразить как процессор  будет считать позицию при возвратно поступательном движении, воруг фазового перехода (движение туда сюда с амплитудой 1 гр на линии 1/0)

i

Код Грея будет выдавать +/- 1 позицию ("где-то здесь").
Мой будет врать как сивый мерин  :bm:
Но если добавить ещё 1 датчик, то и он будет говорить как и грей.

valery

Цитата: i от 16 Дек. 2008 в 21:59
Цитата: valery от 16 Дек. 2008 в 21:49
Только код Грея с минимальными затратами может выдать точную позицию, без всяких предысторий.
...
Да.
Мой тоже. Предыстория нужна если хотим сэкономить на датчика. :bk:

Тогда объясните следующую ситуацию.
Колесо стоит. Мы включаем контроллер, колесо стоит, а контроллер автоматически, при использовании кода Грея, получает точную позицию.
А что в этом случае получит контроллер с Вашего энкодера?

:)

Nickolas

Цитата: valery от 16 Дек. 2008 в 22:07
Цитата: i от 16 Дек. 2008 в 21:59
Цитата: valery от 16 Дек. 2008 в 21:49
Только код Грея с минимальными затратами может выдать точную позицию, без всяких предысторий.
...
Да.
Мой тоже. Предыстория нужна если хотим сэкономить на датчика. :bk:

Тогда объясните следующую ситуацию.
Колесо стоит. Мы включаем контроллер, колесо стоит, а контроллер автоматически, при использовании кода Грея, получает точную позицию.
А что в этом случае получит контроллер с Вашего энкодера?

:)
Приблизитель,но мой же вопрос но в статике...

i


i

Для статики нужно отказаться от экономии датчиков. Использовать все.

valery

Цитата: i от 16 Дек. 2008 в 22:06
Код Грея будет выдавать +/- 1 позицию ("где-то здесь").
Мой будет врать как сивый мерин  :bm:
Но если добавить ещё 1 датчик, то и он будет говорить как и грей.
Манчестерский код известен всем, также как и под что он заточен. Но это совсем другая песня. И именно там он оправдан.
Доп светодиод не спасает. И жрать ресурс МК он тоже будет.
:)

Nickolas

Ну вроде бы с датчиками разобрались...

valery

Цитата: i от 16 Дек. 2008 в 21:55
Ошибаетесь.
Код Грея хорош тем, что коды соседних позиций отличаются друг от друга на один бит, т.е при смене позиции мы получаем информацию только в 1 бит, но для этого используются [b-b]все [/b-b]датчики, так как этот бит может измениться в любом датчике.
Мой код также меняется в одном бите, но всегда в одном и том же, в первом, поэтому можно обойтись одним датчиком.
Кстати колеса взяты с реального устройства.

Код Грея хорош тем, что альтернативы ему при всех равных условиях нет. :)

Nickolas

Для М-К код Грея, как и манчестер и Рида-Соломона, нафиг не упали. Есть банальный энкодер и три штатных датчика Холла. Датчики Холла однозначно задают позицию ротора в пространстве. И являются нулевой меткой для энкодера. Энкодер дробит угол между "мертвыми" зонами датчиков Холла. Чем проще, тем лучше.