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

klen_s
Vad64:

Насколько я знаю, для летающих моделей этот диапазон (2.4ГГц) не годится - при такой длине волны будут пропадания сигнала при определенной ориентации антенн в пространстве. Кто-то выпустил аппаратуру (не помню название) для самолетов, но там для борьбы с этим явлением используется 2 приемника с двумя антеннами.

Проблем не должно быть - четыре или три расположенных по бортам штыревых лямда/4 (~3,4см) через полосковый мост-сумматор дают почти изотропную ДН (тоесть шарообразную). В любом случае буду пробовать.

chwor

2 focus

Что то не так с прожигание МК. PPM на вьiходе нет. Если не настроить fuses CKSEL и CKOPT, то микроконтролер не будет работать с внешним кварцам(заводские настройки на Internel RC 1MHz). Я поменял CKSEL=1110 i CKOPT=1 и внешньiй генератор заработал, но только он.

Help !!!

Vad64
klen_s:

Проблем не должно быть - четыре или три расположенных по бортам штыревых лямда/4 (~3,4см) через полосковый мост-сумматор дают почти изотропную ДН (тоесть шарообразную).

Т.е. гарантированно нельзя будет подобрать такое положение и ориентацию модели, что сумма сигналов от антенн будет близка к нулю? В любом случае, будет интересно узнать результаты испытаний.

А вот ссылка на DSM аппаратуру для паркфлайеров от Спектрум:
www.spektrumrc.com/Products/Default.aspx?ProdID=SP…

klen_s
Vad64:

Т.е. гарантированно нельзя будет подобрать такое положение и ориентацию модели, что сумма сигналов от антенн будет близка к нулю? В любом случае, будет интересно узнать результаты испытаний.

Нули ДН бывают только в теории. В жизния просто есть “очень хорошие” провалы. Ту ведь главное не устранить их, что невозможно, а сделать как можно уже, тогда они не будут сильно влиять. Тем более в любом случае надо предусмотреть полет в условиях кратковременного отказа канала связи (например от помех).

А вот ссылка на DSM аппаратуру для паркфлайеров от Спектрум:
www.spektrumrc.com/Products/Default.aspx?ProdID=SP…

Чтото савсем он какойто кастрированный. Я не понимаю что мешает навесит машинокэдак хотябы 32?
По количеству каналов и частоте можно сделать что там стоит ZigBee-модуль аналогичный тому который я сделал. На нем можно получить гораздо больше, раз в сто например. Видимо маркетинг - забивать видеомагнитафоном гвозди. Шесть каналов это мне принципиально не понятно.

aleks_shap

2klen_s
Пара вопросиков к Вам есть.

  1. У Вас стоит mega128l, т.е. питание от 3.3В, как Вы будете выводить на сервы? Разве там не стандартный 5-ти вольтовый уровень TTL?
  2. Антена как я понимаю напечатана на плате, а где Вы взяли ее размеры, а то есть возможность заказать модуль MC13192, аналог от моторолы, в даташите не нашел размеры, т.е. там написано что антена напечатана, но размеров нет.

и 3-е Вы уже пробовали это все включать?

Заранее спасибо.

klen_s
aleks_shap:

2klen_s
Пара вопросиков к Вам есть.

  1. У Вас стоит mega128l, т.е. питание от 3.3В, как Вы будете выводить на сервы? Разве там не стандартный 5-ти вольтовый уровень TTL?
  2. Антена как я понимаю напечатана на плате, а где Вы взяли ее размеры, а то есть возможность заказать модуль MC13192, аналог от моторолы, в даташите не нашел размеры, т.е. там написано что антена напечатана, но размеров нет.

и 3-е Вы уже пробовали это все включать?

Заранее спасибо.

  1. между машинками и 3вольта ТТЛ, можно поставить буфер оаботающий от 5 вольт. Это вариант, я же хочу на атмегу завести сигнал с потенциометров РМ и непосредственно через драверы(LB1630/1634/1635/1644… любую бы купить попробывать) вращать двигатели РМ. У меня валяются РМ с исправными двигателями и потенциометрами с сдохшей схемой. Если получится, то можно будет точно знать в каком положении находится руль фактически! а не только знать что ты ему выдал команду.

  2. Антенна передрана с даташита, вместе с согласующими цепями, следущий вариант как я писал хочу сделать с полосковым сумирующим мостом, и вывести через SMA на тонкие кабели к антеннам. До этого как до китая раком.

  3. пробывал некоторые части по отдельности - управлять атмегой восьмю РМ с декодированием сигнала приемника и тд. К сожалению плата, фотка которой выложена распаяна с ошибками, в прошлую пятницу пределал схему под атмегу168 и до выходных мне должны сделать новую платку на которой буду трансиверы щупать.В одной из контор в которых работаю, убедил начальство что беспроводные технологии это круто, и теперь совмещаю приятное с полезным - и оаботу делаю и паралельно под самики эксперименты провожу.

