PDA

Просмотр полной версии : Самодельный контроллер джойстика



Maxix
08.11.2003, 22:12
Коллеги, хочу поделиться своей радостью
мой самодельный контроллер джойстика заработал!

вот тут я делился тем что он в разработке.

http://sukhoi.ru/forum/showthread.php?threadid=16634&perpage=25&pagenumber=5

программа конечно еще сырая, да и прошивка тоже только первый рабочий вариант
НО!
самое главное что вся связка работоспособна! сегодня проверил на ИЛе...не тормозит
Много аналоговых осей это здорово!
главное что теперь я могу делать преобразование сигнала с датчика в контроллере и не волноваться что он нелинейный. плюс я сделал сглаживание на каждом канале и сигнал теперь не дрожит .
вобщем я сегодня хожу вот такой %)

следующий этап правильные ДАТЧИКИ
скорее всего магнитные...

SLI=SHURIK_25=
08.11.2003, 23:32
Максим, поздравляю!
Очень интересно! Желательно услышать как можно больше подробностей, понимаю, что еще рано, но все же...

Maxix
09.11.2003, 19:37
Сейчас все собрано на макетке.
поскольку железная часть схемы очень проста для повторения то я думаю она может стать хорошей базой для создания многоосевых РУДов и педалей

сейчас задействованы все аналоговые входы контроллера (это 4-10 битных и 2-8 битных) эту плату когда она будет готова я хочу запихать в РУД. т.е. РУД,Шаг,триммер элеронов,триммер руля совместить в одном блоке. +2 запасных (мало ли что :) )

на педали планирую сделать выносную измерительную часть чтоб не делать длинного аналогового конца. это пока в проекте.

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

далее пакет принимает программа и перебрасывает виртуальному джою
который создается вот этими дровами тыкать сюда (http://www.geocities.com/deonvdw/PPJoy.htm)
эта часть вызвала у меня наибольшие проблемы потому как я очень давно не писал программ для большой машины и виндов и попутно изучал Дельфу.

вот сейчас вроде как программа конвертора работает и летать с ней вполне можно.
конечно я еще вижу куда ее улучшать но наверное оставлю пока как есть.

значит теперь моменты которые тормозят выкладывание материалов для общего пользования.
1. хочу сделать заливку в контроллер данных о разных датчиках чтоб можно было менять кривую отклика.не меняя прошивку.в принципе никаких технических сложностей только написать программу + заливальщик.
(сейчас есть только линеаризация резистора с характеристикой B).
2. надо опробовать и сделать нормальные датчики.
3. хочу чтоб железка позволяла перешивать микропрограмму прямо в плате. надо разобраться как сделать правильно.
4. еще хочу добавить возможность сделать больше каналов хотя бы +2.

пока я планирую сделать рабочий (который меня устроит) вариант для себя + некоторое количество для тех кто попросит. и потом ,как это обычно делается, выложить куда нибудь на сайт.

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

Вот.

ZLODEY
09.11.2003, 20:42
Нннннннннннуууууу что я могу сказать......... ОЧЕНЬ РАД за тебя, Максим! :) Поздравляю! :) Такие шаги вперёд, по-моему, это очень здорово!!! Успехов в дальнейшем и тогда ждём "десерт" ;)

Kitti_kat
10.11.2003, 10:15
Это круто! Поздравляю от всей души! Ждем паблик версию.

boRada
10.11.2003, 10:21
Молодца!

Kelt
10.11.2003, 14:18
Очень интересно какие микросхемы будут использоваться, и сможет ли профан в электротехнике собрать таковую конструкцию, владея только паяльником.
Или под силу будет только подкованным?

Maxix
10.11.2003, 14:41
Originally posted by Kelt
Очень интересно какие микросхемы будут использоваться, и сможет ли профан в электротехнике собрать таковую конструкцию, владея только паяльником.
Или под силу будет только подкованным?

Мне сложно судить кто сможет а кто нет :)

поскольку используются только цифровые микрушки и ничего подбирать не надо то скорее да чем нет.
Схемка очень простая. Можно даже на макетке собрать.
Я пока не бросил ее сюда потому что еще наверняка изменятся цепи датчиков, шины программирования и кнопок.

Проблемка будет прошить контроллер. как показал опыт простейший програматор (проводки от LPT) работает плохо
в среднем 1-2 ошибки на 3 перешивки т.е. надо будет собирать нормальный. это тоже совсем не сложно.я уже это прошел.

GO!
10.11.2003, 17:10
простейший програматор (проводки от LPT) работает плохо в среднем 1-2 ошибки на 3 перешивки

Программатор может работать плохо под XP, попробуй под Win9x ;)

Maxix
10.11.2003, 18:13
ага,
было у меня такое подозрение что не без XP :(
я правда пробовал и под 2000 но потом просто сделал нормальный и проблемы пропали :)

MaxPayneRUS
11.11.2003, 09:07
Вот описание + схема + программа для изготовления джойстика ака геймпад, может кому пригодиться, познавательная штука;)

MaxPayneRUS
11.11.2003, 11:24
Варнинг!
Схема НЕ В АРХИВЕ! Просто ПОМЕНЯЙТЕ РАСШИРЕНИЕ НА *.pdf !

Kitti_kat
12.11.2003, 09:43
2 Maxix А вот как дела с быстродействием у твоего контроллера, а то кугуару не
хватает времени обсчитать все оси , немного опаздывает.
Надеюсь все хорошо?

