Ребята из ob-dev выложили в свободный доступ библиотеку V-USB, которая реализует HID для AVR, в том числе на копеечном ATtiny 2313. Так что не одним STM32 богат мир микроконтролеров без ардуино. Но за видео спасибо)
boot1 не появляется как кнопка к GND, все другие 7шт. программа видит а boot1 не видит, перемычка снята полностью, из boot1 торчит провод к GND и ничего не происходит 1:11 еще не понятно что такое R4 и что заменить перемычкой
Теперь уже джойстик понадобился на 103 stm32, что нужно что бы ваш девайс повторить? какой софт? так понимаю keil не подойдет никак, на видео Atolic вы используете и говорили раньше Atolic, т.е. мне достаточно загрузить ваш код в Atolic и из него в stm32 и джойстик готов? получается даже cubeMX не понадобится, а лишь Atolic и зашить ваш готовый файл? Мне как раз джойстик лишь бы был. А потом попытаюсь разобраться как добавить кнопок если удастся зашить 103 плату если понадобятся кнопки. Предполагаю MIDI аналогично отсылается команда. Есть еще какая то программа показывает содержимое дескриптора подключенного к USB устройства, забыл название. Из той программы вытаскивал дескриптор заводского MIDI инструмента. Так он не отличался почти от STM32 MIDI дескриптора. Программу скачал, забыл название.
Привет. Очень интересная тема. Я делал джойстики и педали с помощю проекта ММджой (от Мегамозга). Мне эта тема близка и очень нравится. Хотелось бы видеть ее продолжение и от Вас. Подписываюсь однозначно.
Блин, закинул на яндексе удочку - делал ли кто нить на стм 32 штурвал(недавно подсел на симуляторы, а штурвал от лоджитека - 16к руб.) и тут на тебе - все есть! И я такой - блин, парень, СПАСИБО за труд! Подпишусь! Ан нет - уже оказывается давно подписан )
я так и не понял, если я хочу сделать первый в жизни контроллер, что мне понадобится помимо самого stm? программатор или переходник для прошивки в комплекте идет или надо отдешьно покупать? ссылка в описании устарела.. да и не совсем понятно, какими файлами шьется мк.
Какой колхоз, но елки.... в этом есть какой-то шарм.... деревянное..... как в детстве. Информации маловато, да есть гугл, но тут все таки пример приятнее, нагляднее, удобнее. Раскрой тему шире. Да видео станет больше, но кто захочет тот досмотрет. Удачи и развития твоему каналу и идеям.
@@РомаЯковлев-ц6г Нет, не создавал пока... Как-то вообще мало деталей с 3D принтера в руках держал, не внушает доверия прочность, по тому, что видел на видео. В дух словах это должен быть шестигранник 7мм, длинной 15-20мм и отверстием 5мм, полумесяц. Насколько оно прочное будет? Толщина стенки получается от 1мм до 2.5-3мм. Реально такое сделать? Или лучше из металла сразу точить?
@@AxGxP Смотря какую нагрузку делать??? Если ПЕТГ пластик то там прочность хорошая ну если его при печати не пережечь тогда ломкий становится. вот эта линейка пластика bestfilament.ru/category/plastik-Bestfilament/?tipa_materiala[]=300 еще есть нейлон но я им не пробовал печатать. С него делают допустим шестерни для мясорубки.
Можно без резисторов. Подтяжка включена внутри микроконтроллера. Последовательное включение резисторов применяется чтоб ограничить ток, если вдруг вывод будет запрограммирована как выход, а не как вход. В током случае можно применить резисторы от сотен ом до нескольких килоом. Если при этом ещё и установить параллельно каждой кнопке по конденсатору на 0.1 мкФ, получится фильтр для устранения дребезга контактов.
А этой штукой можно будет увеличить рабочий ход МАРС-ов ? Мне стандартный ход МАРС-ов моего Defender Cobra M5 маловат, нужно градусов до 45-ти (даже больше) увеличить ход стика в каждую из четырёх сторон.
В Keil он просто так не откроется, как открыть тоже не подскажу, кейлом давно не пользуюсь из-за ограничения в 32кБ... Да и некоторых фишек в кейле не хватает. Проект создан в Atollic True Studio, в нем и откроется без лишних движений.
@@AxGxP Может в этом Atolic подправить лишь в блоке где устройство как джойстик определяется какую нибудь цифру научным тыком? что бы стало midi устройство
Как хорошо что я тебя нашел, мучаю леонардо чтобы сделать MIDI контроллер. Начинаю посматривать в сторону STM 32, уже заказал парочку. На русском мало видео по HID на STM 32.
Добрый день! прошил hex, win10 пишет устройство не опознано, подскажите как исправить. Дополняю, определяется если перед втыканием USB нажать кнопку сброс и после подключения к USB (1-2 сек) отпустить ее. Как исправить?
@@vladvlad9834это у вас платка bluepill? Там на них были версии с ошибкой, посмотрите на плате резистор R10, должен быть 1.5 кОм. Бывает, что там стоит на 10кОм, в таком случае его нужно заменить.
а как компьютер узнаёт что это именно джойстик? там какой то код нужно где то прописать? именно типа устройства? я вот и джойстик бы сделал, но мне нужно прописать мидиустройство, сконфигурировать сконфигурировал в cubemx как аудиоустройство, ПК видит в списке аудиоустройств отлично как и заводской цифровой рояль в одном списке, а куда следующую строчку писать следующего шага, полный ноль, а помочь во всем интернете некому, я писал вам раньше, но мне бы задать направление куда идти на 1 шаг вперед. Все сконфигурировано в CUBEMX в аудиоустрйойства, нужен следующий шаг хотя бы 1 строку которую изучать.
удалось уже в MIDIOX подцепиться через миди аудио устрйоство! Если понадобится пишите, но там еще эндпоинты какие то и упаковать нужно вагоны байтов в локомотив
Видео про электронику, а не механику. То, что на видео - вообще без пружин. Ну а если хотите сделать самый реалистичный вариант, в идеале подойдут асинхронные двигатели, в качестве обратной связи.
Здравствуйте ,скажите в джойстике "РУС" , если штатные транзисторы заменить на такие, в программном обеспечение надо указывать изменения? Просто приобрёл для симуляторов , а у осей "X"Y" есть свободный ход мертвая зона , калибровка толку не даёт , мертвая зона механическая ...
Потому, что MIDI это не HID. MIDI это по сути UART на скорости 31250 бод. Можно в принципе заставить его работать через USB-UART, с использованием какого-то специального драйвера, чтоб создать на компьютере виртуальный MIDI порт. Но если хотите красиво, то будет немного сложнее, кроме правильного дескриптора придется самому обрабатывать bulk endpiont. Информацию по этому вопросу найдете по запросу гугл: "Universal Serial Bus Device Class Definition for MIDI Devices".
@@AxGxP Спасибо большое вам! Просто компьютер при подключении миди устройства всегда пишет подключено миди устройство стандартное. Думал что это HID. Нужно все таки через стандартное миди устройство виндовс подключаться. Нашел эти загуглив дескрипторы, в конце PDF документа по 1й же ссылке гугл нашел эти эндпоинты в конце документа вот такое там пишут Standard MS Interface DescriptorTable B-5: MIDI Adapter Standard MS Interface DescriptorOffsetFieldSizeValueDescription0bLength10x09Size of this descriptor, in bytes.1bDescriptorType10x04INTERFACE descriptor.2bInterfaceNumber10x01Index of this interface.3bAlternateSetting10x00Index of this alternate setting.4bNumEndpoints10x022 endpoints.5bInterfaceClass10x01AUDIO.6bInterfaceSubclass10x03MIDISTREAMING.7bInterfaceProtocol10x00Unused.8iInterface10x00Unused. Если будет информация помогите, и вам напишу если понадобится если что удастся найти. Но что с ними делать даже не представляю. Это по сути полностью тот же джойстик технически, сообщения только туда он будет другие в кавычках посылать и в другое место другому драйверу. Сообщение там можно написать хоть даже "я банан" только вот виндовс не вджойстик должен их послать а в миди устройство стандартное которое виндовс прицепит. Ардуино никогда не потянет проект. Leonardo лежат 3 трупа pro micro от передозировки мультиплексоров, даже дорогими программаторами не удалось восстановить. Дохнут как мухи от дихлофоса leonardo pro micro от нехватки памяти, и глюки бесконечные надоели.
@@masterkit9517 ничего конкретного сказать не могу, самому пока не приходилось USB-MIDI интерфейс создавать. Вот нашел, вроде то, что надо: github.com/ripxorip/stm32_usb_midi
@@AxGxP Не знаю только после ардуино как этим воспользоваться, что куда вставлять) Убежал с ардуино из за невозможности на ардуино завершить миди проект, 120 кнопок лезло с мультиплексорами только в 3-4шт. Leonardo. Так Leonardo окирпичились из за переполнения выше 80% памяти в версии pro micro и даже дорогим программатором не удалось их восстановить. С тех пор ардуино даже врагу не желаю.
Здравствуйте скажите если я хочу добавить ещё четыре оси и 4 кнопки....как исправить размер дискриптора ( те если можно объяснить конкретно в каких строчках что исправить ...и про кратность восьми ещё не понял)...поясните пожалуйста ..прошу не судить я начинающий...Да и на сколько ом или кОм можно применять переменные резисторы ?
Сделайте так, как рассказано и показано в видео... Данные к USB передаются целыми байтами(8бит), поэтому нельзя добавить не кратное количество бит. Вот и 4 кнопки как раз поэтому не получится, нужно 8 кнопок добавить. Делайте постепенно, начните с кнопок, а потом к осям перейдете. P.S. Насколько мне известно многие игры не работают с более чем 6-ю осями, из-за ограничений DirectInput.
Делаю себе панель управления для игры Elite dangerous, Дано: резисторы 4шт, энкодеры 4шт, тумблер без фиксации (on)off(on) 9шт, кнопки 5шт. Потянет ли эта плата такой обвес? На данном этапе стою на распутье между STM32 и Arduino Micro Pro
пфф, даже Arduino Micro Pro потянет, загугли MMJoy проект. Ну а 32битные с аппаратной интеграцией ЮСБ так и подавно потянет. Глянь чо Лёша Кластер чудит.
@@AxGxP спасибо, добрый человек, теперь всё сразу прояснилось. так бы и сказал, что не знаешь, а то я-то спьяну подумал, что ты разбираешься. Ладно, интернет большой, поищу кого потолковее.
@@AxGxP ну что ты мелешь? я же нормально спросил. в архиве нет Readme.md или txt. Я не знаю как мне использовать эти файлы в имеющейся среде разработки. А ты вместо помощи ведешь себя как мудак. Зачем? Когда вырастешь, тебе это не пригодится.
@@Torin865 Вы меня спросили, сколько можно сделать, а не сколько именно в этой реализации... В этой для простоты 256. АЦП у STM32 - 12-бит, так что для аналоговых датчиков делать больше 4096 смысла нет. Спецификация USB-HID точно позволяет передавать 16-бит (65536 значений).
В HEX есть всё необходимое и достаточное. В этом и прелесть HEX. Круче в этом смысле только ELF, в нем кроме того, что необходимо есть ещё куча дополнительной информации. А скуднее всего в этом смысле BIN файл, его нужно ручками, по конкретным адресам прописывать. Но в не зависимости от того, какой формат хранения прошивки Вы выбрали, в микроконтроллер пропишутся одни и те-же данные, и программа будет выполняться совершенно одинаково. Никаких дополнительных "фюзов" в stm32 вшивать не нужно, они нужны в основном для защиты от считывания, блокировки памяти и т.д.
перешёл на STM32 по этой причине - 0:22 и не жалею, keil комфортнее в тысячи раз, настраивается внешний вид, цвет, шрифт, для мигания светодиодом выбираю STM32 чем ардуино. А остальное ардуино многое просто не потянет. Делал миди кнопки, так ардуино даже памяти не имеет. Куда его вообще применять. Если бы кто подсказал ещё как на stm32 нажатия кнопок как миди сообщения в ком порт бросать, а stm32 что бы как миди устройство определился
С отправкой команд +- проясняется, а как принимать и обрабатывать полный круг интерфейса. Я сим гонщик, мне интересно принять обработать перегрузки и передать их моторам.
@@AxGxP вы меня напугали . Может я не так вырзился. Не буду зацикливаться на определённой игре или симуляторе. С контролера(джойстика) охота получить обратную связь, например обороты двигателя.
Напишите подробнее, можно с примерами. На контроллере есть педаль, компьютер получает её положение, это и влияет на "ускорение двигателя". По стандартному интерфейсу данные о "работе двигателя" контроллер не получает. Эти данные нужно искать в самой игре-симуляторе, а уже оттуда их вытягивать. Возможно производители уже предусмотрели какой-то интерфейс для обратной связи.
Раз там есть USB, значит должно работать... Интерфейс стандартный, если производители XBox специально каких-то граблей не наделали, например чтоб только их лицензионные устройства поддерживались.
Большое вам спасибо! Написал был вам кучу комментариев, но просто сократил их. Даже данная прошивка это невероятная помощь! Вы очень помогли даже одной версией без изменений прошивки. Если будет возможность подсказать как добавить кнопок это будет супер Новый год! Лучший подарок вы уже сделали, сделав данное видео, оно самое ценное из всего ютуба, так как джойстик который понадобился на STM32 заработал мгновенно сразу после прошивки, и проще объяснения не существует в природе как его из 103й платы сделать. С добавлением кнопок с точностью до наоборот для меня, всё непонятно. Джойстиков у меня много, но не для игр, они нужны для набора нот. Один джойстик припаян через реле к плате голосовым управлением, расскажу вам если будет нужно от а до я информацию о управлении голосом, удалось найти настолько уникальную информацию, что её до сих пор можно выкопать лишь на единственном форуме в интернете. Остальные мягко говоря прячут информацию о автозагрузке голосовой платы. Мне удалось найти информацию о загрузке 7 команд при включении платы без ПК. Можно голосом управлять чем угодно 7 слов без ПК, слова хранятся в плате. Если будет нужно расскажу от а до я. Для начала даже вашей прошивки в качестве джойстика хватит как лучшего подарка на Новый год. Но всегда хочется большего. Было бы как в поле чудес супер призом добавление кнопок. И уже даже не мечтаю о сдвиговых регистрах добавить в эту же вашу прошивку. А потом ещё MIDI дескриптор. Это мои мечты. С Новым годом вас! Вы человек года в теме STM32 джойстиков для меня! А значит и в теме MIDI, так как именно ваше видео с самого начала вдохновило на переход на STM32 а в дальнейшем именно ваше видео дало ответ как формируется отправка данных на примере джойстика. Сразу это было сложным, а Atolic сразу показался был вовсе непроходимым, и долгое время изучал мигание лампочками на STM32. Есть практически 4-5 блогеров в ютубе понимающих в STM32 как вы и готовых давать подобные как на данном видео уроки, когда прошил и всё заработало чётко и фантастически точно. Не хочется тратить вам время, но буду невероятно рад если вы как в поле чудес как суперприз дополните, а я вам помогу сбором информации о том же MIDI например, хоть я и туп как пробковое дерево во многих вопросах в STM32 но упорством мне удалось подключить миди устройство и ниже я написал пример дескриптора который заработал сразу. Также я нашёл для дампа дескрипторов любого устройства программу. Вот здесь ссылка на ее скачивание www.thesycon.de/eng/usb_descriptordumper.shtml программа любое USB устройство подключенное в ПК умеет вывести дескриптор устройства. Данная программа очень помогла создать собственное MIDI устройство на 103 STM32, возможно вам пригодится, чуть нашёл такую программу. Она очень поможет тем, кто дескриптор проверять станет на совместимость с уникальными устройствами.
может сообщение не дошло, помогите пожалуйста 1 кнопочку добавить, что бы знать как до 2:33 не нужно так понимаю лезть, 2:37 конвертируем двенадцатибитное значение с АЦП в восьмибитное это мне также не нужно, так как явно аналоговые оси здесь, а вот на 2:40 начинаются мои кнопки, там написано GPIOB в строчке, 109 строка кода это явно моя строка, где нужно мне сосредоточиться) и там пять слов. Это чему равна Btn, а равна она вот этому (uint8t это наше число от 0 до 255 )~это инверсия побитовая если был бит 0 станет бит 1 если 1 то 0, 0xFF это число 255 в шестнадцатеричной системе, & это побитовое и а -> это указатель прошу прощения "на член". Эх запутался совсем. Как эти иероглифы правильно должны читаться не знаю. Так и не понял как добавить тут ещё один порт. 2:56 если я хочу добавить осей ещё, но я не хочу осей, а хочу кнопку, а вот на 3:02 важно возможно, увеличить размер массива, _IO uint16_t ADC_var[5] здесь понятно что появилась пятая ось, но мне нужна кнопка, а не ось, в строке 63 меняем буфер DMA_Initstructure.DMA_Buffersize =5; осей было 4 стало 5, но оси опять мне не нужны. Идем дальше. Дескриптор живет в файле на 3:08 называющимся usb_desc.c, но дескриптор пока не нужен. А вот на 3:40 нашел)) USAGE_MINIMUM написано (Button 1) USAGE_MAXIMUM (Button 8) нужно быть внимательным что бы общее количество бит было кратно восьми, в строке 114 изменить размер дескриптора, не знаю как изменить, 4:01 подправить функцию Joystick_send что бы она отправляла то количество байт, что описано в дескрипторе. Кнопки наверное не добавятся сами если всего лишь их в дескрипторе увеличить значение USAGE_MAXIMUM например написав (Button15) помогите пожалуйста! очень нужно!
В 82-й строчке нужно подать тактирование на соответствующий порт. Отредактировать InitGPIO, прописать в него соответствующие выводы. А по поводу 2:56, это уже никакого отношения к кнопкам не имеет... Там АЦП, ПДП и т.д. Чтоб у USB устройства появились кнопки достаточно изменить дескриптор, ну и слать соответствующее количество данных. В 109 строчке просто явно обрезаются все лишние биты. Если написать Btn = ~GPIOB->IDR; тоже скомпилируется и будет работать, компилятор не явно сделает всё то-же самое, но появится warning, потому,что Btn - 8-битная, а IDR 32-х битный. Переменная инвертируется потому, что кнопки по схеме замыкаются на землю, при отпущенной кнопке в IDR единицы, при нажатой ноль. IDR расшифровывается как Input Data Register, из него всегда можно считать состояние вывода (кроме случая когда он сконфигурирован как аналоговый вход).
@@AxGxP Большое спасибо! Многое прояснил, на скриншоте здесь отметил как бы я менял всевозможные порты, prnt.sc/wbzykq , в данном блоке понял как можно проинициализировать любой порт A B или С, в завизимости от GPIO_MODE_AIN или GPIO_Mode_IPU или GPIO_Mode_Out_PP порты и инициализируются в оси, кнопки, или светодиоды, так например порт светодиода можно сделать кнопкой указав там лишь GPIO_Mode_IPU, на скриншоте усвоил отлично сколько штук кнопок туда влезает, или светодиодов или осей, прошивка даже скомпилировала вместо GPIO_PIN_7 GPIO_PIN15 в инициализации порта B заменил, но пин 15 не заработал, не пойму почему, количество кнопок не менял нигде, а только пин15 вместо пин7 заменил. Там возможно срезает что то ещё
если вам не сложно можете объяснить как в игру отправляются значения с джойстика? можно ли в игру отправить значение углов и тп из программы какой нибуть?
В игру отправляется посредством DirectInput, через стандартный драйвер USB-HID. Если хотите из одной программы (из под ОС компьютера) передавать команды другой (игре), то придется перехватывать сообщения DirectInput, а то и сам драйвер подменять. В некоторых играх специально защита против такого сделана, тогда может и проще применить реальное, физическое устройство.
Что именно? Квадрокоптер? Или машинку? Про машинку есть видео на канале, да и зимние полеты квадрокоптера есть, рекомендую тоже глянуть. Остануться вопросы, пишите.
не нашёл "JoyAxGxP.hex" в архиве. а при попытке скомпилировать проект выдаёт ошибку "Description Resource Path Location Type fatal error: stm32f1xx_hal.h: No such file or directory stm32f1xx_hal_pcd_ex.c /hidtest/Drivers/STM32F1xx_HAL_Driver/Src line 42 C/C++ Problem" при этом такой файл есть: если кликнуть по нему с контролом он открывается. Наверняка нужна какая-то настройка среды, но я теряюсь в догадках где именно. Подскажи, пожалуйста!
@@AxGxP Спасибо за ответ. Действительно я не разобрался с атолликом и он прихватывал файлы из открытых им ранее проектов. Проект скомпилировался. После заливки прошивки есть одна особенность: После подключения к usb компьютера устройство не определяется пока не нажмёшь металлическую кнопку reset. После этого определяется и начинает моргать светодиод.
Насколько понимаю, прошили ST-Link-ом и подключаете к USB, без отключения питания с платы. При этом микроконтроллер остается остановленным. Чтоб он запустился нужно выполнить сброс, это возможно сделать и аппаратно, при помощи ST-Link, в Keil была такая птичка. А в Atollic немного сложнее, нужно редактировать скрипт отладчика. Но у них есть видео "TrueSTUDIO Download and reset (no debug)", там всё показано.
@@AxGxP Да прошил st-linkом китайским, но подключал к компу без него на холодную. Поискав в st-link utility нашел переключатель BOR level но он у меня неактивный( серенький, обсереный) и не понятно как включить ресет по питанию
Эмм. Я по секрету скажу (через полтора года), но вот как раз обведенный на 00:27 МК (atmega16u2) можно запрограммировать на то, чтобы он выполнял роль USB-HID устройства с помощью библиотеки joystick. Не учитывая те платы Arduino, где ядром является как раз аналогичный чип (Леонардо/микро-про на atmega32u4), и где не требуется USB-ASP программатор для заливки прошивки в него. STM32, конечно, в тысячу раз кастомнее и быстрее, но на ардуинке чтобы создать геймпад мне не потребовался бы аналогичный видос. И чтобы устройство стало по истине универсальным - надо придерживаться стандарта x-input, ибо d-input сейчас не во всех приложениях работает, а если и работает, то часто криво.
@@AxGxP Когда я писал этот комментарий я ляпнул глупость не подумав, признаю. Но через некоторое весьма продолжительное время я узнал, что существуют ассемблеры с синтаксисом похожим на C.
@@ФилиппДруан Си и ассемблер принципиально отличаются. Ассемблер ориентирован на конкретный процессор. Си имеет свои стандарты и никак не зависит от процессора. В код на Си можно встраивать вставки на ассемблере, при этом программа станет жестко привязана к железу, на котором должна выполнятся. Про "" первый раз слышу, и даже фантазии не хватает такое представить. Если что-то подобное и существует, то это или явно далеко не ассемблер, или похоже на Си только тем, что программы латиницей пишутся))) Есть какое-то название, у этого чудо-ассемблера? Где он применяется?
@@AxGxP Вот где я видел ассемблер стилизованный под C:alemorf.ru/pi/4/index.html Как я понял один человек пишет на нем игру для спектрума, "Последнее испытание" по мюзиклу. Отличия этих языков мне известны. Спасибо
Точка останова? Там IDE настроить еще правильно надо, чтобы все сразу без костылей работало. В TrueStudio на main всегда точка останова ставиться после создания проекта.
Нет ардуинки, сгорела! Чему был безгранично рад)) Нет смысла тратить время и нервы на arduino, с её глюками и тормозами. Переходите, или лучше сразу начинайте с STM32, это намного удобнее, эффективнее и надежнее. Дешевле и быстрее! Если будут желающие, могу сделать видео, о том как создать первый проект в Atollic TrueStudio, как, с чего начать.
Когда то купил программатор для stm32, чтобы прошить плату гироскутера, сейчас хочу сделать контроллер для жд симулятора на ардуино, и тут натыкаюсь на это видео, для жд симулятора мне нужно 5 основных осей джойстика. Вот теперь уменя выбор купить ардуино leonardo c встроенной поддержкой usb hid или попытать удачу и купить stm32
Ну если смотреть например по цене, то STM-ок можно купить несколько за те-же деньги. Этот проект скомпилирован на сколь помню под 3 оси... Если нужно 5 - придется немного переделывать программу. А вообще для чего там 5 осей? Я поездом не управлял, но вроде как там все инструменты дискретные... Ну у паровозов конечно краны всякие есть.
@@AxGxPНа самом обычном современном поезде, три тормоза динамический(рекуперация) , ручной(стояночный) и тормоз состава(основной) . Газ это уже 4я ось, И реверс, если в обычном локомотиве, он имеет три положения то на паровоз реверс плавный Как-бы реверс и газ меняются местами. Управляешь во основном реверсом.
@FIL_KILLER что все эти тормоза можно плавно включать? Я думал, у крана машиниста есть несколько позиций и усилие торможения зависит от длительности включения крана. По тяге понятно, только фиксированные позиции, динамическое торможение на сколь понимаю так-же. Тут главное посмотреть, что поддерживает ПО на компьютере, как предусмотрено управление этим всем. Там же можно не только оси передавать, а и до 128 кнопок, если не ошибаюсь.
@@AxGxPНа тормозе да, несколько положений, на скорости контроллер скорости может иметь 8 позиций как на старых электричках, или 34 позиции как на электовозах. Динамический тормоз аналогичен контроллеру скорости, по числу позиций, ручной тормоз плавный, а тормоз состава имеет около 6 позиций( если не ошибаюсь) . Через оси проще управлять всем этим разнообразием. Я думал привязать переменный резистор к положениями тормоза но это уже когда заморочусь.. Я вдохновился штукой "RailDriver" выпускается совместимой с популярными симуляторами, он стоит 24 тыс на Ebay.
Ох, эти советские резисторы... Там после непродолжительного использования такой дребезг должен начаться, что самолет должен волчом начать крутиться и дергаться в все стороны как эпилептик в припадке.
ну, хотя бы для приличья:) опубликовал бы прямо тут в описании или в комменте ещё и шестнадцатеричный дамп машинного кода прошивки в текстовом формате (а не только лишь в формате.rar)
А есть тот же проект, только на библиотеках HAL ? Просто деревянный джойстик.. это что-то, зацепило.. пы.сы. Если тоже самое сделать на оптических дисковых энкодерах, то дискретность честь пострадала, но сигнал был бы стабильнее.. (если не учитывать цены на энкодеры, я не про те, которые в колесике мыши :D )
Честно сказать, деревяшку ради видео выстругал. Цель - показать как сделать, чтоб USB работало как надо. А в качестве источников данных может быть что угодно, хоть энкодеры, хоть гироскопы, хоть датчики приближения... Оптические энкодеры, особенно те, про которые идет речь весьма большие, в случае с миниатюрным джойстиком идеальным вариантом будет применение маленького неодимового магнита и аналогового датчика Холла.
@@AxGxP Вот точно, про магнитный источник данных я как-то совсем забыл.. спасибо. Ну так а есть ли проект под HAL ? так-то я и с цмсис могу разобраться, прото привычнее по HAL-ом... заранее спасибо
@@AxGxP Ну так-то в принципе можно и своих шаблонных функций наделать.. типо: инит, сэтап, обработчики прерываний и дма.. да мало-ли, на что фантазии хватит ))) ..Но имхо, для отладки _"побыстрому"_ и ХАЛа слихвой, А при релизе, можно и вовсе, прамое обращение к регистрам.. грубо говоря..
@@GypsyRewind Угораздило меня один раз с HAL связаться, тоже ради того, чтоб USB автоматом мне собрало, и там все было ОК. Но вот кто там UART придумывал, ход его мыслей я так и не понял, долго пытался понять как это все использовать и нафига там оно надо... Вроде в конце свой обработчик переписал и всё.
Писать под STM32 из под ArduinoIDE? Глупость. Если хочется сделать геймпад на ардуино - есть leonardo и joystick. Если хочешь нормально писать код для МК - пересаживайся на нормальные редакторы. Хотя вот PlatformIO очень даже ничего для Arduino. Некоторая прослойка между ArduinoIDE и нормальной IDE для МК. Старый медленный, но удобный wiring в сочетании с администрированием кода через хидеры и сорс файлы.
Да и у оригинальной uno r3 в роли uart преобразователя стоит атмега 8u2 я ее перепрошивал под миди интерфейс, библиотека LUFA. Потанцевав с бубном можно транслировать с основной 328 меги по uart в 8u2, а она будет слать даные как HID устройство. И еще не будем забывать про великую библиотеку V-USB. Да софтовый, да медленый, но рабочий вариант. Делали когда-то переходники для джойстиков от приставки в usb hid на atmega8 все отлично работало.
Да, были времена дорогих микроконтроллеров, извращались по разному, и без бубна редко что-то получалось. Но я считаю, что стоит оставить это в прошлом. Нет в этом ни смысла, ни логики на сегодня.
@@AxGxP Вот видишь, не один я считаю что на ардуино это вполне реально(причем почти на любой) И претензии здесь в том что автор в самом начале заявляет: ардуинщики вам такое не удастся(а потом уже бла бла бла отговорки) P.s. Мои прежние коменты удалены? Мне это льстит)))
@@pichbah Мне тоже непонятно, зачем я тут распинался, чтоб потом это все удаляли... Создавайте свою ветку, а не пишите в чужих, чтоб никто, ничего не удалял. Прошлый раз вы писали в ветке @/Volodya GAMES/ вот его и спросите, зачем он всё удалил. Сейчас опять в чужой ветке пишете, ничему жизнь не учит. Можно сделать что угодно, на чем угодно, хоть на стандартной логике, если есть много свободного времени, и есть желание танцевать с бубном. Про невозможность сделать это на AVR впринципе я не говорил. Упомянутая библиотека V-USB к ардуино отножения не имеет, хотя её можно туда портировать. А стандартными средствами Arduino UNO, Mini такой возможности нет! Любые реализации на любой ардуино будут менее функциональными и менее стабильными. Потребуется доработка схемы, паяльное оборудование и может еще и внешний программатор. Именно из-за существования Arduino Leonardo в видео сказано, "на большинстве"! Хотя даже в сравнении с Leonardo STM32F103C8T6 будет быстрее, функциональнее, дешевле. Остались вопросы, создайте свою ветку, в ней и пишите!
Btn = (uint8_t)~((GPIOB->IDR)&0xFF); // buttons здесь порт B так понимаю, а если так сделать Btn = (uint8_t)~((GPIOB->IDR, GPIOC->IDR)&0xFF); // buttons все прошилось но дальше не нажимаются кнопки больше ни B ни C порта, помогите добавить кнопку!!!, мне 8шт. мало. Сократил сообщения написав в одно, что бы не отнимать вам времени. Прошился джойстик сразу через cubeIDE, Atolic не понадобилось устанавливать, cubeIDE прошил и все 8 кнопок заработали, оси мне не нужны были. Мне очень нужно понять как добавить ещё кнопку например с порта C. Одну единственную кнопку для примера, по которому будет понятно как остальные добавить. Сообщений было много, сократил их, что бы не мешать вам лишними сообщениями, может ещё есть способ через сдвиговый регистр и мультиплексор добавить ещё больше кнопок, очень нужно. Не знаю как добавить кнопку, портом целиком или пином.
"Btn = (uint8_t)~((GPIOB->IDR, GPIOC->IDR)&0xFF);" - это бред какой-то... Что это должно было значить? Чтоб добавить кнопок нужно соответственно изменить дескриптор USB, а так-же передавать соответствующее количество данных, должно быть кратно одному байту (8-бит). Переменная Btn должна быть соответствующего типа. Сколько кнопок нужно?
@@AxGxP Для джойстика чем больше тем лучше выйдет) сколько влезет в 103 плату, столько и отлично. Потом просто планирую MIDI дескриптор вписать туда, сдвиговые регистры цеплять, и там паковать в код джойстика отправляющий в ПК байт или 2 байта не понимаю сам, но понимаю что байт или два точно, а сконфигурировал уже отлично MIDI дескриптор, ПК никак не может дождаться любой байт посланный ему, вполне высока вероятность что ПК даже код кнопки джойстика воспримет как одну из существующих миди команд. Уверен к созданию MIDI подобрался как никогда близко и именно с вами. Отлично понимаю, что заменив дескриптор на миди ваша прошивка вполне может ловить понимаемые ПК байты данной прошивки уже как MIDI сообщения, их не сложно возможно выйдет вписать свои туда байты, например 'hello world', только это будет например HEX сообщение например такое '49' это сообщение уже будет понятно ПК. Оно как раз будет в HEX уже ловить, так как 103 плата это уже для ПК MIDI устройство с дескриптором который удалось было сделать. Пока хорошо было бы освоить добавление кнопок. С дальнейшим исследованием MIDI. Джойстик также нужен чем больше там кнопок, тем лучше. Можно вовсе без аналоговых входов. Так как версия с аналогами в данном видео вполне достаточна.
Крутой канал у вас, Александр. По сравнению с вашим у меня впечатление, что мой канал совсем слаб. Но у вас есть одно существенное отличие от дедушек, что имеют в разы больше подписчиков, но менее грамотны, чем вы. Собственно из такого канала я и пришёл, где вы поправляли в пояснениях дедушку по ремонту блока питания. Деды объясняют всё по простецки, а ваши видео рассчитаны на нормальный уровень знаний. Для меня ваш канал интересен, но большинству, кто не может даже в мультиметре разобраться- это тёмный лес. Лайк за джой и подписка.
годно! вы я так вижу в программном коде разбираетесь, а сложно ли написать код работающей скажем на ардуино нано с подключенным к нему сервомашинкой и рфид модулем rdm6300, получился бы неплохой электромеханический замок, открываемый при помощи бесконтактной карты, удобная система и минимум проводов, неплохая тема для видео на канале, за помощь символическая сумма, что скажете?)
С RDM6300 не работал, вижу там стандартный UART интерфейс, думаю сложностей не должно возникнуть. Сервомашинка - все просто. К сожалению нет сейчас в наличии ни ардуино (хотя атмеги есть), ни RDM6300, ни карточек. Так что могу помочь только теоретически.
у меня тоже пока не всё укомплектовано, жду рфид модуль с китая, исторически сложилось что я наделён даром махать паяльником, но голова не работает по написанию кода. Всё верно модуль работает по uart интерфейсу, у меня сейчас установлен замок на съёмной квартире(посмотрите перейдя на мой канал) всё бы ничего но он работает на частоте 13,66 Мгц, и на модуле RC522 который перестаёт работать после суток простоя, программный код написать мне помогли, но и тот как оказалось не идеален и иной раз я не могу попасть в комнату, а с сенсорной кнопика работает всегда. Именно поэтому я хотел бы немного переделать упростить и допилить систему до идеала)
@@trydontcry9564 Интересно, почему перестает работать... Не думаю, что проблема в модуле, скорее всего как всегда глюк в ардуино (кривой код, кривые либы и т.д.). Из-за таких вот глюков я и не люблю ардуино и вообще чужими библиотеками не пользуюсь почти.
Супер!!! Очень классно! Лайк однозначно. А если б еще и рычаг(джойстик) и педали руля-полетал бы на таком! жаль что в программировании дальше бейсика не шарю
Я немного чайничек, уж извините и не шарю в этом особо. Попытался погуглить, но не вышло: - Нельзя ли дать полную инструкцию (если такова не слишком большая), какие строки надо в дескрипторе изменить для уменьшения осей с 4-х до 3-х? У меня РУД'ы как таковые имеются, но вот доп. ось мешает (как минимум на этапе колхозного теста, ибо я пока не смог решить проблему возвратного механизма для оси тангажа, но не суть). Хотя, можно закрылочки или спойлера на неё поставить, но лучше уж убрать) Буду благодарен, если кто поможет.
Вроде всё сделал, что упомяналось в видео, а всё-равно 4-ую ось видит 🤔 Ладно, не беда, всё-равно один резистор лишний есть) Спасибо за видос, кстати о птичках. Хоть один проект доведу до функционала и можно будет полетать)
Да, хороший проект, даже отличный на свое время! Только вот хочу обратить внимание, что появился он еще задолго до ардуино, а написан был на ассемблере... Так что при чем здесь ардуина не совсем понятно.
Неа, все они такие, даже в заводских геймпадах мало чем отличаются. Если нужен нормальный, с линейной характеристикой то рекомендую взять от RC пульта. Я на Hobyking брал когда-то.
У меня появилось желание собрать такое устройство - на датчиках холла, добавить туда осей и кнопок (педали, РУС, РУД). В это же время уровень моей технической подкованности - обезьянка с тарелочками весло звенит в моей пустой голове. Мне предстоит скурить много мануалов...
Саня, а смисл змінювати розрядність з 12 біт на 8? Більша розрядність - більша точнсть позиціонування. Особливо, якщо використовувати не прості потенціомери, а магнітні резистори в якості осьових датчиків. Тема мені близька: хочу зробити педалі для управління ЛА. Повернуся в Україну - звернуся до тебе за консультацією, механіку зррблю сам, маю креслення педального вузла з Мі-8.
Змінити дескриптор і можна передавати 12 біт. Тоді програма виглядатиме трохи складніше, не хотів лишньго сюди писати, щоб людей меньше плутати. Магнітних резисторів не бачив напевно ніколи... Яке маркування? Можна оптичні енкодери використати, дуже висока точність буде. Також тензодатчики, якщо треба силу натискання десь виміряти.
@@AxGxP Магрези використовуються, наприклад, у Saitek Flight Control System. Зараз під руками немає, тому маркування не підкажу :( Проте, є маса фоток в Мережі де цей джой поліпшують, то можна знайти маркування. Сенс такий: корпус магреза жорстко закріплений в клрпусі, а коло нього на осі приклеєний магніт, який обертається з оссю, тим самим змінюючи опір резистора. Все дуже плавно і дуже точно. Аби досягти такої точності через оптопару - треба або великі розміри коліщатка, або підвищуючий редуктор, що не завжди вдається втулити в обмеженому об'ємі.
@@AxGxP Тензодатчики використовуються в дорогущому Thrustmaster Hotas Warthog PC : пара пульок в одну консоль - і 100% гарантія, що поки дотягнеш до полоси - кисть руки собі вивернеш :)
@@FSG_Fritz Дуже цікава ідея. Датчик Холла аналоговий і магніт. Мінімум простору, ніякого тертя, можно сказати вічний! Треба спробувати, є у мене такі.
Можна зробити дуже реалістичний зворотній зв'язок, на базі асинхронних двигунів. За допомогою зміни струму можна змінювати силу з якою пручається кермо. А змінюючи частоту можна змінювати швидкість з якою воно буде обертатися. Але це вже треба у натуральну величину робить.
@@AxGxP частота в данном случае практически не играет рояли) чпу - не розетка) асинхронник работает с проскальзыванием, один фиг всем этим управляет МК - векторное, скалярное... для руля, например, нужно брать серво около 1 КВт, малооборотистый но с большим моментом 10 Нм+. и ШИМом в 50+КГц управлять тремя фазами... надо покурить инфы побольше, сам хочу руль Direct Drive сделать с мотором 130ST-M10010 - вместе с драйвером стоит $330 - на таких делают любители, но с дорогущим драйвером мотора и платами в комп - далеко за $1000+ выходит, не камильфо. нужно присосаться к чужим дровам и пилить свою схему управления. по сути управлять нужно только моментом и скоростью, точного позиционирования ведь не надо... а "присосаться к чужим дровам" - cxem.net/mc/mc207.php тут чел заюзал дрова от руля логитеч g25, но там дебильная фича - в центральной позиции руля от дров идет команда отрубать моторы, руль становится вялым как мой рукав) хочу помучить дровишки трастмастер t300 или фанатеки какие. удачи
@@shlemkin Про частоту вращения фаз я говорил... Управлять моментом и скоростью, изменяя напряжение и частоту. 1 КВт и руки поотрывать может, 200Вт с головой, как по мне. ШИМ 18кГц вполне достаточно, зачем аж 50? Да и не нужен там такой хитрый драйвер, все самому можно собрать, на транзисторах под управлением того-же STM32F103C8, у него есть комплиментарные выходы под 3 фазы, с dead-time и всеми плюшками.
@@AxGxP да да да, перехожу на стм в том числе из за фичи с дед-таймами (еще поглядим, как работает весь этот хлам)). не для ардуинки такое. и юсб есть. драйвер, конечно, нужен не настолько сложный, как для сервы чпу... а может и действительно совсем простой, ибо момент создается из расчета оборотов в том числе, но у нас обороты либо 0 либо ну совсем небольшие, до 300-500 об/мин (если совсем как больной крутишь со всей ненавистью))), а при такой скорости во все формулы наверное можно совать RPM 0 для вычисления частоты/напряжения/тока для получения нужного момента... наверное таки частоту и силу тока регулировать будет достаточно (сам себя обнадежил))) только вот какое дело - как ты "подашь" на руль, например, 5Nm на 3 сек? как быть с пусковыми токами и моментом на старте? что в эти моменты будет происходить с моментом на валу? нужно ли изъёживаться, чтоб момент был ровным со старта? представляешь брусчатку или неровности, когда руль влево/вправо как бешеный сопротивляется/дергает, и очень быстро - все это надо точно передать... нужно учитывать момент инерции ротора? легко себя убедить, что это может быть легко, ровно также потом и убедить себя, что сложно... надо делать и смотреть... а 1 КВт серву надо. там и ротор облегчен, и момент 10Нм норм. в не профи рулях до 8Нм. если 200Вт то только через редуктор, а я говорю о DirectDrive - руль сидит на валу мотора. редукторы/шестерни/ремни - все это источники неточностей, шума и вибрации... ну и напоследок посчитай - 10Nm ~ 1кг/м при диаметре руля 30 см получаем рычаг 15 см 100/15=6,6666 - на ободе руля максимум усилия будет 6 кг (12 в пиковом режиме) - руки не повырывает)) пристегиваться крепче надо))
@@shlemkin " как быть с пусковыми токами и моментом на старте" не вижу никаких проблем, тут заморочек с пусковым током не будет, скольжение незначительное, на таких оборотах... Есть у меня моторчик, только вот руля нет, можно было бы попробовать.
Давно ждал выпуск, интересная реализация)
Ребята из ob-dev выложили в свободный доступ библиотеку V-USB, которая реализует HID для AVR, в том числе на копеечном ATtiny 2313. Так что не одним STM32 богат мир микроконтролеров без ардуино. Но за видео спасибо)
Ты мне настроение на день сделал! Я бы в жизни не решился такую пипиньку соорудить. Лайк+Подписка. Автор - ЖГИ!
boot1 не появляется как кнопка к GND, все другие 7шт. программа видит а boot1 не видит, перемычка снята полностью, из boot1 торчит провод к GND и ничего не происходит 1:11 еще не понятно что такое R4 и что заменить перемычкой
Теперь уже джойстик понадобился на 103 stm32, что нужно что бы ваш девайс повторить? какой софт? так понимаю keil не подойдет никак, на видео Atolic вы используете и говорили раньше Atolic, т.е. мне достаточно загрузить ваш код в Atolic и из него в stm32 и джойстик готов? получается даже cubeMX не понадобится, а лишь Atolic и зашить ваш готовый файл? Мне как раз джойстик лишь бы был. А потом попытаюсь разобраться как добавить кнопок если удастся зашить 103 плату если понадобятся кнопки. Предполагаю MIDI аналогично отсылается команда. Есть еще какая то программа показывает содержимое дескриптора подключенного к USB устройства, забыл название. Из той программы вытаскивал дескриптор заводского MIDI инструмента. Так он не отличался почти от STM32 MIDI дескриптора. Программу скачал, забыл название.
Привет. Очень интересная тема. Я делал джойстики и педали с помощю проекта ММджой (от Мегамозга). Мне эта тема близка и очень нравится. Хотелось бы видеть ее продолжение и от Вас. Подписываюсь однозначно.
Респект и уважуха мастеру
Блин, закинул на яндексе удочку - делал ли кто нить на стм 32 штурвал(недавно подсел на симуляторы, а штурвал от лоджитека - 16к руб.) и тут на тебе - все есть! И я такой - блин, парень, СПАСИБО за труд! Подпишусь! Ан нет - уже оказывается давно подписан )
... то, что нужно, огромнейшее спасибо, сам хотел подобное да не решался а тут готовое решение- конструктор
я так и не понял, если я хочу сделать первый в жизни контроллер, что мне понадобится помимо самого stm? программатор или переходник для прошивки в комплекте идет или надо отдешьно покупать? ссылка в описании устарела.. да и не совсем понятно, какими файлами шьется мк.
Stm32 а дальше какие буквы?
Любые?
а чи можете підказати номінали Резисторів ? бо як на мене, то 10 кОм ідеально підійшли
А в архиве какой файл зашивать в СТМ 32?
Какой колхоз, но елки.... в этом есть какой-то шарм.... деревянное..... как в детстве.
Информации маловато, да есть гугл, но тут все таки пример приятнее, нагляднее, удобнее. Раскрой тему шире. Да видео станет больше, но кто захочет тот досмотрет.
Удачи и развития твоему каналу и идеям.
Я б на принтере напечатал. Сейчас почти все на нем делаю
Кто бы то мне переходнички для колес, напечатал?))) Чтоб робота опять под пол запустить.
@@AxGxP А стл модель есть
@@РомаЯковлев-ц6г Нет, не создавал пока... Как-то вообще мало деталей с 3D принтера в руках держал, не внушает доверия прочность, по тому, что видел на видео. В дух словах это должен быть шестигранник 7мм, длинной 15-20мм и отверстием 5мм, полумесяц. Насколько оно прочное будет? Толщина стенки получается от 1мм до 2.5-3мм. Реально такое сделать? Или лучше из металла сразу точить?
@@AxGxP Смотря какую нагрузку делать??? Если ПЕТГ пластик то там прочность хорошая ну если его при печати не пережечь тогда ломкий становится. вот эта линейка пластика bestfilament.ru/category/plastik-Bestfilament/?tipa_materiala[]=300
еще есть нейлон но я им не пробовал печатать. С него делают допустим шестерни для мясорубки.
А возможно вместо переменных резисторов, взять энкодер? С большим количеством "шагов"
Всё возможно, но нужно изменять программу. Без изменений можно подключить аналоговый датчик Холла.
@@AxGxPдатчик холла А3144 для этого подойдёт?
А можно использовать ардуино D1?
Если делать самодельный джойстик, то делать надо только на датчиках Холла или на магниторезистивных датчиках, а на резисторах проще купить.
Где всему этому научиться?
А Leonardo?
на ESP32 кто то делал? просто лежит без дела хотел сделать тактильную перчатку для виар но все никак руки не доходят
Изменил прошивку, а как сконфигурировать hex файл для прошивки?
Вы кнопки подключали через резисторы? Номинал подскажите?
Можно без резисторов. Подтяжка включена внутри микроконтроллера. Последовательное включение резисторов применяется чтоб ограничить ток, если вдруг вывод будет запрограммирована как выход, а не как вход. В током случае можно применить резисторы от сотен ом до нескольких килоом. Если при этом ещё и установить параллельно каждой кнопке по конденсатору на 0.1 мкФ, получится фильтр для устранения дребезга контактов.
0:28 Только что собрал USB джойстик - штурвал на arduino (atmega8) без всяких ваших аппаратных USB.))
Молодец!
А этой штукой можно будет увеличить рабочий ход МАРС-ов ? Мне стандартный ход МАРС-ов моего Defender Cobra M5 маловат, нужно градусов до 45-ти (даже больше) увеличить ход стика в каждую из четырёх сторон.
Подскажите пожалуйста как в keil открыть ваш исходник, простите я только после ардуино и ничего тут не понимаю. не считая опыта ардуино
В Keil он просто так не откроется, как открыть тоже не подскажу, кейлом давно не пользуюсь из-за ограничения в 32кБ... Да и некоторых фишек в кейле не хватает. Проект создан в Atollic True Studio, в нем и откроется без лишних движений.
@@AxGxP ок, пойду качать
@@AxGxP Может в этом Atolic подправить лишь в блоке где устройство как джойстик определяется какую нибудь цифру научным тыком? что бы стало midi устройство
@@masterkit9517 Нет, не получится... Нужен другой дескриптор, я давал ссылку на GitHub, где по идее правильный дескриптор прописан.
@@AxGxP Попытаюсь разобраться
Как хорошо что я тебя нашел, мучаю леонардо чтобы сделать MIDI контроллер. Начинаю посматривать в сторону STM 32, уже заказал парочку. На русском мало видео по HID на STM 32.
Ну вот, есть с чего начать...
Автор ATMEGA32U4 нет? Неслышал? 🙈
Видео внимательно слушай, а то походу ты что-то не услышал... Да и ценник за leonardo в $25+ прекрасно помню, не те времена.
Супер! И Правда, материалы хорошие! НО тебя мало знают. Кто с Альфы, кто с Хамстера сюда приходят. Спасибо, за полезную информацию В доступной форме!
У меня со старых времен лежит штурвал genius. Возможно ли переделать его также переделать под USB?
Да, вполне.
как завести этот код на stm32f4?
А как подключить usb кабель к stm32?
По идее без проблем, там встроенный usb интерфейс
Добрый день! прошил hex, win10 пишет устройство не опознано, подскажите как исправить. Дополняю, определяется если перед втыканием USB нажать кнопку сброс и после подключения к USB (1-2 сек) отпустить ее. Как исправить?
Или всё-таки не прошилост... Или с разъемом проблема. Ну ещё вариант микроконтроллер неисправный.
определяется если перед втыканием в USB нажать кнопку сброс и после подключения к USB (1-2 сек) отпустить ее. Что то посоветуете?
@@vladvlad9834это у вас платка bluepill? Там на них были версии с ошибкой, посмотрите на плате резистор R10, должен быть 1.5 кОм. Бывает, что там стоит на 10кОм, в таком случае его нужно заменить.
да 10к , завтра поменяю. Этот резистор установлен на линии D+ ; от PA12 к +5в , я правильно понял?
Поменял резистор, особо ничего не дало 50\50, определянтся через раз. Пробовал поменять конденсатор в цепи сброса, тоже єффекта особо нету
а как компьютер узнаёт что это именно джойстик? там какой то код нужно где то прописать? именно типа устройства? я вот и джойстик бы сделал, но мне нужно прописать мидиустройство, сконфигурировать сконфигурировал в cubemx как аудиоустройство, ПК видит в списке аудиоустройств отлично как и заводской цифровой рояль в одном списке, а куда следующую строчку писать следующего шага, полный ноль, а помочь во всем интернете некому, я писал вам раньше, но мне бы задать направление куда идти на 1 шаг вперед. Все сконфигурировано в CUBEMX в аудиоустрйойства, нужен следующий шаг хотя бы 1 строку которую изучать.
CubeMX, там HAL. Я с HAL не дружу, не подскажу. Ищите по HAL, о USB документацию.
@@AxGxP Спасибо большое!
удалось уже в MIDIOX подцепиться через миди аудио устрйоство! Если понадобится пишите, но там еще эндпоинты какие то и упаковать нужно вагоны байтов в локомотив
А как игра называется? Ил2 штурмовик либо же Битва за Британию (Крылья победы)?
war thunder
А преднатяг рычагов как-то регулируется?
Видео про электронику, а не механику. То, что на видео - вообще без пружин. Ну а если хотите сделать самый реалистичный вариант, в идеале подойдут асинхронные двигатели, в качестве обратной связи.
поччеемммуу ? я не знал о тебе? спасибо алфе, рассказал о тебе
Здравствуйте ,скажите в джойстике "РУС" , если штатные транзисторы заменить на такие, в программном обеспечение надо указывать изменения? Просто приобрёл для симуляторов , а у осей "X"Y" есть свободный ход мертвая зона , калибровка толку не даёт , мертвая зона механическая ...
Какие ещё транзисторы? Не знаю, что там у вас стоит, но лучше всего делать на магнитах и датчиках Холла.
@@AxGxP да у нас магниты и датчики с трудом найти , дорого будет.
@@_plasticarmor_8789 Разве aliexpress вам не доставляет?
а вот не нашёл в DT программе миди устройств, он их не знает?
Потому, что MIDI это не HID. MIDI это по сути UART на скорости 31250 бод. Можно в принципе заставить его работать через USB-UART, с использованием какого-то специального драйвера, чтоб создать на компьютере виртуальный MIDI порт. Но если хотите красиво, то будет немного сложнее, кроме правильного дескриптора придется самому обрабатывать bulk endpiont. Информацию по этому вопросу найдете по запросу гугл: "Universal Serial Bus Device Class Definition for MIDI Devices".
@@AxGxP Спасибо большое вам! Просто компьютер при подключении миди устройства всегда пишет подключено миди устройство стандартное. Думал что это HID. Нужно все таки через стандартное миди устройство виндовс подключаться. Нашел эти загуглив дескрипторы, в конце PDF документа по 1й же ссылке гугл нашел эти эндпоинты в конце документа вот такое там пишут Standard MS Interface DescriptorTable B-5: MIDI Adapter Standard MS Interface DescriptorOffsetFieldSizeValueDescription0bLength10x09Size of this descriptor, in bytes.1bDescriptorType10x04INTERFACE descriptor.2bInterfaceNumber10x01Index of this interface.3bAlternateSetting10x00Index of this alternate setting.4bNumEndpoints10x022 endpoints.5bInterfaceClass10x01AUDIO.6bInterfaceSubclass10x03MIDISTREAMING.7bInterfaceProtocol10x00Unused.8iInterface10x00Unused. Если будет информация помогите, и вам напишу если понадобится если что удастся найти. Но что с ними делать даже не представляю. Это по сути полностью тот же джойстик технически, сообщения только туда он будет другие в кавычках посылать и в другое место другому драйверу. Сообщение там можно написать хоть даже "я банан" только вот виндовс не вджойстик должен их послать а в миди устройство стандартное которое виндовс прицепит. Ардуино никогда не потянет проект. Leonardo лежат 3 трупа pro micro от передозировки мультиплексоров, даже дорогими программаторами не удалось восстановить. Дохнут как мухи от дихлофоса leonardo pro micro от нехватки памяти, и глюки бесконечные надоели.
@@masterkit9517 ничего конкретного сказать не могу, самому пока не приходилось USB-MIDI интерфейс создавать. Вот нашел, вроде то, что надо: github.com/ripxorip/stm32_usb_midi
@@AxGxP Спасибо большое!
@@AxGxP Не знаю только после ардуино как этим воспользоваться, что куда вставлять) Убежал с ардуино из за невозможности на ардуино завершить миди проект, 120 кнопок лезло с мультиплексорами только в 3-4шт. Leonardo. Так Leonardo окирпичились из за переполнения выше 80% памяти в версии pro micro и даже дорогим программатором не удалось их восстановить. С тех пор ардуино даже врагу не желаю.
Здравствуйте скажите если я хочу добавить ещё четыре оси и 4 кнопки....как исправить размер дискриптора ( те если можно объяснить конкретно в каких строчках что исправить ...и про кратность восьми ещё не понял)...поясните пожалуйста ..прошу не судить я начинающий...Да и на сколько ом или кОм можно применять переменные резисторы ?
Сделайте так, как рассказано и показано в видео... Данные к USB передаются целыми байтами(8бит), поэтому нельзя добавить не кратное количество бит. Вот и 4 кнопки как раз поэтому не получится, нужно 8 кнопок добавить. Делайте постепенно, начните с кнопок, а потом к осям перейдете. P.S. Насколько мне известно многие игры не работают с более чем 6-ю осями, из-за ограничений DirectInput.
Делаю себе панель управления для игры Elite dangerous, Дано: резисторы 4шт, энкодеры 4шт, тумблер без фиксации (on)off(on) 9шт, кнопки 5шт. Потянет ли эта плата такой обвес? На данном этапе стою на распутье между STM32 и Arduino Micro Pro
пфф, даже Arduino Micro Pro потянет, загугли MMJoy проект. Ну а 32битные с аппаратной интеграцией ЮСБ так и подавно потянет. Глянь чо Лёша Кластер чудит.
Объясни, что делать с содердимым архива. Есть STM32CubeIDE. Есть STM32F103C8 с 16МГц кварцем. Скачал/распаковал твой архив. Дальше что?
А дальше на хлеб намазывай и закусывай почаще! Более дурацкого вопроса давно не слышал...
@@AxGxP спасибо, добрый человек, теперь всё сразу прояснилось. так бы и сказал, что не знаешь, а то я-то спьяну подумал, что ты разбираешься. Ладно, интернет большой, поищу кого потолковее.
@@smert_okupantam давай, давай... Как раз коллег по уму в "интернете" найдешь...
@@AxGxP ну что ты мелешь? я же нормально спросил. в архиве нет Readme.md или txt. Я не знаю как мне использовать эти файлы в имеющейся среде разработки. А ты вместо помощи ведешь себя как мудак. Зачем? Когда вырастешь, тебе это не пригодится.
Какое максимальное количество отчётов можно сделать на ось управление ?
До 65536 знаю точно можно, а больше - не уверен. Не достаточно?
@@AxGxP достаточно) спасибо
@@AxGxP в прошивке из описания 254 отчёта на ось?
@@Torin865 Вы меня спросили, сколько можно сделать, а не сколько именно в этой реализации... В этой для простоты 256. АЦП у STM32 - 12-бит, так что для аналоговых датчиков делать больше 4096 смысла нет. Спецификация USB-HID точно позволяет передавать 16-бит (65536 значений).
@@AxGxP спасибо
Напишите название программ симуляторов в которых вы летаете...???
ИЛ2 Штурмовик показан и Aerofly RC7. А также Spintires, гряземесево))
А какие файлы нужно пршить в мк? Только хекс?
В HEX есть всё необходимое и достаточное. В этом и прелесть HEX. Круче в этом смысле только ELF, в нем кроме того, что необходимо есть ещё куча дополнительной информации. А скуднее всего в этом смысле BIN файл, его нужно ручками, по конкретным адресам прописывать. Но в не зависимости от того, какой формат хранения прошивки Вы выбрали, в микроконтроллер пропишутся одни и те-же данные, и программа будет выполняться совершенно одинаково. Никаких дополнительных "фюзов" в stm32 вшивать не нужно, они нужны в основном для защиты от считывания, блокировки памяти и т.д.
@@AxGxP спасибо большое, попробую прошить и отпишусь о результате)
@@AxGxP прошил, всё работает отлично 👍
перешёл на STM32 по этой причине - 0:22 и не жалею, keil комфортнее в тысячи раз, настраивается внешний вид, цвет, шрифт, для мигания светодиодом выбираю STM32 чем ардуино. А остальное ардуино многое просто не потянет. Делал миди кнопки, так ардуино даже памяти не имеет. Куда его вообще применять. Если бы кто подсказал ещё как на stm32 нажатия кнопок как миди сообщения в ком порт бросать, а stm32 что бы как миди устройство определился
Круто. И по домашнему лампово... :)
С отправкой команд +- проясняется, а как принимать и обрабатывать полный круг интерфейса. Я сим гонщик, мне интересно принять обработать перегрузки и передать их моторам.
Обратная связь осуществляется по другому интерфейсу. В стандартном USB HID такой возможности нет.
@@AxGxP вы меня напугали . Может я не так вырзился. Не буду зацикливаться на определённой игре или симуляторе. С контролера(джойстика) охота получить обратную связь, например обороты двигателя.
Напишите подробнее, можно с примерами. На контроллере есть педаль, компьютер получает её положение, это и влияет на "ускорение двигателя". По стандартному интерфейсу данные о "работе двигателя" контроллер не получает. Эти данные нужно искать в самой игре-симуляторе, а уже оттуда их вытягивать. Возможно производители уже предусмотрели какой-то интерфейс для обратной связи.
в USB HID есть прием и передача, но в играх почти нет никакой "обратной связи", приходится ставить спецсофт, что шпионит игру и шлет в геймпад данные.
Спасибо гайверу рассказал про топ канал
Можно ли купить фонарик?
У меня фонарика готового нет, я прошивкой и схемотехникой занимался. А готовый экземпляр только у AlphaMods есть)))
Как бы на компе все красиво... Но меня больше интересует подключение к XBox ONE
Раз там есть USB, значит должно работать... Интерфейс стандартный, если производители XBox специально каких-то граблей не наделали, например чтоб только их лицензионные устройства поддерживались.
Я подобный себе сделал на свой передатчик что бы на компе летать, удобно не надо отдельно пульт для сима покупать
Ага, я тоже изначально для этого и делал. Ну а этот вариант, со штурвалом в основном по приколу, для видео.
Хороший канал, удивительно мало подписчиков. Спасибо за труды, лайк, подписка.
Большое вам спасибо! Написал был вам кучу комментариев, но просто сократил их. Даже данная прошивка это невероятная помощь! Вы очень помогли даже одной версией без изменений прошивки. Если будет возможность подсказать как добавить кнопок это будет супер Новый год! Лучший подарок вы уже сделали, сделав данное видео, оно самое ценное из всего ютуба, так как джойстик который понадобился на STM32 заработал мгновенно сразу после прошивки, и проще объяснения не существует в природе как его из 103й платы сделать. С добавлением кнопок с точностью до наоборот для меня, всё непонятно. Джойстиков у меня много, но не для игр, они нужны для набора нот. Один джойстик припаян через реле к плате голосовым управлением, расскажу вам если будет нужно от а до я информацию о управлении голосом, удалось найти настолько уникальную информацию, что её до сих пор можно выкопать лишь на единственном форуме в интернете. Остальные мягко говоря прячут информацию о автозагрузке голосовой платы. Мне удалось найти информацию о загрузке 7 команд при включении платы без ПК. Можно голосом управлять чем угодно 7 слов без ПК, слова хранятся в плате. Если будет нужно расскажу от а до я. Для начала даже вашей прошивки в качестве джойстика хватит как лучшего подарка на Новый год. Но всегда хочется большего. Было бы как в поле чудес супер призом добавление кнопок. И уже даже не мечтаю о сдвиговых регистрах добавить в эту же вашу прошивку. А потом ещё MIDI дескриптор. Это мои мечты. С Новым годом вас! Вы человек года в теме STM32 джойстиков для меня! А значит и в теме MIDI, так как именно ваше видео с самого начала вдохновило на переход на STM32 а в дальнейшем именно ваше видео дало ответ как формируется отправка данных на примере джойстика. Сразу это было сложным, а Atolic сразу показался был вовсе непроходимым, и долгое время изучал мигание лампочками на STM32. Есть практически 4-5 блогеров в ютубе понимающих в STM32 как вы и готовых давать подобные как на данном видео уроки, когда прошил и всё заработало чётко и фантастически точно. Не хочется тратить вам время, но буду невероятно рад если вы как в поле чудес как суперприз дополните, а я вам помогу сбором информации о том же MIDI например, хоть я и туп как пробковое дерево во многих вопросах в STM32 но упорством мне удалось подключить миди устройство и ниже я написал пример дескриптора который заработал сразу. Также я нашёл для дампа дескрипторов любого устройства программу. Вот здесь ссылка на ее скачивание www.thesycon.de/eng/usb_descriptordumper.shtml программа любое USB устройство подключенное в ПК умеет вывести дескриптор устройства. Данная программа очень помогла создать собственное MIDI устройство на 103 STM32, возможно вам пригодится, чуть нашёл такую программу. Она очень поможет тем, кто дескриптор проверять станет на совместимость с уникальными устройствами.
Привіт. Радий тебе тут бачити
может сообщение не дошло, помогите пожалуйста 1 кнопочку добавить, что бы знать как
до 2:33 не нужно так понимаю лезть, 2:37 конвертируем двенадцатибитное значение с АЦП в восьмибитное это мне также не нужно, так как явно аналоговые оси здесь, а вот на 2:40 начинаются мои кнопки, там написано GPIOB в строчке, 109 строка кода это явно моя строка, где нужно мне сосредоточиться) и там пять слов. Это чему равна Btn, а равна она вот этому (uint8t это наше число от 0 до 255 )~это инверсия побитовая если был бит 0 станет бит 1 если 1 то 0, 0xFF это число 255 в шестнадцатеричной системе, & это побитовое и а -> это указатель прошу прощения "на член". Эх запутался совсем. Как эти иероглифы правильно должны читаться не знаю. Так и не понял как добавить тут ещё один порт. 2:56 если я хочу добавить осей ещё, но я не хочу осей, а хочу кнопку, а вот на 3:02 важно возможно, увеличить размер массива, _IO uint16_t ADC_var[5] здесь понятно что появилась пятая ось, но мне нужна кнопка, а не ось, в строке 63 меняем буфер DMA_Initstructure.DMA_Buffersize =5; осей было 4 стало 5, но оси опять мне не нужны. Идем дальше. Дескриптор живет в файле на 3:08 называющимся usb_desc.c, но дескриптор пока не нужен. А вот на 3:40 нашел)) USAGE_MINIMUM написано (Button 1) USAGE_MAXIMUM (Button 8) нужно быть внимательным что бы общее количество бит было кратно восьми, в строке 114 изменить размер дескриптора, не знаю как изменить, 4:01 подправить функцию Joystick_send что бы она отправляла то количество байт, что описано в дескрипторе. Кнопки наверное не добавятся сами если всего лишь их в дескрипторе увеличить значение USAGE_MAXIMUM например написав (Button15) помогите пожалуйста! очень нужно!
В 82-й строчке нужно подать тактирование на соответствующий порт. Отредактировать InitGPIO, прописать в него соответствующие выводы.
А по поводу 2:56, это уже никакого отношения к кнопкам не имеет... Там АЦП, ПДП и т.д.
Чтоб у USB устройства появились кнопки достаточно изменить дескриптор, ну и слать соответствующее количество данных. В 109 строчке просто явно обрезаются все лишние биты. Если написать Btn = ~GPIOB->IDR; тоже скомпилируется и будет работать, компилятор не явно сделает всё то-же самое, но появится warning, потому,что Btn - 8-битная, а IDR 32-х битный. Переменная инвертируется потому, что кнопки по схеме замыкаются на землю, при отпущенной кнопке в IDR единицы, при нажатой ноль. IDR расшифровывается как Input Data Register, из него всегда можно считать состояние вывода (кроме случая когда он сконфигурирован как аналоговый вход).
@@AxGxP Большое спасибо! Многое прояснил, на скриншоте здесь отметил как бы я менял всевозможные порты, prnt.sc/wbzykq , в данном блоке понял как можно проинициализировать любой порт A B или С, в завизимости от GPIO_MODE_AIN или GPIO_Mode_IPU или GPIO_Mode_Out_PP порты и инициализируются в оси, кнопки, или светодиоды, так например порт светодиода можно сделать кнопкой указав там лишь GPIO_Mode_IPU, на скриншоте усвоил отлично сколько штук кнопок туда влезает, или светодиодов или осей, прошивка даже скомпилировала вместо GPIO_PIN_7 GPIO_PIN15 в инициализации порта B заменил, но пин 15 не заработал, не пойму почему, количество кнопок не менял нигде, а только пин15 вместо пин7 заменил. Там возможно срезает что то ещё
@@AxGxP не нашёл на плате порт B2 там даже не написано нигде, а вы 8 кнопок когда подключали куда B2 подключался?
@@masterkit9517 PB2 это BOOT1... К среднему выводу идет, насколько помню через резистор, но для этих целей это не проблема, должно работать.
@@AxGxP Спасибо большое!
если вам не сложно можете объяснить как в игру отправляются значения с джойстика?
можно ли в игру отправить значение углов и тп из программы какой нибуть?
В игру отправляется посредством DirectInput, через стандартный драйвер USB-HID. Если хотите из одной программы (из под ОС компьютера) передавать команды другой (игре), то придется перехватывать сообщения DirectInput, а то и сам драйвер подменять. В некоторых играх специально защита против такого сделана, тогда может и проще применить реальное, физическое устройство.
@@AxGxP спасибо огромное суть я понял.
но защита то зачем ?
@@Georgi9803 Против ботов в MMO играх.
Доброго дня! А про Ваш "свисток" и пульт можно поподробнее? Я думаю всем присутствующим будет интересно. Я бы повторил..
Что именно? Квадрокоптер? Или машинку? Про машинку есть видео на канале, да и зимние полеты квадрокоптера есть, рекомендую тоже глянуть. Остануться вопросы, пишите.
не нашёл "JoyAxGxP.hex" в архиве. а при попытке скомпилировать проект выдаёт ошибку "Description Resource Path Location Type
fatal error: stm32f1xx_hal.h: No such file or directory stm32f1xx_hal_pcd_ex.c /hidtest/Drivers/STM32F1xx_HAL_Driver/Src line 42 C/C++ Problem"
при этом такой файл есть: если кликнуть по нему с контролом он открывается. Наверняка нужна какая-то настройка среды, но я теряюсь в догадках где именно. Подскажи, пожалуйста!
Вы не мой проект компилируете наверное... У меня HAL не используется, и соответственно ошибок вызывать не может. Всё, что используется - в архиве.
@@AxGxP Спасибо за ответ. Действительно я не разобрался с атолликом и он прихватывал файлы из открытых им ранее проектов. Проект скомпилировался. После заливки прошивки есть одна особенность: После подключения к usb компьютера устройство не определяется пока не нажмёшь металлическую кнопку reset. После этого определяется и начинает моргать светодиод.
Насколько понимаю, прошили ST-Link-ом и подключаете к USB, без отключения питания с платы. При этом микроконтроллер остается остановленным. Чтоб он запустился нужно выполнить сброс, это возможно сделать и аппаратно, при помощи ST-Link, в Keil была такая птичка. А в Atollic немного сложнее, нужно редактировать скрипт отладчика. Но у них есть видео "TrueSTUDIO Download and reset (no debug)", там всё показано.
@@AxGxP Да прошил st-linkом китайским, но подключал к компу без него на холодную. Поискав в st-link utility нашел переключатель BOR level но он у меня неактивный( серенький, обсереный) и не понятно как включить ресет по питанию
Эмм. Я по секрету скажу (через полтора года), но вот как раз обведенный на 00:27 МК (atmega16u2) можно запрограммировать на то, чтобы он выполнял роль USB-HID устройства с помощью библиотеки joystick. Не учитывая те платы Arduino, где ядром является как раз аналогичный чип (Леонардо/микро-про на atmega32u4), и где не требуется USB-ASP программатор для заливки прошивки в него. STM32, конечно, в тысячу раз кастомнее и быстрее, но на ардуинке чтобы создать геймпад мне не потребовался бы аналогичный видос.
И чтобы устройство стало по истине универсальным - надо придерживаться стандарта x-input, ибо d-input сейчас не во всех приложениях работает, а если и работает, то часто криво.
Какой огромный код, можно ли написать меньше, и какой это язык? C или ассемблер?
Конечно можно, это я по приколу столько написал, скучно просто было... Это Си, неужели его как-то с Асмом можно спутать, или они похожи?
@@AxGxP Когда я писал этот комментарий я ляпнул глупость не подумав, признаю. Но через некоторое весьма продолжительное время я узнал, что существуют ассемблеры с синтаксисом похожим на C.
@@ФилиппДруан Си и ассемблер принципиально отличаются. Ассемблер ориентирован на конкретный процессор. Си имеет свои стандарты и никак не зависит от процессора. В код на Си можно встраивать вставки на ассемблере, при этом программа станет жестко привязана к железу, на котором должна выполнятся. Про "" первый раз слышу, и даже фантазии не хватает такое представить. Если что-то подобное и существует, то это или явно далеко не ассемблер, или похоже на Си только тем, что программы латиницей пишутся))) Есть какое-то название, у этого чудо-ассемблера? Где он применяется?
@@AxGxP Вот где я видел ассемблер стилизованный под C:alemorf.ru/pi/4/index.html
Как я понял один человек пишет на нем игру для спектрума, "Последнее испытание" по мюзиклу.
Отличия этих языков мне известны. Спасибо
@@ФилиппДруан То, про что вы говорите, не имеет никакого отношения к ассемблеру, вообще!
Как всегда на высоте!)
Тема классная
надо развивать и улучшать
Осталось приделать 3д-очки, чтобы управлять обзором.
Без проблем можно сделать...
ЭКОстиль ))) Ништяк ))
Добрый день. Хотим собрать симулятор дельталета с обратной связью. Можете помочь ? Можем заплатить.
Добрый день. Да, возможно. Напишите мне на почту, в описании канала есть.
Все припаял куда надо, залил прошивку, но на оси не реагирует, в программке показывает, что они просто так дергаются
Скинь фотку, того, что спаял.
@@AxGxP Отправил
Руль классный )))
Скомпилил код в STM32CubeIDE.
В режиме отладки ждёт вот здесь
if (bDeviceState == CONFIGURED)
В чём может быть проблема?
Точка останова?
Там IDE настроить еще правильно надо, чтобы все сразу без костылей работало. В TrueStudio на main всегда точка останова ставиться после создания проекта.
мммм спасибо джоистик работает
Привет. Снимай видосы по ардуинке . Где живеш?
Нет ардуинки, сгорела! Чему был безгранично рад)) Нет смысла тратить время и нервы на arduino, с её глюками и тормозами. Переходите, или лучше сразу начинайте с STM32, это намного удобнее, эффективнее и надежнее. Дешевле и быстрее! Если будут желающие, могу сделать видео, о том как создать первый проект в Atollic TrueStudio, как, с чего начать.
Давай будет интересно и о программе и проекты
Умный дом на ней к примеру .!
@@АлексФермер-л5я Ок. Подумаю над этим, что и как... Умный дом для начинающих - сильно круто получится, но что-то интересное придумаю.
У кого не хватит мозгов к примеру. Как у меня ) продавай готовые проекты - прошитые!
Чувак на дворе 21 век а ты резисторы используешь, за место бесконтактных датчиков холла)))))))
Когда то купил программатор для stm32, чтобы прошить плату гироскутера, сейчас хочу сделать контроллер для жд симулятора на ардуино, и тут натыкаюсь на это видео, для жд симулятора мне нужно 5 основных осей джойстика.
Вот теперь уменя выбор купить ардуино leonardo c встроенной поддержкой usb hid или попытать удачу и купить stm32
Ну если смотреть например по цене, то STM-ок можно купить несколько за те-же деньги. Этот проект скомпилирован на сколь помню под 3 оси... Если нужно 5 - придется немного переделывать программу. А вообще для чего там 5 осей? Я поездом не управлял, но вроде как там все инструменты дискретные... Ну у паровозов конечно краны всякие есть.
@@AxGxPНа самом обычном современном поезде, три тормоза динамический(рекуперация) , ручной(стояночный) и тормоз состава(основной) .
Газ это уже 4я ось,
И реверс, если в обычном локомотиве, он имеет три положения то на паровоз реверс плавный Как-бы реверс и газ меняются местами. Управляешь во основном реверсом.
@FIL_KILLER что все эти тормоза можно плавно включать? Я думал, у крана машиниста есть несколько позиций и усилие торможения зависит от длительности включения крана. По тяге понятно, только фиксированные позиции, динамическое торможение на сколь понимаю так-же. Тут главное посмотреть, что поддерживает ПО на компьютере, как предусмотрено управление этим всем. Там же можно не только оси передавать, а и до 128 кнопок, если не ошибаюсь.
@@AxGxPНа тормозе да, несколько положений, на скорости контроллер скорости может иметь 8 позиций как на старых электричках, или 34 позиции как на электовозах.
Динамический тормоз аналогичен контроллеру скорости, по числу позиций, ручной тормоз плавный, а тормоз состава имеет около 6 позиций( если не ошибаюсь) .
Через оси проще управлять всем этим разнообразием.
Я думал привязать переменный резистор к положениями тормоза но это уже когда заморочусь..
Я вдохновился штукой "RailDriver" выпускается совместимой с популярными симуляторами, он стоит 24 тыс на Ebay.
Ох, эти советские резисторы... Там после непродолжительного использования такой дребезг должен начаться, что самолет должен волчом начать крутиться и дергаться в все стороны как эпилептик в припадке.
ну, хотя бы для приличья:) опубликовал бы прямо тут в описании или в комменте ещё и шестнадцатеричный дамп машинного кода прошивки в текстовом формате (а не только лишь в формате.rar)
О прям как от деда осталось... не хватает торчащей сбоку лампы... и пятиминутного прогрева
так это круче ардуино леонардо?
Значительно круче! А ещё и дешевле.
А есть тот же проект, только на библиотеках HAL ? Просто деревянный джойстик.. это что-то, зацепило..
пы.сы. Если тоже самое сделать на оптических дисковых энкодерах, то дискретность честь пострадала, но сигнал был бы стабильнее.. (если не учитывать цены на энкодеры, я не про те, которые в колесике мыши :D )
Честно сказать, деревяшку ради видео выстругал. Цель - показать как сделать, чтоб USB работало как надо. А в качестве источников данных может быть что угодно, хоть энкодеры, хоть гироскопы, хоть датчики приближения... Оптические энкодеры, особенно те, про которые идет речь весьма большие, в случае с миниатюрным джойстиком идеальным вариантом будет применение маленького неодимового магнита и аналогового датчика Холла.
@@AxGxP Вот точно, про магнитный источник данных я как-то совсем забыл.. спасибо.
Ну так а есть ли проект под HAL ? так-то я и с цмсис могу разобраться, прото привычнее по HAL-ом...
заранее спасибо
HAL не использую... В основном с F103 работаю, тут HAL - слишком громоздко, неоправданно, эти все вложенные функции, колбэки, "скрытые" операции...
@@AxGxP Ну так-то в принципе можно и своих шаблонных функций наделать.. типо: инит, сэтап, обработчики прерываний и дма.. да мало-ли, на что фантазии хватит )))
..Но имхо, для отладки _"побыстрому"_ и ХАЛа слихвой, А при релизе, можно и вовсе, прамое обращение к регистрам.. грубо говоря..
@@GypsyRewind Угораздило меня один раз с HAL связаться, тоже ради того, чтоб USB автоматом мне собрало, и там все было ОК. Но вот кто там UART придумывал, ход его мыслей я так и не понял, долго пытался понять как это все использовать и нафига там оно надо... Вроде в конце свой обработчик переписал и всё.
Всё тоже самое можно на arduino ide. Библиотек предостаточно.
Писать под STM32 из под ArduinoIDE? Глупость.
Если хочется сделать геймпад на ардуино - есть leonardo и joystick. Если хочешь нормально писать код для МК - пересаживайся на нормальные редакторы. Хотя вот PlatformIO очень даже ничего для Arduino. Некоторая прослойка между ArduinoIDE и нормальной IDE для МК. Старый медленный, но удобный wiring в сочетании с администрированием кода через хидеры и сорс файлы.
На Леонардо есть
Красавчик. Респект и уважуха
Не понял. Что это за дискриминация Ардуинщиков?! В общето в Ардуино Леонардо есть аппаратный USB
Поэтому и сказанно "в большинстве", а не во всех.
Да и у оригинальной uno r3 в роли uart преобразователя стоит атмега 8u2 я ее перепрошивал под миди интерфейс, библиотека LUFA. Потанцевав с бубном можно транслировать с основной 328 меги по uart в 8u2, а она будет слать даные как HID устройство. И еще не будем забывать про великую библиотеку V-USB. Да софтовый, да медленый, но рабочий вариант. Делали когда-то переходники для джойстиков от приставки в usb hid на atmega8 все отлично работало.
Да, были времена дорогих микроконтроллеров, извращались по разному, и без бубна редко что-то получалось. Но я считаю, что стоит оставить это в прошлом. Нет в этом ни смысла, ни логики на сегодня.
@@AxGxP Вот видишь, не один я считаю что на ардуино это вполне реально(причем почти на любой) И претензии здесь в том что автор в самом начале заявляет: ардуинщики вам такое не удастся(а потом уже бла бла бла отговорки) P.s. Мои прежние коменты удалены? Мне это льстит)))
@@pichbah Мне тоже непонятно, зачем я тут распинался, чтоб потом это все удаляли... Создавайте свою ветку, а не пишите в чужих, чтоб никто, ничего не удалял. Прошлый раз вы писали в ветке @/Volodya GAMES/ вот его и спросите, зачем он всё удалил. Сейчас опять в чужой ветке пишете, ничему жизнь не учит. Можно сделать что угодно, на чем угодно, хоть на стандартной логике, если есть много свободного времени, и есть желание танцевать с бубном. Про невозможность сделать это на AVR впринципе я не говорил. Упомянутая библиотека V-USB к ардуино отножения не имеет, хотя её можно туда портировать. А стандартными средствами Arduino UNO, Mini такой возможности нет! Любые реализации на любой ардуино будут менее функциональными и менее стабильными. Потребуется доработка схемы, паяльное оборудование и может еще и внешний программатор. Именно из-за существования Arduino Leonardo в видео сказано, "на большинстве"! Хотя даже в сравнении с Leonardo STM32F103C8T6 будет быстрее, функциональнее, дешевле. Остались вопросы, создайте свою ветку, в ней и пишите!
Btn = (uint8_t)~((GPIOB->IDR)&0xFF); // buttons здесь порт B так понимаю, а если так сделать Btn = (uint8_t)~((GPIOB->IDR, GPIOC->IDR)&0xFF); // buttons все прошилось но дальше не нажимаются кнопки больше ни B ни C порта, помогите добавить кнопку!!!, мне 8шт. мало. Сократил сообщения написав в одно, что бы не отнимать вам времени. Прошился джойстик сразу через cubeIDE, Atolic не понадобилось устанавливать, cubeIDE прошил и все 8 кнопок заработали, оси мне не нужны были. Мне очень нужно понять как добавить ещё кнопку например с порта C. Одну единственную кнопку для примера, по которому будет понятно как остальные добавить. Сообщений было много, сократил их, что бы не мешать вам лишними сообщениями, может ещё есть способ через сдвиговый регистр и мультиплексор добавить ещё больше кнопок, очень нужно. Не знаю как добавить кнопку, портом целиком или пином.
"Btn = (uint8_t)~((GPIOB->IDR, GPIOC->IDR)&0xFF);" - это бред какой-то... Что это должно было значить?
Чтоб добавить кнопок нужно соответственно изменить дескриптор USB, а так-же передавать соответствующее количество данных, должно быть кратно одному байту (8-бит). Переменная Btn должна быть соответствующего типа. Сколько кнопок нужно?
@@AxGxP 16 пусть для начала, дальше там много всё равно не влезет, понадобятся регистры или мультиплексоры, нужно аж 120шт. для цифрового аккордеона)
@@AxGxP сам не соображу, соображу только в какой файл залезть править, в данной прошивке не знаю даже в каком файле дескриптор искать. Дескриптор MIDI устройства делал, но зная где его делать. Кнопки умею только в cubeMX начальную конфигурацию задавать. Шансы самому там найти всё равны ближе к нулю. В ардуино был разобрался и сделал сдвиговые регистры, даже мультиплексор для кнопок, сделал был 120!!!! кнопок, но мощностей не хватило ардуино на 30% проекта, далее ушёл навсегда в STM32. И вот здесь многое понятно, но в STM32 нужен колоссальный опыт программирования, разобраться в буфере хотя бы. Даже не представляю на сколько его увеличить, на какое значение. При том, что возможно многим удалось бы самостоятельно по советам из видео добавить с лёгкостью кнопки дополнительно. В другом проекте делал MIDI дескриптор лишь, но удачно, устройство даже в музыкальных редакторах субклассом определялось. Скорее всего заменив полностью дескриптор в вашей прошивки сделать удалось бы MIDI устройство - вот этот дескриптор отлично работающий если не ошибся с файлом
usbd_audio.c
•
•
/* Configuration 1 */
0x09, /* bLength */
USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType */
0x65,// LOBYTE(USB_AUDIO_CONFIG_DESC_SIZ), /* wTotalLength 109 bytes*/
0x00,//HIBYTE(USB_AUDIO_CONFIG_DESC_SIZ),
0x02, /* bNumInterfaces */
0x01, /* bConfigurationValue */
0x00, /* iConfiguration */
0xC0, /* bmAttributes BUS Powred*/
0x32, /* bMaxPower = 100 mA*/
/* 09 byte*/
/* USB Speaker Standard interface descriptor */
AUDIO_INTERFACE_DESC_SIZE, /* bLength */
USB_DESC_TYPE_INTERFACE, /* bDescriptorType */
0x00, /* bInterfaceNumber */
0x00, /* bAlternateSetting */
0x00, /* bNumEndpoints */
USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
AUDIO_SUBCLASS_AUDIOCONTROL, /* bInterfaceSubClass */
0x00,//AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
0x00, /* iInterface */
/* 09 byte*/
/* USB Speaker Class-specific AC Interface Descriptor */
0x09,//AUDIO_INTERFACE_DESC_SIZE, /* bLength */
AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
AUDIO_CONTROL_HEADER, /* bDescriptorSubtype */
0x00, /* 1.00 */ /* bcdADC */
0x01,
0x09,//0x27, /* wTotalLength = 39*/
0x00,
0x01, /* bInCollection */
0x01, /* baInterfaceNr */
/* 09 byte*/
//----------------------------------------------------------------------------------
//MIDI STREAMING INTERFACE DESCRIPTOR
//----------------------------------------------------------------------------------
//Standart MS Interface Descriptor
//MIDI Adapter Standart Interface Desc
0x09, // bLength
USB_DESC_TYPE_INTERFACE, // bDescriptorType
0x01, // bInterfaceNumber
0x00, // bAlternateSetting
0x02, // bNumEndpoints
USB_DEVICE_CLASS_AUDIO, // bInterfaceClass
0x03, //Midistream // bInterfaceSubClass
0x00, // bInterfaceProtocol
0x00, // iInterface
// 09 byte
//---------------------------------------------------------------------------------
//Class Specific MS Interface Desc
//MIDI Adapter Class-Specific Interface Desc
0x07, // bLength
0x24, // bDescriptorType
0x01, // bDescriptorSubtype
0x00,
0x01, // bcdADC
0x41,
0x00, // wTotalLength = 0x41
//7 bytes
//---------------------------------------------------------------------------------
//Midi IN Jack Interface Desc
//MIDI Adapter MIDI IN JACK Desc (Embedded)
0x06, // bLength
0x24, // bDescriptorType
0x02, // bDescriptorSubtype
0x01, // bJackType
0x01, // bJack ID
0x00, // iJack
//6 bytes
//----------------------------------------------------------------------------------
//MIDI Adapter MIDI IN JACK Desc (External)
0x06, // bLength
0x24, // bDescriptorType
0x02, // bDescriptorSubtype
0x02, // bJackType
0x02, // bJack ID
0x00, // iJack
//6 bytes
//----------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
//Midi OUT Jack Interface Desc
//MIDI Adapter MIDI OUT JACK Desc (Embedded)
0x09, // bLength
0x24, // bDescriptorType
0x03, // bDescriptorSubtype
0x01, // bJackType
0x03, // bJack ID
0x01, // bNrInputPins
0x02, // baSource ID
0x01, // baSource PIN
0x00, // iJack
//9 bytes
//----------------------------------------------------------------------------------
//MIDI Adapter MIDI OUT JACK Desc (External)
0x09, // bLength
0x24, // bDescriptorType
0x03, // bDescriptorSubtype
0x02, // bJackType
0x04, // bJack ID
0x01, // bNrInputPins
0x01, // baSource ID
0x01, // baSource PIN
0x00, // iJack
//9 bytes
//BULK OUT ENDPOINT DESCRUPTOR
//----------------------------------------------------------------------------------
//Standart BULK OUT Endpoint Desc
0x09, // bLength
0x05, // bDescriptorType
0x01, // bEndpointNum
0x02, // bmAttributes
0x40,
0x00, // wMaxPacketSize
0x00, // bInterval
0x00, // bRefresh
0x00, // bSyncAddress
//9 bytes
//----------------------------------------------------------------------------------
//Class Specific MS BULK OUT Endpoint Desc
0x05, // bLength
0x25, // bDescriptorType
0x01, // bDescriptorSubtype
0x01, // bNumEmbMIDIJack
0x01, // baAssocJackID
//5bytes
//----------------------------------------------------------------------------------
//BULK IN ENDPOINT DESCRUPTOR
//----------------------------------------------------------------------------------
//Standart BULK IN Endpoint Desc
0x09, // bLength
0x05, // bDescriptorType
0x81, // bEndpointNum
0x02, // bmAttributes
0x40,
0x00, // wMaxPacketSize
0x00, // bInterval
0x00, // bRefresh
0x00, // bSyncAddress
//9 bytes
//----------------------------------------------------------------------------------
//Class Specific MS BULK IN Endpoint Desc
0x05, // bLength
0x25, // bDescriptorType
0x01, // bDescriptorSubtype
0x01, // bNumEmbMIDIJack
0x03, // baAssocJackID
//5 bytes
//----------------------------------------------------------------------------------
@@masterkit9517 DirectX не поддерживает больше чем 32 кнопки.
@@AxGxP Для джойстика чем больше тем лучше выйдет) сколько влезет в 103 плату, столько и отлично. Потом просто планирую MIDI дескриптор вписать туда, сдвиговые регистры цеплять, и там паковать в код джойстика отправляющий в ПК байт или 2 байта не понимаю сам, но понимаю что байт или два точно, а сконфигурировал уже отлично MIDI дескриптор, ПК никак не может дождаться любой байт посланный ему, вполне высока вероятность что ПК даже код кнопки джойстика воспримет как одну из существующих миди команд. Уверен к созданию MIDI подобрался как никогда близко и именно с вами. Отлично понимаю, что заменив дескриптор на миди ваша прошивка вполне может ловить понимаемые ПК байты данной прошивки уже как MIDI сообщения, их не сложно возможно выйдет вписать свои туда байты, например 'hello world', только это будет например HEX сообщение например такое '49' это сообщение уже будет понятно ПК. Оно как раз будет в HEX уже ловить, так как 103 плата это уже для ПК MIDI устройство с дескриптором который удалось было сделать. Пока хорошо было бы освоить добавление кнопок. С дальнейшим исследованием MIDI. Джойстик также нужен чем больше там кнопок, тем лучше. Можно вовсе без аналоговых входов. Так как версия с аналогами в данном видео вполне достаточна.
ардуинщики не обломаются, а возьмут ардуино на базе ATmega32U4
Если деньги лишние, пусть берут!
Крутой канал у вас, Александр. По сравнению с вашим у меня впечатление, что мой канал совсем слаб. Но у вас есть одно существенное отличие от дедушек, что имеют в разы больше подписчиков, но менее грамотны, чем вы. Собственно из такого канала я и пришёл, где вы поправляли в пояснениях дедушку по ремонту блока питания. Деды объясняют всё по простецки, а ваши видео рассчитаны на нормальный уровень знаний. Для меня ваш канал интересен, но большинству, кто не может даже в мультиметре разобраться- это тёмный лес. Лайк за джой и подписка.
А что за игра?
Там несколько игр... На какой минуте интересует?
годно! вы я так вижу в программном коде разбираетесь, а сложно ли написать код работающей скажем на ардуино нано с подключенным к нему сервомашинкой и рфид модулем rdm6300, получился бы неплохой электромеханический замок, открываемый при помощи бесконтактной карты, удобная система и минимум проводов, неплохая тема для видео на канале, за помощь символическая сумма, что скажете?)
С RDM6300 не работал, вижу там стандартный UART интерфейс, думаю сложностей не должно возникнуть. Сервомашинка - все просто. К сожалению нет сейчас в наличии ни ардуино (хотя атмеги есть), ни RDM6300, ни карточек. Так что могу помочь только теоретически.
у меня тоже пока не всё укомплектовано, жду рфид модуль с китая, исторически сложилось что я наделён даром махать паяльником, но голова не работает по написанию кода. Всё верно модуль работает по uart интерфейсу, у меня сейчас установлен замок на съёмной квартире(посмотрите перейдя на мой канал) всё бы ничего но он работает на частоте 13,66 Мгц, и на модуле RC522 который перестаёт работать после суток простоя, программный код написать мне помогли, но и тот как оказалось не идеален и иной раз я не могу попасть в комнату, а с сенсорной кнопика работает всегда. Именно поэтому я хотел бы немного переделать упростить и допилить систему до идеала)
@@trydontcry9564 Интересно, почему перестает работать... Не думаю, что проблема в модуле, скорее всего как всегда глюк в ардуино (кривой код, кривые либы и т.д.). Из-за таких вот глюков я и не люблю ардуино и вообще чужими библиотеками не пользуюсь почти.
а исходника то у меня и нет, к тому же модуль другой, в этом и сложность что нужно сделать с нуля
@@trydontcry9564 Ну если что, обращайся. Чем смогу - помогу.
Я заметил только 3 оси , ещё 3 потенцеометра где 4 ось??
В прошивке...
@@AxGxP Здравствуйте,а какой номинал потенциометров
@@ps1ofthe1ght73 10k
@@smert_okupantam спасибо,но мне не хватило 10, я поставил 20))
@@ps1ofthe1ght73 а это не особо-то и важно. можно и 300 Ом, только опасно.
Супер!!! Очень классно! Лайк однозначно. А если б еще и рычаг(джойстик) и педали руля-полетал бы на таком! жаль что в программировании дальше бейсика не шарю
Мне было бы интересно сделать 2 джостика для игр
Можно и два, и больше. Если подключишь несколько, в системе все они будут видны как отдельные устройства.
Дуже креативно👍
Я немного чайничек, уж извините и не шарю в этом особо. Попытался погуглить, но не вышло:
- Нельзя ли дать полную инструкцию (если такова не слишком большая), какие строки надо в дескрипторе изменить для уменьшения осей с 4-х до 3-х? У меня РУД'ы как таковые имеются, но вот доп. ось мешает (как минимум на этапе колхозного теста, ибо я пока не смог решить проблему возвратного механизма для оси тангажа, но не суть). Хотя, можно закрылочки или спойлера на неё поставить, но лучше уж убрать) Буду благодарен, если кто поможет.
Там на видео рассказано, как добавить. Чтоб убрать, нужно сделать то-же самое, только наоборот) Посмотрите внимательно...
Вроде всё сделал, что упомяналось в видео, а всё-равно 4-ую ось видит 🤔
Ладно, не беда, всё-равно один резистор лишний есть) Спасибо за видос, кстати о птичках. Хоть один проект доведу до функционала и можно будет полетать)
Да ладно и на ардуине прекрасно работает, проекты Mjoy тому подтверждение.. даже с обратной связью есть.
Да, хороший проект, даже отличный на свое время! Только вот хочу обратить внимание, что появился он еще задолго до ардуино, а написан был на ассемблере... Так что при чем здесь ардуина не совсем понятно.
На нем кролик летать будет ? 😅
почему за 3 (!) года так мало просмотров????? (((((
Скорее всего, потому, что STM32 а не Arduino))) А вообще у меня на канале как-то в общем не много смотрят. Формат, подача не многим заходит.
а я думал что только мне пришли такие ГОВЕННЫЕ модули джойстика :(((
Неа, все они такие, даже в заводских геймпадах мало чем отличаются. Если нужен нормальный, с линейной характеристикой то рекомендую взять от RC пульта. Я на Hobyking брал когда-то.
У меня появилось желание собрать такое устройство - на датчиках холла, добавить туда осей и кнопок (педали, РУС, РУД). В это же время уровень моей технической подкованности - обезьянка с тарелочками весло звенит в моей пустой голове. Мне предстоит скурить много мануалов...
На PS4 подойдет? Ждем как сделать шлем для виртуальной реальности на ардуино)))
Должно пойти. Шлем на ардуино тупить будет)) Так-что только STM32!
Привет от Alpha Mods
Саня, а смисл змінювати розрядність з 12 біт на 8? Більша розрядність - більша точнсть позиціонування. Особливо, якщо використовувати не прості потенціомери, а магнітні резистори в якості осьових датчиків. Тема мені близька: хочу зробити педалі для управління ЛА. Повернуся в Україну - звернуся до тебе за консультацією, механіку зррблю сам, маю креслення педального вузла з Мі-8.
Змінити дескриптор і можна передавати 12 біт. Тоді програма виглядатиме трохи складніше, не хотів лишньго сюди писати, щоб людей меньше плутати. Магнітних резисторів не бачив напевно ніколи... Яке маркування? Можна оптичні енкодери використати, дуже висока точність буде. Також тензодатчики, якщо треба силу натискання десь виміряти.
@@AxGxP Магрези використовуються, наприклад, у Saitek Flight Control System. Зараз під руками немає, тому маркування не підкажу :( Проте, є маса фоток в Мережі де цей джой поліпшують, то можна знайти маркування. Сенс такий: корпус магреза жорстко закріплений в клрпусі, а коло нього на осі приклеєний магніт, який обертається з оссю, тим самим змінюючи опір резистора. Все дуже плавно і дуже точно. Аби досягти такої точності через оптопару - треба або великі розміри коліщатка, або підвищуючий редуктор, що не завжди вдається втулити в обмеженому об'ємі.
@@AxGxP Тензодатчики використовуються в дорогущому Thrustmaster Hotas Warthog PC
: пара пульок в одну консоль - і 100% гарантія, що поки дотягнеш до полоси - кисть руки собі вивернеш :)
@@FSG_Fritz Дуже цікава ідея. Датчик Холла аналоговий і магніт. Мінімум простору, ніякого тертя, можно сказати вічний! Треба спробувати, є у мене такі.
Ардуинщики обломайтесь? А как же ММджой2?
чётко
Вібрації ще не вистачає, а так супер
Можна зробити дуже реалістичний зворотній зв'язок, на базі асинхронних двигунів. За допомогою зміни струму можна змінювати силу з якою пручається кермо. А змінюючи частоту можна змінювати швидкість з якою воно буде обертатися. Але це вже треба у натуральну величину робить.
@@AxGxP частота в данном случае практически не играет рояли) чпу - не розетка) асинхронник работает с проскальзыванием, один фиг всем этим управляет МК - векторное, скалярное... для руля, например, нужно брать серво около 1 КВт, малооборотистый но с большим моментом 10 Нм+. и ШИМом в 50+КГц управлять тремя фазами... надо покурить инфы побольше, сам хочу руль Direct Drive сделать с мотором 130ST-M10010 - вместе с драйвером стоит $330 - на таких делают любители, но с дорогущим драйвером мотора и платами в комп - далеко за $1000+ выходит, не камильфо. нужно присосаться к чужим дровам и пилить свою схему управления. по сути управлять нужно только моментом и скоростью, точного позиционирования ведь не надо...
а "присосаться к чужим дровам" - cxem.net/mc/mc207.php тут чел заюзал дрова от руля логитеч g25, но там дебильная фича - в центральной позиции руля от дров идет команда отрубать моторы, руль становится вялым как мой рукав) хочу помучить дровишки трастмастер t300 или фанатеки какие.
удачи
@@shlemkin Про частоту вращения фаз я говорил... Управлять моментом и скоростью, изменяя напряжение и частоту. 1 КВт и руки поотрывать может, 200Вт с головой, как по мне. ШИМ 18кГц вполне достаточно, зачем аж 50? Да и не нужен там такой хитрый драйвер, все самому можно собрать, на транзисторах под управлением того-же STM32F103C8, у него есть комплиментарные выходы под 3 фазы, с dead-time и всеми плюшками.
@@AxGxP да да да, перехожу на стм в том числе из за фичи с дед-таймами (еще поглядим, как работает весь этот хлам)). не для ардуинки такое. и юсб есть. драйвер, конечно, нужен не настолько сложный, как для сервы чпу... а может и действительно совсем простой, ибо момент создается из расчета оборотов в том числе, но у нас обороты либо 0 либо ну совсем небольшие, до 300-500 об/мин (если совсем как больной крутишь со всей ненавистью))), а при такой скорости во все формулы наверное можно совать RPM 0 для вычисления частоты/напряжения/тока для получения нужного момента... наверное таки частоту и силу тока регулировать будет достаточно (сам себя обнадежил))) только вот какое дело - как ты "подашь" на руль, например, 5Nm на 3 сек? как быть с пусковыми токами и моментом на старте? что в эти моменты будет происходить с моментом на валу? нужно ли изъёживаться, чтоб момент был ровным со старта? представляешь брусчатку или неровности, когда руль влево/вправо как бешеный сопротивляется/дергает, и очень быстро - все это надо точно передать... нужно учитывать момент инерции ротора?
легко себя убедить, что это может быть легко, ровно также потом и убедить себя, что сложно... надо делать и смотреть...
а 1 КВт серву надо. там и ротор облегчен, и момент 10Нм норм. в не профи рулях до 8Нм. если 200Вт то только через редуктор, а я говорю о DirectDrive - руль сидит на валу мотора. редукторы/шестерни/ремни - все это источники неточностей, шума и вибрации...
ну и напоследок посчитай - 10Nm ~ 1кг/м при диаметре руля 30 см получаем рычаг 15 см 100/15=6,6666 - на ободе руля максимум усилия будет 6 кг (12 в пиковом режиме) - руки не повырывает)) пристегиваться крепче надо))
@@shlemkin " как быть с пусковыми токами и моментом на старте" не вижу никаких проблем, тут заморочек с пусковым током не будет, скольжение незначительное, на таких оборотах... Есть у меня моторчик, только вот руля нет, можно было бы попробовать.