Перейти к содержанию

Цифровой Штурвал (Джойстик)


Gandrusik

Рекомендуемые сообщения

Будучи большим фанатом авиации времен 2-ой мировой, я задумал построить себе джойстик-штурвал под GamePort, но не аналоговый каких большинство, а цифровой. За основу решил взять конструкцию обычной шариковой мышки: две оси, Х и Y.

Идея была разработать конструкцию с "нуля". Т.е. построить сразу то, что необходимо, нежели что-то приспосабливать. От мышки беру только механическую часть: крыльчатку с открытой оптопарой, и далее преобразую цифровой сигнал в аналоговый. Решил собирать на отечественных микросхемах: И, ИЛИ-НЕ, 2И-НЕ, триггеры, счетчики и т.д.

Сначала пытался, как учили в техникуме, описать это "дело" функцией. Но сразу оказался в тупике - видимо сказывается НЕ математический склад ума. Поэтому решил, действовать проверенным способом - обложившись справочниками по микросхемам, стал потихоньку выстраивать схему. С момента зарождения самой идеи, до момента, когда это уже вылилось в схему на бумаге, прошло примерно 1,5-2 недели. Все это время домысливал, перерисовывал. Конечно, владей я булевой алгеброй - справился бы за час. Увы...

Когда нарисовал схему - понял (с ужасом), что разработанная мною схема представляет собою только канал одной оси - Х. А если осей две (Х и Y) - то и количество микросхем увеличивается почти вдвое!!! А это означает, что их будет почти 16 штук! Короче схема получилась сложная и громоздкая, а ведь еще хотелось педали и РУД... А это еще 16 микросхем - итого 32! Этот вариант я отбросил в сторону.

Следующей идеей было взять рабочую мышку, и преобразовать ее сигнал посредством ещё одного контроллера, в аналоговый - под GamePort. Со временем и этот вариант отпал, т.к. никакой информации о выходных сигналах "мышиных плат" я не нашел.

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

Итак вопросы:

1) Обработка направления вращения осей мыши происходит в контроллере мыши или в драйвере мыши (ОС)?

2) Искал исходный код драйверов мыши... Что-то нашел, но как я уже писал, плохое знание программирования и английского не способствует пониманию. Кто может подсказать сам алгоритм вычисления направления вращения осей мыши?

3) Товарищ SVN советовал посмотреть на микросхемы (микропроцессоры) от современных цифровых регуляторов громкости/баланса. Использовать подобную м/с было бы удобно, если конечно она поддерживает градацию сигнала хотя бы до 16-20 единиц. Кто-нибудь может назвать хоть одну м/с данного семейства? (для гугла)

Ниже выкладываю схему которую я наваял (черновая). Сиреневым цветом выделен - генератор тактовых импульсов. Красным и голубым каналы осей Х и У. Ну, а оранжевый - блок питания. :) Кнопка SB1 служит для установки координат джойстика "по нолям".

handrusik_cxem.jpg

Изменено пользователем Gandrusik
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

вопрос номер раз, зачем все это если есть mjoy8 и mjoy16?

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

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

Дело в том что мышку сделать на квадратурном энкодере - как два пальца об асфальт, а вот с дойстиком ахтунг (.

Причина банальна, обработка значений должна быть 100% реалтаймовая, а компютер у нас и операционка нифига не реалтайм.

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

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

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

MPR - никогда ранее не слышал про mjoy8 и mjoy16, пришлось взглянуть. Так они же построены на АЦП - используют "аналоговые" оси, а я всё это затеял ради получения "цифровых". А, в остальном конечно, возможности mjoy16 впечатляют.

Раз уж зашел разговор за точность GamePort, то хотелось бы знать его возможности (степень градации сигнала). Мне вполне достаточно восприимчивость от 0 до 16 (от -8 ед. => 0 => до +8 ед.) на каждую ось. Хотя думаю достаточно будет и от 0 до 10 единиц.

Что касается времени обработки значений, то я не думаю что, запаздывание будет больше, чем в несколько милисекунд. Да и вообще... Вы кажется меня не-до-поняли. Я не собираюсь заниматься еще и написанием драйверов. Нет, по моей задумке, обработка данных от осей должна производиться аппаратно, в контроллере джойстика, с последующим преобразованием в аналоговый сигнал через делитель (как у меня в схеме, на м/с К155ИД3). Таким образом, в контроллер хотелось бы залить:

- модуль распознавания направления вращения осей Х и У;

- счетчик на каждую ось (угол наклона рукоятки);

- преобразователь сигнала в код 1 2 4 8 (тоже на каждую ось) - видимо придется использовать динамический режим.

Мне немного повезло, попался кусок лицевой панели от какого-то музцентра, с платой как раз на микропроцессоре в качестве регулятора громкости. Пока буду прорабатывать этот вариант.

Изменено пользователем Gandrusik
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Если есть желание всёже собрать Вашу схему - хотите вам "сэкономлю" 4 штуки ИД3 ??? Поставте вместо них R2R лесницу из резисторов... В остальном MPR прав.

Ссылка на комментарий
Поделиться на другие сайты

к сожалению проза жизни такова, что ваши цифровые оси будут хуже аналоговых. Это я говорю не потому что бы пальцы загнуть, какой я дескать умный, а потому что разбирался в свое время с аналогичной задачей (на тему трекера на акселерометрах) дабы не корячится с программингом, набрасывал схему хардверного пересчета ускорения в перемещение и как раз использовал мышку с ее энкодрами). Так что предлагаю просто вникнуть еще раз и детально "ковырнуть" все что касается гейм порта, квадратурных энкодеров на примере реализации тех же мышек, а так же критически оценить недостатки выбранной схемы ЦАП, это можно применять где угодно только не в устройствах управления.

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

