Еще одна попытка управления джойстиком, или USB -> PPM конвертор с преферансом и гейшами.

schs
SerjikLSV:

Давно была идея подключить геймпад, прямо с потенциометров к ардуине на 328 меги и получать на выходе PPM для TX модуля.

Делал подобное с нунчака. Но об этом не в этой теме.

SerjikLSV
schs:

Делал подобное с нунчака. Но об этом не в этой теме.

а где можно про это почитать? Правда я пока программирование ардуины не освоил, но изучаю потихоньку

5 months later
hax0r

Всем привет.
Проект еще жив и развивается или можно дальше идти?

Tahorg
hax0r:

Всем привет.
Проект еще жив и развивается или можно дальше идти?

Где-то там жив. В смысле я себе делаю, что мне интересно. Ну и по запросам отдельных пользователей с РЦГрупс.

hax0r
Tahorg:

Где-то там жив. В смысле я себе делаю, что мне интересно. Ну и по запросам отдельных пользователей с РЦГрупс.

На гитхабе актуальная версия проекта?

Tahorg

В открытом репозитарии - стабильная.

1 month later
kak-dela007

Давно собирался, и вот наконец заказал STM32F429I-DISCO. Буду пробовать подключиться к x52 😃

Tahorg

Еще FTDI нужен, чтоб прошивки заливать.

1 month later
kak-dela007

Пробую прошить через FTDI - пока не получается. При нажатии кнопки Connect выдает ошибку “The operation has timed out”.
Пробовал двумя заведомо рабочими прошивальщиками. Драва на компьютере стоят, совсем недавно прошивал другую плату. В чем может быть дело?
Подключил все как здесь
Перемычки - на месте, пробовал подключиться с ними и без них.
Без них на дисплее платы появляются виджеты (уже что-то прошито в ней).
Пробовал менять TX\RX местами.

kak-dela007

Все получилось) Но только когда снял перемычки на подключенной плате. Перехожу к настройкам.

kak-dela007

Что-то не могу разобраться с bin файлом при создании проекта. Когда заходишь в Sketch -> Settings, и указываешь путь в свободную папку, где должен быть проект, кнопку ОК не срабатывает, видимо нужен уже готовый bin файл. А где его взять?

  • и опять разобрался, надо было делать это без нажатия Connect
    Но bin файл в папке так и не появился. Есть только xml
Grumman351

Здравствуйте Сергей. Делаю свой проект на STM32F407-discovery. Поднял USB-HOST, поженил джойстик Logitech с платой, сделал PPM генератор. При подключении FR SKY модуля спалил ногу микроконтроллера по которой гнал PPM сигнал. С удивлением обнаружил на модуле, на входе PPM напряжение 3,3 вольта. У вас на схеме нога микроконтроллера на прямую идёт на PPM вход на модуле.
Подскажите пожалуйста - вы в программе какую то подтяжке на ноге делали ? Должно ли быть напряжение на PPM входе в/ч модуля ? Спасибо.

Tahorg
Grumman351:

Здравствуйте Сергей. Делаю свой проект на STM32F407-discovery. Поднял USB-HOST, поженил джойстик Logitech с платой, сделал PPM генератор. При подключении FR SKY модуля спалил ногу микроконтроллера по которой гнал PPM сигнал. С удивлением обнаружил на модуле, на входе PPM напряжение 3,3 вольта. У вас на схеме нога микроконтроллера на прямую идёт на PPM вход на модуле.
Подскажите пожалуйста - вы в программе какую то подтяжке на ноге делали ? Должно ли быть напряжение на PPM входе в/ч модуля ? Спасибо.

В STMCubeMX показываеются ноги толератные к 3.3 и к 5 входным вольтам. Я пробовал к FrSky модулю, Taranis входу и к EzUHF RLS. Проблем не было.

Но вообще для PPM выхода

GPIO_InitStruct.Pull = GPIO_PULLUP;

github.com/Iezious/rcjoy/tree/master/RCJoy - тут лежит старая версия под 407, правда не под куб а CMSIS/

kak-dela007:

Что-то не могу разобраться с bin файлом при создании проекта. Когда заходишь в Sketch -> Settings, и указываешь путь в свободную папку, где должен быть проект, кнопку ОК не срабатывает, видимо нужен уже готовый bin файл. А где его взять?

  • и опять разобрался, надо было делать это без нажатия Connect
    Но bin файл в папке так и не появился. Есть только xml

Второй бин появится после компиляции файла настроек, если он пройдет проверку. Ео заливать лучше уже самой программой.

Grumman351
Tahorg:

В STMCubeMX показываеются ноги толератные к 3.3 и к 5 входным вольтам. Я пробовал к FrSky модулю, Taranis входу и к EzUHF RLS. Проблем не было.

Но вообще для PPM выхода

GPIO_InitStruct.Pull = GPIO_PULLUP;

github.com/Iezious/rcjoy/tree/master/RCJoy - тут лежит старая версия под 407, правда не под куб а CMSIS/

Второй бин появится после компиляции файла настроек, если он пройдет проверку. Ео заливать лучше уже самой программой.

