Самодельный передатчик (часть 2)

Aleksey_Gorelikov

Для трикоптера настраиваете? 😃 Вот тут rcopen.com/blogs/50021/9239 г-н Хакер выкладывал прожку- эмулятор ССПМ. Можно по ней коэф. подобрать. А вобще - там ж геометрия условно простая. Просто потом коэф. нормализовать надо, чтобы за 100 не результат не выходил (ну или за 120).

Aleksey_Gorelikov

Прикинул на бумажке. Чтобы получалось максимум - 100, надо все поделить к примеру на 2. А вобще - тут зависит от того, расходы по чему вас больше интересуют. Хотя, расход - весма относительное понятие. Ну да ладно, приступим:
Пусть, канал один - это ротор по ходу движения вашего трикоптера), а второй и третий - “боковые”. Тогда:
ch1 = 50% газ + 50% выстота.
ch2 = 50% газ - 25% высота + 25% крен
ch3 = 50% газ - 25% высота - 25% крен.
Нетрудно догадаться, что в сумме все весовые коэф.ты максимум дадут 100 %, и если расходы не выходят за 100% то и на выходе должно получиться не больше 100. Где-то так, наверное. Пробуйте. Ну если что плюсы с минусами поменять местами.

Единственное, у нас получился 50% расход по газу, 50% по высоте и 25" по крену. Ну можно поиграться для получения более равномерного управления. По логике - надо бы поставить +\-50% на крен, но тогда выскочите за пределы 100% расходов. Всетаки не хватает в кодере новомодной функции “виртуального кольца”. Имейте ввиду, что по рулю высоты отношения переднего ротора и пары боковых 1/2. Т.е. если захотите расходы по высоте уменьшить, а по крену увеличить, то будет примерно так:
ch1 = 50% газ + 40% выстота.
ch2 = 50% газ - 20% высота + 30% крен
ch3 = 50% газ - 20% высота - 30% крен.
Т.е. тут мы уменьшили чувствительность по высоте до 40 и увеличили по крену до 30, не изменяя при этом общих границ максимальных перемещений. Можно за счет уменьшения диаппазона газа добавить еще управляемости по крену:
ch1 = 40% газ + 40% выстота.
ch2 = 40% газ - 20% высота + 40% крен
ch3 = 40% газ - 20% высота - 40% крен.

Ну и так далее… 😃

Кстати, а где у трикоптера " перед" ??? Я коэф.-ты расставлял, имея ввиду, что перед - это ротор. А если ротор, это хвост - то с точностью до наоборот. 😃 Инвертировать руль высоты. Только не в меню ченалс!!! Это инвертирует весь канал (рулевую машинку), а нам надо влияние ручек - т.е. только коэфициенты в “микшеры” напротив органов управления “руль высоты”. Коэф.-ты указывают, какое влияние вносит стик (орган управления) в конструируемый нами канал. Сумма коэф-тов канала - - максимально допустимый его “расход”.

msv
Aleksey_Gorelikov:

Всетаки не хватает в кодере новомодной функции “виртуального кольца”.

Не в курсе новомодных функций, но напомню что есть Normalize. Это не то?

leprud

Алексей, снова большое спасибо! Теперь понял логику работы таких микшеров (а вроде документацию то читал и не раз…, и про normalize читал…)
Меня просто еще смущали фразы про настройку CCPM типа

Go into the swash menu and change the settings to Aileron +40, Elevator +40 and Pitch +100.

Действительно делаю для трикоптера, там 2 мотора (левый-правый) спереди и один сзади. Знаки коэффициентов уже “подобрал”, с этим проблем не возникло, как ни странно 😃

Чуть выше вы наверно опечатались в строках

Aleksey_Gorelikov:

ch1 = 50% газ + 40% выстота.

и

Aleksey_Gorelikov:

ch1 = 40% газ + 40% выстота.

Имея в виду 50% и 60% высоты (элеватора) соответственно?

