-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от LazyCamel
А в чем проблема ? Берем 8мгц Атмел. кусок кода который занимается счетом с енкодера - занимает порядка 100 тактов. итого за секунду можно посчитать до 80тыс срабатываний. Наружу данные выдаются по SPI. Т.ч. выдать 65535 позиций - ИМХО как некуй делать.
А кто сказал "проблема"? Берем Микрочип, за секунду считаем до 250тыс срабатываний от двух энкодеров, оцифровываем пяток 10битных аналоговых каналов и пару десятков кнопок и выдаем это наружу по USB, как обычно, 250 раз в секунду. . :beer:
-
Ответ: USB контроллер на Микрочипе
Т.е. полный диапазон от стопора до стопора в бытовом руле за $100 даст 82000 различимых позиций? За $100? Не верю! Доказательства в студию!
---
Ну начнем что это несовсем бытовой руль. Там все на подшипах. Правда стоит не 100$ , а 145$...
---
82000 различимых позиций на 900 градусов делается примерно за 1.5 - 2 сек.. Руль быстрее нельзя крутить. Стоит шестеренка , стоит оптодатчик. Шестеренка диаметром примернно 10 мм вращается от большой шестерни на руле раз в 10 больше этой шестеренки. Предаточное отношение 10 к 1 .. примерно.. Я сам удивлялся , но РАБОТАЕТ ! И самое главное - центр не уходит и за 3 часа и за 6 часов.
--
ПО поводу скорости срабатывания. Судя по всему инкримент от шестеренки конитроллер считает ПО ПРЕРЫВАНИЯМ.. При частоте камня в 8 мгц ( на само мделе неизвестно) по прерываниям легко посчитать импульсы частотой гденить до 2-х мгц.. ПОтом кто сказал что каждый импульс уходит в USB ? .... Абсолютно уверен что в порт посылается инкримент/декремент имульсов между опросами шины.Тоесть если опрашивать USB контроллер такого руля с интервалами 10мс , то контроллер будет выдавать разницу импульсов а не их истинное знаечени. Так работали COM мышки.. Да и вобщем вот.
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от Ezdok
Стоит шестеренка , стоит оптодатчик. Шестеренка диаметром примернно 10 мм вращается от большой шестерни на руле раз в 10 больше этой шестеренки. Предаточное отношение 10 к 1 .. примерно..
Штука в том, что шестеренки передают усилие пропорционально передаточному отношению, а инерционность - пропорционально квадрату того же отношения. Все знают как трудно раскрутить даже хорошую систему с "медленного" конца. Поэтому я шестеренки и прочие передаточные системы стараюсь обходить стороной. Хотелось бы всю механику иметь на основной оси напрямую.
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от Ezdok
Ггмм.. а в чем новость ?????
Logitech Driving Force pro давно юзается с энкодрами. Там некое шестеренчатое колесо с оптодатчиками. Разрешение 16384 кликов на 180 градусов... Руль крутится на 900.. Вобщем года 4 это уже есть.
Ну шо с вами делать! Пришлось пойти и купить этот руль - посмотреть, что там крутолобые придумали! Будем его немного посмотреть. :D
Впечатление номер один - low-speed USB. На кабеле, что-ли, решили сэкономить? :expl:
Впечатление номер два - достаточно дискретный, ступенчатый force-feedback.
Ну что же, значит будем делать свой контроллер :D
-
Ответ: USB контроллер на Микрочипе
Блин , хорош прикалыватся. Это руль днем с огнем несыщеш. Он для Sony PS2.Но при знании темы подходит для PC. Недумаю что речь и дет о том самом руле.. Последний раз его видели полтора года назад на Горбушке.. Больше его никто на прилавках невстречал..
Посвторюсь для особо одаренных. Для передачи 10-ти байтных пакетов с интервалом 10мс скорость USB2 ненужна. Слихвой хватает USB1. Повелась мода на высокоскоростные контроллеры. В конференциях можно встерить такой разговор:
"Ага .. USB1... не.. неправильное устройство..немодно , негламурное....
ПОлучается что устройства на SATA или SCSI круче ? "..
как говорится no comment..
Контроллер этого руля разрабатывался года 4 назад и как старая добрая вещь работает до сих пор без нареканий.
Что касаемо фидбэка - в этом руле самый качественный фидбэк до сих пор. Аналог ему убогий MOMO.. Но за руль я его не считаю.
И вообще , дорабатывать Loditech Driving Force Pro придет в голову только сумашедшему....
--
Далее - речь шла о контроллер на Микрочипе.. ГДЕ ОН , КОНТРОЛЛЕР ?
-
Вложений: 1
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от Ezdok
Блин , хорош прикалыватся.
Фигня, одним рулем меньше в природе станет! :D
Что касается тайминга я тебе один хороший вещь скажу - если компьютер задействован в петле обратной связи с задержкой 10мс в обе стороны, то максимальная скорость реакции системы в идеальном случае не превысит 20мс, т.е. частота обновления информации будет в любом случае меньше 50Гц.
Монстры тактильного фидбека признают что обновляться нагрузки должны как минимум с частотой 300Гц и выше.
-
Ответ: USB контроллер на Микрочипе
Ну как разборка ? Увидел шестерню ? На валу двигателя ?
Поситай сколько делает оборотов вал этой шестрени за все 900 градусов и умножь на количество лепестков на этой шестрени !.. Ну , сколько получилось ?
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от Ezdok
Ну как разборка ? Увидел шестерню ?
После ужина начну вивисекцию. :)
Ступенчатость может быть вызвана двумя причинами - слишком большой дискретностью обратной связи (оптического энкодера), либо недостаточно высоким качеством системы управления приводами - например, 8-битной разрядностью ШИМ. Хотя ШИМ в современных контроллерах 10битный, у меня для этого дела припасены 12битные ЦАПы на которых я собираюсь сделать аналоговую петлю обратной связи по току. В двигателе постоянного тока усилие пропорционально току.
На низких оборотах обратная ЭДС не так велика и, в принципе, ей можно принебречь - но тольоко на низких скоростях. Если используются шестеренчатые передачи, то управлять уже нужно не напряжением, а током - еще одна причина, почему я не люблю шестеренки.
-
Вложений: 3
Ответ: USB контроллер на Микрочипе
Так вот ты какой, суперэнкодер!
В колесике около 58-60 дырок и оно совершает около 7.5 оборотов при повороте колеса на 180 градусов. При х4 декодировании по фронтам это даст порядка 1800 различимых позиций (не метили ли разработчики на 10 позиций/градус). При сохранении геометрии, поворот руля в пределах 900 градусов даст 9000 позиций.
Хочу сказать, что обычно в а-ля мышиных энкодерах х4 декодирование работает не лучшим образом - длительность темнового импульса плавает в пределах 30-70% и каналы могут быть сдвинуты относительно фазы 90 градусов. Так что четыре последовательных позиции могут достаточно сильно хромать.
-
Ответ: USB контроллер на Микрочипе
Период импульсов ШИМ, управляющих двигателем загрузки - 31.8мкс (частота около 32кГц) Наименьший шаг изменения ширины импульса который я смог засечь - около 120нс. Итого, получаем, что контроллер управляет загрузкой с 8-битной точностью.
Кстати, в основной рабочей зоне шаг загрузки мотора почему-то укрупняется до четырехкратного значения, таким образом дискретность управления становится еще больше. Вот вам и лесенка.
Я начну с 10-битного управления загрузкой, а там - посмотрим. Мы спешить не будем :D
-
Ответ: USB контроллер на Микрочипе
Пардон , кто хромает и у кого лесенка ?
У FF ?? Если у FF - то обрати сначала внимание на коллекторный двигатель этого FF.. По ощущениям , лесенка ( дискретность) рождается на стыках лепестков коллектора двигателя , там 4 лепестка на сколько я помню , вот между этими лепестками есть промежутки , когда щетки замыкают 2 обмотки сразу и .... в результате происходит уменьщение силы FF.. рождается лесенка... Для того чтобы этого небыло - нужен другой двигатель с большим количеством обмоток , тогда лесенки будут почти незаметны. А лучше всего делать на безколлекторном двигателе..
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от Ezdok
Пардон , кто хромает и у кого лесенка ?
У FF ?? Если у FF - то обрати сначала внимание на коллекторный двигатель этого FF.. По ощущениям , лесенка ( дискретность) рождается на стыках лепестков коллектора двигателя , там 4 лепестка на сколько я помню , вот между этими лепестками есть промежутки , когда щетки замыкают 2 обмотки сразу и .... в результате происходит уменьщение силы FF.. рождается лесенка... Для того чтобы этого небыло - нужен другой двигатель с большим количеством обмоток , тогда лесенки будут почти незаметны. А лучше всего делать на безколлекторном двигателе..
Судя по осциллограммам тактильная "лесенка" ощущается при изменении заполнения ШИМ, при этом двигатель делает по нескольку оборотов между толчками.
А по поводу моторов - это ничего, у нас опыт есть какой-никакой - у меня припасены три 110-ваттных мотора с плоскими роторами - там плоские коллекторы со 130 контактами/обмотками или около того, вобщем больше чем 4 :D http://www.pmlflightlink.com/motors/GP.html
Бесколлекторные сервомоторы уже опробованы и отложены в сторону. У них хоть сила и немеряная, и щеток нет, магнитное поле ротора достаточно неравномерное, поэтому на ощупь это чувствуется ощутимо (при фиксированом токе статора корректно следящим за вращением). Причем речь идет не о дешевых поделках типа Eurotherm которые недалеко ушли от шаговых двигателей, а о лучших японских сервоприводах Fanuc. К сожалению, нужна или петля обратной связи по усилию (на тензодатчиках), или индивидуальная калибровка и коррекция тока для компенсации нелинейности крутящего момента от положения ротора.
-
Вложений: 1
Ответ: USB контроллер на Микрочипе
А вот и коллектор. У меня со счетом не очень в школе было :D
-
Ответ: USB контроллер на Микрочипе
блина.. круто.. мнеб такой.. Искал искал , да забил на переделку..
-
Кстати , дискретность ШИМ ощущатся неможет никак. Даже если 8 бит , все равно 256 шагов никак не ощютимы. Всеже вместо двигана поставить резюк на 1кил и померять осцилом че тан на нем..... чем больше угол отклонения руля от центра , тем разностней будут плечи ШИМ.. Вот на резисторе и посмотреть. На двигателе ничего невидно будет из за влияния обмоток.
-
Ответ: USB контроллер на Микрочипе
Вот тут http://www.ece.ubc.ca/~tims/pubs/IMECE99Salcudean.pdf мужики решили, что им нужно не меньше 12бит для трехмерного мышеподобного чуда. Все зависит от максимального достижимого усилия. Если закладывать хорошую максимальную нагрузку, то 1/256 шаг лего ощутится. Все зависит от максимального тока (усилия). Может, можно логарифмическую шкалу завернуть, но проще увеличить разрядность ШИМ. А на осциллографе все отлично видно. Фронт двигается шагами. Индуктивность, конечно видно как действует, но шаги видно четко.
Ты прав насчет коллектора, в DFP почему-то пять контактов на нем (две щетки) и, похоже, толчки синхронны с переключением контактов. Если в момент прохождения двух контактов под щеткой ток идет через обе обмотки, то усилие на роторе моментально увеличивается вдвое, так что разрядность ШИМ отходит на второй план. Управление током помогло бы сильно, но у них там обычный H-мост стоит и коммутирует 24В.
-
Ответ: USB контроллер на Микрочипе
lbodnar, а какое передаточное отношение от руля к двигателю, и какой момент получается на руле?
И еще, шестеренчатая передача обычная или безлюфтовая?
-
Ответ: USB контроллер на Микрочипе
Отвечу я...
Там промежуточная шестерня которая между шестерней двигана и самим рулем сидит на простом полированном штыре. Диаметр отверстия в этой шестерне чуть больше диаметра штыря. Естессно присутствует люфт. Я как сделал - на вал накрутил полоску прозрачной пленки для печати на принтере , одел шестерню и таким образом избавился от люфта. Естессно побьольше силиконовой змазки. Но вот беда с ощущениями от самой шестеренки осталась... Я думаю что демпфирующий резиновый ремень от вала двигателя к шестеренке решил бы сразу проблемы с неприятными ощущениями.. Был такой руль от майкрософт лет 5 назад.. мне он очень нравился по ощущениям. Никаких рывков и "зазубрин'..
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от LeonT
lbodnar, а какое передаточное отношение от руля к двигателю, и какой момент получается на руле?
И еще, шестеренчатая передача обычная или безлюфтовая?
Передаточное отношение руля к двигателю - 1:40
Максимальный момент измерить нечем, но порядка 3-4кг на ободе руля (диаметр 25см), так что получается около 4 ньютон-метров.
Шестеренки обычные, так что на ободе руля есть люфт в пару миллиметров (если ротор двигателя зафиксировать)
Шестеренка, про которую ezdok ведет речь видна на третьем снимке в глубине, под маленькой шестеренкой вала двигателя.
Черная - сидит на валу руля, белая - промежуточная, блестящая - металлическая шестерня вала движка.
-
Вложений: 1
Ответ: USB контроллер на Микрочипе
Кто-нибудь может объяснить, нахрена щетки повернуты вогнутой стороной поперек цилиндрической поверхности коллектора?!
-
Ответ: USB контроллер на Микрочипе
Спасибо за информацию.
О щетках - плохо видно, но похожее явление бывает на некоторых двигателях. Там это вызвано своеобразной выработкой: в средней части щетка будто бы "выкрашивается". Не на всю глубину, а на несколько десятых мм с краев.
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от lbodnar
Вот тут
http://www.ece.ubc.ca/~tims/pubs/IMECE99Salcudean.pdf мужики решили, что им нужно не меньше 12бит для трехмерного мышеподобного чуда. Все зависит от максимального достижимого усилия. Если закладывать хорошую максимальную нагрузку, то 1/256 шаг лего ощутится. Все зависит от максимального тока (усилия).
Ребят. вам не кажется что вы начали мастурбировать умными словами на ровном месте ? Просто из-за того чтобы показать что не лыком шиты (чисто русская особеность кстатиЮ независомо от страны проживания :-).
Давайте таки поделим два вопроса.
Разрешающую способность датчика положения вала рулевого колеса.
Разрешающую способность УМНОЖЕННУЮ на частоту дискретизации и характеристики ФНЧ у ШИМ-системы ФФ.
ИМХО трудно требовать от консьюмерсого девайса за 100 баксов применения в ФФ вязкостной электромагнитной муфты скажем с дифференциалов Лансер ЭВО VII, не так ли ?
И ИМХО среднее время реакции девайса с латентность 10мс будет стремиться к 14мс независимо от того используется ли дискретность отсчетов в 10 или 1 мс.
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от LazyCamel
Ребят. вам не кажется что вы начали мастурбировать умными словами на ровном месте ? Просто из-за того чтобы показать что не лыком шиты (чисто русская особеность кстатиЮ независомо от страны проживания :-).
Давайте таки поделим два вопроса.
Разрешающую способность датчика положения вала рулевого колеса.
Разрешающую способность УМНОЖЕННУЮ на частоту дискретизации и характеристики ФНЧ у ШИМ-системы ФФ.
ИМХО трудно требовать от консьюмерсого девайса за 100 баксов применения в ФФ вязкостной электромагнитной муфты скажем с дифференциалов Лансер ЭВО VII, не так ли ?
И ИМХО среднее время реакции девайса с латентность 10мс будет стремиться к 14мс независимо от того используется ли дискретность отсчетов в 10 или 1 мс.
:D
Я думаю, что все должно быть сбалансировано - механика этого руля вполне неплохая, даже настоящие стальные подшипники не пожалели поставить. А вот моторчик можно было бы и получше подобрать... Тогда бы и 8 битный ШИМ работал как на все сто.
Как задешево сделать ШИМ с петлей связи по току я не знаю. Я знаю как сделать на инструментальных усилителях, компараторах и прочей аналоговой лабуде. Но это уже не задешево :(
А что ты имеешь в виду, говоря о ФНЧ ШИМа? Механические характеристики системы? При управлиени двигателями постоянного тока вообще ФНЧ как таковой не использется - индуктивности обмотки достаточно.
-
Вложений: 1
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от lbodnar
Так вот ты какой, суперэнкодер!
...
Хочу сказать, что обычно в а-ля мышиных энкодерах х4 декодирование работает не лучшим образом - длительность темнового импульса плавает в пределах 30-70% и каналы могут быть сдвинуты относительно фазы 90 градусов. Так что четыре последовательных позиции могут достаточно сильно хромать.
Посмею не согласиться, потому что если счет идет по фронтам, то фаза тут ни причем. И длительность между импульсами тоже. В прицепе программа иллюстрирующая работу подобного устройства (в основе датчик мышы - колесо на 40 прорезей). Нет никаких сдвигов и потери импульсов при смене направления. Если вдруг такое и случится, то это будет один импульс на очень большое время. И то только если будут какие-то помехи по питанию, или в противном случае попадет пыль между свето и фотодиодами.
А на основе мышынного оптического датчика можно сделать дешевый и надежный энкодер, так как я лично снимал характеристику на оцилле, в результате чего форма импульсов индентична промышленным энкодерам.
И насколько я понимаю те энкодеры выдают только импульсы, которые потом обрабатываются в дальнейшем. Я же предлагаю взять дешевый микроконтроллер(например PIC10F202/206 - меньше 1$) и сделать готовое устройство, на выходе которого будет уже нужная величина. При этом не будет расходоваться время на обработку сигнала основным контроллером. Величины в 256 отсчетов на угол отклонения 30 градусов в одну сторону более чем достаточно. Потому, что никто не собирается расписывать подковы блохе и этой величины за глаза, так как на один отсчет приходится примерно 0,2 градуса. Покажите мне человека, который бы смог отклонять ручку с такой точностью, или даже меньше? Так что споры о количестве разрядов излишни. Уже кто-то говорил. что такую разрядность АЦП в джоях использовали только потому, просто были сделаны такие контроллеры с такой разрядностью, а также ввиду того, что резюки используются не на весь диапазон. Тем более что и программ, использующих 10 разрядов, тоже нет.
Так что вот так вот!
В прицепе программа работы оптического датчика (возможные глюки в отображении информации не берите в расчет, так как делалась на скорую руку для проверки алгоритма. Главное импульсы считает правильно. Размер основного кода невелик, не более 15 строк на Паскале (Дельфи).
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от BearKUT
Посмею не согласиться,
Вы не учитываете временную составляющую. Если вы заметили, речь идет об устройствах с FF, а для корректной эмуляции инерции (стандартный эффект FF протокола) необходимо дважды дифференцировать координату. В результате взятия разности от разности трех последовательных отсчетов, ускорение (а как следствие, и сила), пропорциональное ускорению, на сетке координат с большим шагом будет изменяться во очень небольших пределах - буквально с 3-4 битной разрадностью. Передайте это на устройство загрузки и получится не инерция, а стиральная доска. А если еще и фаза импульсов плавает...
Зачем добавлять "дешевый" контроллер если есть специализированные чипы квадратурных декодеров считающие импульсы до сумасшедших скоростей (20МГц!) с 24битными счетчиками. У меня на столе сейчас таких пол-десятка валяется, вот он - LS7166. Только для контроллера с FF он [пока] избыточен.
А 10битная разрядность стала повседневной - каждый второй симулятор обрабатывает полную разрядность DirectInput устройств, которая равна 16и битам. Если вы думаете, что я просто так от нечего делать в гонку за цифрами ударился, то скорее всего, мы занимаемся совершенно разными проектами.
Цитата:
Сообщение от BearKUT
Тем более что и программ, использующих 10 разрядов, тоже нет.
Так что вот так вот!
Спасибо за категоричность, тут как раз ее не хватает - все дискуссии да споры... :D
-
Ответ: USB контроллер на Микрочипе
Цитата:
Сообщение от lbodnar
Вы не учитываете временную составляющую. Если вы заметили, речь идет об устройствах с FF, а для корректной эмуляции инерции (стандартный эффект FF протокола) необходимо дважды дифференцировать координату. В результате взятия разности от разности трех последовательных отсчетов, ускорение (а как следствие, и сила), пропорциональное ускорению, на сетке координат с большим шагом будет изменяться во очень небольших пределах - буквально с 3-4 битной разрадностью. Передайте это на устройство загрузки и получится не инерция, а стиральная доска. А если еще и фаза импульсов плавает...
А зачем ее учитывать - эту временную составляющую?! И о какой инерции идет речь? Если нужно загрузить ручку джойстика, то эту работу должен выполнять контроллер по данным из программы. А энкодеры должны только снимать первичные координаты по осям, и все. В этом-то и заключается эффект FF, что он только воздействует на ручку, не получая от нее ничего. А уж как это будет происходить, и надо программировать контроллер или писать драйвер для преобразования данных из программы в тот вид, который необходим для получения того или иного эффекта.
Цитата:
Сообщение от lbodnar
Зачем добавлять "дешевый" контроллер если есть специализированные чипы квадратурных декодеров ...
Для того чтобы цена была доступна многим. Тем более что один контроллер на датчик более универсален, чем один на много датчиков. По крайне мере можно каждый адаптировать под свои задачи, например на оси и руль можно разрядность повысить, а для остальных это в общем-то ни к чему. В этом и есть универсальность. Потому, что не надо переделывать прошивки основного процессора, который только собирает данные и передает в ПК. Также можно оперативно заменить один модуль другим. Ну и т.д....
И напоследок: во всех двигателях постоянного тока с двух полюсными магнитами всегда нечетное количество обмоток, а следовательно и контактов коллектора и чем больше это число, тем ровнее работает двигатель. А коллекторы с четным кол-вом контактов используются в двигателях с многополюсными магнитами..., и спец. схемами сдвига фазы.