дык, этого нету во free версии.
дык, этого нету во free версии.
Абырвалг, абырвалг, абырвалг!
Зачем тады подстроечник впаивать? Можно же постоянным обойтись! на сколько постоянный ставить?
“... Я устремляюсь в высоту,
в безмерность,
в бесконечность.
К бессмертной, вечной красоте,
в сияющую вечность! Г.Тукай.
Эт только индЮкации нет во фри-версии, а настройка усиления железки таки нужна! Разные фото- и светодиоды, разные рабочие токи, разные расстояния, фильтр есть/нет.
...чего уж тигру лишняя полосочка... (© - не помню)
Пасиб, вроде разобрался с подстроечником. Какой именно фильтр имеешь ввиду?
Имеется интересный глюк: ик диоды светят с разной яркостью , нижний и правый ярче чем верхний и левый (смотреть не со стороны шторки). Сей факт влияет на плавность и залипание(При взгляде влево обзор резкий ,залипает при отрыве взгляда на шесть, вправо всё отлично). Может нужно попробовать где-нить в цепь резюк впоять подстроечный и сравнять яркость?
“... Я устремляюсь в высоту,
в безмерность,
в бесконечность.
К бессмертной, вечной красоте,
в сияющую вечность! Г.Тукай.
Чот тема совсем заглохла, сделаю небесполезный для меня up.
Как и чем можно убрать дрожание при диагональном обзоре , если ровно по осям то всё нормально , но стоит откланиться от оси , то начинаются скачки курсора???
Перечитал ветку, похоже на кромке диодов нестабильность, попробую плёнкой перетянуть!
Крайний раз редактировалось BorzoMetr; 10.12.2007 в 17:06.
“... Я устремляюсь в высоту,
в безмерность,
в бесконечность.
К бессмертной, вечной красоте,
в сияющую вечность! Г.Тукай.
BorzoMetr писал:Как и чем можно убрать дрожание при диагональном обзоре , если ровно по осям то всё нормально , но стоит откланиться от оси , то начинаются скачки курсора???
- попробуй уменьшить размер шторки. у меня что-то похожее было. уменьшил шторку - помогло
Крайний раз редактировалось _mishgun_; 11.12.2007 в 10:32.
Пасиб , попробую на досуге.
“... Я устремляюсь в высоту,
в безмерность,
в бесконечность.
К бессмертной, вечной красоте,
в сияющую вечность! Г.Тукай.
На демо видео видно что на боковых видах устройство ведет себя как хатка. Нет плавности обзора . Тоесть нелзя медленно пройтись по панорамке и внимательно осмотреть боковые виды. Такое ощущение что плавность обзора приходится на +- 25-30 градусов от середины. При вращении головы всторону картинка резко раз - и сразу на боковом виде. Что делается на 2/3 поворота головы - уже не рассмотриш и не прицелишся. Это какнибудь лечится ? Я так понимаю проблема в 10-ти битах АЦП ? Если автору разработки интересно - могу поделится как простейшим образом не выходя из цифры получить в компе данные , да таким способом с которым можно работать по-человечески . В этом случае разрядность каждой оси мождно увеличить до 16 бит , а время опроса до 3 мс. И отказаться от АЦП впринципе.
поделись.
Абырвалг, абырвалг, абырвалг!
делюсь..
Есть такая замечательная микросхема FT232R Это аппаратный преобразователь USB-->RS232 . В микроконтроллере который стоит в хеад джое есть аппапатный RS232. Особенности этой микрухи в том что его RS232 можно настроить на максимальную для контроллера скорость RS232 . У меня парекрасно работает связь железа с компорм на скорости 1.2 мбита по протоколу RS232 через эту микруху. Никакой заморочки с USB . Работаем в чистом виде с КОМ портом. Далее можно быстренько состряпать простейший протокол где пары байт - это 16 битные коорднаты осей X Y Z . Получаем пакет из 6 байт. Передавать этот пакет можно со скоростью 100 герц. У меня по крайней мере 100 герц. Дальше простейшая утилита принимает пакет и эмулирует джойстик. Вот тут некоторая труднеость в плане эмуляции. Принять пакет и разбросать по 3-м переменных - это 3 стрточки кода на дельфи. Дальшьше нужно сэмулировать джойстик. Помоэет в этом по мойму так называемый драйвер виртуальнго PPjoy. У него есть особенность - у него хорошо описан API интерфейс и можно из собственных программ назначать координаты по всем осям в диапазоне 0....5000 точек Что вполне достаточно для плавного обзора и по показателям на порядок лучше трекира. Я насколько понимаю Хеадджой аппаратно выполнен иначе чем трекир и вполне вероятнео что после перевода его в цифру он обгонит трекир намного..
Ой как красиво написал..ток вот я ничего не понял..Как это сделать? Чего куда паять?
2BorzoMetr
У мя такое было когда закрывил излучатель половинкой пластикового яйца от "Киндер сурпрыза" ,при отклонении взгляда по диагонали усиливалась дрожь..
Вот такой излучатель у меня получился...
Крайний раз редактировалось Karlson; 12.12.2007 в 15:36.
Так а смысл? Все равно АЦП в меге 10-разрядные. А в полной версии (которая не фри) частота опроса 125 Гц и насколько я понял, есть фильтрация. Ну так и 125 герц позволяют сделать фильтр.
Мелкосхемы FTDI интересные, конечно, и много любителей их используют (я посматриваю периодически "радиосканнер" и еще пару форумов). Но я все-таки предпочел бы в USB-версии реализацию 125 Гц опроса плюс фильтр.
...чего уж тигру лишняя полосочка... (© - не помню)
взорвал.
Абырвалг, абырвалг, абырвалг!
Попробовал натянуть на ик диода кусочки пакетов , в результате обзор только ухудшиля (стал резким). Я так понял пакет должен быть темного цвета , такие ка мусорные мешки?
Может надобна у сточенных диодов края закруглить, чтоб резкого перехода на кромке небыло? Уже две недели с плавностью воюю, шторку до 15 мм , уменьшил всё безрезультатно. Слышал еще прокальку говорили, где её взять можно или из чего выдрать, где она юзается? Хелп!
“... Я устремляюсь в высоту,
в безмерность,
в бесконечность.
К бессмертной, вечной красоте,
в сияющую вечность! Г.Тукай.
А ! ПАрдон ! Я не совсем разобрал как раьботает девайз. Поясните - насколько я понял , там считывание датчиков прпоисходит в аналоговом виде ? Там ИК диод и разностная схема. В этом случае FTDI не поможет. Но насколько я еще понял что сам контроллер выдает аналоговый сигнал для цепи джойстика который потом превращается в оси джоя ? Правильно ? Вот эту цепочку можно было бы исключить чипом FTDI.
Мелкосхемы FTDI интересные, конечно, и много любителей их используют потому что драйвер-эмулятор стандартного COM порта (VCP драйвер) написан для всех операционок , написан грамотно и самое важное преимущество - простота работы с контроллерами которые имеют апратаный COM порт на своем борту. Причем скорость передачи можно выставить до 7 мбит и работать с простыми байтами и вообще забыть про инициализацию USB , дескрипторы , вендоры и прочие "приветствия".. Особо чип понравится тем кто работает с VCL компонентами. Нарыл компоненти COM порта и любой такой компонент прекрасно работает с FTDI чипом. Ну а так , конечно , если более спортивно - то нужно писать собственный драйвер и ловить баги потом пол года...Тут сел - и без особого вникания в устройство USB начал работать со своими алгоритмами. Всё на аппаратном уровне.
==
Но я все-таки предпочел бы в USB-версии реализацию 125 Гц опроса плюс фильтр
==
Я тестировал 300 герц - 300 герц еще работает. Выше уже нет. Тоесть это частота передачи пакетов по 200 байт на скорости 1.25 мбит.
С филотьтром я намучался с точпэдом. Там 50 герц и никак не избавишся. Но выход был найден - "фильтр скользящего среднего" + небольшая интерполяция к внутреннему таймеру 200 герц + обратная связь , когда сравнивается выходной сглаженный сигнал с входным и реакция происходит только тогда когда превышает разность некоторое значение. В результате 50 герц были подавлены полностью.
Насколько я понимаю, там мега последовательно оцифровывает 4 пакета импульсов после пикового детектора от одного фотодиода, засвеченного одним из 4-х светодиодов, а потом вычисляет разность двух пар (вверх-вниз, влево-вправо). И эмулирует двухосевой (для полной версии - трехосевой плюс ось руля направления) девайс. А ЦАПа там нет никакого.
Вот тут можно про алгоритм, если не секретно (мне для общего развития)? Помню, давным-давно в эпоху БК-0010 мы на кафедре делали фильтр со скользящим окном, с отбросом максимума-минимума, усреднением и что-то вроде даже сравнивали с предыдущим фильтрованным значением. Я в него загонял синусоиду и ступеньку, на которые накладывал шум - вроде неплохо получалось, но алгоритм начисто забыл. И листинги потерялТам 50 герц и никак не избавишся. Но выход был найден - "фильтр скользящего среднего" + небольшая интерполяция к внутреннему таймеру 200 герц + обратная связь , когда сравнивается выходной сглаженный сигнал с входным и реакция происходит только тогда когда превышает разность некоторое значение. В результате 50 герц были подавлены полностью.. И дисквалифицировался давно
![]()
...чего уж тигру лишняя полосочка... (© - не помню)
Алгоритм простой:
Сначала нужно организовать простейший так называемый кольцевой буффер с постоянным периодом приращения (попрерыванию контроллера или по таймеру в винде если будем реализовываь в компе) куда каждый тик таймера будет попадать результат преобразования. Причем тут мы можем преобразовывать данные с частотой заведомо ниже частоты таймера. Если скажем АЦП работает с частотой 10 герц , а фильтр 200 герц - то при изменении данных на его входе , на выходе получим интерполированные данные с частотой 200 герц.
На паскале алгоритм выглядет примерно так:
var
filter_massive: array[0..100] integer; // организовываем массив на 100 ячеек
count:byte; // счетчик приращений буффера
summa:integer; // сумма полученная в результате сложения всего кольцевого буффера
procedure timer1 // вызов процедуры таймера
begin // начали
count:=count+1; // увеличили счетчик на 1
filter_massive[count]:=INPUT_DATA; // положили в массив в следующую от предыдущей ячейку входную величину INPUT_DATA
if count >=10 then count:=0; // если насчитали адрес буффера больше 10 - то адрес буффера начинается с 0. От сюда и понятие "кольцевой буффер"
// затем нужно быстренько сложить между собой все 10 ячеек буффера
for temp:=0 to 10 do begin
summa:=summa+filter_massive[temp];
end;
// далее всю сумму делим на 10 и получаем усредненный вариант преобразования
resultat:=summa / 10 ;
summa:=0; // обнуляем сумму для вычислений следующего обращения таймера к процедуре.
Суть метода такого фильтра - обращение к этой процедуре нужно производить с постоянным инетрвалом примерно 100 герц. Каждое обращение мы заносим INPUT_DATA в новую ячейку буффера . Ячеек у нас 10. Но можно и больше. Дальше мы суммируем только что зашедшие данные в буффер с 9-ю предыдущими. И делим результат на 10 в результате чего получаем более менее фильтьрованные даные.
Но на этом эпопея не заканчивается. Частота 50 герц все равно проходит но в меньшей степени. Задача полностью от нее избавится.
Есть простейшее решение. Мы знаем что входная величина преобразования "гуляет" с частотой 50 герц на некотурую величину ( уменя 5-7 отсчетов ) относительно отфильтрованных данных после фильтра. В следствии чего перед фильтом делаем условие-
IF (INPUT_DATA>resultat+7) or (INPUT_DATA<RESULTAT-7) then begin
.....
далее выполняется фильтр..
Вот тут и есть обратная связь - когда фильтр начинает работать в том лиш случае , когда относительно фильтрованных данных , входная величина изменилась более чем на 7 единиц в ту и другую сторону. (мы знаем что переменка гуляет на несколько единиц отсчета АЦП и воспринимается как шум и дрожание осей). Так как условие стоит ПЕРЕД фильтром , то если дрожание оси будет в педелах +- 6 отсчетов - то фильтр будет стоять на месте как вкопанный. И на экране мы видим мертво стоящую на месте ось. Как только подвинули ось влево на 1 отсчет влево или вправо , условие нарушиьтся и фильтр заново просчитает среднюю ведичину , и опять встанет как вкопанныйю Одним словом , этот алгоритм реагирует на медленые изменения данных а переменки всякие отражает на все 100%..
Крайний раз редактировалось Ezdok; 13.12.2007 в 13:55.
Ezdok, почитай http://headmous.narod.ru/
Абырвалг, абырвалг, абырвалг!
ПОчитал..
Программа для HeadMouse4 состоит из двух частей.
Первая часть записана непосредственно в CPU AT89C2051. Она производит управление железом, измерение сигналов со всех четырех каналов, калибровочное измерение и передачу полученных данных через COM порт.
Вторая часть запускается на компъютере. Она производит прием и индикацию входных данных, и вычисление и индикацию выходных координат X и Y.
==
Вот тут бы поставить фильртр скользящего среднего как я описал и уверен что дрожание осей при боковых взглядах намного уменьшится вплоть до полного исчезновения. Хотя на форуме описывают другой непреодолимый баг с дрожанием , видимо связанный с идеологией устройства.
Первая часть записана непосредственно в CPU AT89C2051. Она производит управление железом, измерение сигналов со всех четырех каналов, калибровочное измерение и передачу полученных данных через COM порт..
===
А вот тут можно подробней ? Меня интересует протокол с помощью которого обменивается контроллер хедмауза с NewView через COM порт.
Вполне много вероятно что я смогу приделать свой точпэд туда и юзать его уже с NewView . Где можно почитать про протокол , скорости олмена и прочее ?
нашел
http://www.sukhoi.ru/forum/showthread.php?t=9991
Там DLL нужно еще подключать к nevWiew .. Толоко слоеный пирог получается какойто....Toushpad-driver-мой сфот для точпэда--DLL--Nview-IL2...