Aleksey_Gorelikov
msv:

Не в курсе новомодных функций, но напомню что есть Normalize. Это не то?

Не то!

Сергей, смотри: У вертушки тарелка перекоса висит, скажем так на шаре, на оси ротора. Собственно, она может перекашиваться на этом шаре на один максимальный угол в одном и том же направлении. Согласен? Для простоты понимания возьмем автомат перекоса, где машинки расположены под 90 градусов, хотя это и не столь важно. Допустим, тарелка отклоняется механически максимум на 45 градусов, дальше просто упирается своим дном в ось. Одна машинка - может отклонить ее на 45 градусов. Но если две машинки (крен и высота) будут пытаться отклонить тарелку по 45 градусов сразу в обе стороны - то тарелка будет пытаться отклониться в итоге на больший угол (60? считать надо) и в итоге ее заклинит, а машинки возможно поломают себе редуктора. Раньше (только для моде-2) делали ограничительную пластину ввиде отверстия, которая привинчивалась к джойстику и создавала ему механический упор, не давая перемещаться в максимумы по Х и У одновременно. В современных аппах - есть функция “виртуального кольца”, т.е. контроллер ограничивает расход автоматом, когда джойстик двигается в максимум по диагонали. Вот такая штука.

А нормализовать - в примере выше - тоже неправильно, т.к. тогда по рулю высоты микшер тоже нормализуется, и уплывет “середина тарелки”. Т.е при даче руля выстоты будет уплывать коллективный шаг. Вот. Хотя, я не смотрел логику твоей нормализации и могу ошибиться. Если ты находил максимальное значение по каналам, нормализовывал его, а потом приводил с _ЭТИМ ЖЕ КОЭФ._ остальные каналы (т.е. когда пропорциональность не меняется) - то нормализация поможет не выйти за 100 процентов расходов. Для трикоптера - этого достаточно, для вертушки с тарелкой - см. выше. Если нормализация для каждого канала независима - то не пойдет, ибо в первом канале в моем примере - не 100% значение в сумме и приводить его к 100 - нельзя.

leprud:

Имея в виду 50% и 60% высоты (элеватора) соответственно?

Нет. вроде бы верно. Описаться я описался с креном. если на тарелку перекоса сзади смотреть, то проекции плеч там меньше получатся, чем плечо по высоте, соответвенно для равных расходов физически - в настройках то они одинаковыми не должны быть… А на первый ротор - который до 100 процентов не дотягивает, можно микс от руля направления завести, чтобы при рулении нос (в моем примере, или “хвост” - в вашей реализации) не проваливался при повороте “руля направления”. Если там изменить пропорциональность, то и по другим каналам менять тоже придется. В протвном случае будет “уплывать” центр условно говоря “тарелки перекоса” и при рулении по высоте аппарат будет не только вращаться вокруг своего геометрического центра, но и прыгать по высоте засчет “изменившегося шага” по вертолетной терминологии…

Запутал всех. Представляем тарелку перекоса. При рулении стиком элерона - элеватора - она должна наклоняться, но не двигаться вверх-вниз, при рулении шагом (газом) - двигаться, но не наклоняться. При рулении и тем и тем - и то и другое. 😃

leprud

Да, запутался я еще больше 😃
Вот я сейчас сделал так:
где стоит одна серва, 60%–40%
а где 2 сервы: 60%–20%–20%
(мне нужно уменьшить расходы по элеронам/элеватору )
Правильно ли, что сумма всех - 100%?

Aleksey_Gorelikov:

А на первый ротор - который до 100 процентов не дотягивает, можно микс от руля направления завести, чтобы при рулении нос (в моем примере, или “хвост” - в вашей реализации) не проваливался при повороте “руля направления”.

Это единственная причина, почему в вашем примере первый ротор до 100% не дотягивает в сумме коэффициентов микширования? Или есть глубокий смысл, которого я не вижу по причине отсутствия опыта?..

