Привет, друзья.
Сто лет тут не был. Разжился 3D принтером и опытом работы в Solid Works. Нашел опилки TQ. Дай думаю поковыряю. Все красиво(ну мне нравится) получается. Потом фотки выложу, но есть один нюанс. Собрал один РУД и он управляется ШД NEMA 17 по моему замыслу. Почему то я думал что легко его подружу с MоbiFlight и через ардуинку подключу его к драйверу A4988. Но Mobi поддерживают только драйвера под биполярки типа ULN2003.
Я весь инет перерыл, что-то дельного не нашел. Подскажите кто-нибудь простой способ вывести в ардуину через USB данные хоть с F3IOCP, SIOC. Там дальше в ардуине я код уже напишу.
Ну или какое другое решение под шаговики NEMA 17…
Edited by vit-jay
Можно таки и с мобифлайта… Способ авантюрный, но вполне себе может оказаться плодотворным, нужно подсмотреть протокол взаимодействия мобифлайта с прошивкой. Смею предположить, что в контроллер летит численное выражение параметра (или команды типа стой/шаг_вперёд/шаг_назад в более запущенном случае), а многофазку управления ключами вырабатывает прошивка. Зная протокол, можно будет создать скетч для регулярной ардуины для работы с нормализованным драйвером шагового двигателя.
Более фундаментально, но вовсе не так уж и трудозатратно, это глянуть в сторону интерпроцесса с FSUIPC при помощи ModuleUser.lib (ModuleUser64.lib, когда-то это называлось FSUIPC_User.lib, но суть не меняется). Получится свой маленький мобифлайт. Пишется демон, или утилита командной строки, настройка взаимодействия занимает десяток строк, потом ваш процесс по доставанию данных через оффсеты и отправка по USB (CDC Virtual Comport) в ардуину.
Edited by xflyingcat
О, привет Красноярску)
Да кстати вот мужик неплохую штуку предложил с примером: https://phpjj.wordpress.com/arduino-sketch-for-sioc-server/
У него прога может коннектится к SIOC и отдавать данные в COM порт. Только во первых я не до конца понял всю цепочку(но это можно на вечер пятницы списать). Второе я перерыл эксельку от PMDG где INPUTS и OUTPUTS расписаны и там ничего нет что я ожидал увидеть. Я то думал что в OUTPUTS будет что-то типа значений *текущее положение РУД», «То к чему стремится A/T» и A/T ARM Ну последнее в Outputs есть.
Ну и дальше в ардуине не сложно сделать что-то типа: включить мотор, доехать до «то к чему стремимся» = *текущее положение РУД* и выключить мотор
Edited by vit-jay
Вот в том то и дело что не нашел я оффсеты)))) Или как там они… IOCP переменные))))
Edited by vit-jay
Нашёл пример на opencocpits с trottle quadrant и заюзал прогу дедушки arduino to sioc, ссылку выше давал. Что получилось на видео ниже, но была глубокая ночь, надо ещё скрипт доработать. Дёргано и значения потенциометра пляшут. Плюс скрипт как- то странно разницу между потенциометром и значением в симуляторе считает. У РУДов скорость перемещения не меняется из-за того что разница коряво считается
https://youtu.be/UKxwvYL41gU
Edited by vit-jay
Без микрошага у немы-17 всего 50 шагов на сектор перемещения рычага (если это 90 градусов)
Если микрошаг таки включён, выключать в буквальном смысле мотор/драйвер нельзя . Чтобы ротор не отскочил к ближайшему физическому полюсу, нужно оставлять под «током» после очередного шага.
Да, но слушай скрипт-пример который выложен на Opencocpits ссылка очень крутой. Он учитывает когда включен автопилот и считает разницу. На видео которые я выкладывал раньше «дергатня» из-за того что я не передал значение автопилота из PMDG в скрипт. Сейчас «ездит» хорошо. Единственное надо запрограммировать чтобы он отключал питание с движков когда «доезжает» до места когда разница между показаниями потенциометра равна 0 или когда автотяга выключена.
А вообще я такой довольный)))) И блин без Стаса, Жени и Сереги этого не было бы)))
Там в ардуине количество шагов указывается. Библиотека Stepper…
Теперь у меня другой головняк. Добрался до SpeedBrake на посадке… Нигде не нашел offsetов обжатия стоек и т.д. чтобы как-то придумать логику когда он срабатывает автоматически при посадке. Единственное что смог сообразить — это выпускать его при нажатии реверса… Потом еще проверочных параметров можно добавить. Но с точки зрения полета(процедур посадки) — это не правильно конечно. Сначала SpeedBrake срабатывает, а потом уже тянешь реверс.
В общем если у кого есть идеи как оживить speedBrake через SIOC кроме привязки к реверсу и значению(SPD BRAKE ARM) — буду благодарен.