Если получится выложу, и раскажу. Кстате в Москве появились новые кристаллы, в которых кроме трансивера еще и 51 ядро с флешем и 14битным ацп. стоит 6$ - видать скоро на одном кристале можно будет все сделать, кроме силовых ключей к эл.двигателям

aleks_shap

Я просто думаю как лучше, поставить mega128 и ставить переходник между MC13192, он на 3.3V. Или ставить mega128l и ставить переходник между сервами и контроллером.
Склоняюсь в сторону mega128, т.к. на фирме где я работаю их применяют, и можно будет воспользоваться 😲 .
Но не поплохеет ли трансиверу от этого?

klen_s

Представляю второй вариант - который правильно распаян.
128 мегу поменял на 168, потомучто заказчик потребовал минимального размера, просто гад.
Сегодня завелась мега - шьется и моргает светодиодом.
Пока спать не свалюсь буду оживлять сей девайс. Нада для начал убедиться в том что все регистра трансивера читаются. Я всетаки не рискнул CC2420 на 5 вольт запитывать - в даташите четка написано - 3,6 - верхний край. Но на всякий случай в стабилизаторе на корпусном выводе место для SMD диодика оставил, потом поробую на 0,6 вольта поднять напряжение.

8 days later
VitaliyB

For Focus
Собрал кодер на Mege16 и появились вопросы.
При включении микшера, ручки управления элеронами и рулем высоты меняются местами.
Можно ли исправить этот глюк?
Заодно наверное есть смысл ввести програмное ограничение длительности канальных импульсов с коефициентом 1.2 , при натройке смешивания каналов длительности импульсов часто выходят за
пределы и сервоприводы совершают непредсказуемые движения.
С уважением .
Виталий.

jeti

Я так и не понял,
при прошивке в кодере от Фокуса с фьюзами чтото делать надо?

focus
VitaliyB:

For Focus
Собрал кодер на Mege16 и появились вопросы.
При включении микшера, ручки управления элеронами и рулем высоты меняются местами.
Можно ли исправить этот глюк?
Заодно наверное есть смысл ввести програмное ограничение длительности канальных импульсов с коефициентом 1.2 , при натройке смешивания каналов длительности импульсов часто выходят за
пределы и сервоприводы совершают непредсказуемые движения.
С уважением .
Виталий.

Глюк исправит можно… В коде замени
if (mix[1]==-1) {
ch[2]=2250+(adc[4]+adc[2])/2+trim[2]*10;
ch[4]=2250+(adc[4]-adc[2])/2+trim[4]*10;}

if (mix[2]==-1) {
ch[2]=2250+(adc[1]+adc[2])/2+trim[2]*10;
ch[1]=2250+(adc[1]-adc[2])/2+trim[1]*10;}

if (mix[3]==-1) {
ch[6]=2250+(adc[1]+adc[6])/2+trim[6]*10;
ch[1]=2250+(adc[1]-adc[6])/2+trim[1]*10;}

на if (mix[1]==-1) {
ch[2]=2250+(adc[2]+adc[4])/2+trim[2]*10;
ch[4]=2250+(adc[2]-adc[4])/2+trim[4]*10;}

if (mix[2]==-1) {
ch[2]=2250+(adc[2]+adc[1])/2+trim[2]*10;
ch[1]=2250+(adc[2]-adc[1])/2+trim[1]*10;}

if (mix[3]==-1) {
ch[6]=2250+(adc[6]+adc[1])/2+trim[6]*10;
ch[1]=2250+(adc[6]-adc[1])/2+trim[1]*10;}

Ограничения и прочее будут во второй версии. Она уже разрабатывается.

VitaliyB
focus:

Глюк исправит можно… В коде замени
if (mix[1]==-1) {
ch[2]=2250+(adc[4]+adc[2])/2+trim[2]*10;
ch[4]=2250+(adc[4]-adc[2])/2+trim[4]*10;}