Aleksey_Gorelikov

да, правильно. Где одна серва - там по рулю высоты расход в 2 раза побльше, чем на двух других и другого знака. (т.к. проекция плеча у тарелки в 2 раза больше). Газ - во всех каналах одинаковый. Элероны - на двух сервах равны и противоположны.
Ни в одном канале превышения 100 быть не должно. Если за счет газа будете чутье по элеронам увеличивать, то в канале, где одна серва будет меньше 100, и это нормально.

Aleksey_Gorelikov
leprud:

Это единственная причина, почему в вашем примере первый ротор до 100% не дотягивает в сумме коэффициентов микширования? Или есть глубокий смысл, которого я не вижу по причине отсутствия опыта?..

Нет. У него как бы плечо в два раза больше. 😃 А нам нужен баланс для плеч и перемещений. До 100 то его можно догнать, но тогда по другим каналам либо крена не хватит, либо за расходы по крену выползем. Если на этом принципе квадрик сделать, то там все симметрично будет.

16 days later
belyay

Всем привет, подскажите у меня есть аппа Hobby King 2.4Ghz 6Ch V2 можно ли ее переделать под этот кодер, но оставить родной ВЧ модуль и приемник.

Aleksey_Gorelikov

Конечно. И ее уже тут переделывали вроде бы. И платки уже разведенные выкладывали.

штефан_в

Доброго времени суток! Разрабатываю свою аппаратуру радиоуправления.
Особенности - приемник с прямого преобразования с ПЧ 22Кгц, поэтому в передатчик и приемник ставятся 2 одинаковаых кварца.
ПЧ загоняется на компаратор атмеги 48.
Метод кодирования оригинальный, каждый полубайт полезных данных в эфире передается 6ти битовыми словами, в которых 3 еденицы и 3 нуля. Это позволяет избавится от постоянной составляющей в сигнале, а еще кодововое расстояние таких слов 2 и более, поэтому без труда обнаруживается 1 кратная ошибка. Кадровая синхронизация обеспечивается 8ми разрядным словом. Обнаружение сигнала кадровой синхронизации и битовой синхронизации обеспечивается корреляционными алгоритмами (8ми разрядные корр регистры). Скорость данных в эфире 2400 бит/с, передается 6 8ми разрядных каналов 30 кадров/с. Модуляция ЧМ, частота 27МГц.
Готовность проекта
передатчик железо 100%
передатчик софт, только самое необходимое для передачи 6ти каналов и управления мощностью
приемник дейсвующий макет с сервами (EK2-0508), готовы чертежи платы в пикаде.
Буду писать статью в одном известном журнале, думаю закончить до конца года.
Хотелось бы обменятся опытом с такими же самодельщиками, особенно по части практики реализации протоколов передачи данных, возможно я еще не все знаю? Или буду кому полезен со своим опытом.
Если есть люди хорошо изучившие микростар, расскажите о том какое кодирование они используют.

msv
штефан_в:

каждый полубайт полезных данных в эфире передается 6ти битовыми словами, в которых 3 еденицы и 3 нуля.

Чет не пойму, как к четырем битам данных добавить 2, чтобы всегда получалось 3+3 нуля/единицы…
И хотелось бы понять, в чем сверхзадача проекта? Ведь не заморачиваясь с совместимостью с существующими “стандартами”, все имхо можно более проторенными способами решить.

Aleksey_Gorelikov

А я не совсем догнал про приемник прямого преобразования с промежуточной частотой 22кгц. 😃
Гетеродинный, с пч22кгц? С одинаковыми кварцами? А как кварц на 22кгц затянуть? Стабильности ж никакой не будет. Или дедовским способом, распаять корпус и подтачивать ластиком пластину?
Или прямого усиления полосой 22кгц? ? А кварц в качестве полосового фильтра? Нифига не понимаю… Или регенеративный? Тогда полоса широченная… Или прямого преобразования (преобразование в 0!), тогда причем тут ПЧ?
Можно схему