Maxix
12.11.2003, 12:14
Originally posted by Kitti_kat
2 Maxix А вот как дела с быстродействием у твоего контроллера, а то кугуару не
хватает времени обсчитать все оси , немного опаздывает.
Надеюсь все хорошо?
Мда. я вот тоже с удивленем узнал что у кота скорость не та :)

я к сожалению не настолько продвинутый пилот как baikal поэтому пока на глаз не могу определить достаточна или нет.вроде тормозов не видно.

главное что и прошивка и программа самопальные т.е. можно подкрутить если что не так.есть еще правда дрова виртуального джоя но думаю что и их можно будет в случае чего переписать.

могу сказать в числах.

время измерения ацп 83 мкс. сейчас 6 каналов т.е. цикл 0.5 mS + непрерывное сглаживание на каждом канале сейчас по 8 отсчетам т.е. новое значение появляется не позже чем через 0.6 mS.
передача пакета в 15 байт на 38400 занимает ~3.5mS
я посмотрел как работает обычный game порт он опрашивается примерно каждые 20mS ну и я сделал так же.
т.о. времени на обработку еще вагон.
если не хватит - резервы такие : можно поднять скорость до 115200 и поиграть с интервалом посылки пакетов.

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

вроде датчик получается.
вот засохнет можно будет снять характеристику.

Kitti_kat
12.11.2003, 12:36
Если будет возможность сделать настройки через драйвер - должно быть получше т.к микроконтроллер будет занят только измерением и частоту опроса осей можно поднять и настройка будет более гибкой , а сглаживание и кривую отклику запихнуть в драйвер.
Какой микроконтроллер используешь? Хочу озаботиться его изучением доставанием.
Какой прогой прошиваешь чип? ICPROG?

Maxix
12.11.2003, 17:38
Контроллер AMTEL MEGA8 16MHz

именно этот контроллер это не догма,просто пока я не нашел ничего лучше.


шьется помимо прочего вот этой замечательной прогой.
http://ln.com.ua/~real/avreal/

дело в том что мощи контроллера хватает выше крыши. я думал сначала напрячь его работой по передаче через usb.
в принципе и 12 Mhz должно было для этого хватить.

но похоже что изменение настроек в драйвере программы получшее будет.именно из-за простототы .

VGV
12.11.2003, 17:50
меня вот что остановило, а куда мне все эти разные контроллеры вставлять чтоб прошить? если глупость спросил, звиняейте, не профессионал я :) так балуюсь...

Maxix
12.11.2003, 18:13
Варианта собственно всего 2
1 сделать программатор самому.см 1 пост выше
2 попросить прошить того кто умеет

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

Maxix
12.11.2003, 18:26
Вот такая примерно будет схемка.
Любые замечания ОЧЕНЬ приветствуются.
эта схема собственно сейчас работает на макетке.
нарисован один канал другие просто дублируются.

saddam
12.11.2003, 21:38
Maxix

Брат, ну ты бесподобно крут! Особенно найти решение СОМ вместо УСБ.
Согласен, что кривую отклика лучше засунуть в драйвер.

Вопрос - зачем индуктивность в плюсовом проводе датчика?

ZLODEY
12.11.2003, 22:22
Да уж, и правда не кисло.... ;)

Maxix
13.11.2003, 00:41
Originally posted by saddam
Maxix
Брат, ну ты бесподобно крут!
[/B]
и не говори %) сам тащусь что получается :)


Вопрос - зачем индуктивность в плюсовом проводе датчика?
Нуу вроде как фильтр. RC можно поставить но только вот датчиков ,будет 6 шт. и каждый сосет по ~7mA + еще стабилитрон 10 уже не мало получится - питание у них опустится.

а как тебе кажется правильнее?

кстати я кажется понимаю почему логитехи с гениусами отказались от джоев на COM
нормальный ток с него не снимешь :(

но это меня не остановит :) будет питаться пока от usb.

saddam
13.11.2003, 01:04
Я думаю, что для ТАКООООЙ схемы ;) ну просто неприлично будет не сделать внешний БП (не импульсный) на 5 В и ток на пару амперов :):):). Я на КРЕН-ку денег не пожалею :)

Если серьезно, то даже +5 В УСБ - так себе вольты.
Тут на досуге запустил МВМ, погонял в ЗС, а потом глянул на лог напряжения +5В - под нагрузкой скачет на 0.05 В. А какие там помехи - могу себе представить.

boRada
13.11.2003, 06:48
Originally posted by saddam
Я думаю, что для ТАКООООЙ схемы ;) ну просто неприлично будет не сделать внешний БП (не импульсный) на 5 В и ток на пару амперов :):):). Я на КРЕН-ку денег не пожалею :)

Если серьезно, то даже +5 В УСБ - так себе вольты.
Тут на досуге запустил МВМ, погонял в ЗС, а потом глянул на лог напряжения +5В - под нагрузкой скачет на 0.05 В. А какие там помехи - могу себе представить.
А вот это действительно мысль - надо встать осциллографом и посмотреть во время игры.. седня попробую..

MaxPayneRUS
13.11.2003, 07:50
Originally posted by saddam
Я думаю, что для ТАКООООЙ схемы ;) ну просто неприлично будет не сделать внешний БП (не импульсный) на 5 В и ток на пару амперов :):):). Я на КРЕН-ку денег не пожалею :)