if (mix[2]==-1) {
ch[2]=2250+(adc[1]+adc[2])/2+trim[2]*10;
ch[1]=2250+(adc[1]-adc[2])/2+trim[1]*10;}

if (mix[3]==-1) {
ch[6]=2250+(adc[1]+adc[6])/2+trim[6]*10;
ch[1]=2250+(adc[1]-adc[6])/2+trim[1]*10;}

на if (mix[1]==-1) {
ch[2]=2250+(adc[2]+adc[4])/2+trim[2]*10;
ch[4]=2250+(adc[2]-adc[4])/2+trim[4]*10;}

if (mix[2]==-1) {
ch[2]=2250+(adc[2]+adc[1])/2+trim[2]*10;
ch[1]=2250+(adc[2]-adc[1])/2+trim[1]*10;}

if (mix[3]==-1) {
ch[6]=2250+(adc[6]+adc[1])/2+trim[6]*10;
ch[1]=2250+(adc[6]-adc[1])/2+trim[1]*10;}
Ограничения и прочее будут во второй версии. Она уже разрабатывается.

К сожалению безуспешно.
Почему-то не заработало.

Andrey_K
focus:

Возникли вопросы. Сколько каналов должно быть? (по моим расчетам 8 - выше крыши) Какие типы моделей? (думаю самолет, планер с одной, двумя и четырьмямашинками на крыло и наверное верт, делется по типу автомата перекоса) Сколько режимов полета? И какие они для каждого типа моделей? Что в них должно настраиваться?

Решил ответить, хоть и с задержкой.
Может, стоит потратить время и довести то, что есть до логического завершения?
Оформить подробное описание и инструкцию по программированию. Чтобы самоделкин сразу понял что сможет, а что не сможет запрограммировать в этом передатчике.
Дать самоделкиным, у которых нет готовых джойстиков и нет внутрисхемного отладчика, рекомендации по настройке джойстиков. Т.е. рекомендации для тех, кто не может увидеть результаты АЦП на экране ПК. А если твоих знаний хватает – создай ПК интерфейс, позволяющий увидить. Это будут ОГРОМНЫЙ шаг вперед.

Смотрим на формулы

read_adc(3);
adc[1]=(ADCW-814); //читаем канал АЦП, вычитаем ненужный промежуток
read_adc(2);
adc[2]=(ADCW-832); //читаем канал АЦП, вычитаем ненужный промежуток
read_adc(1);
adc[3]=(ADCW-810); //читаем канал АЦП, вычитаем ненужный промежуток
read_adc(0);
adc[4]=(ADCW-818); //читаем канал АЦП, вычитаем ненужный промежуток
read_adc(4);
adc[6]=(ADCW-810);

и видим разные цифры: 814,832,810,818.

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

В описании стоит уделить достойное внимание терминам и определениям. Например, что такое реверс. Все понимают, что это изменение направления вращения серво, но программно это м.б. выполнено по разному. Например, я для себя принял, что реверес осуществляется за счет реверса сигнала, полученного с канального потенциометра или тумблера. Или – что такое EPA. Я всегда считал, что ЕРА – это назначение конечных точек серво для канала. Т.е. это ИТОГОВОЕ масштабирование после всех смесителей.
Прибавление триммера – это тоже смеситель!
Хотя иногда ЕРА применяется для перецентрирования и реверса серво.

Смотрим на формулы

if (adc[1]>=0) adc[1]= adc[1]*epa1[1]/19*rev[1];
else adc[1]= adc[1]*epa2[1]/21*rev[1];

if (adc[2]>=0) adc[2]= adc[2]*epa1[2]/19*rev[2];
else adc[2]= adc[2]*epa2[2]/21*rev[2];

if (mix[2]==-1) {
ch[2]=2250+(adc[1]+adc[2])/2+trim[2]*10;
ch[1]=2250+(adc[1]-adc[2])/2+trim[1]*10;}

и видим, что триммеры прибавляются после ЕРА.

