Рейтинг@Mail.ru
Перейти к содержимому

TOPMO3

SimRacing
  • Публикации

    1847
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    69

Все публикации пользователя TOPMO3

  1. Контроллер предназначен для использования в баттон-боксах, платах на рулях, педалях, для подключения шифтеров, ручников, т.е. для подключения кнопок, энкодеров и аналоговых осей. Возможности устройства (подробнее о спеках еще раскажу ниже): 6х аналоговых осей (12 бит - 4096 дискретных значений) до 36 кнопок до 11 энкодеров 1KHz частота обмена с ПК Со стороны ПК контроллер выглядит как обычный джойстик, установки драйверов не требует. Ну, про всякие кнопки и энкодеры понятно, а к аналоговым входам можно подключать как потенциометры в качестве крутилок (в иР например можно использовать такие оси для некоторых контролов), так и уже готовые педали, т.е любой аналоговый сигнал. Вот например я подключил педали от G27 (разворачивайте на полный экран и смотрите в ХД, иначе ничего не видно): https://www.youtube.com/watch?v=KnnlDYHd0DE Лоад - селлы также можно подключить, но конечно нужен отдельный усилитель. Как его собрать, показано например здесь. После него подключается как обычный аналоговый выход. Для этого проекта я решил использовать не Ардуино, а плату для разработчиков на основе STM32F103C8T6. Вот для сравнения их характеристики: Как видите, STM32F103C8T6 на фоне Ардуино выглядит вполне неплохо, а стоит дешевле. Один из основных минусов состоит в том, что для заливки прошивки в него нужен отдельный программатор, но он тоже недорог. Я покупал все на алиэкспрессе, например вот и вот Выглядят эти штуки так: Схема самой борды ОК, теперь к прошивке. После заливки прошивки, значение пинов борды становится таким (пока это фиксировано): Кнопки нужно подключать матрицей - строки к пинам ROW1 - ROW6 (B4 - B9), столбцы к пинам COL1 - COL6 (C13 - C15, B12, B3, A7). Крайние выводы энкодеров нужно соединить между собой и одну сторону подключить к ROTA (B10), другую - к ROTB (B11). Средние выводы энкодеров - к пинам ROT1 - ROT11. Аналоговые входы - ADC0 - ADC6 (A0 - A6). Последние два входа ADC5 и ADC6 работают в паре - на ось подается бОльшее из двух значений. Неиспользуемые аналоговые входы должны быть соединены с GND! Также я нарисовал картинку, чтобы было более понятно: Ссылка на прошивку Естественно, возникает вопрос - как залить прошивку? Сначала нужно подключить программатор к борде. Четыре провода, все просто - землю к земле, 3V к 3V, DIO - SWDIO, DCLK - SWCLK. Картинка: Затем: Нужна утилита ST-Link Utility, скачать можно отсюда Устанавливаем ее и запускаем. Открываем прошивку File -> Open file, Выбираем Target -> Connect. Внизу в окне статуса утилита должна появится всякая инфа о МК, это значит, что программатор вы подключили правильно и st-link utility определила нашу борду. Картинка: 3. Затем собвственно прошиваем Target -> Program. После прошивки борда "отвалится", это нормально, это значит прошивка залилась корректно и начала работать, т.к. в ней переопределяются пины, используемые программатором и st-link utility больше не может видеть борду. Картинка: Теперь о характеристиках борды, как обещал в начале. Просто приведу сравнение с педалями, которые у меня есть - G27 и Fanatec Elites разрешение осей - 4096 дискретных значений. G27 имеет 256, а Elites - 1024 значений, т.е. по этому параметру этот контроллер не хуже. частота обмена с ПК - 1KHz. Частота обмена данными с ПК - это минимальная latency для педалей. Т.е. она может быть больше, если например АЦП медленно считывает данные или сам МК работает медленнее, но не может быть меньше, т.к. это частота, с которой ПК опрашивает USB - устройство. Если у девайса есть что ответить - он отвечает, если нет - то нет. Ради интереса я посмотрел частоты обмена и оказывается у G27 она - 2мс, а у Elites - 16мс. Фанатек меня тут в очередной раз разочаровал. Затем я вспомнил, что у меня есть ДСД контроллер (12 bit controller with integrated load cell amplifier) и тоже посмотрел частоту обмена. Я просто даже не знаю, что сказать, просто оставлю картинку Т.е. видимо задумывалось, что частота должна быть 20мс, но бывают просадки до 1сек! Только на этом скриншоте их сразу две. И это я собирался поставить в свои педали :facepalm: В целом, вроде бы все. Этот проект получился для меня интересным, поэтому я планирую дальше его развивать. В частности, TODO лист такой: сделать отдельную интегрированную плату со встроенным load-cell усилителем. сделать возможность переопределения пинов, а соответственно и кол-ва кнопок и энкодеров. Т.е. чтобы была возможность сделать например кнопок меньше, а энкодеров больше или наоборот. возможно буду добавлять поддержку других компонент - галетников и т.п., но пока честно говоря, не знаю насколько это нужно
  2. Можно нарисовать там значения АЦП, но тогда значения оси придется смотреть либо средствами виндовс, либо программами типа DXTweek. Просто неудобно использовать 2 проги вместо одной, сейчас же все сразу в одном месте. Просто я криворуко нафотошопил. На самом деле я все больше к этому 3му варианту склоняюсь Пример - нарисуем два прогресс бара, один показывает значения АЦП, второй значения оси. Ползунки калибровки находятся над шкалой АЦП, что логично. Эта шкала показывает "условно честные" RAW значения. Обзовем ее "sensor value", чтобы было понятно, что это значения напрямую с датчика. Ниже нарисуем шкалу со значениями непосредственно оси, чтобы результат нашей калибровки был сразу виден, не отходя от кассы. Обзовем ее "axis value" 1. Калибровки нет, оба прогресс бара показывают одинаковые значения АЦП. Начальное состояние до калибровки 2. Ориентируясь на значения "sensor" шкалы, сделали калибровку. Эта sensor шкала по-прежнему показывает прежнее значение с датчика (что логично, т.к. сигнал с датчика не изменился), а шкала оси теперь уже показывает макс значения, в соответствии с нашей калибровкой естественно, это все надо сделать покрасивее, эти картинки только для понимания сути этого варианта
  3. Нет, именно на 3450 ) Калибровка накладывается не на ось, а на значения АЦП. Т.е. в нашем примере в первом случае контроллер растягивает диапазон значений АЦП с 0 до 3500 в диапазон оси с 0 до 4096 во втором случае контроллер растягивает диапазон значений АЦП с 0 до 3450 в диапазон оси с 0 до 4096 В ГУИ отображается именно эта ось, по сути только для контроля, какие значения оси выдаются контроллером
  4. Min/Max накладываются на исходные значения АЦП. В исходном виде, когда еще нет калибровки, мы видим например, что максимальный сигнал датчик гуляет например около 3500, мы ставим соответственно Max Calib в 3500 и после сохранения ожидаем увидеть, что теперь ось уже будет добивать до своего максимума в 4095. Если немного не добивает, то можем немного скорректировать предел в 3450 например и т.д. ) Аналогично подбирается нижний предел. Т.е. цель - добиться, чтобы на механический ход педали (или еще чего-то) ось выдавала полный диапазон от 0 до 4095 с нужными нам мертвыми зонами при необходимости Пока никак не работает, это же фотошоп у меня )) Но здесь я особо сложностей не вижу. В ГУИ я могу все значения оси пропорционально укладывать между ползунками, так же как они сейчас укладываются в целый прогресс-бар Кстати, не обязательно ведь ориентироваться на пиксели ) На цифру значения оси лучше - если есть 4095, то в игре соответственно 100% будет гарантировано
  5. Да, в том то и дело, что RAW нет, это и есть проблема для п.3 ) Так сделано специально, чтобы не нужно было калибровать каждый раз в случае другой винды - калибровка хранится в самом контроллере. И это отлично работает, но при калибровке нужно понимать, что происходит. А я пытаюсь сейчас сделать, чтобы это было понятно любому, кто первый раз на это все смотрит ) Точно )
  6. Нет, это не так работает ) АЦП выдает значения от 0 до 4096. Допустим мы откалибровали ось от 333 до 777 - контроллер будет "растягивать" (масштабировать) значения от 333 до 777 в интервал от 0 до 4096 и выдавать это как значение оси Т .е. навежно как откалибровано, винда всегда видит 4К дискретных значений оси от 0 до 4096
  7. Там текущее значение оси. Но диапазон оси всегда от 0 до 4096. А значения калибровки - на ось сенсора (т.е. на исходные значения от АЦП)
  8. @JohnDoe, ползунки хороши для визуализации близости значения калибровки к уровню оси. Без них пришлось бы понемногу уменьшать значения калибровки, постепенно "подползая" к уровню оси. Цифра значения оси в середине шкалы актуальна только в отсутствие калибровки, потом на нее уже нельзя ориентироваться
  9. Согласен, это аргумент. Что думаешь по поводу 3го варианта?
  10. Выскажите плиз мнения по пользовательскому интерфейсу, как лучше сделать? Проблема: Не интуитивно понятен процесс калибровки осей. Например, вот первоначальный сигнал с датчика: Тут пока все понятно. Сигнал полностью ось не заполняет, поэтому нужно калибровать. Пользователь выставляет ползунки: И после сохранения уровень оси уже показывает полную шкалу. Вот этот момент сбивает с толку - что произошло, почему вдруг сигнал усилился? Т.е. это подсознательно воспринимается как сигнал датчика, а не уровень оси. Дальше пользователь начинает снова двигать ползунки и все совсем запутывается. Какие варианты решений тут видятся: 1. После калибровки уводить ползунки на края оси, чтобы визуально уровень оси всегда был между ползунками, а значения калибровки остаются только в полях ввода, пример: из минусов, как я вижу, то что оять будет сбивать с толку - вроде только что двигал ползунки, и вдруг они снова по краям. Плюс нет никакой связи со значениями в полях ввода 2. Показывать ось только между ползунками калибровки: из минусов - при узком диапазоне калибровки плохо видно уровень оси, непроизвольно может казаться, что ось дает мало дискретных значений 3. Сделать отдельно уровень датчика и уровень оси. Калибровка тогда будет происходить всегда над уровнем датчика, а результат можно увидеть на уровне оси: минусы - утяжеляет интерфейс, мне более геморно реализовывать )) Уровень датчика сейчас на ПК никак не отсылается, придется это делать как-то дополнительно.. Что думаете, какой вариант лучший? может какие другие идеи у кого есть?
  11. DIY FFB steering wheel

    70мм самый распространённый и у него другое расположение болтов, чем у 74мм
  12. Предлагаю собрать в одной теме различные технические данные рулей для возможности их наглядного сравнения. В инете много субъективных обзоров типа "нравится/не нравится", но иногда хочется увидеть просто голые цифры. сила и скорость вращения то и другое одновременно можно оценить с помощью теста step test программы WheelCheek. Суть теста проста - сначала на руль посылаются три сигнала "повернись вправо, влево, вправо с максимальной силой" с интервалом 300ms. Чем руль сильнее отклоняется, тем сильнее FFB, а чем быстрее следует за FFB-командой, тем более быстр или менее инертен руль. (Описание смысла тестов wheelcheck от David Tucker) Ниже график сравнения CSW с формульной баранкой и T500 с TX (GTE и стоковые баранки) (оно же на google sheets) График сравнения CSW с формульной баранкой и рулей среднего ценового диапазона (gt3, crs, g27,dfgt). CSW_F1 использован для сравнения, как "эталонный" график (google sheets) Как упоминает Tucker, сравнивать имеет смысл только рули с более-менее похожей конструкцией. Например, ECCI 7000 с его фичей дампинга будет смотреться невыгодно по сравнению с обычным рулем. Также пока непонятная ситуация с CSW V2. На графике он выглядит также или даже немного хуже, чем V1, несмотря на то, что и моторы мощнее и внутреннее сопротивление меньше. Пока только предположения, что Fanatec искусственно ограничивает скорость, либо добавляет дампинг. (ревью CSW V2 от David Tucker) Также на этом графике отлично видно разницу между различными баранками. Соответсвенно, чем баранка легче и чем более ее масса сконцентрирована к центру, тем лучше. Ниже разница между BMW и формульной баранкой на CSW V1 (также на графике данные для стоковой баранки G27 и самодельной, которая легче на ~300гр ) (google sheets) линейность Определяет насколько одинаково руль отрабатывает во всем диапазоне FFB сигнала, насколько большие имеет “мертвые зоны” и пр. Ниже сравнение основных распространенных рулей (google sheets) Сравнение CSW V1 и V2 тест руля Simsteering от Leo Bodnar крутящий момент движков данные с разных тредов ировского форума, источник по ссылке 4.8Nm for the CSW v1 6.9 Nm for the CSW v2 2,5 - 4Nm for G25,G27 ~3Nm for GT3 ~5Nm for T500RS Также, вот здесь есть интересное измерение сопротивления на баранке с различными уровнями силы FFB позиционное разрешение (positional resolution) Разрешение энкодера положения руля для полного оборота баранки (ppr - position per revolution) В треде AccuForce народ собрал данные для различных рулей и сразу преобразовали в расстояние для обода 280мм баранки Logitech G27 @ 798- 936 ppr = .043" - .037" or 1.09mm - .94mm Fanatec CSR @ 1,064 ppr = .0325" or .83mm Fanatec CSW V1 @ 1,638 ppr = .021" or .53mm Fanatec CSW V2 @4,096 ppr = .0085" or .22mm Accuforce @ 16,000 ppr = .0022" or .056mm Bodnar @ 10,000 ppr = .0035" or .088mm RFRWheelTest PS Забыл сказать - огромное спасибо всем, кто учасвствовал в сборе данных wheelcheck :) Edit2: Добавлен график Midrange vs CSW_F1 edit3: добавил результаты RFRWheelTest
  13. @morganchik, у меня только один вопрос - куда слать деньги??? ))
  14. DIY FFB steering wheel

    Да ну, имхо он фигню там написал. И видимо сам это понял и статью из свободного доступа убрал Только через датчик давления реализовать управление нельзя. Даже если добавлять его в помощь энкодеру, все равно совершенно непонятно чем он поможет в реализации ффб
  15. наткнулся на такой документ Data Logger Secrets Revealed (www.lapfaster.com) мне помог понять значение графиков в iSpeed Lap Analyzer - Longitudianl G force, Lateral G force, etc может еще кому пригодится Перевод в дизайне оригинала Регистраторы данных телеметрии, раскрывая секреты (PDF) перевод в формате Gooogle Docs Регистраторы данных телеметрии: раскрывая секреты (Google Docs)
  16. Обновление iRacing - 1-й сезон 2019 года

    Тайм аттак за призы Porsche SimRacing Summit Competition – €30,000 Euros текущие результаты первой квалы можно здесь увидеть - http://members.iracing.com/membersite/member/time_attack_results.jsp?comp_season_id=1280
  17. первоначально была идея сделать ББ специально для питов, потому что для меня всегда было трудно ехать и одновременно набирать на клаве что и где там поменять в питах. Получилась такая штука: Краткое описание: - красные переключалки: верхняя - менять шины спереди, нижняя - сзади - зеленые переключался: левая - делать fast repair, правая - чистить лобовое - маленькие металлические переключалки: верхняя - подкачать/скачать давление в передних колесах, нижняя - в задних - снизу два энкодера: левый - prev/next control, т.е. курсор вверх/вниз, правый - изменить значение, т.е. курсор влево/вправо. Кнопка на левом энкодера - выбрать/пробел, на правом - TAB - энкодер в правом верхнем углу - выбор кол-ва топлива на дозаливку, кнопка на этом энкодере - ESC - кнопка слева вверху - послать pit combo Чтобы не нажимать вслепую и было сразу видно, какое же пит комбо будет отработано - прикрутил дисплейчик. Правда, пришлось сделать некие кодовые обозначения, чтобы все поместилось Например, на скрине выше строка слева направо означает: снижаем давление и в передних, и в задних шинах на 7 пунков, чистим лобовое, делаем fast repair и доливаем 10 литров. Получившийся комбо пит можно увидеть в ировском окошке Требуются: - 1 Ардуино Микро/Леонардо (УНО/Нано не подойдут!) - 4 переключателя OFF-ON - 2 переключателя ON-OFF-ON, возвращающиеся в центральную позицию - 3 энкодера с кнопкой - 1 кнопка - 1 восьмиразрядный индикатор (я брал такой) - коробка, куда это все прикрутить (я брал такую) - 6 резисторов на 1кОм Схема: Скетч: buttpit.zip
  18. да, есть т.н. pulse switch, например вот. Подключать их можно вместо обычных кнопок, нажатие фиксируется только на момент смены положения. ардуины удобнее тем, что если есть элементарные навыки программирования, то можно крутить под себя как угодно
  19. не тратьте зря деньги ) потом будете думать как Антон, какой бы пакли туда намотать, чтобы не люфтило )
  20. Купить fanatec в россии

    Кто-нибудь должен сказать этому парню, что эти цифры в ире никогда не значили проценты )) Это некие попугаи силы ФФБ, которые для обычных рулей все ставят в пределах 15 - 30. У меня на Г27 емнис 24 было. Во-вторых, для ДД рулей у ира есть специальный "Нм"-режим, когда сила выставляется напрямую в Нм, а не в попугаях. В этом случае можно просто явно рассчитать сколько Нм нужно, столько и будет выдавать руль в максимуме. В конце ролика в минусах указано, что каждый раз нужно центрировать )) В общем, не обзор, а полный BS. Тотальное незнание матчасти ))
  21. Купить fanatec в россии

    Переходник - это не проблема, проблема в том, что на не родных баранках без USB хаба или этого эмулятора не будет ФФБ в принципе. У фанатека так сделано, что база должна снюхаться с баранкой и если не обнаруживает ее, то ФФБ нет
  22. Купить fanatec в россии

    Есть некие зародыши такого, например вот - https://www.simracingmachines.com/WebShop/fanatec-csw-base-wheel-emulator Но поддержки кнопок у него пока нет
  23. А что именно непонятно? схема соединения же есть Имхо не нужна, провозишься ты с ней. Просто припаивай напрямую к ардуине и все Немного терпения не бросить все это на полпути ) вот еще вариант, помимо ардуино -
  24. Вот все скидки на текущую ЧП https://simxperience.com/News/tabid/94/post/simxperience-fourth-annual-black-friday-promotion/language/en-US/Default.aspx
  25. @stanima вот блин, кругом обман )
×