Если серьезно, то даже +5 В УСБ - так себе вольты.
Тут на досуге запустил МВМ, погонял в ЗС, а потом глянул на лог напряжения +5В - под нагрузкой скачет на 0.05 В. А какие там помехи - могу себе представить.
Парни не суетитесь :) вспомните принцып работы АЦП :) она вычисляет не чистое напряжение на контрольном входе, а разницу с эталонным, если питание снизить или поднять одинково подниметься (опуститься) напряжение с датчика и эталонное, а РАЗНИЦА МЕЖДУ НИМИ ОСТАНЕТЬСЯ НЕИЗМЕННОЙ :)

Kitti_kat
13.11.2003, 10:42
Originally posted by MaxPayneRUS
Парни не суетитесь :) вспомните принцып работы АЦП :) она вычисляет не чистое напряжение на контрольном входе, а разницу с эталонным, если питание снизить или поднять одинково подниметься (опуститься) напряжение с датчика и эталонное, а РАЗНИЦА МЕЖДУ НИМИ ОСТАНЕТЬСЯ НЕИЗМЕННОЙ :)

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

Kitti_kat
13.11.2003, 11:38
2 MAXIS Большой спасиба за схемку, пойду по магазинам чип искать.

MaxPayneRUS
13.11.2003, 11:47
Originally posted by Kitti_kat
Если опорное вырабатывается внутри чипа то оно может не так явно зависеть от внешнего питания поетому питание даже лучше разделить на два канала от одного питать чип от другого датчики потому как при работе чипа неизбежно возникают импульсные помехи.
Ну тра"№;%тесь, мазохисты :), до чего все таки упорные :), учиться надо не на своих ошибках :)

Kitti_kat
13.11.2003, 12:05
2 MAXIS А в драйвере будет возможность назначить одну кнопку на шифт?
Еще такая идея - сделать ось с шифтом чтобы при нажатие на кнопку ось меняла свою функцию - например использовать одну и ту же ось( железа ) для управления триммерами .

Maxix
13.11.2003, 12:41
Originally posted by Kitti_kat
2 MAXIS А в драйвере будет возможность назначить одну кнопку на шифт?
Еще такая идея - сделать ось с шифтом чтобы при нажатие на кнопку ось меняла свою функцию - например использовать одну и ту же ось( железа ) для управления триммерами .
опа :) такое мне в голову еще не приходило.
думаю что можно вот только пока не соображу КАК?
ведь осей виртуальных всего 8 и вроде все будут заняты.
я подумаю...

ZLODEY
13.11.2003, 17:37
Ну а с кнопками ШИФТовыми хотябы?
1-2-3 сделать и это будет сказка для вирпила!!! ;)

Kitti_kat
14.11.2003, 08:49
2 Maxis я тут ссылку нарыл про сериал порт программер
http://jaichi.virtualave.net/avr-prog-e.htm я думаю его можно встроить в схему контроллера т.к MAX 232 на схеме уже есть можно добавить несколько елементов и не подключать программер для LPT. Так сказать все в одном.
MEGA8 чип поддерживается, софт для 98-ХП.
Насчет оси с шифтом -это чтобы на датчиках сэкономить
например сделать "железных" 5 осей, вот 5ю и сделать с шифтом для триммеров и прочего.
Еще идея - раз это не реализовано в ЗС сделать в драйвере возможность двигать Газ и Шаг одновременно или по какойто зависимости.

Maxix
14.11.2003, 10:13
2 Zlodey
с шифтами такая же проблема как с аналоговыми осями
драйвер виртуального джойстика дает порулить 16 кнопками чтобы сделать больше вроде как надо бы переписать его самому (я так понял)
в принципе можно попробовать сделать как на логитехе подсовывать нажатие на кнопку как клавиатурное событие.я думаю что пока отложу реализацию этого
чуть-чуть.

2 Kitti_kat
хмм ты предлагаешь мне встроить програматор в схему?
почему бы и нет?

кстати эта ссылочка почемуто не работает

насчет двигать шаг и газ одновременно мне кажется что для этого надо просто делать конструктивно РУД таким чтоб это было удобно,а не мучить софтину :)

Kitti_kat
14.11.2003, 11:15
serial portprogrammer (http://jaichi.virtualave.net/avr-prog-e.htm) Вот еще раз ссылка. Я еще проверю ICprog
он мне больше нравится да и программатор под него есть.

MaxPayneRUS
14.11.2003, 11:56
Originally posted by Kitti_kat
serial portprogrammer (http://jaichi.virtualave.net/avr-prog-e.htm) Вот еще раз ссылка. Я еще проверю ICprog
он мне больше нравится да и программатор под него есть.
Насколько я помню подобные девайсы шьються по последовательному порту, через тот же max232 на управляющий вывод микросхемы подаеться сигнал и МК переходит в режим приема микропрограммы в виде последовательного кода, а микропрограмму ему любой терминал выдаст на раз, но лучше спец прогой пользоватся, на схеме у вас кстати и показан канал записи RX типа, остаеться питание подать на управляющий и хоть обпишись:)

Maxix
14.11.2003, 12:50
Originally posted by MaxPayneRUS
Насколько я помню подобные девайсы шьються по последовательному порту, ...

немножко не так.
для програмирования используется разъем X1
там задействовано 5 линий
на 232 остается еще один канал "туда" и один "обратно" т.е. дефицит -3 канала
подключать в обход не хочется, ставить еще один накладно. блин пока будет наверно так как есть.

со ссылкой разобрался
этот адрес на моей проксе попал в порнушный blacklist :)

Maxix
16.11.2003, 03:19
Типа Development Update :)
вроде с датчиками разобрался
вот в соседнем набросал
тыц суды (http://sukhoi.ru/forum/showthread.php?postid=232021#post232021)

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

еще вот решил протокол обмена улучшить. придется переписать большую часть драйвера...ладно пошел спать :)