Число 2250 в этих формулах – желательно в описании указать: перемещение ручки канала NN от упора до упора при ЕРА=100% соответствует изменению длительности канального импульса от и до. То же для триммера.
Максимальная и минимальная длительности канального импульса не ограничиваются программно. Это опасно. Можно дойти до упора. (Футаба открытым текстом рекомендует настройку "от упора’, но это не образец для повторения. )
Обязательно нужна блок-схема последовательности вычислений.
Триммер масштабируется вместе с ручкой. Последствия и возможные решения проблемы стоит отметить в описании.

Смесители.
Для канала с триммером диапазон исходных чисел – это сумма диапазонов для ручки, триммера и нуля триммера (если нули триммера сохраняются). Для канала без триммера все проще. Если эти два канала смешиваются, возникает проблема несовпадения диапазонов исходных чисел. Пока нет сложных смесителей с пересчетными таблицами, эта проблема малозаметна, но она никуда не исчезнет. Тут есть над чем подумать.
Переписка по индикатору только упрочила мое мнение: для самодельного передатчика нужен вариант схемы и программы для стандартного индикатора, например 128х64 с контроллером ks0108. Да, это дороже. Но всем будет понятно и не нужно ходить по барыгам.

Зачем все это нужно? Чтобы пилот был пользователем передатчика, а не исследователем черного ящика. А если не сделать того, что написано выше? Тогда возможно дежа вю. И, через некоторое время, на вопрос “ Почему пищит?” последует ответ: “Нажмите две кнопки, не помню какие”. Увы, память не совершенна. Удачи!

VitaliyB

For Focus
Евгений не могли бы вы показать, что нужно исправить в ASM файле?
До сих пор не могу найти хороший компилятор С, подскажите пожалуйста какие
из них нормально работают.
О рабочей зоне потенциометров.
Мне представляется,что эту проблему можно решить с помощю пасты КОНТАКТОЛ US
(Используется для ремонта пультов ду,контактных площадок, экранирования пластиковых
корпусов и т.д.) и никакого меднения и серебрения.
Удачи во всех делах и хорошего настроения.

Magelan

Для переделки потенциометров использовал токопроводящий клей используемый для ремонта обогревателя заднего стекла автомобиля… (Хотя сейчас уже много чего токопроводящего выпускается)

29 days later
SVS

Focus

От скольких вольт работает индикатор?,
на схеме показано 5вольт, а в даташите на индикатор 3,3вольта?
А прошивка Вашего кодера находится в архиве proekt?

С уважением Валентин.

14 days later
SVS

Здравствуйте Женя.
Собрал Я кодер по Вашей схеме, применил индикатор от нокии 3310 или 3410, точно незнаю.
Запустил и на экране вижу такую картину
Что может быть такое что цифры находятся так низко и последняя строчка смещена?
В меню модели невлезли 5 моделей, а только 4 и 5-ая модель невидна, хотя она присутствует когда опустиш курсор наже.
В меню каналы такаяже фигня невлазят в экран 3 нижних пункта, их невидно ,но они есть?
Подскажите почему такая ерунда.
А если экран не 3410 , а 3310, то возможно переписать hex под 3310 и проверить предположение?

Индикатор питается от 3,5в.
Я думал что спалил индикатор , а оказалось минус нетуда припаял.
С уважением Валентин.

SVS

Здравствуйте Евгений.
Можно изменить в прошивке следуещее, сдвинуть часки таймера выше и чуть левее, чтобы таймер нормально показывал, а то нету нужного индикатора, есть только 3310.
Или переделате плз. под индикатор 3310.
С уважением.

SVS

Женя.
подскажите, в какой строке HEX кода находится информация о расположения на экране таймера, хочу приподнять немного вверх и влево на одну позицию.
В меню микшер было смещение пунктов, нашел в прошивке и поправил немного.
С уважением Валентин.

yura_v

Есть другая идея по поводу народного модулятора

На атмелине делается только ацп часть для оцифровки джойстиков и кнопок
всё это высаживается в компорт
далее берётся едимакс роутер midge.vlad.org.ua ( ~35$)
который есть полноценный компутер с линуксом на борту
во евойный второй ком вдувается инфа с атмелины
к выходу кома подрубается какой-нибудь стандартный ЖКИ который поддержан в линухе
пишется прога для модулятора прямо на обычном компе с подрубленым жки
хоть на пёрле
далее несколько вариантов
cгенерённый PPM высаживаем на однобитный порт от лед или от usb едимакса
либо отправляем его в атмелину и уже с неё на ВЧ
либо плодим на едимаксе i2c и уже далее куда нибудь 😉

А если заработает блютус ( в усб версии едимакса) то можно попробовать и через него:)

Преимущества - софт пишется легко и размашисто любым программёром на любом компе с линухом и потом тупо пересобирается под едимаксом.
Недостатки - adm5120 жрёт многовато.