На сегодняшний день я не смог найти прибора внятно и безошибочно транслирующего сигнал энкодера в «замыкание» кнопок. Mjoy16 — слабая и не очень удачная попытка оной трансляции.
По сему — было принято решение делать своё «железное» решение. Однако встал вопрос — «Сколько делать?» Ибо себе то я всяко сделаю, да и цена мелкой серии по себистоимости колеблется очень слабо.
Хотелось бы знать — насколько востребовано подобное решение(для чего и прикручена голосовалка)
Далее список «фич» и всего прочего:
— Прицип работы — при медленном вращении в одну сторону срабатывает(«мигает») одна кнопка, при быстром другая. Соответственно при вращении в другую сторону срабатывают 3-я и 4-я кнопки.
— Схема подключения — 1 энкодер = 1 плата = 4 выхода на кнопки. ТОесть на каждый энкодер необходима своя плата.
— 2 выхода на кнопки работают(«нажимаются») при малой скорости вращения, 2 при быстрой.
— задатчик скорости переключения режимов быстромедленно — кнопкой по принципу «нажал-повернул_с_нужной_скоростью-отпустил»
— переключение режимов срабатывания кнопок джамперов (на землюна плюс)
— возможно будет вариант с оптопарами — в этом случае просто будут замыкаться заведенные вами контакты.
— возможность подключения к любым девайсам, будь то джойстки, клавиатуры, контролеры или что-либо-ещё, без внесения изменений в оные.
— варианты продажи собраныйпротестированый или «кит» — плата, прошитый чип и набор россыпухи. Ориентировочная стоимость 1-го собраного и протестированного девайса — 10-15$. «Кит» — ~10$. Цены сильно предварительные и скорее всего будут менятся в разные стороны в зависимости от цены деталей и цены изготовления плат.
Буду рад ответить на вопросы.
Прошу голосовать.
Сообщение отредактировано Necroscope: 03 Август 2009 — 10:54
Necroscope (03 August 2009 — 09:42):
Добрый день! Подскажите, пожалуйста, подойдет ли ваш девайс для реализации панели автопиота Airbus? То-есть имеем задатчики скорости, высоты и курса,которые должны вращаться вправо-влево для изменения значений и нажиматься-вытягиваться для включения-выключения.
Пока не голосовал, но предварительно могу сказать-если годится для арбуза, возьму 4 кита для самостоятельной сборки.
С уважением
Антон
truckerrus (03 August 2009 — 10:02):
Пока не голосовал, но предварительно могу сказать-если годится для арбуза, возьму 4 кита для самостоятельной сборки.
С уважением
Антон
Приветствую.
На самом деле под панель автопилота оно и задумывалось изначально. Если в подразумеваемой модели Airbus реализовано использование кнопок для настройки высотыскорости и т.п. — да.
Основная «фишка» этого девайса заключается в том что играfsuipcпрограмма настройки джойстика — будут видеть эти мерцания кнопок как нажатия обычных железных пуш-батонов. Тоесть на них можно будет смело вешать любые возможные функции, макросы и прочие радости. 🙂
Что касаемо нажиматся-вытягиватся — те энкодеры которые я встречал — могут нажиматься, для этого у них встроена дополнительная кнопка. «Вытягивание» можно достаточно просто механически реализовать. Ну или поискать энкодеры с PUSH-PULL. … я бы сам таких прикупил десяток 🙂
С наилучшими.
vitabutch (03 August 2009 — 11:11):
Выглядит так
Делать обработчик энкодера в кнопку сложно — быстрые нажатия кнопки при быстром вращении энкодера большинство программ будут пропускать, т.к. они просто не рассчитаны на такие быстрые клики. Получите работу системы, очень похожую на Мджой. Мой совет, сделайте сначала эмулятор «быстрой кнопки» и посмотрите, будет ли работать с симом.
Ну как показали предварительные разработки — не сложно. Но хлопотно 🙂
Для быстрых режимов и придуман быстрый режим (тафтология) 🙂
Если программа не может обрабатывать быстрые нажатие кнопок — тут уже ничем не помочь. Но если есть раздельное управление, например как у задатчика высоты в АП некоторых крафтов в FSX — все становится легко и просто — выставляем предел срабатывания «быстрого» режима на уровне «начала пропусков программой» и наслаждаемся.
У мджоя проблема была не в программах а в кривоватой реализации логики.
Сообщение отредактировано Necroscope: 03 Август 2009 — 12:50
Necroscope (03 August 2009 — 10:13):
С наилучшими.
А вот не могли-бы вы поподробнее, желательно с рисуночком, объяснить как реализовать сие таинство вытягивания? И на счет промышленных энкодеров-давайте контакта не терять, если вы первый найдете-берите на мою долю, если я, соответственно беру на вас. Я территориально в ближнем Подмосковье, мне до Москвы 20 минут ехать, а в нерезиновой, думаю, можно все сыскать, было-бы желание, а оно есть.
С уважением
Антон
з.ы. Предварительно беру киты на 5 энкодеров, сегодня с человеком свяжусь-узнаю, если да, то на него тоже 5 штук
truckerrus (03 August 2009 — 11:52):
С уважением
Антон
з.ы. Предварительно беру киты на 5 энкодеров, сегодня с человеком свяжусь-узнаю, если да, то на него тоже 5 штук
Договорились 🙂
вот первое что пришло в голову как сделать «Вытяг» на коленке.
Прикрепленные изображения
Выглядит так
http://www.737ng.co.uk/pulse_switch1.jpg
Делать обработчик энкодера в кнопку сложно — быстрые нажатия кнопки при быстром вращении энкодера большинство программ будут пропускать, т.к. они просто не рассчитаны на такие быстрые клики. Получите работу системы, очень похожую на Мджой. Мой совет, сделайте сначала эмулятор «быстрой кнопки» и посмотрите, будет ли работать с симом.
vitabutch (03 August 2009 — 11:11):
Где в Москве можно купить данный девайс. Сейчас перелопатил инет, обзвонил магазины никто об этом ничего не знает. Если у кого есть возможность достать, откликнитесь.
Valery-B (13 August 2009 — 21:16):
Сам я тоже занимался подобным проектом, результаты можете посмотреть здесь: http://il2.nadym.ru/…p?showtopic=412
Но ихмо, использовать скорость вращения для определения какую кнопку нажать, как это сделал автор Mjoy16, весьма бесперспективное дело. Тут имееться несколько причин. Во первых, сам HID-интерфейс, на основе которого реализованы все джойстики, изначально ориентирован на обычные кнопки, т.е. время нажатие на нее человеком не должно быть меньше какой-то величины. В своей разработке я пытался его определить, число не помню, но факт что оно достаточно велико. В связи с этим, при быстром вращении какая-то часть нажатий кнопок будет обязательно потеряна. Кроме того, сам программный алгоритм сканирования состояния кнопок в Mjoy16 достаточно громоздок и медлителен, что тоже не даст крутить энкодер быстро. Хотя может быть, при применении других устройств, типа IOCARD этого удастся избежать. Таким образом, быстро и надежно вращать энкодер не получиться. Кроме того, практически все крутилки в самолетах, которые иммитируються энкодерами, изменеяют одну величину (всего пара кнопок) и если уж хотим реалистичности, так и нужно ставить один энкодер на одну изменение одной переменной.
И чисто практическое замечание. Сам я то-же сделал одну плату на один энкодер. Но если подключение энкодера к ней, и проводов к кнопкам вопросов не вызывает, то к каждой плате подводить еще и пару проводов для питания, уже просто не удобно и громоздко. Поэтому, следующие платы своего устройства я решил соеденять по несколько штук, и подводить одну общую шину питания.
С Уважением, Валерий.
Уважаемый Валерий,
Именно этот пост и побудил нас делать саму эту схему описаную в топике! 🙂 Просто я не смог найти в том посте «how to» или гайда — «купи вотэта и спаяй вот так». Поэтому окрыленный идеей побежал к знакомому гуру от электроники и озадачил его тех-заданием. К сожалению гуру сейчас загружен по работе и точных сроков пока не дает.
Хотелось бы уточнить какие результаты получились у Вас. Как обстоят дела с пропуском нажатий?
HID — это хорошо. Но его трудно сделать «на коленке», по сути это надо делать аналог контроллера джойстикаклавиатуры.
Мы решили боротся с пропусками нажатий — вводом дополнительной пары контактов для «быстрого» режима.
С переменными тут сложно. Если мы привязываемся к переменным — то платапроект становится специализированым под конкретную модельигру. В то время как хочется вольного переноса функционала с игры в игру или модель. Плюс хочется избежать самописного софта для настроки. Так например я-бы с удовольствием повесил это на свой Кугар или МФП — хотя-бы для того чтобы имспользовать огромные возможности софта этих устройств.
Согласен — моно-модуль был-бы оптимальнее. Просто он в то-же время и сложней. Думаю покидать все в кучку и соединить общей шиной будет не сложно. Тем более мы планируем использовать штырьковые разьемы.
Думаю было-бы очень полезно и здорово обединить усилия! Напишите в личку Ваш мэйл или аську?
С наилучшими!
Necroscope (14 August 2009 — 00:31):
Именно этот пост и побудил нас делать саму эту схему описаную в топике! 🙂 Просто я не смог найти в том посте «how to» или гайда — «купи вотэта и спаяй вот так». Поэтому окрыленный идеей побежал к знакомому гуру от электроники и озадачил его тех-заданием. К сожалению гуру сейчас загружен по работе и точных сроков пока не дает.
Хотелось бы уточнить какие результаты получились у Вас. Как обстоят дела с пропуском нажатий?
Значит так, подойду из далека. Иногда я балуюсь в игры типа Operation Flashpoint, ARMA и т.п. В них, скорее всего вы наслышаны, можно управлять любой техникой, начиная от велосипедов и заканчивая танками, самолетами и т.д. Еще у меня дома есть велотренажер. Так как просто педали крутить скучно, я решил совместить этот оздоровительный процесс с игрой, что-бы вращая педали, передвигаться по виртуальному миру. С поворотами проблем не возникло, поставил две кнопки. А вот с движением вперед стало сложнее. Сначала закрепил на колесе магнит, который-бы замыкал контакты геркона, заменяющего кнопку, но не тут-то было, при вращении в панели управления джойстиками никаких нажатий не было видно. Пришлось делать так называемый «расширитель» импульса по схеме одновибратора, только тогда что-то получилось.
Теперь вернемся к энкодерам. Повторюсь, очень короткое нажатие кнопки (человек обычную кнопку так нажать и отпустить быстро не сможет) ни к чему не приведет. Это не отобразиться ни в панели управления джойстиками, ни в симуляторе. Я подбирал интервал времени через таймер микроконтроллера, и примерно определился на 0.1 секунде. Сейчас я не могу точнее сказать, нужно лезть в программу на ассемблере и все вспоминать. Тут еще вот что. обычные энкодеры — это механические контакты со своим дребезгом. Дребезг гаситься, не важно, каким способом (программно или RC-цепочкой), но на это также нужно время. Если учесть, что за один поворот энкодера произойдет около 40 нажатий кнопок, то интервал между ними, вполне соизмерим с временем борьбы с дребезгом и собственно, самим интервалом нажатия (0.1 сек.), поэтому, если вращать ручку быстро, часть нажатий будет безвозвратно потеряна, что для энкодера допускать никак нельзя.
Цитата
Мы решили боротся с пропусками нажатий — вводом дополнительной пары контактов для «быстрого» режима.
HID это программно аппаратный интерфейс человека и компьютера, клавы, мышки и джойстики в виндовсе работают через него. Великий и ужасный Mjoy16 тоже основан на HID, только USB интерфейс в нем работает программно, поэтому и весьма медлителен. Хотя его используют огромное число самодельщиков, для всех симуляторов.
Про «Быстрый режим», если он будет опираться на обычные джойстики все-же стоит забыть, как я уже выше объяснял, слишком короткое нажатие система не воспримет вообще.
Цитата
Про переменные я для примера сказал, конечно, ничего привязывать никуда не нужно, сам пользователь в настройках игры будут связывать вращение энкодера с изменением какой-либо величины.
Цитата
Можно, просто при изготовлении печаток не разрезать их на отдельные платы, а оставить по несколько штук вместе. Ну и при разводке платы предусмотреть на шинах питания дополнительные контактные площадки, для связи их монтажным проводом. Я вот тоже ошибся, сделал плату с таким расчетом, что-бы она крепилась на энкодере непосредственно, но иногда такая конструкция просто не влезет по размеру, например около изгиба панели.
Цитата
С наилучшими!
Вполне согласен.
Сам я тоже занимался подобным проектом, результаты можете посмотреть здесь: http://il2.nadym.ru/…p?showtopic=412
Но ихмо, использовать скорость вращения для определения какую кнопку нажать, как это сделал автор Mjoy16, весьма бесперспективное дело. Тут имееться несколько причин. Во первых, сам HID-интерфейс, на основе которого реализованы все джойстики, изначально ориентирован на обычные кнопки, т.е. время нажатие на нее человеком не должно быть меньше какой-то величины. В своей разработке я пытался его определить, число не помню, но факт что оно достаточно велико. В связи с этим, при быстром вращении какая-то часть нажатий кнопок будет обязательно потеряна. Кроме того, сам программный алгоритм сканирования состояния кнопок в Mjoy16 достаточно громоздок и медлителен, что тоже не даст крутить энкодер быстро. Хотя может быть, при применении других устройств, типа IOCARD этого удастся избежать. Таким образом, быстро и надежно вращать энкодер не получиться. Кроме того, практически все крутилки в самолетах, которые иммитируються энкодерами, изменеяют одну величину (всего пара кнопок) и если уж хотим реалистичности, так и нужно ставить один энкодер на одну изменение одной переменной.
И чисто практическое замечание. Сам я то-же сделал одну плату на один энкодер. Но если подключение энкодера к ней, и проводов к кнопкам вопросов не вызывает, то к каждой плате подводить еще и пару проводов для питания, уже просто не удобно и громоздко. Поэтому, следующие платы своего устройства я решил соеденять по несколько штук, и подводить одну общую шину питания.
С Уважением, Валерий.
Valery-B (13 August 2009 — 22:24):
Именно для этого мы и придумываем «Быстрый» режим. 🙂 Так как все вышеописаное имеет место быть — решение представляетя следующим: при привышении некоторого значения «нажатийв секунду» энкодера чип перестает выводить «замыкания» на пару контактов 1 и 2, и начинает выводить их на пару 3 и 4.
При условии того что уровень срабатывания можно будет легко и доступно изменить — проблем быть не должно.
Это будет так же полезно если в модели самолета (например в задатчике высоты АП) в есть разделение ввода сотен и тысяч футов. Такое-же разделение точно есть в Fsuipic.
Цитата
Хлопотно это 🙂
Цитата
Да, разумно. Думаю если процесс пойдет — можно сделать и так. Просто сейчас «предзаказ» примерно 20 единиц, и морочится на этом пока не резон.
Цитата
Напишу в ЛС 🙂