ZLODEY
16.11.2003, 11:26
Круто! Такое ощущение что в последнее время просто ПРОРЫВ в сфере электроники у вирпилов! :)

Kitti_kat
16.11.2003, 20:49
2 MAXIS просьба есть пожалуста дай полное название микросхемы
ATMEL MEGA8 ?????? , я узнавал могут привезти в нашу деревню из Москвы за 3 недели, хочу заказать.
Сенькс.

Kitti_kat
16.11.2003, 20:53
2 MAXIS , пыс: А какая микросхема в качестве датчика ?

VGV
16.11.2003, 22:11
Раз тут говорять о контроллерах, спрошу здесь :)
а сколько разрешение у геймпорта? те разрядность?

Maxix
17.11.2003, 00:17
Микросхема ATMEGA8 16PI
16 это частота PI это дип индустриальное исполнение т.е. температурный диапазон расширен.
в принципе я хочу перейти на TQFP корпус потому что он проще в монтаже и у него 8 каналов вместо 6 как у этого. поэтому что тебе заказать я пока затрудняюсь посоветовать. могу сказать что дип привычней частоту надо бы поболее (не 8мгц)
а вот исполнение пофигу ведь не будешь же в мороз летать :)

датчик ss49е

2VGV у game порта как такового нет разрешения он ведь меряет время а не вольты.где то я читал что он эквивалентен 9 битному ацп

2 ZLODEY
ну вот руки дошли и "процесс пошел" :)

MaxPayneRUS
17.11.2003, 04:45
Originally posted by VGV
Раз тут говорять о контроллерах, спрошу здесь :)
а сколько разрешение у геймпорта? те разрядность?
Понятие разрядность к геймпорту НЕПРИМЕНИМО. Геймпорт это девайс измеряющий не напряжение а сопротивление за счет вычисления длительности заряда эталонной емкости через резистор который и являеться датчиком угла

Kitti_kat
17.11.2003, 08:10
2 MAXIS , а ss49е что за зверь? GOOGLE не находит.
Насчет контроллера подожду пока.

MaxPayneRUS
17.11.2003, 09:37
Originally posted by Kitti_kat
2 MAXIS , а ss49е что за зверь? GOOGLE не находит.
Насчет контроллера подожду пока.
попробуй так ss49+honeywеll список будет до пола

VGV
17.11.2003, 10:41
Originally posted by MaxPayneRUS
Понятие разрядность к геймпорту НЕПРИМЕНИМО. Геймпорт это девайс измеряющий не напряжение а сопротивление за счет вычисления длительности заряда эталонной емкости через резистор который и являеться датчиком угла
ну хорошо, спрошу по другому :)
а какое минимальное изменение времени заряда выдаёт геймпорт? если это 1/2^9 то не так уж и плохо, не Кугар конечно...но сойдёт.

boRada
17.11.2003, 11:01
50 мс - 20 гц

MaxPayneRUS
17.11.2003, 11:04
Originally posted by VGV
ну хорошо, спрошу по другому :)
а какое минимальное изменение времени заряда выдаёт геймпорт? если это 1/2^9 то не так уж и плохо, не Кугар конечно...но сойдёт.
100 положений в каждую сторону выдаст однозначно, может и 200 дать если надо, но дрова придеться писать самому, результат можно получить не хуже кугуара

Maxix
17.11.2003, 11:09
Originally posted by VGV
ну хорошо, спрошу по другому :)
а какое минимальное изменение времени заряда выдаёт геймпорт? если это 1/2^9 то не так уж и плохо, не Кугар конечно...но сойдёт.

О-о-ох :(
это немножко не в том топике, ну ладно еще раз

прблема ведь в геймпорте не в разрешении, а в невозможности добится стабильных показаний. все зависит повезло с карточкой (или мамкой) или нет. + еще система при опросе времени вносит свои погрешности в итоге, сам ведь видел, крестик дрожит :(
"+" еще а точнее "-" что есть только 4 канала.

а разрешение,ну насколько я помню,когда я работал с датчиками напряжение-частота (это почти тоже самое только выход частотный) там всегда указывается "эквивалентное" разрешение. т.е. такое когда входные шумы еще не забили полезный сигнал. так вот у gameпорта оно вроде 9 бит при хорошей схеме.

VGV
17.11.2003, 11:12
Плохо быть любителем :) не могу объяснить суть вопроса...ладно, так спрошу...частота опроса это хорошо, спасибо я это тоже потом хотел спросить :) (ибо какое будет быстродействие, это тоже важно), а вот какое минимальное изменение сопротивления он воспримет? я просто начал ставить оптику в свою ручку от ПТУРа(всёже 2кОм очень мало :( и увеличивать смысла нет...) и думаю куда это всё дело воткнуть...или в геймпорт...или в старый логитек...или свой делать :)...или в х45, но его жалко пока.

от млин %) пока писал уже ответили :)

Maxix
17.11.2003, 11:19
Originally posted by VGV
я просто начал ставить оптику в свою ручку от ПТУРа(всёже 2кОм очень мало :( и увеличивать смысла нет...)
ага птур это хорошо резюки там классные только вот в гамепорт напрямую не пойдут потому как 2k маловато и логитеху тоже вроде не пойдут.
сам с этим развлекался :)
у меня кстати так и лежит пока эта ручка - подарок коллеги :)

