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

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 ГГц. Надежно, стабильно и недорого.

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

Edward_tlt

Вообщем пора уже делать контрольную панель на компе и как конструктор собирать прошивку, кому что надо…😃

EagleB3

Дык, есть уже такая “панель”. Файл def.h.
Всем сотоварищам, модифицирующим прошивки, советую:#define, #ifdef, #ifndef = очень правильные вещи!

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

Совсем без редактирования параметров на передатчике нехорошо. В поле настраивать передатчик с ноутбука неправильно. Хотя кто-то из китайцев так и делает. А по поводу логики программы мысли у меня следующие:

Приложение на большом брате должно уметь

  1. считать/залить настройки текущей модели (ну только это собственно сейчас и реализовано)
  2. cчитать/залить настройки всех моделей, возможно вместе с остальными параметрами лежащими в EEPROM
  3. организовать систему закладок (одна модель-одна закладка). На закладке будут собраны все параметры одной модели. Параметры модели можно будет считать с передатчика или загрузить из файла. Также можно будет сохранить отредактированные параметры с любой закладки.

делать автоматический перенос параметров пока не планирую - можно ненароком нужные настройки убить.
Может есть еще какие идеи/пожелания по поводу связи с компом. Запал вроде еще не остыл…

А, насчет “панели” и конструктора мысль верная. Жаль что я когда пустился во все тяжкие и начал править прошивку не пошел по этому пути.
Сейчас вспомнить что и где модифицировал уже нереально.

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

EagleB3

Всегда можно сравнить результаты своей работы и исходников, на которых базировался.
Есть прекрасные системы сравнения текстовых файлов. Открывают два окна рядом и показывают какие строки добавлены, какие изменены, какие удалены.
Я пользуюсь встроенным "Фрегат"овским; наверняка есть, например, какой-нибудь плагин к Total Commander и т.п.

ВитГо

а кто нить встречал программы которые их .hex файла могут сделать бинарник и наоборот?

ubd

Набираем в Гугле “программа hex to bin”…

EagleB3

Это может сделать тот же CVAVR.
В его интерфейсе запусти программатор (Shift+F4), загрузи свой hex (File -> Load FLASH). И можно никого не прошивая там же сохранить прошивку в файл (File -> Save FLASH ), выбрав при этом нужный тебе тип файла (hex, rom, bin). А для еепрома - File -> Save EEPROM и eep, hex, bin.
Таким методом, кстати, можно разделить FLASH и EEPROM, если они спрятаны внутри одного файла слабочитаемого формата.

P.S. Какие мы тут активные, однако… Время - 9 утра, “но в Городе Дураков никто не спал” (с) “Золотой ключик” 😃

ВитГо

Да нет, мне нужно исходный код скорее всего или консольки…
для редактирования параметров моделей на компе… чтобы автоматом распаковать, изменить что нужно и запаковать… чтобы не думать что и в какой последовательности запускать 😃

в принципе спасибо за наводку - чтото нашел на дельфях… пойдет чтобы разобраться…

Никто новую платформу для самодельного передатчика не разрабатывает?
я хотел бы поучаствовать если такое будет…