Самодельный передатчик (часть 2)
И чем больше узнаешь, тем больше возникает вопросов. А в частности: …? …? … способна работать до 550 мГц. Но сам я не программист и увязать программно все это с кодером на более высокие частоты у меня не получится.
Начну с обратного: Переделать кодер на другие частоты - всего лишь поменять пару циферок в текстовом файле. Программистом быть не обязательно. Если опишите, чего хотите - скажу где.
Шаг сетки - в общем случае кратен частоте сравнения. Ее - вы выбираете сами, проектируя синтезатор. Я не смотрел как у Сергея, но уверен, что шаг 5 (для совместимости азиатских и европейских сеток) или 10 (для одной из сеток) кГц. Диаппазон же - полностью зависит от используемого вами ГУНа (а в частности схемы гуна, его варикапа и т.д.). На свои вопросы - вы сами уже отвечать должны, не как программист, а как схемотехник. Управление синтезатором со стороны кодера сводится только к загрузке числа в регистр ДПКД. Программировать - не придется. Лишь это число под свою схему и частоту изменить.
И дело в том, что хотелось бы в дальнейшем иметь один кодер на несколько приемников.
В таком случае проще и может быть дешевле, иметь одинаковые кварцы на всех приёмниках, и фиксированную частоту у передатчика. И не париться. У меня как раз так.
То же раньше хотел делать передатчик с сентизатором частот, но потом понял что нет смысла. Просто купил 3 кварца на одну частоту и всё. У меня все приёмники самодельные, делал по этой схеме: ivan.bmstu.ru/avia_site/r_main/HWR/…/sev_rc.html
“Начну с обратного: Переделать кодер на другие частоты - всего лишь поменять пару циферок в текстовом файле. Программистом быть не обязательно. Если опишите, чего хотите - скажу где.” Где эти заветные циферки поменять?Вот ссылка на двух диапазонный модуль синтезатора 144\430MHZ http://www.qrz.ru/schemes/contribute/constr/s2b-2007 собран на LMX2316.Частота выше,антенна короче,эфир чище(нет мощных вещалок) Да и приемник можно выполнить на двух платах.Уф,что-то размечтался надо сначала зто сделать. а потом и помечтать не вредно.
Где эти заветные циферки поменять?
Файл: LMX2306.h :
В нем есть определения:
//-------------------------------------------------------------
#define PLL_FreqOSC 4000 // in kHz
#define PLL_FreqBand 35010 // in kHz
#define PLL_FreqStep 10 // in kHz
#define PLL_CountChannel 20
#define PLL_OffDisplNCh 61
//-------------------------------------------------------------
Затем не помешает посмотреть файл LMX2306.с , даташиты на 2306 и 2316. Найти отличия, (если есть) и поправить процедурку:
void PLL_SetFreq(unsigned char num_freq)
{
unsigned long data;
unsigned int k;
//if(num_freq>=PLL_CountChannel) return; // на всякий…
#asm(“cli”)
// F_Reg
PLL_send(0xd2L, 21);
// R_Reg
data=PLL_FreqOSC; data/=PLL_FreqStep; data<<=2;
PLL_send(data, 21);
// N_Reg
k=num_freq; k*=PLL_FreqStep; k+=PLL_FreqBand; // freq
k/=PLL_FreqStep;
data=(k>>3); // Bcount
data<<=5;
data|=(k & 0x7); // Acount
data<<=2;
data|=0x1;
PLL_send(data, 21);
#asm(“sei”)
}
Хотя, мне кажется, коэф. делителей аналогично считаются. Но это ваша работа. 😃
Ссылка на выбранный вами синтезатор у меня не открылась…
Будут конкретные вопросы - задавайте.
www.qrz.ru/schemes/contribute/constr/s2b-2007/ теперь вроде открывается.
Мне кажется, что не совсем целесообразно самому изобретать радиомодуль, есть уже готовые (и недорогие), например RFM22B ( в Терре стоит порядка 300 рублей).
Вот только скрестить кодер с таким модулем сам не осилю:)
Можно конечно попытаться повторить этот проект www.1slon.ru/rc24868.htm , но как-то не совсем правильно преобразование цифра-аналог-цифра.
Наверное было-бы идеально совсем избавиться от PPM в передатчике…
Думаю, что такая модернизация существующего мега-проекта была-бы многим интересна.
P.S. Повторил кодер в 2-х экземплярах: один с модулем на 35 МГц, второй - на 2.4
Наверное было-бы идеально совсем избавиться от PPM в передатчике…
Если есть желание - повторите кодер в корпусе от Спектрум ДХ-5. Триммеры там уже с кнопками, место - достаточно. Модуль - по УАРТу, ну и прелесть, что спектрумовский. Антенка и прочее - в компелкте. Вроде бы пластик корпуса неплохой. Почти супер-современный ДХ-8 получится 😃
Если есть желание - повторите кодер в корпусе от Спектрум ДХ-5.
Я больше склоняюсь к диапазону 800 МГЦ (с прицелом на FPV)
А управление мне удобнее джоем от SONY PS, сейчас как раз собираю кодер в этом корпусе www.dealextreme.com/details.dx/sku.28930
А управление мне удобнее джоем от SONY PS
Хм… А зачем вам кодер в этом корпусе, если не секрет? Нет, конечно, личные предпочтения - это дело каждого, но… Взял я у ребенка джойстик такой, воткнул в комп. Запустил реалфлай… Летать - невозможно. Вот танком управлять - да, получится. А летать - я не представляю как!
Хм… А зачем вам кодер в этом корпусе, если не секрет?
Ну, ради спортивного интереса попробую…
Ну, ради спортивного интереса попробую…
Желание это хорошо
НО как собираешся калибровать переменики а это уже мне интерестно
В джое от PS стоит два “джойстика” с двумя переменными резисторами каждый. Так что все нормально откалибруется и центры надет. Вот только летать на нем не удобно по той причине, что плечи у джоев маленькие и точности никакой в управлении не будет. Нужно ставить расходы на минимум и включать экспоненту.
Народ же как-то и на дискретной аппе умудряется летать. Извращение конечно, но факт.
Я из джойстиков от PS делал аппу для микро (на ИК) - там точности управления точно хватает, но стики удлиннял
Я из джойстиков от PS делал аппу для микро (на ИК) - там точности управления точно хватает, но стики удлиннял
Насчет удлинения стиков тоже мысли были, но посмотрим как получится
А пульт такой планируется для складного квадрокоптера (типовой не входит в заданный объем кейса;))
Еще раз (в рамках этой темы) вопрошу о настройке CCPM на 120 градусов.
Какие правильные коэффициенты должны быть?
100-50 (как в документации от 29.05.2010 на сайте “самокодер”) или 60-60 как в этой теме ранее упоминалось?
У меня при любых этих настройках вылетает за 120 единиц канал управления при определенных движениях стиков…
Для трикоптера настраиваете? 😃 Вот тут rcopen.com/blogs/50021/9239 г-н Хакер выкладывал прожку- эмулятор ССПМ. Можно по ней коэф. подобрать. А вобще - там ж геометрия условно простая. Просто потом коэф. нормализовать надо, чтобы за 100 не результат не выходил (ну или за 120).
Прикинул на бумажке. Чтобы получалось максимум - 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% крен.
Ну и так далее… 😃
Кстати, а где у трикоптера " перед" ??? Я коэф.-ты расставлял, имея ввиду, что перед - это ротор. А если ротор, это хвост - то с точностью до наоборот. 😃 Инвертировать руль высоты. Только не в меню ченалс!!! Это инвертирует весь канал (рулевую машинку), а нам надо влияние ручек - т.е. только коэфициенты в “микшеры” напротив органов управления “руль высоты”. Коэф.-ты указывают, какое влияние вносит стик (орган управления) в конструируемый нами канал. Сумма коэф-тов канала - - максимально допустимый его “расход”.
Всетаки не хватает в кодере новомодной функции “виртуального кольца”.
Не в курсе новомодных функций, но напомню что есть Normalize. Это не то?
Алексей, снова большое спасибо! Теперь понял логику работы таких микшеров (а вроде документацию то читал и не раз…, и про normalize читал…)
Меня просто еще смущали фразы про настройку CCPM типа
Go into the swash menu and change the settings to Aileron +40, Elevator +40 and Pitch +100.
Действительно делаю для трикоптера, там 2 мотора (левый-правый) спереди и один сзади. Знаки коэффициентов уже “подобрал”, с этим проблем не возникло, как ни странно 😃
Чуть выше вы наверно опечатались в строках
ch1 = 50% газ + 40% выстота.
и
ch1 = 40% газ + 40% выстота.
Имея в виду 50% и 60% высоты (элеватора) соответственно?
Не в курсе новомодных функций, но напомню что есть Normalize. Это не то?
Не то!
Сергей, смотри: У вертушки тарелка перекоса висит, скажем так на шаре, на оси ротора. Собственно, она может перекашиваться на этом шаре на один максимальный угол в одном и том же направлении. Согласен? Для простоты понимания возьмем автомат перекоса, где машинки расположены под 90 градусов, хотя это и не столь важно. Допустим, тарелка отклоняется механически максимум на 45 градусов, дальше просто упирается своим дном в ось. Одна машинка - может отклонить ее на 45 градусов. Но если две машинки (крен и высота) будут пытаться отклонить тарелку по 45 градусов сразу в обе стороны - то тарелка будет пытаться отклониться в итоге на больший угол (60? считать надо) и в итоге ее заклинит, а машинки возможно поломают себе редуктора. Раньше (только для моде-2) делали ограничительную пластину ввиде отверстия, которая привинчивалась к джойстику и создавала ему механический упор, не давая перемещаться в максимумы по Х и У одновременно. В современных аппах - есть функция “виртуального кольца”, т.е. контроллер ограничивает расход автоматом, когда джойстик двигается в максимум по диагонали. Вот такая штука.
А нормализовать - в примере выше - тоже неправильно, т.к. тогда по рулю высоты микшер тоже нормализуется, и уплывет “середина тарелки”. Т.е при даче руля выстоты будет уплывать коллективный шаг. Вот. Хотя, я не смотрел логику твоей нормализации и могу ошибиться. Если ты находил максимальное значение по каналам, нормализовывал его, а потом приводил с _ЭТИМ ЖЕ КОЭФ._ остальные каналы (т.е. когда пропорциональность не меняется) - то нормализация поможет не выйти за 100 процентов расходов. Для трикоптера - этого достаточно, для вертушки с тарелкой - см. выше. Если нормализация для каждого канала независима - то не пойдет, ибо в первом канале в моем примере - не 100% значение в сумме и приводить его к 100 - нельзя.
Имея в виду 50% и 60% высоты (элеватора) соответственно?
Нет. вроде бы верно. Описаться я описался с креном. если на тарелку перекоса сзади смотреть, то проекции плеч там меньше получатся, чем плечо по высоте, соответвенно для равных расходов физически - в настройках то они одинаковыми не должны быть… А на первый ротор - который до 100 процентов не дотягивает, можно микс от руля направления завести, чтобы при рулении нос (в моем примере, или “хвост” - в вашей реализации) не проваливался при повороте “руля направления”. Если там изменить пропорциональность, то и по другим каналам менять тоже придется. В протвном случае будет “уплывать” центр условно говоря “тарелки перекоса” и при рулении по высоте аппарат будет не только вращаться вокруг своего геометрического центра, но и прыгать по высоте засчет “изменившегося шага” по вертолетной терминологии…
Запутал всех. Представляем тарелку перекоса. При рулении стиком элерона - элеватора - она должна наклоняться, но не двигаться вверх-вниз, при рулении шагом (газом) - двигаться, но не наклоняться. При рулении и тем и тем - и то и другое. 😃
Да, запутался я еще больше 😃
Вот я сейчас сделал так:
где стоит одна серва, 60%–40%
а где 2 сервы: 60%–20%–20%
(мне нужно уменьшить расходы по элеронам/элеватору )
Правильно ли, что сумма всех - 100%?
А на первый ротор - который до 100 процентов не дотягивает, можно микс от руля направления завести, чтобы при рулении нос (в моем примере, или “хвост” - в вашей реализации) не проваливался при повороте “руля направления”.
Это единственная причина, почему в вашем примере первый ротор до 100% не дотягивает в сумме коэффициентов микширования? Или есть глубокий смысл, которого я не вижу по причине отсутствия опыта?..
да, правильно. Где одна серва - там по рулю высоты расход в 2 раза побльше, чем на двух других и другого знака. (т.к. проекция плеча у тарелки в 2 раза больше). Газ - во всех каналах одинаковый. Элероны - на двух сервах равны и противоположны.
Ни в одном канале превышения 100 быть не должно. Если за счет газа будете чутье по элеронам увеличивать, то в канале, где одна серва будет меньше 100, и это нормально.