MaxPayneRUS
18.11.2003, 06:51
Originally posted by Maxix
ага птур это хорошо резюки там классные только вот в гамепорт напрямую не пойдут потому как 2k маловато и логитеху тоже вроде не пойдут.
сам с этим развлекался :)
у меня кстати так и лежит пока эта ручка - подарок коллеги :)
Резюков меньше 50 кОм в джоях пока не встречал, есть подозрение что неспроста :)

Kitti_kat
18.11.2003, 13:30
Дя гей порта не пойдут а если включение 3х проводное то там зависит от входного сопротивления АЦП

USSR_Rik
18.11.2003, 14:28
Originally posted by MaxPayneRUS
Резюков меньше 50 кОм в джоях пока не встречал, есть подозрение что неспроста :)
А для геймпорта сопротивление определяется емкостью зарядного конденсатора на плате порта - там сделана схема АЦП по принципу заряда емкости через внешний резистор изменяемого сопротивления. Посмотри напряжение на резисторе осциллографом, если он (осциллограф) есть - увидишь типичную "пилу" с кривой спиной и паузами между зубьями. Уменьшаем сопротивление резистора - длительность импульсов уменьшается и сходит на нет.
Для USB - все определится схемотехникой встроенного АЦП, это я не смотрел.

boRada
18.11.2003, 14:30
Входное, в основном, влияет на максимальное значение резистора, минимальное больше обусловлено допустимым током. 2 кОм на 5 в это уже бесполезных 2.5 мА. 3 датчика = 8 мА и т.д. Вроде немного, но море состоит из капель, и где-то даж вроде есть стандарты для этого.. Т.е. Сопротивление должно обеспечить тот ток, который нужен для нормальной работы устройства (АЦП) не более и не менее.

Kitti_kat
18.11.2003, 15:43
Originally posted by boRada
Входное, в основном, влияет на максимальное значение резистора, минимальное больше обусловлено допустимым током. 2 кОм на 5 в это уже бесполезных 2.5 мА. 3 датчика = 8 мА и т.д. Вроде немного, но море состоит из капель, и где-то даж вроде есть стандарты для этого.. Т.е. Сопротивление должно обеспечить тот ток, который нужен для нормальной работы устройства (АЦП) не более и не менее.

Ну примерно тоже я и хотел сказать, на моем сонивском гейпаде
датчики 3.3к

MaxPayneRUS
19.11.2003, 04:14
Originally posted by Rik
А для геймпорта сопротивление определяется емкостью зарядного конденсатора на плате порта - там сделана схема АЦП по принципу заряда емкости через внешний резистор изменяемого сопротивления. Посмотри напряжение на резисторе осциллографом, если он (осциллограф) есть - увидишь типичную "пилу" с кривой спиной и паузами между зубьями. Уменьшаем сопротивление резистора - длительность импульсов уменьшается и сходит на нет.
Для USB - все определится схемотехникой встроенного АЦП, это я не смотрел.
Если уж цитировать так обьяснили бы какая связь между сопротивлением резистора и тем что вы написали?

boRada
19.11.2003, 06:15
Originally posted by MaxPayneRUS
Если уж цитировать так обьяснили бы какая связь между сопротивлением резистора и тем что вы написали?
Тут надо добавить, что время опроса фиксированно, и при большом сопротивлении, время зарядки будет больше чем время опроса, и устройство выдаст ошибку

MaxPayneRUS
19.11.2003, 06:25
Originally posted by boRada
Тут надо добавить, что время опроса фиксированно, и при большом сопротивлении, время зарядки будет больше чем время опроса, и устройство выдаст ошибку
и все таки почему от 50 до 100 килоом?

boRada
19.11.2003, 11:09
Почему от 50? Работает от 0 кОм
А при больше 100 кОм время зарядки конденсатора превысит время опроса. Как еще понятней то сказать? Формулу написать?
Т(сек)=R(ом)*C(фарад)
http://borada.narod.ru/elek2.htm

USSR_Rik
19.11.2003, 14:17
Originally posted by MaxPayneRUS
Если уж цитировать так обьяснили бы какая связь между сопротивлением резистора и тем что вы написали?
Я никого не цитировал. Связь же - самая непосредственная, вытекает из принципа работы АЦП на зарядно-разрядной RC-цепочке. Максимальное значение сопротивления ограничено интервалом опроса (импульсы для разряда емкости), минимальное - частотой дискретизации измеряемого интервала времени. Сам ведь это знаешь, где-то выше по обсуждению уже предлагал "вспомнить принципы работы АЦП".

Если тебя интересуют совсем уж точные цифры - померяй (прочитай) емкость зарядных конденсаторов на звуковой плате (они видны хорошо, обычно расположены около разъема порта), потом при подключенном девайсе измерь период опроса порта (тут и увидишь ту картинку, которую я описАл, не сумлевайся) и посчитай - формулу тебе boRada привел. Школьный курс физики.

Вот минимальное сопротивление так просто вычислить не получится - нужно знать (измерить) частоту дискретизации. Т.е. копать схему глубже.

И почитать сайт того же boRada тебе имеет смысл - это там описано.

Если интересно - можно немного поглубже, ибо когда-то я занимался такими вещами профессионально. И кое-какие приборы с АЦП делал. Только вряд ли другие методы АЦ преобразования тут будут интересны.

Да, если не напрягает - просьба на "ты". Как-то не нравится мне в сети "выканье".

GO!
19.11.2003, 17:31
Почему от 50? Работает от 0 кОм

От 0 до 7...9кОм координата джоя не меняется, я проверял, связано это с тем, что на входе геймпорта напряжение в паузе между измерениями становится больше 5в/3=1,66в, и 555 таймер в порте сразу после начала измерения отключается.