В микростаре используется обычный ППМ.

штефан_в

Биты к полубайту не добавляются, а преобразуются с помощью таблцы:
const unsigned char __flash TRTAB[0x10]={
0x0B,0x0D,0x13,0x15,
0x16,0x19,0x1A,0x23,
0x25,0x26,0x29,0x2A,
0x2C,0x31,0x32,0x34};

По сравнению с манчестером приемущество в том, что код позволяет обнаружить 1 кратную ошибку и в 1.5 а не 2 раза увеличивает спектр.
Посравнению с прямой передачей данных (NRZ код) - отсутсвует постоянная составляющая в сигнале.
Кроме того коррелятору легче востановить битовую синхронизацию, сигнал насыщен перепадами из 1в0 и обратно.

По прямоу преобразованию, ну не совсем прямое, супер с низкой ПЧ. Кварцы на 5кГц затягиваются легко, в передатчеке емкостью в приемнике дроселем + умножение частоты на 2 в передатчеке + смеситель на встречных диодах в приемнике. Грел кварцы до 60с уход 600Гц для моей схемы это не критично.
Совсем прямое преобразование - сложное дело.

А сверхзадача - сделать аппу под себя с цифровым кодированием, ппм всетаки прошлый век, но и с цифровым кодированием не так-то все просто, методов тьма, но далеко не все подходит и эффективно работает, нужно подбирать под конкретные условия.

Aleksey_Gorelikov
штефан_в:

По прямоу преобразованию, ну не совсем прямое, супер с низкой ПЧ.

Рискуете словить таксиста с 200Вт в антене по зеркальному каналу. Да и 27мгц весьма чумавой бенд. Днем можно не услышать соседа по улице, но общаться с Украиной или Испанией… Я бы не рискнул.

Dimon11

Согласен на все 100%. Не самая лучшая техника для приема, и не самый лучший диапазон, вернее сказать самый неудачный. Как владелец Микростара, также подтверждаю, в Микростаре стандартный ППМ!

msv
штефан_в:

Биты к полубайту не добавляются, а преобразуются с помощью таблицы

Понял, перекодирование с избыточностью. Интересное развитие 4B/5B, который хоть и строго говоря, содержит постоянную составляющую, но по радиоканалу в принципе есть шанс, что пройдет.

штефан_в:

ппм все таки прошлый век

Оно конечно… но, как ни странно, на практике убедился, что при гениальной простоте, это очень неплохой тип кодирования для аналогового канала… Не думаю, что цифра сколь нибудь существенно выиграет в реальном радиоканале при узкополосной модуляции.
Про сам радиоканал - согласен с Алексеем. Не самый лучший выбор диапазона и технологии приема. Обычно такое преобразование на сверхнизкое ПЧ применяется в дешевых FM-тьюнерах, где стоит задача сделать все на одном чипе с мин. внешних элементов и настроек. О качестве и параметрах таких приемников говорить не приходится, зато просто и дешево…
Тем не менее, желаю удачи!

Евгений_Зайцев

Сподобился таки прикрутить передатчик к компьютеру. Пока только сохранение/загрузка параметров текущей модели. Также можно передавать настройки с одного передатчика на другой.

Для подключения к компьютеру необходимо распаять линии RX(PD2), TX(PD3), и Ground от передатчика до преобразователя UART-USB.
Готовые преобразователи RS-232-USB не подходят - они не рассчитаны на сигналы TTL уровня. Отлично подходят преобразователи для
подключения к компьютеру мобильных телефонов. Я использовал преобразователь на базе популярной микросхемы Profilic PL-2303.
На компьютере он видится как обыкновенный последовательный порт. В принципе, никто не мешает установить преобразователь в корпус
и встроить USB разъем непосредственно в передатчик.

