-
Ответ: USB контроллер джоистика
2 GO.
Имхо нет. Тут (на этом алгоритме) получается другое, появляется виртуальное нажатие еще одной кнопки, если нажаты три в углах матрицы.
2 MeanDOG.
Тогда (для внешних 16-бит АЦП) придется освобождать SPI, заводить двухполярное +/- 12В и маньячить с разводкой и питанием. USB-шные +5В звенят сильно.
2 ALL
вот здесь
http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm
и особенно вот здесь
http://www.atmel.ru/Articles/Articles.htm
есть русские доки связанные с АВРами.
И еще http://home.tula.net/algrom/russian.html - супер! Графический ассемблер, прошивальщик,отладчик,симулятор. Больше года работаю с ним. Жаль для х86 ничего подобного нет.
Вдогонку. Кстати, рекомендую посмотреть в сторону
AtMega48-20PI(ai) - у них розница должна быть меньше 100 рублей, а так это функционально и по-пиново полные аналоги Мега8
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
2 GO.
Имхо нет. Тут (на этом алгоритме) получается другое, появляется виртуальное нажатие еще одной кнопки, если нажаты три в углах матрицы ...
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
Вдогонку. Кстати, рекомендую посмотреть в сторону
AtMega48-20PI(ai) - у них розница должна быть меньше 100 рублей, а так это функционально и по-пиново полные аналоги Мега8
Интересно, AtMega48-20PI прошьется без ошибок на программаторе, который его не знает (в частности PicProg - он знает только ATmega8)?
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от MeanDog
Для стандартного джоя 10 разрядов вполне достаточно. Но я думаю о 16-и разрядном АЦП с перспективой эго использования в качестве точного контрольного измерительного прибора. Он тоже пригодится для мерения сигналов с большим динамическим диапазоном. В этом случае усиление или гашение сигнала может быть исполнено простыми програмными алгоритмами.
В этом что-то есть!
Если не заморачиваться с АЧХ АЦП, то можно обойтись встроенным компаратором AVR! (интегрирующий АЦП).
Цитата:
Сообщение от LazyCamel
Тогда (для внешних 16-бит АЦП) придется освобождать SPI, заводить двухполярное +/- 12В и маньячить с разводкой и питанием. USB-шные +5В звенят сильно.
На этот случай предлагаю применить старинные CPU AT89C5X. Если для них написать софтовый контроллер USB, то им просто цены не будет! (в плане функциональности - практически полная микроЭВМ! ;) ).
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от GO!
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:
алгоритм очень простой - последовательный опрос а не паралельный. он состоит в том что на (например) строку матрицы (только одну) подается "1" и при этом считываются все столбцы которых не много (примерно 4 - 6).
итого получаем дофигище кнопок.
Таким алгоритмом я сейчас и планирую заняться. Тоесть реализовать на данной базе.
Планирую сделать електронику : 12-18 осей , что с технической точки зрения вполне реально
32 - 128 кнопок это сли не заниматься извращениями, Если немножко поизвращаться , то можно на этом контролере реализовать 256 или даже 512 кнопок. Но это всё только с хардовой части. Тут возникает загвоздка с временем обработки всего этого счастья и с перидачей и восприимчивости собсно винды к устройствам с таким не хилым количеством всяких кнопочек.
Но впринципе никому такое счастье не нада. Пока я решил сделать вариант с 12 осей 28 кнопок 1 хат
ПС я решил посмортеть на стоимость АЦП 12 14 и 16 разрядов , я просто ОФИГИНЕЛ !!!! это просто кАААшмААр !!! от 100 уе !!
а мультиплексоры блин от 20 уе !!! просто маразм !! пришлось купить наши старые аж по 0.2 бакса за штуку :)
вобщем вот пытаюсь вьехать сейчас в ХИД устройства и особенно есть ли у них ограничения на количество осей и кнопок так как не хотелось бы пролететь :rolleyes:
ППС впринципе можно сделать свой 12 максимум 14 разрядный АЦП на основе имеющегося 8ти разрядного АЦП и дето достать 8 розрядный ЦАП.
-
Ответ: USB контроллер джоистика
Ограничение по осям и кнопкам в ДиректХ - 8 осей, 128 кнопок. Если через WinAPI работать, то 6 осей.
Можно оси на разные джои замапить, тогда ограничение по осям и кнопкам обойдешь.
Но нафига 12 осей???
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от UIV
Ограничение по осям и кнопкам в ДиректХ - 8 осей, 128 кнопок. Если через WinAPI работать, то 6 осей.
Можно оси на разные джои замапить, тогда ограничение по осям и кнопкам обойдешь.
Но нафига 12 осей???
Про ограничения пасиба.
А зачем 12 , так это очень просто - для ИЛ2 поидее нужно 10 ну а 12 - так получается 8) можно конечно оставить только 10 , но както обидно чтоли , что максимум всего только 8 :(
буду смотреть . Но во всяком случае , почему если можно сделать больше - делать меньше ??? Ведб помоему чем больше осей , тем больше функций на них можно повесить.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от GO!
Имхо, это как раз и значит, что независимого нажатия кнопок (больше двух, и то не во всех случаях), не получится без применения диодов!
Однако, во многих клавах матрица пленочная и без диодов и распознают они гораздо большеее количество нажатых/отпущенных кнопок.. :confused: Im wondering какой алгоритм? :confused:
Там матрица большая.. где-то есть у меня зарисовка
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от UIV
Ограничение по осям и кнопкам в ДиректХ - 8 осей
На устройство или вообще? Если вообще, то мне очень интересно, как в Ил-2 работают 10 осей. А они работают - проверено.
-
Ответ: USB контроллер джоистика
вот возник вопрос.
где найти описания ко всем устройствам и параметрам состояния которых можно перидавать с помошью рапортов ХИД устройств.
однако 8) зашел на сайт ХИД устройств , кажется чтото подобное нашел , но чот у меня не качается 8( "HID Usage Tables" это оно ????
-
Ответ: USB контроллер джоистика
BAG
Сайт - это www.usb.org? Вроде там все качалось.
Если хочешь, я тебе на мыло могу скинуть "Введение в разработку HID устройств" (360к) и "Описание USB шины" (450 к) - оба на русском, в pdf - только там не очень много информации.
-
Ответ: USB контроллер джоистика
Rik если не влом выложи их на форум pls.:))
-
Вложений: 3
Ответ: USB контроллер джоистика
Вот один, второй не влезает, млин. Завтра или раром запакую, или разрежу надвое.
Вот, добавил.
-
Ответ: USB контроллер джоистика
Кстати, сегодня мне достался контроллер - спасибо Максу и Илье. Только и успел, что спаять, запрограммировать и проверить 2 оси и несколько кнопок - все ОК, только хатка вместо "вниз" отрабатывает "влево-вниз", наверное, где-то соплю припоя повесил. Завтра продолжу танцы.
-
Ответ: USB контроллер джоистика
Рик спасибо.
Да контролер работает , вот сейчас читаю ... прсвещаюсь по поводу улучшений.
Вот надыбал такую штучку AT43USB351M , но таких в Киеве нету (( я смотрел - не нашёл.
Если не тяжело , можешь мне отправить на емейл , так как я имею очень ограниченный доступ сюда на форум , и качать сейчас не могу .. а до среды ждать чтото не хочеться. Только тогда у меня будет возможность скачать (((
мой емейл. buddy_bag@ipnet.kiev.ua
-
Ответ: USB контроллер джоистика
-
Ответ: USB контроллер джоистика
-
Ответ: USB контроллер джоистика
По поводу меги 48. На самом деле это обычная мега8 сделаная по новому тех.процессу(0.25 вместо 0.35), с отбракованной половиной памяти.
Поэтому дешевле. Все программаторы что умеют програмить Мега8, апвтоматически умеют програмить и Мега88/48. Только для Мега48 надо самому следить за памятью, чтобы предел не привысить.
http://efo.ru/components/atmel/tables/avr.htm
Цены:
http://efo.ru/doc/Atmel/Atmel.pl?530
По поводу осей и кнопок.
Имхо больше 6-8 осей в одном устройстве извращаться не сильно-то эффективно.
Дешевле повесить еще одно устройство на УСБ.
Второе - по кнопкам. Любой 8-10 битный АЦП легко превращается в 16 кнопок.
Достаточно собрать последовательно цепь из резисторов каждый из которых вдвое больше предыдущего. А кнопки будут просто его шунтированть(закорачивать) вот тебе и минимум 8 независимых кнопок на 1-ой ноге джоя.
Про направление развития/удешевления/унификации.
Есть такой хороший АВР - Attiny26. Если у него перепрограмить ногу РВ1 как ИНТ0, то получается контроллер УСБ с 8 АЦП. А это 5 осей (тангаж,крен,раддер,2газа или шаг/газ)+2 хатки+16 кнопок. В 20-ногом корпусе. 8 байт дескриптор.
Легко поместится в спичечном коробке :-)
Про средства отладки для АВР - симулятор, с возможностью эмуляции внешних деталей (включая виртуальные осицилограф и генераторы сигналов) :
http://www.amctools.com/
если кто хочет ковыряться для себя для дома в АВР - маст хэв однозначно.
-
Ответ: USB контроллер джоистика
вот блин фигня , !! я писал ответ примерно минут 15 и тут зараза експлорер закрылся !! вот гадёныш !!
в кратце что я хотел сказать ..
исспользовать вход АЦП для кнопок это всёравно что фотоаппаратом гвозди забивать !! просто бред так как с помошью 2х портов можно реализовать сдоровую матрицу кнопок.
если например порт А - 4 бита порт В 6 бит
не исспользуя внешних микросхем имеем матрицу 6*4= 24 кнопки (опрос строк последовательный, что даёт возможность ликвидировать неоднозначности при нажатии комбинаций кнопок)
при исспользовании внешнего мультиплексора 1 на 8 .
К входу подключаем "1" , к адресным входам 3 бита порта В . В такм случае получаем матрицу уже размеро 8*(3+4)=56 независимых кнопок
Если в обеих случаях посмотреть время приобразования , то оно будет меньше чем время необходимое АЦП на оцифровку аналогового сигнала.
вобщем забивать гвозди фотоаппаратом это маразм.
-
Ответ: USB контроллер джоистика
имею вопрос к создателю САБЖА.
Скажи пожалуйста , сбор информации с датчиков (входов контролера) джоя идёт во время промежутков ожидания запроса от ЮСБ ХОСТа на поставку информации (для каждого пакета отдельно или нет) , или уже после полученя запроса контролер начинает этот сбор ??
тоетсь к чему я это : будет ли кртично если время сбора информации возрастёт с максимума сейчас возможного и равного 1.5мс до максимально возможного промежутка например в 3 мс ??
откуда эти цифры: взяты на сонове того что написано , что приобразовние АЦП максимум 250мкс .... хм ... но если посмотреть что получается.....
У тебя 6 осей каждая из них обрабатывается в режиме единичного опроса входов , тоесть на такой опрос нужно 25 тактов АДС
после подсчётов получилос что на опрос 6ти осей нужно 825мкс
так вот всётаки этот опрос как я понял ведётся после того как был получен запрос на информацию , или всётаки в промежутках между опросами ???
просто например в опосе есть такой фрагмент
out ADMUX, temp0
sbi ADCSRA, ADSC ; start conversion
WaitForADC_10:
sbic ADCSRA, ADSC
rjmp WaitForADC_10
in temp0,ADCL
in temp1,ADCH
так вот в промежутке
WaitForADC_10:
sbic ADCSRA, ADSC
rjmp WaitForADC_10
наблюдается явный простой , так как АЦП работает как независимое устроёство поралельно всем контролеру , так в эти промежутки времени можно внести например другую обработку чего либо , так как они состовляют примерно 135 микросекунд , а это 1680 тактов при частоте 12МГц .. впринципе достаточно сУрьёзный промежуток :)
я вот просто собираюсь добавить осей и мне эта информация очень и очень нужна
Я просто не смог точно покачто понять механизм общения по ЮСБ , из твоего кода.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
имею вопрос к создателю САБЖА.
Скажи пожалуйста , сбор информации с датчиков (входов контролера) джоя идёт во время промежутков ожидания запроса от ЮСБ ХОСТа на поставку информации (для каждого пакета отдельно или нет) , или уже после полученя запроса контролер начинает этот сбор ??
Сбор ведется в промежутках между запросами. Я кажется писал об этом. В цикле Main вызывается процедура ProcJoystickRequest, которая опрашивает входы. Она вызывается по установке флага JoystickDataRequestBit. Этот флаг устанавливается в процедуре ProcessEndpoint1 когда закончена пересылка ответа на USB запрос. Эта процедура вызывается из INT0handler по получении пакета данных для опроса Endpoint1 по USB.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
исспользовать вход АЦП для кнопок это всёравно что фотоаппаратом гвозди забивать !! просто бред так как с помошью 2х портов можно реализовать сдоровую матрицу кнопок.
О. Наконец то пошла дисскусия/обсуждение. :-)
Во-1. О гвоздях и фотоаппаратах. Ты считаешь что использования 3 (лишних) выходов штатного АЦП для 24 кнопок это хуже чем использование 10 выводов для матрицы кнопок ?
Во-2. Опрос АЦП (13 тактов 200кГц АЦП) - 65 мкс, из которых непосредственно на код - 2-4 такта МК. Никто кстати не мешает задрать скорость АЦП выше, ценой увеличения тока потребления - читай даташит внимательнее.
Цитата:
Сообщение от BAG
Если в обеих случаях посмотреть время приобразования , то оно будет меньше чем время необходимое АЦП на оцифровку аналогового сигнала.
Да-да-да... :-)
in temp,ADCH для АЦП
против цикла(точнее 2-х) и ксоров/сдвигов для 6Х4 матрицы.
Загрузи в AVR Studio или VMLAB и посмотри растактовку.
Мне рассказывать про дребезг контактов и почему в джойстиках на кнопках тройная буфферизация и какая обработка, прежде чем отдать состояние кнопок в порт ?
Цитата:
Сообщение от BAG
вобщем забивать гвозди фотоаппаратом это маразм.
Открой ЛЮБОЙ нормальный джойстик и посмотри КАК там сделана хатка.
Или ты считаешь что вся рота идет не в ногу и страдает МАРАЗМОМ, один ты в ногу...
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
О. Наконец то пошла дисскусия/обсуждение. :-)
Во-1. О гвоздях и фотоаппаратах. Ты считаешь что использования 3 (лишних) выходов штатного АЦП для 24 кнопок это хуже чем использование 10 выводов для матрицы кнопок ?
Да я считаю что это хуже , так как это вопервых медленнее и вовторых имеет значительно меньшую точность - остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП
Цитата:
Сообщение от LazyCamel
Во-2. Опрос АЦП (13 тактов 200кГц АЦП) - 65 мкс, из которых непосредственно на код - 2-4 такта МК. Никто кстати не мешает задрать скорость АЦП выше, ценой увеличения тока потребления - читай даташит внимательнее.
65 мкс лишь в том случае , если мы имеем потоковый опрос входов АЦП , а если всётаки единичный опрос , то 125 мкс.
Для справки при частоте 12МГц 1 такт это аж 0.08мкс помоему это маленькое время .. и за 65 мкс пройдет всеголишь 800 тактов, за которые можно не то что матрицу всю опросить , но и дребезг исключить !
Цитата:
Сообщение от LazyCamel
Да-да-да... :-)
in temp,ADCH для АЦП
ты забыл
. out ADMUX, temp0
. sbi ADCSRA, ADSC
WaitForADC:
. sbic ADCSRA, ADSC
. rjmp WaitForADC
а это дофигише времени простоя !!
и только потом
in temp,ADCH для АЦП
Цитата:
Сообщение от LazyCamel
против цикла(точнее 2-х) и ксоров/сдвигов для 6Х4 матрицы.
Загрузи в AVR Studio или VMLAB и посмотри растактовку.
а для того чтоб это сделать быстро нужно не делать это в тупую !!
знаешь есть такая команда как
SWAP Rd Перестановка тетрад Rd(3..0) = Rd(7..4), Rd(7..4) = Rd(3..0) 1 цикл
и еще есть такая команда как add adc rol ror ну и некоторые другие ... ну уж поверь что они все выполнятся раз в 20 быстрее чем твои на основе АЦП !
Цитата:
Сообщение от LazyCamel
Мне рассказывать про дребезг контактов и почему в джойстиках на кнопках тройная буфферизация и какая обработка, прежде чем отдать состояние кнопок в порт ?
А мне вспомнить что есть такие вещи как кнопки БЕЗ дребезга , или с очень малым дребезгом ?? который может быть устранён просто двойным буфером. А также никто тебя не заставлят считывать кнопки с периодичностью соизмеримой с их дребезгом !! периода опроса в 20-30мс достаточно для ликвидации дребезга большинства "нормальных" кнопок
Цитата:
Сообщение от LazyCamel
Открой ЛЮБОЙ нормальный джойстик и посмотри КАК там сделана хатка.
Или ты считаешь что вся рота идет не в ногу и страдает МАРАЗМОМ, один ты в ногу...
уляля ... я ЗНАЮ как делается хатка !! она НОРМАЛЬНО делается с помошью 4х кнопок !!! а не целого канала АЦП !!! только не нужно говорить что лишний канал АЦП можно занять хаткой вместо того , чтоб исспользовать его для оси например или ещё чегонить хитрого.
Покарйней мере все джои которые я держал в руках с 8ми позиционным хатом имели реализацию оного на 4х кнопках !!!
-
Ответ: USB контроллер джоистика
да еще вот забыл ..
ты где это видел НОРМАЛЬНЫЙ джойстик ????? есть хоть один такой а ???
А если такие есть , то почему тут народ всякой фигнёй мается ??? разнообразные приспособы делает ???? датчики нафиг выбрасывает !!!
Почем тогда на половине джоев не хватает осей ?? может потому , что очень умные "дятлы" исспользуют для хета каналы АЦП ??? или потому, что ктото делает джойстик за 20 баксов а продаёт его за 400 ????? и ставит в него такую електроонику которой бы не в джойстике стоять а в аквариуме рыбкам реле переключать !!! а не заниматься измерением угловых перемещений!!!
и вообще ты гденибуть видел механику джойстика нормально исполненную в металле с подогнанными деталями и подшипниками ????
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от MeanDog
Сбор ведется в промежутках между запросами. Я кажется писал об этом. В цикле Main вызывается процедура ProcJoystickRequest, которая опрашивает входы. Она вызывается по установке флага JoystickDataRequestBit. Этот флаг устанавливается в процедуре ProcessEndpoint1 когда закончена пересылка ответа на USB запрос. Эта процедура вызывается из INT0handler по получении пакета данных для опроса Endpoint1 по USB.
Спасибо. Ты мне очень помог.
Такой еще вопрос.
если создавать репорт дескриптор с помошью изнего тула , то он не пашет вообще 8)))
а также было замечено что дравами поддерживаются только некоторые оси ... большинство осей не поддерживаетс (( с чем это может быть связанно ??? вот например с страницы Simulation Controls пашут только Газ и Рудер , а остальные просто не хотят восприниматься !!! или может я чтото не так делаю ??? Хотя очень всё это странно... я всё по спецификации делал.
вот собственно при описании твоей структуры таким дескриптором
пашут только оси Х У и Газ с Рудом ....
пробовал вместо газа и руда подставлять другие с тойже страницы - ФОНАРЬ !!!! не работают ((( меня это сильно огорчает. В чём тут ошибка ??
пытался обьединять проблемные оси в разнообразные колекции - не помогает - не пашут всёравно ((
db 5h, 1h ; USAGE_PAGE (Generic Desktop)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 9h, 4h ; USAGE (Joystick)
db a1h, 1h ; COLLECTION (Application)
db 5h, 2h ; USAGE_PAGE (Simulation Controls)
db 85h, 1h ; REPORT_ID (1)
db 9h, bah ; USAGE (Rudder)
db 9h, bbh ; USAGE (Throttle)
db 9h, b1h ; USAGE (Aileron Trim)
db 9h, b9h ; USAGE (Elevator Trim)
db 15h, 81h ; LOGICAL_MINIMUM (-127)
db 25h, 7fh ; LOGICAL_MAXIMUM (127)
db 75h, 8h ; REPORT_SIZE (8)
db 95h, 4h ; REPORT_COUNT (4)
db 81h, 2h ; INPUT (Data,Var,Abs)
db 5h, 1h ; USAGE_PAGE (Generic Desktop)
db 9h, 1h ; USAGE (Pointer)
db a1h, 0h ; COLLECTION (Physical)
db 9h, 30h ; USAGE (X)
db 9h, 31h ; USAGE (Y)
db 16h, 0h, feh ; LOGICAL_MINIMUM (-512)
db 26h, ffh, 1h ; LOGICAL_MAXIMUM (511)
db 75h, ah ; REPORT_SIZE (10)
db 95h, 2h ; REPORT_COUNT (2)
db 81h, 2h ; INPUT (Data,Var,Abs)
db c0h ; END_COLLECTION
db 9h, 39h ; USAGE (Hat switch)
db 35h, 0h ; PHYSICAL_MINIMUM (0)
db 46h, 3bh, 1h ; PHYSICAL_MAXIMUM (315)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 25h, 7h ; LOGICAL_MAXIMUM (7)
db 65h, 14h ; UNIT (Eng Rot:Angular Pos)
db 75h, 4h ; REPORT_SIZE (4)
db 95h, 1h ; REPORT_COUNT (1)
db 81h, 2h ; INPUT (Data,Var,Abs)
db 85h, 2h ; REPORT_ID (2)
db 5h, 9h ; USAGE_PAGE (Button)
db 19h, 1h ; USAGE_MINIMUM (Button 1)
db 29h, 18h ; USAGE_MAXIMUM (Button 24)
db 15h, 0h ; LOGICAL_MINIMUM (0)
db 25h, 1h ; LOGICAL_MAXIMUM (1)
db 75h, 1h ; REPORT_SIZE (1)
db 95h, 18h ; REPORT_COUNT (24)
db 55h, 0h ; UNIT_EXPONENT (0)
db 65h, 0h ; UNIT (None)
db 81h, 2h ; INPUT (Data,Var,Abs)
db c0h ; END_COLLECTION
Ах да , чуть не забыл.
С окончанием коллекции тоже пришлось помучаться ... просто стандартный конец С0 приходиться заменять пустышками как и у тебя .... Это просто взято сразу из едитора....
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП
Это не так. Резисторная матрица типа R-2R (если я все правильно путаю) дает возможность получения информации о любой произвольной комбинации нажатых одновременно кнопок для одного АЦП. (Или я все-таки нахомутал с названием? Тогда поправьте.)
Только это не значит, что я за такую реализацию. Богу - богово, слесарю - слесарево. Требуемая разрядность невелика - 5 разрядов АЦ преобразования - это 32 кнопки - вполне достаточно. Конечно, если выхода нет - скажем, задействованы все цифровые порты, но есть свободный канал АЦП - почему бы и нет, но имхо, все-таки дискретные сигналы лучше и обрабатывать дискретно.
Цитата:
Сообщение от BAG
и вообще ты гденибуть видел механику джойстика нормально исполненную в металле с подогнанными деталями и подшипниками ????
Сорри - не могу молчать, хоть и не в тему. Я видел! В субботу у Ильи UIV (забирал микросхему контроллера). Напольный РУС, металл, подшипники - ребята, это надо почувствовать! Ставить хорошую фукциональную электронику в типовые палки - это очень жалко.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
Да я считаю что это хуже , так как это вопервых медленнее и вовторых имеет значительно меньшую точность - остутсвие какой-либо возможности реализовать комбинации кнопок которые повешены на один вход АЦП
Какой-нибудь букварь типа ХиХ "Искусство схемотехники" читать в части посвещенной ЦАП.
R-2r матрица на 10 битном АЦП спокойно дает 8 НЕЗАВИСИМЫХ кнопок.
Цитата:
Сообщение от BAG
65 мкс лишь в том случае , если мы имеем потоковый опрос входов АЦП , а если всётаки единичный опрос , то 125 мкс.
Для справки при частоте 12МГц 1 такт это аж 0.08мкс помоему это маленькое время .. и за 65 мкс пройдет всеголишь 800 тактов, за которые можно не то что матрицу всю опросить , но и дребезг исключить !
Блин, ЧИТАЙ ДАТАШИТЫ ВНИМАТЕЛЬНО. Или в симуляторе прогоняй, если с английским сложно.
25 тактов занимает ПЕРВОЕ, вообще ПЕРВОЕ включение АЦП. А не начало преобразования. Из которых основная масса времени уходит на измерение AREF и настройку масштабирования. Я на работе АЦП у АВРов собаку съел.
Цитата:
Сообщение от BAG
ты забыл
. out ADMUX, temp0
. sbi ADCSRA, ADSC
WaitForADC:
. sbic ADCSRA, ADSC
. rjmp WaitForADC
а это дофигише времени простоя !!
и только потом
in temp,ADCH для АЦП
Это просто вопрос оптимизации. Автору огромное спасибо за то что он просто это (джой) сделал. Оптимально или нет - это другой вопрос.
Но так - чисто в сторону, замечу что 1мс на УСБ 1.1 у нас гарантированно есть. Во фри-ране этого вполне хватает на 8 каналов АЦП.
Цитата:
Сообщение от BAG
уляля ... я ЗНАЮ как делается хатка !! она НОРМАЛЬНО делается с помошью 4х кнопок !!! а не целого канала АЦП !!! только не нужно говорить что лишний канал АЦП можно занять хаткой вместо того , чтоб исспользовать его для оси например или ещё чегонить хитрого.
Покарйней мере все джои которые я держал в руках с 8ми позиционным хатом имели реализацию оного на 4х кнопках !!!
ОТКРОЙ джой и ПРОЙДИСЬ по разводке до микроконтроллера. ВСЕ что я видел джойстики от Логитека и Трастмастера хатку держат на АЦП.
Там схемка на резисторах, которые эти кнопки замыкают.
Цитата:
Сообщение от BAG
да еще вот забыл ..
Почем тогда на половине джоев не хватает осей ?? может потому , что очень умные "дятлы" исспользуют для хета каналы АЦП ??? или потому, что ктото делает джойстик за 20 баксов а продаёт его за 400 ????? и ставит в него такую электронику которой бы не в джойстике стоять а в аквариуме рыбкам реле переключать !!! а не заниматься измерением угловых перемещений!!!
Дерзай. И может ИМЕННО у тебя получиться. И вот когда сможешь разработать конструкцию джой, где есть точная механика с "МНОГО ОСЕЙ", вечные датчики с погрешностью в 0.5-1 угловую минуту, а главное умудришься наладить его ХОТЯБЫ МЕЛКОСЕРИЙНЫЙ выпуск,
чтоб тот не стоил как пол-самолета - сможешь гордо всех остальных производителей обвинять в хапужничестве, отсутсвии видения перспектив и раздолбайстве в разработке.
Я еще помню как народ возмущался насчет минимум 100 баксов за доработку Когуара до нормальной механики.
А это черным налом, на ворованом материале и бесплатных станках, т.е. практически по себестоимости работ.
-
Ответ: USB контроллер джоистика
Хатка везде на "АЦП", исключая некоторые оригинальные конструкции ( < 1% ) Да, 4 кнопки, но они зацепленны на резисторы, которые соеденены последовательно.
Обсуждению не подлежит. Правильно это или нет - отдельная тема. Если хочешь - имеешь право создать отдельный топик.
BAG - прошу не создавай пустой флейм. Тут очень интересная для всех тема, и выковыривать потом ценную информацию из споров затруднительно.
Прежде чем утверждать и возмущатся, подробней ознакомься с материалом, если у оппонента есть другое мнение.
-
Ответ: USB контроллер джоистика
Тогда - к теме. Кто-нибудь полностью запустил джойстик и полетал? Впечатления? Баги (если есть)? У меня сейчас со временем плохо, сижу на чемоданах, переселяюсь. Только и успел, что спаять и покрутить резисторами на весу.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от Rik
Тогда - к теме. Кто-нибудь полностью запустил джойстик и полетал? Впечатления? Баги (если есть)? У меня сейчас со временем плохо, сижу на чемоданах, переселяюсь. Только и успел, что спаять и покрутить резисторами на весу.
Я запустил. и уже даже воткнул приятелю вместо электроники от Логитеха Экстрим3Д.
Работает стабильно. Иногда (очень редко) вылезают косяки с кнопками, но это моя вина, я кнопки подвесил на порты неудачно, вот они с хаткой и спариваются.
Есть вопросы к схемотехнике:
Из того что стоит ИМХО сделать - подвесить стабилитроны на 3.6В на линии Д+ и Д- и делители для пулл-апа на Д-. Все-таки УСБ это 3.3 В и от греха подальше на 2.0 порты новых мам не стоит +5В подавать всеже.
-
Ответ: USB контроллер джоистика
А если это же счастье поставить не на выход, а на вход , тоесть понизить питание схемы до 4х вольт. мне кажеться что это будет эффективнее , так как сразу убьётся 3 зайца - шумы по питанию и выходные уровни. А также позволит достаточно просто уменьшить "ход" резистивных датчиков (или любых других) у которых рабочий ход значительно привышает например ход РУСа.
ПС и не нужно сразу бросаться тухлыми помидорами !!!! что я вижу некоторые люди делают с великим удовольствием !! :mad:
-
Ответ: USB контроллер джоистика
Просьба к предыдущим двум ораторам - схемы в студию!
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
А если это же счастье поставить не на выход, а на вход , тоесть понизить питание схемы до 4х вольт. мне кажеться что это будет эффективнее , так как сразу убьётся 3 зайца - шумы по питанию и выходные уровни. А также позволит достаточно просто уменьшить "ход" резистивных датчиков (или любых других) у которых рабочий ход значительно привышает например ход РУСа.
ПС и не нужно сразу бросаться тухлыми помидорами !!!! что я вижу некоторые люди делают с великим удовольствием !! :mad:
В этом предложении есть одни нюанс - с датчиками МаРС схема не будет работать. Им необходимо строго 5 В.
-
Ответ: USB контроллер джоистика
не совсем. Я говорю про то что можно былоб понизить питаний схемы , но не датчиков. Их питание можно брать сразу от ЮСБ и впринципе это не 5 В а 4.75В ...
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
не совсем. Я говорю про то что можно былоб понизить питаний схемы , но не датчиков. Их питание можно брать сразу от ЮСБ и впринципе это не 5 В а 4.75В ...
Можно и так, но чем шире диапазон сигнала с датчика, тем больше разрешение, не правда ли? И коль мы используем столь точный контроллер, то брезговать диапазоном датчика мы не вправе, я так считаю. Чем в этом плане хорош МаРС - это тем, что его угловой диапазон настраивается от плюс-минуc 15 гр., до плюс-минус 90, кажись. Под любую механику можно настроить, что и пригодилось в случае с педалями.
-
Вложений: 1
Ответ: USB контроллер джоистика
LazyCamel
А как ты кнопки разложил? Вроде действительно - не должны они пересекаться при любых комбинациях, опрос последовательный. Разве что - неточная отработка задержек на дребезг?
Я себе планирую такой вариант (вроде оптимально по количеству проводов к железкам, у меня Лоджик с двумя хатками).
По поводу питания. Я тут просмотрел наскоро даташит (полный, который 5,5 метров) - вроде при 4 вольтах питания (и даже немного поменьше) контроллер потянет с запасом тактовую в 12 МГц. Но питать контроллер от 4 В, а АЦП (Ref) и резисторы осей от звенящих 5 В по линии USB - не дело. Тогда уж лучше ставить простенький стабилизатор на те же 4 вольта выходных, питать ими контроллер (приближаем уровни сигналов к требуемым USB), через дроссель - конденсатор - АЦП и резисторы. Тогда хоть избавиться можно от помех по питанию USB шины. Кстати, аналоговую цепь я через фильтр дроссель - конденсатор включил. Печатку не рисовал - лень, собрал на макетке монтажными проводами. Вот выходные разъемы только достали - уж больно их много получается. Хотите - сфотографирую, положу сюда.
-
Ответ: USB контроллер джоистика
хм .... я вот что подумал : высокочастотеные шумы по питанию от ЮСБ срезаются обычными конденсаторами , а вот нихкочастотные (меньше 100КГц) на погрешность измерения сильно не влияют , так как с изменением Vref меняется соответсвенно и сигнал с датчика , тоесть их отношение остаётся постоянным , а впринципе добавлять ещё и стабилизатор смысла нет.
Возможно конечно я ошибаюсь (( , хотя всё вроди как правильно.
а вот понизить уровни выходных сигналов былоб не плохо .... наверное так и сделаю..
Другой вопрос.. у меня почемуто когда я добавляю в репорт дескриптор ещё 1 хэт всё перистаёт работать. Добавляю поидее правильно, всё учёл , но винда перистаёт видить устройство. ?????
Оси добавил , проблем нет ... дескриптор периколбасил чуток.... всё нормально , а вот второй хет сделать не получается . Можно у тебя попросить твой репорт дескриптор ??
-
Ответ: USB контроллер джоистика
Я программу не менял. Нет ни сил, ни времени. В программировании я остановился 100 лет назад на ассемблере PDP-11 (аксакалы помнят такую машинку - БК-0010, мы с коллегами работали на них и писали программы). Так что скорее я бы попросил что-то готовое под 2 хэта :)
Но в принципе мне и так хватает - ну видится второй хэт как 4 кнопки - и что?
-
Вложений: 1
Ответ: USB контроллер джоистика
От меня схемка смотри внизу, для стандартного варианта прошивки, цельнотянутая из даташита
R=68 или 82 Ома
R1=2.2 кОма
R2=4.7 кОма
Стабилитроны на 3.6В
На выходные как раз прошивку перерабатывать буду и схему сильно менять.
Из планируемых изменений по сравнению со стандартной.
Схемные:
УСБ - перенесено на PD0,PD1+PD2. Последовательно включены резисторы на 68(или 82) Ома. На линиях висят стабилитроны на 3.6 Вольта.
Кнопки - матрица PB0-PB5 х PD4-PD7
Aref через 100 nF подcоединен к ЗЕМЛЕ (включен внутрениий Ареф равный AVCC)
pull-up делитель R1-R2 подключен к PD3
PC0 - подключеный к земле - Dip, к VCC - TQFP/MLF
Изменения в прошивке:
Дескрипторы - оси будут стандартные десктопные X,Y,Slider,Rz,Rx,Ry,(Z,dial)
АЦП при работе будет усыплять МК
Включаться УСБ на микроконтроллере будет после инициализации всего, чтобы не гнать волну пытаясь успеть на инициализацию УСБ.
Деcкрипторы:
ИД0
Х - 10бит
hat - 4 бит
Y - 10 бит
slider - 8 бит
RZ - 8 бит
кнопки - 8 бит
Ид1
кнопки - 12 бит
константа - 4 бит
Rx - 8бит
Ry - 8бит
Z - 8бит
dial - 8бит
константа - 16бит
Порядок ИД0-ИД0-ИД1-ИД0-ИД0-ИД1
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от BAG
Оси добавил , проблем нет ... дескриптор периколбасил чуток.... всё нормально , а вот второй хет сделать не получается . Можно у тебя попросить твой репорт дескриптор ??
Дескрипторы дома, тут даже DT нет.
Посмотри не забыл ли после кнопок страницу назад переключить на генерик десктоп.
Если хаты подряд идут INSTANCE(0) INSTANCE(1) явно поставь.
ЗЫ:
Два хата насколько я помню ДХ только с 8.1 поддерживаются.
Имхо проше кнопками оставить. Единственный минус - только 4-х позиционный хат получается, если 4 кнопки ставить.
ЗЗЫ:
Ктобы мне сказал что такое в дескрипторах
66 40 00
и
66 00 00
в дескрипторе АВ2 стоит, причем совершенно бредово.
По идее это UNIT(код 65), но со странной единицей измерения.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
Единственный минус - только 4-х позиционный хат получается, если 4 кнопки ставить.
Никто ж не мешает на физическом уровне одной кнопкой замыкать две пары контактов :confused:
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от paraManiac
Никто ж не мешает на физическом уровне одной кнопкой замыкать две пары контактов :confused:
Вот только много ли програм умеют это понимать ?
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от SLI=SHURIK_25=
В этом предложении есть одни нюанс - с датчиками МаРС схема не будет работать. Им необходимо строго 5 В.
А с KMZ-41 ситуация что - наладилась ? Они ж были под заказ и с нормой заказа "от упаковки".
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
Вот только много ли програм умеют это понимать ?
А зачем им понимать, они будут исполнять "вверх, направо"- вот и диагональ!
или я тебя не понимаю?
-
Ответ: USB контроллер джоистика
Вопрос. Какой эмулятор исспользовать для того чтоб посмотреть работу контролера нормально. Я скачал Visual Micro Lab 3.10 , но у нему не нашёл кряка .. ну да ладно , это не важно , важно то , что прошивка которая имеется для САБЖА после устранения всех замечаний которые имел Visual Micro Lab
по отношении к ней, так и не запускается . Тоесть возможности запустить код так и не появляется !!!
Может взять какойнибуть другой емулятор ??? или что посоветуете.
Ещё вопрос , В чем вы моделируете схемы ??
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
На выходные как раз прошивку перерабатывать буду и схему сильно менять.
Из планируемых изменений по сравнению со стандартной.
Схемные:
УСБ - перенесено на PD0,PD1+PD2. Последовательно включены резисторы на 68(или 82) Ома. На линиях висят стабилитроны на 3.6 Вольта.
Кнопки - матрица PB0-PB5 х PD4-PD7
Aref через 100 nF подcоединен к ЗЕМЛЕ (включен внутрениий Ареф равный AVCC)
pull-up делитель R1-R2 подключен к PD3
PC0 - подключеный к земле - Dip, к VCC - TQFP/MLF
Изменения в прошивке:
Дескрипторы - оси будут стандартные десктопные X,Y,Slider,Rz,Rx,Ry,(Z,dial)
АЦП при работе будет усыплять МК
Включаться УСБ на микроконтроллере будет после инициализации всего, чтобы не гнать волну пытаясь успеть на инициализацию УСБ.
Порядок ИД0-ИД0-ИД1-ИД0-ИД0-ИД1
Вопросы.
С чем связаны эти изменения. Тоесть какие замечания есть к тому что есть на данный момент ??
Какой корпус планируешь исспользовать в своей схеме ?? ДИП или TQFP ??
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от LazyCamel
А с KMZ-41 ситуация что - наладилась ? Они ж были под заказ и с нормой заказа "от упаковки".
Нашли в одном месте остатки невыкупленной партии. Но они продавали только оптом минимум на 10000 р.
Скинулись и купили. Помимо KMZ-41 взяли комплектом UZZ9000, вот на этой спарке и родились МаРСы. Правда окончательной конструкции датчика до сих пор еще не наработали. Связано с изменениями мест производства, одни то могут, другие это. С кугаром вообще отдельная история - в процессе установки и эксплуатации первых 10 комплектов много подводных камней всплыло. Но если делать датчик под самодельную механику - то все попроще получается.
-
Вложений: 2
Ответ: USB контроллер джоистика
ХЭЛП! Понипрог пишет - потеряное устройство (-24). И как быть с отличиями в номерах контактов в программаторах на картинках?
Чо делать?
-
Ответ: USB контроллер джоистика
Я не совсем понял - откуда и зачем вторая картинка? Сделать разводку и подключение по первой (кстати, рекомендуемой автором) не судьба, что ли? Она ж рабочая, не один я проверил.
-
Ответ: USB контроллер джоистика
блин, забыл сказать про этот смешной баг в VM LAB :-)
Она не дает запускать симуляцию, если заканчивается на метку без данных.
добавь в самом конце ".db 0"