GO!
22.11.2003, 04:50
Поискал инфу по этой и другим AVR микрухам. Зацепило! Просто и интересно, правда, совсем не знаю этот Ассемблер. С Ассемблером и UARTом могу разобраться и сам, но вот нигде не нашел описание работы и программирование встроенных АЦП. Кинь ссылку(и) please! Если я првильно понял, там используются АЦП на дельта-модуляции? (или настоящие, измеряющие абсолютное значение входного напряжения?). Еще, зависит ли время измерения от уровня или скорости изменения входного сигнала? Еще, чему равно входное сопротивление АЦП и постоянно ли оно?

boRada
22.11.2003, 13:24
Originally posted by GO!
От 0 до 7...9кОм координата джоя не меняется, я проверял, связано это с тем, что на входе геймпорта напряжение в паузе между измерениями становится больше 5в/3=1,66в, и 555 таймер в порте сразу после начала измерения отключается.
Ноль, конечно же, я привел условно, т.к. на различных платах нижнее и верхнее значение разное. Было у меня и 130 кОм, были и от 0.5 - 1 кОм. Отчасти это связано и с разными токоограничительными резисторами в цепи. От 1 до 10 кОм. В зависимости от примененой микросхемы, нижнее значение может доходить до 0.6-0.7 вольт.

Maxix
23.11.2003, 10:53
Originally posted by GO!
Поискал инфу по этой и другим AVR микрухам. Зацепило! Просто и интересно, правда, совсем не знаю этот Ассемблер. С Ассемблером и UARTом могу разобраться и сам, но вот нигде не нашел описание работы и программирование встроенных АЦП. Кинь ссылку(и) please! Если я првильно понял, там используются АЦП на дельта-модуляции? (или настоящие, измеряющие абсолютное значение входного напряжения?). Еще, зависит ли время измерения от уровня или скорости изменения входного сигнала? Еще, чему равно входное сопротивление АЦП и постоянно ли оно?

ассемблер - это для фанатов или когда уже нужно выжать все.
я пишу на "с" код получается конечно похуже но не настолько насколько удобнее и читабельнее.

ацп это очень просто. лезешь на www.atmel.com или www.microchip.com и скачиваешь оттуда datasheet на понравившуюся тебе микрушку например на мою мегу

http://www.atmel.com/dyn/resources/prod_documents/2486.pdf

в нем все очень подробно написано КАК с ним работать (с примерами на C и ассемблере) можно я тебе не буду объяснять - почитай сначала думаю все ответы ты найдешь
насчет типа ацп а не все равно? ну стоит там дельта преобразование. главное знать когда результат готов.

цикл опроса ацп у меня > 83mS при 10МГц

время измерения от уровня и скорости изменения не зависит.
входное сопротивлений большое и постоянное.

GO!
24.11.2003, 02:49
Последняя ссылка не работает...
Не понял, причем здесь WWW.MICROCHIP...
На WWW.ATMEL.COM нашел doc2486.pdf качаю... Оказывается, at90s4433 и atMega8 разные микрухи, я думал - одна...
Для моего варианта 4ИК канала TrackIR получается выгода в 8-10 мелких деталек, минус -нужно разбираться с этой микрухой и где-то ее доставать. Пока буду доделывать свой вариант, уже паяю..

Maxix
24.11.2003, 09:54
Originally posted by GO!
Последняя ссылка не работает...

должна.
есть еще http://www.microchip.ru


Не понял, причем здесь WWW.MICROCHIP...

а это просто альтернатива.
изготовитель контроллеров PIC


Для моего варианта 4ИК канала TrackIR получается выгода в 8-10 мелких деталек, минус -нужно разбираться с этой микрухой и где-то ее доставать. Пока буду доделывать свой вариант, уже паяю..
зато разобравшись ты получаешь в свои руки офигенный инструмент :) c помощью которого можно про мелкую логику вообще забыть.
насчет достать есть магазины которые торгуют по почте
поищи вот тут
http://catalog.gaw.ru/show.phtml?pg=0&c=0

Maxix
24.11.2003, 10:13
типа Development update :)

прошивка контроллера вроде отлажена. мелкие баги пойманы :)

драйвера тоже вроде в основном не глючат и не тормозят
наверно можно сказать что это уже не альфа а бета версия :)

из того что осталось сделать в этой версии...

1 индивидуальная настройка каждого аналогового канала через ini файлик
2 автоматический поиск работающего контроллера по портам
3. индикация проблем с приемом данных и других возможных ошибок.

что есть сейчас

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


контроллер
8 каналов 16 кнопок на замыкание.
скорость порта 57600 цикл опроса 15mS
тестовый текстовый режим контроллера (терминал)
два типа работы: по запросу и по таймеру

вот.

буду теперь разводить плату и делать не на макетке а уже нормально.

Kitti_kat
28.11.2003, 12:59
Как продвигается девайс?

GO!
30.11.2003, 02:18
2 boRada


В зависимости от примененой микросхемы, нижнее значение может доходить до 0.6-0.7 вольт

С этим - не согласен! Микрухи могуг быть и разные, но всегда, по стандарту 555 таймера, у них должно быть 2 порога 1/3 и 2/3 от питающего напряжения (+5в). Если это не выполняется, то многие геймпортовые джои не будут работать ВАЩЕ!

GO!
30.11.2003, 02:25
2 Maxix


ассемблер - это для фанатов или когда уже нужно выжать все.

Ассемблер (с большой буквы! :D ) Это не фанатизм, это традиция, что называется, дешево и сердито!