Я что то не пойму вы в каких единицах точность меряете? Что за единицы? Разрядность ЦАП?

По опыту, (не первый год занимаюсь изготовлением контроллеров джойстиков по мелким заказам) мы начинаем рассуждать о нормальном джойстике начиная где то 10 разрядов на весь диапазон, итого мы имеем 1024 отсчета по 512 в каждую сторону от центра. Гейм порт хоть и физически не имеет постоянной разрядности, но вот ввиду особенности реализации более 100-200 в каждую сторону дать не в состоянии, большие шумы как результат убогой реализации измерения напряжения.

У вас выходит как в анекдоте, дверь крепкая, только вот петли хлипкие.

Если так интересны именно энкодеры, соберите Mjoy16. Там 2 оси (как минимум) как раз на квадратурных энкодерах.

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

Ссылка на комментарий
Поделиться на другие сайты

MPR ваш последний пост меня убедил. А тут еще и Wowa подтверждает ваши слова...

Признаю свою ошибку - не сразу понял, что такое квадратурный энкодер. В случае с Mjoy - я принял их за потенциометры. :) Мануал-то написан к ним на английском. :D

Что же, как человек связанный с изготовлением джойстиков, ответьте на вопрос: насколько долговечен этот квадратурный энкодер, хотя бы в сравнении с обычным потенциометром?

Wowa, R2R отличная сборка!

Ссылка на комментарий
Поделиться на другие сайты

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

Все. Достали. Ухожу. Больше не вернусь. За это можете поблагодарить пользавателей:*******, ******, *****, **** и конечно же ***.Если будут вопросы пишите в аську или скайп.

Ссылка на комментарий
Поделиться на другие сайты

Ребята, извините, но образно говоря, в ракетно-космический век Вы пытаетесь строить аэроплан из фанеры! :)

Посмотрите хотя бы это, ИМХО

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

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

Wowa, R2R отличная сборка!

Механические, ну те что на мышках стоят (колесо) то раз в 100 уделывают резисторы по долговечности. Оптопары вообще вечные

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

...Если так интересны именно энкодеры, соберите Mjoy16. Там 2 оси (как минимум) как раз на квадратурных энкодерах.

Когда вы почувствуете один нюанс связанный с постоянной потерей центровки, вы сами перейдете к обычным осям контроллера...

Исходники Mjoy вроде как на асме... В то же время существует xxxxx-usb, исходники которого (написаны на Си - драйвер от obdev) в первой реинкарнации реализуют шести осевой джойстик с четырьмя кнопками. Прошиваем один раз бут, затем процесс перепрошивки идет легко и непринужденно через тот же USB. Поигрался на днях - с пол пинка все работает (пришлось только ноги переопределить под себя), исходники довольно прозрачные... Посему посетила мысль - избавится от аналогового потенциометра - плохая точность, механические люфты и т.д. Вижу два пути: оба с использованием энкодера. В первом случае цепляем прямо к основному контроллеру. В этом случае пока неясно, удастся ли реализовать обработку энкодера без пропусков - МК будет отвлекаться на USB транзакции... Второй путь - ставим дополнительный мелкий контроллер, который и будет заниматься только энкодером, а на выходе будет напряжение, формируемое ШИМом, величина которого пропорциональна углу поворота. Несмотря на некоторую избыточность такого решения, плюсы явно присутствуют - получается универсальная замена для аналоговых узлов... У кого какие мнения?..

Изменено пользователем Goodefine

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...