Здравствуйте, спасибо за ответ. Поменял ногу на на не подключённую к светодиоду на плате дискавери - и всё заработало. Видимо по токоотдаче нога не выдержала.

kak-dela007

Обо всей истории по порядку:
Первый раз прошил, настроил триммеров, кнопок… Все классно, но один триммер почему-то в одну сторону давал 3х кратное значение, а в другую- все нормально. Позже Live data перестала работать (в блоке джойстика значения перестали бегать, и соответственно - в микшерах и триммерах). На газ поставил инвертор, он что-то тоже вырубился потом. Может все дело в том, что не выравнял значения с теми что во флеши уже были… пока не понятно. Обнаружил что моя версия ПО называется “RCJoy.P429.v.0.9.3.zip” - на конце цифра 3. А сейчас с Гитхаба качается то же, только на конце 2. Может я как-то раз поторопился и скачал тестовую версию?
Прошил сейчас свежескаченной, с двойкой на конце.
На этапе настройки джойстика выдает вот такую штуку:

Чего это он хочет?

Tahorg

версии не совместимые, программа и прошивка должны быть из одного пакета.

Говорит, что проблема с распознаванием джойстика - суммарное количество бит должно делиться на 8.

Вообще на гитхабе есть работающие файлы джойстиков, но пока не выложен код, который их поключает в программе. Можно только руками править xml файл.

И еще - после всех перемен схемы, после заливки, всегда надо проверять значения переменных. Я пока просто не придумал, как это сделать умно, поэтому все тупо,п поэтому могут не так работать тримеры, инверторы, мапперы и прочее. Всегда проверять, что записано в переменных. Сам иногда забываю и удивляюсь, почему тот или иной канал сдох 8-/.

Кроме того - все можно посмотреть в отладочной секции прямо на экране платы - ВМЕСТЕ с переменными. Открываем меню платы синей кнопкой, идем в дебаг, выбираем блок и видим все текущие вход, выход и коэфициенты (что кстати важно, в программе мы видим коэфициенты ДЕФОЛТНЫЕ, а на плате ТЕКУЩИЕ). Кстати, их прямо по месту можно править, если они неверные.

Grumman351

Сергей здравствуйте, а можете какое то видео полёта с джойстиком выложить. Или как ваша система на земле работает. Как рули на джойстик реагируют. Спасибо.

Tahorg
Grumman351:

Сергей здравствуйте, а можете какое то видео полёта с джойстиком выложить. Или как ваша система на земле работает. Как рули на джойстик реагируют. Спасибо.

есть такое :

Правда тут старая плата и джойстик не фонтан. Полетных нет - все никак не дособеру коптер с камерой.

kak-dela007

Вообще все это мелочи по сравнению с проделанной работой!) Для пользователя сделано все очень удобно, и возможности огромны. Приятно смотреть, когда на экране работают все кнопки и оси твоего джойстика x52, зная что можешь подключить их к любому каналу PPM.

Tahorg:

версии не совместимые, программа и прошивка должны быть из одного пакета.

Странно, у меня с прошивкой v.0.9.3 - все капризничало, не хотела работать Live data, и GUI вылетала при каждой перезагрузке платы.
Когда прошил v.0.9.2 - все заработало чудесно, но только с GUI от от v.0.9.3, а в GUI от v.0.9.2 выдает вот эту самую ошибку с битами.
Чем эти версии вообще отличаются? Хотя, сам я вряд ли в этом разберусь, как и в правке xml файла.

Еще возможно баг обнаружил, а может в настройках что-то не так:

Когда делаю Increase в триммере по Aelerons, то значение на выходе увеличивается почему-то не на указанное, а на произвольное - от 5-ти до 10-ти кратного примерно. При этом, все другие триммеры работают нормально. В моем конфиге триммеры управляются с хатки, через блок Hat-Battons, плюс сделал ее отключаемой, поставил логические кнопки, которые включаются только при одном положении колеса родных флай-мод x52, т.е. подключил их к каналу “Buttons 1 28”. Причем, хатка выдает правильные значения. Пробовал и без хатки - на другие кнопки триммеры выводить - результат тот же. Т.е. похоже не в джойстике дело. Да, наверно это важно, это не сразу после первой загрузки конфигурации случилось, а только после последующих, когда стал обновлять уже.

Tahorg

Вроде все правильно.

Тут есть нюанс, который слабо прояснен - про значения.

Есть значения оси с джойстика, они могут быть любые. Например у Х52 рукоятка 10 бит и будет 0…1024, а газ 8 бит и будет 0…255.

Далее оси джойстика всегда конвертятся в значения типа “ось”. Ось всегда 0…1000, вне зависимости от размерности входящих осей - все ремапится на пространство 0…1000. Все инверторы, триммеры, мапперы и прочая математика делается над значением типа “ось” и всегда остается в диапазоне 0…1000.

Далее, в выходном блоке ППМ ось конвертится в ППМ сингал. По стандарту ППМ - это 1000-2000, но он настраивается в меню модели, можно подправить (например мультик хотел оси 920…2120 с центром 1520).

Поэтому в блоке джойстика - реальные значения, считанные с джойстика. В блоках 0…1000. В ППМ - выходной ППМ сигнал, в зависимости от настроек модели.