P.S. Protiv, тьфу, против С ничего не имею, просто мне так удобнее...

GO!
30.11.2003, 02:32
2 Maxix


ассемблер - это для фанатов или когда уже нужно выжать все.

ДАрагой Maxix, а не кажется ли тебе, что программирование АЦП это как раз тот случай, когда нужно выжать из железа ВСЕ?!

GO!
30.11.2003, 03:10
2 Maxix

скорость порта 57600
А почему не по максимуму (115200)?

Maxix
30.11.2003, 03:16
Originally posted by GO!
2 Maxix
ДАрагой Maxix, а не кажется ли тебе, что программирование АЦП это как раз тот случай, когда нужно выжать из железа ВСЕ?!
:confused:
честно говоря как то не заметил :)
по крайней мере в этом проекте. может я чего не понял?
времени в коде произведенном компилятором хватает за глаза
на все


Ассемблер (с большой буквы! ) Это не фанатизм, это традиция

кто бы спорил :)
просто мне удобнее на "C"
не 115200 потому что с кварцем 10M получается большая ошибка >7.5% вроде как должно работать но на всякий случай пока так.
кварцы "правильной " частоты,типа 110590,147456, как правило сложнее достать.
если очень надо будет меняются несколько констант и скорость можно еще поднять

2 kitti_kat
я стараюсь сообщать о серьезных сдвигах в работе ,ну сам понимаешь, не могу же я каждый шаг коментировать :)

GO!
30.11.2003, 03:51
2 Maxix

честно говоря как то не заметил
по крайней мере в этом проекте. может я чего не понял?
времени в коде произведенном компилятором хватает за глаза
на все

Вероятно, дело в том, что у тебя АЦП внутри контроллера, а у меня внешний, и при подсчете циклов ожидания есть разница, делать двухбайтовый инкремент командами INC/DJNZ или ADDC, наверно, внутренний АЦП действительно предпочтительней..

boRada
30.11.2003, 18:56
Originally posted by GO!
2 boRada



С этим - не согласен! Микрухи могуг быть и разные, но всегда, по стандарту 555 таймера, у них должно быть 2 порога 1/3 и 2/3 от питающего напряжения (+5в). Если это не выполняется, то многие геймпортовые джои не будут работать ВАЩЕ!
А с чего ты взял, что 555 везде стоит?

Maxix
01.12.2003, 01:25
Originally posted by GO!
2 Maxix
Вероятно, дело в том, что у тебя АЦП внутри контроллера, а у меня внешний, и при подсчете циклов ожидания есть разница, делать двухбайтовый инкремент командами INC/DJNZ или ADDC, наверно, внутренний АЦП действительно предпочтительней..
да, я собственно и выбирал такой, где ацп стоит внутри контроллера и одна из причин простота работы с ним.

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

кстати в "C" можно делать inline ассемблерные вставки для критичных мест.

Maxix
01.12.2003, 01:28
Originally posted by boRada
А с чего ты взял, что 555 везде стоит?

конечно не 555 а "функциональный аналог" для "совместимости".

Maxix
01.12.2003, 01:41
DevUp :)

доделал таки индивидную настройку каждого канала
так что теперь хоть оптика хоть магнитный датчик ну или резюки если попроще.
параллельно пришлось сделать инструмент который эти инишки генерит на основе кривой снятой с датчика и того что желательно получить.

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

похоже настала пора делать связку из 2 контроллеров
потому как надо как то сделать 3 выносных аналоговых канала
для педалей а длинный хвост очень шумит.
попробую сначала сымитировать game-port.

boRada
01.12.2003, 06:30
Originally posted by Maxix
конечно не 555 а "функциональный аналог" для "совместимости".
Ну надо посмотреть что там.... По моим замерам разброс большой, именно так как я указал выше( на основе 5 разных коипьютеров)

надо менять (поднимать) питание датчиков. без этого диапазон маловат. а усилитель на каждый вешать накладно
А почему нет? LMV324M - 4 канала, пять вольт, меньше 30 руб., плюс 4-6 сопротивлений на канал по 20-30 коп...
если ввести регулировку усиления и центра - получится почти универсальный вход.

Maxix
01.12.2003, 16:27
Originally posted by boRada
А почему нет? LMV324M - 4 канала, пять вольт, меньше 30 руб., плюс 4-6 сопротивлений на канал по 20-30 коп...
если ввести регулировку усиления и центра - получится почти универсальный вход.
да, я знаю про такую схемку только вот найти эти операционники проблема. лучшее что я нашел под заказ от 3 недель.

ZLODEY
01.12.2003, 23:47
Уже начинаю вообще не врубаться о чем вы :) Хотелось бы только чтобы всё у вас получилось, всё сработало ... ну и т.д.! :)

boRada
01.12.2003, 23:52
Originally posted by Maxix
да, я знаю про такую схемку только вот найти эти операционники проблема. лучшее что я нашел под заказ от 3 недель. В "промэлектронике" я брал http://www.promelec.ru/

ZLODEY
02.12.2003, 00:03
Единственное что может я хотел бы добавить это - если ОЧЕНЬ надо будет запрограмировать на ASEMBLER'е то я думаю найдём человека который нам поможет!
Вообще-то и я должен это уметь........ но извините, плохо учился :)

Maxix
02.12.2003, 15:45
Originally posted by ZLODEY
Уже начинаю вообще не врубаться о чем вы :) Хотелось бы только чтобы всё у вас получилось, всё сработало ... ну и т.д.! :)
Спасиб :)