После выбора пункта меню
“Options\PC/TX Link” управление передается компьютеру. Выход из режима связи - “стрелка влево”.

Для обмена настройками между передатчиками (передача параметров текущей модели от Master передатчика к Slave) необходимо:
Соединить передатчики крест накрест (RX-TX) линиями RX(PD2), TX(PD3), Groung/
Выбрать на Master передатчике режим PC/TX Link
Выбрать на Slave передатчике режим Load Config
Нажать кнопку “стрелка вправо”.
Выйти из режима связи - “стрелка влево”.

Помимо интерфейса с компьютером есть еще ряд отличий от оригинальной версии 1.9.1:

Под дисплей 3410
Под старую разводку платы (без замены выводов на динамик и SW2)
Нет индикации температуры на основном экране
Изменено расположение элементов на основном экране.
Нет индикации тока в антенне на основном экране
в режиме тахометра добавлен ползунок канала газа
Полные названия полетных режимов (Normal, Landing, Pilotage)
Индикация на главном экране типа модуляции (PPM-iPPM)
Дополнительный режим работы окна Monitor (еще раз стрелка вправо) с идикацией длительности канальных импульсов в микросекундах
Если на основном экране нажать стрелку влево будут показаны напряжение батареи и значения триммеров в цифровом виде.
Убраны из меню пункты про изменерение тока в антенне и частоту ВЧ модуля
При калибровке выводятся цифровые значения АЦП
По умолчанию у каждой модели не 6 а 8 каналов
По умолчанию звук выключен.
При выключении звука кодер никаких звуков не издает, даже при старте.
Контроль положения ручки газа при старте можно включить/выключить из меню “Options\Alarms” (по умолчанию, контроль отключен)
В меню “Options” появился пункт PC/TX Link - для обмена с компьтером или Slave передатчиком
В меню “Options” появился пункт Load Config - для загрузки конфигурации текущей модели с Master передатчика

В перспективе хочу, добавить возможность сохрянять все модели и менять настройки каждой модели с компьютера

C уважением,
Евгений Зайцев

TX-PC Interface.zipПрошивка 1.9.1+.zip

EagleB3

Интересная доработка.
Мне кажется, наиболее полезным развитием был бы интерфейс загрузки-выгрузки модели “кодер-компьютер” и редактирование модели на компьютере.
В этом случае на компьютере можно было бы держать сколько угодно моделей и загружать в передатчик то, что нужно.
При такой концепции редактировать модель “в кодере” - не обязательно.

Мысли (раскатавши губы):
Держать в интерфейсе 2 списка моделей: “Архив” и “В памяти кодера”.
То, что “В памяти” обновляется при подключении кодера (юзера спрашивают, он должен подтвердить, что “да, обновляем” - иначе можно потерять изменения сделанные в компьютере при отключенном кодере).
Желательно иметь возможность обновить не все модели в памяти, а только какую-то одну.
Редактировать можно любую модель - “В архиве” или “В памяти”.
Если редактируем ту, что “В памяти” и нажимаем кнопку “Сохранить”, то (только при подключенном кодере?) сразу предложить обновить модель в памяти.

Andr_2

To: Евгений Зайцев!Конечно респект за проделанную работу!Но зачем было убирать такие Функции как индикации температуры на основном экране,индикации тока в антенне и изменерение тока в антенне и частоту ВЧ модуля?Зачем?

Евгений_Зайцев

Да, просто нет у меня градусника и ВЧ модуль стоит ASSAN. Включить индикацию температуры и тока в антенне на основном экране - дело двух минут - убрать комментарии в dysplay.c и уточнить координаты вывода на экран. Изменение частоты ВЧ модуля. тоже вернуть не очень сложно, но все-таки надо повспоминать где что убрал. Если действительно надо верну, хотя, мне кажется, сегодня уже правильнее использовать готовые модули на 2.4 ГГц. Надежно, стабильно и недорого.

С уважением,
Евгений Зайцев