737 Throttle quadrant — «Железные» кокпиты

Привет, друзья. 

Сто лет тут не был. Разжился 3D принтером и опытом работы в Solid Works. Нашел опилки TQ. Дай думаю поковыряю. Все красиво(ну мне нравится) получается. Потом фотки выложу, но есть один нюанс. Собрал один РУД и он управляется ШД NEMA 17 по моему замыслу. Почему то я думал что легко его подружу с MоbiFlight и через ардуинку подключу его к драйверу A4988. Но Mobi поддерживают только драйвера под биполярки типа ULN2003. 

Я весь инет перерыл, что-то дельного не нашел. Подскажите кто-нибудь простой способ вывести в ардуину через USB данные хоть с F3IOCP, SIOC. Там дальше в ардуине я код уже напишу. 

Ну или какое другое решение под шаговики NEMA 17… 


Edited by vit-jay

Ответов: 8

В 12.09.2020 в 21:47, vit-jay пишет:

 Подскажите кто-нибудь простой способ вывести в ардуину через USB данные хоть с F3IOCP, SIOC. Там дальше в ардуине я код уже напишу.

Можно таки и с мобифлайта… Способ авантюрный, но вполне себе может оказаться плодотворным, нужно подсмотреть протокол взаимодействия мобифлайта с прошивкой. Смею предположить, что в контроллер летит численное выражение параметра (или команды типа стой/шаг_вперёд/шаг_назад в более запущенном случае), а многофазку управления ключами вырабатывает прошивка. Зная протокол, можно будет создать скетч для регулярной ардуины для работы с нормализованным драйвером шагового двигателя.

Более фундаментально,  но вовсе не так уж и трудозатратно, это глянуть в сторону интерпроцесса с 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

On 9/16/2020 at 1:22 AM, xflyingcat said:

по доставанию данных через оффсеты

Вот в том то и дело что не нашел я оффсеты)))) Или как там они… IOCP переменные))))


Edited by vit-jay

Нашёл пример на opencocpits с trottle quadrant и заюзал прогу дедушки arduino to sioc, ссылку выше давал. Что получилось на видео ниже, но была глубокая ночь, надо ещё скрипт доработать. Дёргано и значения потенциометра пляшут. Плюс скрипт как- то странно разницу между потенциометром и значением в симуляторе считает. У РУДов скорость перемещения не меняется из-за того что разница коряво считается
 

https://youtu.be/UKxwvYL41gU


Edited by vit-jay

21 час назад, vit-jay пишет:

 Дёргано и значения потенциометра пляшут

Без микрошага у немы-17 всего 50  шагов на сектор перемещения рычага (если это 90 градусов)

В 18.09.2020 в 15:16, vit-jay пишет:

Ну и дальше в ардуине не сложно сделать что-то типа: включить мотор, доехать до «то к чему стремимся» = *текущее положение РУД* и выключить мотор

Если микрошаг таки включён, выключать в буквальном смысле мотор/драйвер нельзя . Чтобы ротор не отскочил к ближайшему физическому полюсу, нужно оставлять под «током» после  очередного шага.

 

 

Да, но слушай скрипт-пример который выложен на Opencocpits ссылка очень крутой. Он учитывает когда включен автопилот и считает разницу. На видео которые я выкладывал раньше «дергатня» из-за того что я не передал значение автопилота из PMDG в скрипт. Сейчас «ездит» хорошо. Единственное надо запрограммировать чтобы он отключал питание с движков когда «доезжает» до места когда разница между показаниями потенциометра равна 0 или когда автотяга выключена. 

А вообще я такой довольный)))) И блин без Стаса, Жени и Сереги этого не было бы)))

12 hours ago, xflyingcat said:

Без микрошага у немы-17 всего 50  шагов на сектор перемещения рычага (если это 90 градусов)

 

Там в ардуине количество шагов указывается. Библиотека Stepper…

Теперь у меня другой головняк. Добрался до SpeedBrake на посадке… Нигде не нашел offsetов обжатия стоек и т.д. чтобы как-то придумать логику когда он срабатывает автоматически при посадке. Единственное что смог сообразить — это выпускать его при нажатии реверса… Потом еще проверочных параметров можно добавить. Но с точки зрения полета(процедур посадки) — это не правильно конечно. Сначала SpeedBrake срабатывает, а потом уже тянешь реверс. 

В общем если у кого есть идеи как оживить speedBrake через SIOC кроме привязки к реверсу и значению(SPD BRAKE ARM) — буду благодарен.