а то что чего то не понимаешь так это временно :) если очень будет интересно - легко разберешься.
вспомни SW :)

насчет писать на ассемблере - спасибо.
я вобщем умею просто ищу пути полегче ;)

Maxix
02.12.2003, 15:48
Originally posted by boRada
В "промэлектронике" я брал http://www.promelec.ru/

спасибо.попробую через них добыть.

GO!
03.12.2003, 01:15
2 boRada

Ну, ясно дело, я имел ввиду аналог 555, иначе сказал бы КР1006ВИ1 - в России достать проще, хотя и ВИ1 выпускается не в России, а в Вильнюсе. Даже, в некоторых случаях ;) , было запрещено эту микруху применять в новых разработках (наверное, на случай войны :D ).


Ну надо посмотреть что там.... По моим замерам разброс большой, именно так как я указал выше( на основе 5 разных коипьютеров)

boRada, имей ввиду, что внутри геймпорта уже стоит резюк на 2кОм (и кондер примерно на 2 нанофарады, точные значения запамятовал, но они у ВСЕХ геймпортов различаются лишь чуток), так что сопротивления джоев/педалей меняются не от нуля, а от примерно двух килоом. Еще совет (не в обиду), почитай, как работает 555 таймер. Джои будут получаться проще и, следовательно, надежней.

boRada
03.12.2003, 06:31
У меня целая книжка есть по ним, но это еще не говорит ничего о геймпортах. Что там? Компаратор с обвязкой, или если еще точнее - условный операционный усилитель(или несколько) с соответствующими цепями. Т.е. на параметры влияют как тип операционника, так и эта самая "переферия". Есть так же понятия "аналог" и "полный аналог", согласен? Т.е. если принцип работы совпадает, это же не значит, что совпадают характеристики. Не скрою, я не смотрел на типы микросхем на геймпортах, но я замерял входные параметры на разных звуковых карточках и даже встроенных в мамку. Существенно отличаются.

UIV
04.12.2003, 21:21
2 Maxix
Могу помочь в написании мапера/профайлера для твоего контроллера. Опыт имеется, для своего джоя виртуальный маппер писал. Пишу правда не на С, а на Дельфи.

Maxix
05.12.2003, 12:30
Originally posted by UIV
2 Maxix
Могу помочь в написании мапера/профайлера для твоего контроллера. Опыт имеется, для своего джоя виртуальный маппер писал. Пишу правда не на С, а на Дельфи.
было бы здорово.
кстати драйвер со стороны компьютера у меня тоже написан на дельфи.
может быть попробуешь написать аналог драйверов виртуального джойстика ppjoy (посмотри начало этой ветки)тогда я думаю можно было бы легко увеличить количество осей и кнопок. и все исходники были бы у нас.

посмотри в свой приват

UIV
09.12.2003, 00:15
кроме ppjoy больше никаких прог нету? директХ sdk лопатить не хочется, нигде примеры больше не встречал?

Maxix
09.12.2003, 10:19
2 UIV
полюбому либо делать свой hid device либо как в ppjoy через ioctl
я в принципе знаю как делать вот только пока не собрался

Maxix
14.12.2003, 15:15
пообщался с автором драйверов ppjoy
резюм такой: типа что есть тем и пользуйтесь :) а я ничего менять или править не буду.

ну и ладно :) не больно то и хотелось.
главное что так тоже работает :)

Submer
13.01.2004, 09:01
Сори за оффтоп - в УпОб не хотел тему создавать. Помогите, плз. Есть джой на гейпорт (4х4) и геймпад (на ЮСБ, 12 кнопок, джоя на нем нет - только крест). Можно ли крест инициализировать как хатку? Если да, то как? Заранее спасибо.

Maxix
13.01.2004, 12:25
насколько я представляю простым способом никак :(

LazyCamel
14.01.2004, 08:35
Originally posted by Submer
Сори за оффтоп - в УпОб не хотел тему создавать. Помогите, плз. Есть джой на гейпорт (4х4) и геймпад (на ЮСБ, 12 кнопок, джоя на нем нет - только крест). Можно ли крест инициализировать как хатку? Если да, то как? Заранее спасибо.

Чисто теоретически никто не запрещает сесть поверх обычного драйвера и превратить кнопки в хатку. Наверное такой фильтр должен уже быть написан. Если нет - то програмисткая лень мешает только.

SLI=SHURIK_25=
14.01.2004, 09:53
Originally posted by Submer
Сори за оффтоп - в УпОб не хотел тему создавать. Помогите, плз. Есть джой на гейпорт (4х4) и геймпад (на ЮСБ, 12 кнопок, джоя на нем нет - только крест). Можно ли крест инициализировать как хатку? Если да, то как? Заранее спасибо.

Крест это 4 кнопки? Как это распознается в игре? Если кнопки, то просто назначаешь на каждую соответствующую функцию хатки. Если это микростик, т.е. 2 оси, то тут нужно обратиться к программе New View.

Submer
15.01.2004, 08:39
А если подпаять резюки по двухплечевой схеме (могу ошибаться в терминологии, но думаю все поняли) будет ли работать геймпад как джойстик (крест распознается как 2 оси)?
Всем ответившим на мои вопрося спасибо.

MaxPayneRUS
15.01.2004, 08:48
Originally posted by Submer
А если подпаять резюки по двухплечевой схеме (могу ошибаться в терминологии, но думаю все поняли) будет ли работать геймпад как джойстик (крест распознается как 2 оси)?
Всем ответившим на мои вопрося спасибо. НЕТ ОДНОЗНАЧНО!