MaxPayneRUS

А зачем, собственно, камрад , нам снова создавать геймпорт? Все современные джои используют интерфейс USB.

Недостатки геймопрта подробнее - положение органа управления определяется путем измерения времени разряда конденсатора RC-цепочки, в которой R - резистор в джое, С - кондер на плате геймпорта. Точность измерения сильно зависит от качества конденсатора и резистора, паразитной индуктивности контура, помех по питанию. Это как повезет со звуковой картой или матерью. Если на кондер разработчики денег пожалели и его параметры (ток утечки, в частности) поплыли со временем, разводку платы сделали неважно - будешь иметь проблемы, или меняй карту, но не факт, что снова повезет.
Другая проблема, и она не лечится ничем в принципе - т.н. шумы дискретизации. Мастдай - многозадачная операционая система, поэтому при периодическом измерении времени разряда конденсатора и передаче в прикладную программу (т.е. в игру) драйвером геймпорта этой информации (т.е. текущего положения органов управления) эти значения могут отличаться при неизменном положении последнего (проявляется, например, в дрожжании крестика в центре окна настройки).
Об этих недостатках в сети (и на форуме) есть масса замечаний, которые сделали люди куда более авторитетные в области электроники, чем моя скромная персона.

Если самодельничать с геймпортовыми джоями, то возникает еще одна проблема, на мой взгляд принципиальная (ведь если мы беремся что-то делать сами, тратить на это свое время, то хочется, чтоб результат был максимально высоким - минимум компромиссов). Практически можно только заменить резистор бесконтактным датчиком. Но, как уже сказал выше авторитетный товарищ Борада, в данном случае резистор надо заменить источником тока , который по своей физической природе является нелинейным (это я помню как инженер-системотехник по диплому ). Нелинейность можно, конечно, минимизировать, вопрос - какой ценой? Плюс вышеперечисленые недостатки геймпорта.
Поэтому использовать геймпорт для самодельной конструкции я считаю неприемлимым по критерию (затраченные усилия)/(качество).

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

Купив года три (вроде???) назад Логитех Вингман Дигитал Экстрим 3д при появлении глюков с рывками по осям по совету друзей (с) Шеф разобрал его для чистки резюков. На плате джоя обнаружил МК ST2..... (не помню сейчас точно цифры). На сайте производителя нашел описание, откуда следовало, что МК имеет 8 (восемь) портов 256 -разрядного АЦП. Тестером нащупал, что на 4 входа АЦП подается напряжение с резюков, что вполне логично . Драйвера вингмана вполне нормальные, поэтому можно на вход АЦП подать напряжение не с резюка, а с самодельного датчика, далее контроллер и драйвер сделают все сами, и знать не будут, что их обманули .
Бесконтактный датчик угол/напряжение (а не ток!) с характеристикой, близкой к линейной в нужном диапазоне углов сделать вполне реально - магнторезисторы нам помогут, например.

Надо собрать достаточо простую схему на ОУ, согласующую выход по напряжению датчика на МР с входом АЦП - и все.

Другие УСБ джои не разбирал по причине их отсутствия, но думаю что там тоже стоят микроконтроллеры с АЦП.
Такой вариант я считаю достойным для изготовления точной механики, надо только дождаться, когда штатный джой убъется до неприемлимого состояния или целевым образом найти и купить по дешевке джой со сломаной механикой, имхо рублей за 300-500 - вполне реально.

На свой Логитех я собираюсь прикрутить разъем и переключатели, чтобы можно было на схему подавать напряжение с внешних датчиков самодельных девайсов, а также внешнее напряжения питания +5 В (стабильное!!!, а не с БП компа, который подсаживается при резкой нагрузке на проц и видяху в играх + высокочастотные помехи), или использовать джой в штатном режиме.

Вот такие резоны.

Ну а рано или поздно какая-нибудь светлая голова с прямыми руками напишет программу для микроконтроллера, который можно будет купить за приемлимые деньги, и дрова (пока мы датчики с самодельными джоями мастерим), это неизбежно, прогресс не остановить


Kelt

Take it easy, buddy !
Ты первый, кто испугался моего ника (он у меня с 1991 г.)