vit-jay 7 Posted September 12, 2020 (edited) Привет, друзья. Сто лет тут не был. Разжился 3D принтером и опытом работы в Solid Works. Нашел опилки TQ. Дай думаю поковыряю. Все красиво(ну мне нравится) получается. Потом фотки выложу, но есть один нюанс. Собрал один РУД и он управляется ШД NEMA 17 по моему замыслу. Почему то я думал что легко его подружу с MоbiFlight и через ардуинку подключу его к драйверу A4988. Но Mobi поддерживают только драйвера под биполярки типа ULN2003. Я весь инет перерыл, что-то дельного не нашел. Подскажите кто-нибудь простой способ вывести в ардуину через USB данные хоть с F3IOCP, SIOC. Там дальше в ардуине я код уже напишу. Ну или какое другое решение под шаговики NEMA 17... Edited September 12, 2020 by vit-jay 1 Quote Share this post Link to post Share on other sites
xflyingcat 102 Posted September 15, 2020 (edited) В 12.09.2020 в 21:47, vit-jay пишет: Подскажите кто-нибудь простой способ вывести в ардуину через USB данные хоть с F3IOCP, SIOC. Там дальше в ардуине я код уже напишу. Можно таки и с мобифлайта... Способ авантюрный, но вполне себе может оказаться плодотворным, нужно подсмотреть протокол взаимодействия мобифлайта с прошивкой. Смею предположить, что в контроллер летит численное выражение параметра (или команды типа стой/шаг_вперёд/шаг_назад в более запущенном случае), а многофазку управления ключами вырабатывает прошивка. Зная протокол, можно будет создать скетч для регулярной ардуины для работы с нормализованным драйвером шагового двигателя. Более фундаментально, но вовсе не так уж и трудозатратно, это глянуть в сторону интерпроцесса с FSUIPC при помощи ModuleUser.lib (ModuleUser64.lib, когда-то это называлось FSUIPC_User.lib, но суть не меняется). Получится свой маленький мобифлайт. Пишется демон, или утилита командной строки, настройка взаимодействия занимает десяток строк, потом ваш процесс по доставанию данных через оффсеты и отправка по USB (CDC Virtual Comport) в ардуину. Edited September 15, 2020 by xflyingcat Quote Share this post Link to post Share on other sites
vit-jay 7 Posted September 18, 2020 (edited) О, привет Красноярску) Да кстати вот мужик неплохую штуку предложил с примером: https://phpjj.wordpress.com/arduino-sketch-for-sioc-server/ У него прога может коннектится к SIOC и отдавать данные в COM порт. Только во первых я не до конца понял всю цепочку(но это можно на вечер пятницы списать). Второе я перерыл эксельку от PMDG где INPUTS и OUTPUTS расписаны и там ничего нет что я ожидал увидеть. Я то думал что в OUTPUTS будет что-то типа значений *текущее положение РУД", "То к чему стремится A/T" и A/T ARM Ну последнее в Outputs есть. Ну и дальше в ардуине не сложно сделать что-то типа: включить мотор, доехать до "то к чему стремимся" = *текущее положение РУД* и выключить мотор Edited September 18, 2020 by vit-jay Quote Share this post Link to post Share on other sites
vit-jay 7 Posted September 18, 2020 (edited) On 9/16/2020 at 1:22 AM, xflyingcat said: по доставанию данных через оффсеты Вот в том то и дело что не нашел я оффсеты)))) Или как там они... IOCP переменные)))) Edited September 18, 2020 by vit-jay Quote Share this post Link to post Share on other sites
vit-jay 7 Posted September 20, 2020 (edited) Нашёл пример на opencocpits с trottle quadrant и заюзал прогу дедушки arduino to sioc, ссылку выше давал. Что получилось на видео ниже, но была глубокая ночь, надо ещё скрипт доработать. Дёргано и значения потенциометра пляшут. Плюс скрипт как- то странно разницу между потенциометром и значением в симуляторе считает. У РУДов скорость перемещения не меняется из-за того что разница коряво считается https://youtu.be/UKxwvYL41gU Edited September 20, 2020 by vit-jay Quote Share this post Link to post Share on other sites
xflyingcat 102 Posted September 21, 2020 21 час назад, vit-jay пишет: Дёргано и значения потенциометра пляшут Без микрошага у немы-17 всего 50 шагов на сектор перемещения рычага (если это 90 градусов) В 18.09.2020 в 15:16, vit-jay пишет: Ну и дальше в ардуине не сложно сделать что-то типа: включить мотор, доехать до "то к чему стремимся" = *текущее положение РУД* и выключить мотор Если микрошаг таки включён, выключать в буквальном смысле мотор/драйвер нельзя . Чтобы ротор не отскочил к ближайшему физическому полюсу, нужно оставлять под "током" после очередного шага. 1 Quote Share this post Link to post Share on other sites
vit-jay 7 Posted September 21, 2020 Да, но слушай скрипт-пример который выложен на Opencocpits ссылка очень крутой. Он учитывает когда включен автопилот и считает разницу. На видео которые я выкладывал раньше "дергатня" из-за того что я не передал значение автопилота из PMDG в скрипт. Сейчас "ездит" хорошо. Единственное надо запрограммировать чтобы он отключал питание с движков когда "доезжает" до места когда разница между показаниями потенциометра равна 0 или когда автотяга выключена. А вообще я такой довольный)))) И блин без Стаса, Жени и Сереги этого не было бы))) Quote Share this post Link to post Share on other sites
vit-jay 7 Posted September 21, 2020 12 hours ago, xflyingcat said: Без микрошага у немы-17 всего 50 шагов на сектор перемещения рычага (если это 90 градусов) Там в ардуине количество шагов указывается. Библиотека Stepper... Quote Share this post Link to post Share on other sites
vit-jay 7 Posted October 11, 2020 Теперь у меня другой головняк. Добрался до SpeedBrake на посадке... Нигде не нашел offsetов обжатия стоек и т.д. чтобы как-то придумать логику когда он срабатывает автоматически при посадке. Единственное что смог сообразить - это выпускать его при нажатии реверса... Потом еще проверочных параметров можно добавить. Но с точки зрения полета(процедур посадки) - это не правильно конечно. Сначала SpeedBrake срабатывает, а потом уже тянешь реверс. В общем если у кого есть идеи как оживить speedBrake через SIOC кроме привязки к реверсу и значению(SPD BRAKE ARM) - буду благодарен. Quote Share this post Link to post Share on other sites