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

yura_v

Вариант с сохранением ориганального передатчика

bea

_________.rar Дело то в том что 5-ти килоомный резистор перемещается всего на 1 К в одну сторону и в другую 1К - амплитуда примерно 2К. Если подать на него 5В, то на выходе будет - в крайнем нижнем положении ручки 1,5В а в верхнем положении 3,5В.

Вот таким образом изменил резисторы,хотя про токопроводящий клей уже писали.
Дискретность около 800

yura_v

Поспешность и мерзкое отсутствие осцилоскопа сделали своё злое дело - начал летать на фпшнике - и прикладывал по комнате пока не сломал обе лопасти.И это при том что он у меня отстроенный и нормально управлялся на родном пульте.
Проблема переползания с китайских прошитых пультов следующая - надо точно знать что у них шло с каналов - сколько мс центр и каков размах. Потому как в делюксе пашет замечательно а на верте - не управляется нифига причем не сразу понятно почему.
Вопервых надо точно выставить центр по рудеру иначе гиры не хватает в какую либо сторону.
Во вторых я не знаю где китайцы замикшировали ревомикс - на пульте или на приёмнике

Поэтому повторяю свой вопрос - как отдать контрол (тягу) в два канала
в данном случае тяги и микс рудера - с разными кривыми?

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

Aleksey_Gorelikov
yura_v:

Поэтому повторяю свой вопрос - как отдать контрол (тягу) в два канала
в данном случае тяги и микс рудера - с разными кривыми?

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

Есть каналы Юзерс. Заходишь в меню, там выбираешь с какого джойстика брать инфу и забиваешь свою кривую. Проще некуда, все интуитивно понятно.

yura_v
Aleksey_Gorelikov:

Есть каналы Юзерс. Заходишь в меню, там выбираешь с какого джойстика брать инфу и забиваешь свою кривую. Проще некуда, все интуитивно понятно.

понял
они у меня как раз и не работают 😦 вешают пульт
буду сегодня пробовать последнюю прошивку что фокус для ubd выложил

focus

Focus, ты перепутал. Я просил поменять местами руль высоты и газ, а ты поменял местами элероны и руль поворота. Теперь получается что перепутаны тримера на всех органах управления.

Мои извинения… 😃 Вот, поправил.

они у меня как раз и не работают вешают пульт
буду сегодня пробовать последнюю прошивку что фокус для ubd выложил

Она такая же как и предыдущая, только изменена скорость и привязка триммеров.

CVProject_Final1.2.rar

yura_v
focus:

Мои извинения… 😃 Вот, поправил.
Она такая же как и предыдущая, только изменена скорость и привязка триммеров.

Пришлось потереть еепром - полечило.

Припаял два потенциометра на проп и ад1
проп не каибруется и рисуется с ошибками - курсор кидает влево с определенной правой позиции.

мелкий недочёт - в меню controls назавания смещены на 1 писель вверх.

при введении имени модели последние буквы не отображаются сразу - только после перезагрузки

после некоторых действий разваливается max ch количество каналов - рисуется мусор и не работает.

ubd

Пришлось потереть еепром - полечило.

А нужно было пямять ЕЕПРОМ, сохранить отдельным файлом, а после обновления программы, загрузить его опять - все бы настройки сохранились…

Припаял два потенциометра на проп и ад1
проп не каибруется и рисуется с ошибками - курсор кидает влево с определенной правой позиции.

ад 1 не существует. Как я понял, есть только пять пропорциональных канала - элероны, руль высоты, газ, руль поворота и дополнительный канал, он подключается к 61 ноге, т.е. ADC0. Вот он как раз калибруется нормально.

мелкий недочёт - в меню controls назавания смещены на 1 писель вверх.

У меня всё нормально.

при введении имени модели последние буквы не отображаются сразу - только после перезагрузки

Это не страшно, можно питание выключить и включить. Лиш бы всё остальное работало…

yura_v
ubd:

А нужно было пямять ЕЕПРОМ, сохранить отдельным файлом, а после обновления программы, загрузить его опять - все бы настройки сохранились…

дык изза неё как раз и не работали юзерсы Поэтому пришлось тереть.

ад 1 не существует. Как я понял, есть только пять пропорциональных канала - элероны, руль высоты, газ, руль поворота и дополнительный канал, он подключается к 61 ноге, т.е. ADC0. Вот он как раз калибруется нормально.

а у меня такое впечатление что зашкал идёт.
Фокус, калибровка всех джойстков независима друг от друга?
Китайцы в моём пульте применили 5к резюки и задействовали среднюю зону 3.4к оставив по краям 810ом мёртвые зоны
А на пропы я поставил резюки на 20к …

У меня всё нормально.

не может быть. Зайди в controls потом в ailerons и увидишь что надпись вверху - Ailerons подпрыгнула на пиксел

Это не страшно, можно питание выключить и включить. Лиш бы всё остальное работало…

Это да но вот то что макс ch может развалиться напрягает. Вчера сделал модель - для сима назаначил 8 каналов и забыл
сегодня сунулся туда - мусор вместо цифры 8. Причём это не просто на экране мусор - оно в натуре не работает.

Вопрос: отображаются только три режима. Все остальные тумблеры давишь вслепую? swXX, kmodX, дуалы…
нигде не индицируются?

Из пожеланий:
калибровочный экран под mode2 переделать
сделать монитор всех контролов в цифре и миллисекундах
добавить проп2 на всякий случай - на вертолётных пультах до трёх крутилок бывает

скоро приедет ccpm верт и тогда точно всё скажу

yura_v

Залез в код
по поводу смещения на пиксель - да стоит 7 а не 8 в этих меню. Поправил.

по поводу prop
в math.c он присваивается ad[7] которого не существует - при компиляции ворнинг
есть подозрение что он не идёт в канал в результате этого.
if (AD[4]>0) input[7]=AD[4]*Kmax[4]/10;
else input[7]=AD[7]*Kmin[4]/10;

по поводу калибровки prop
я вывел в эран калибровки все значения в цифре AD[x] и проч
ubd - если у тебя калибруется нормально то значит у тебя абсолютное значение с ацп значительно меньше 1023
А у меня со всех джойстиков максимум 1023. Бага в следующем
В коде рисуется палка длиной 50 писелей и маркер.
x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;
lcd_rectangle(23,50,73,52,1);
lcd_fillrect(x2-1,48,x2+1,54,1);

как видно при умножении чисел от 656 до 1023 на 50 результат переполняет двухбайтовую внутреннюю переменную.
поэтому следует либо уменьшить длину полозка до 31 либо както навязать longint в процессе вычисления -
я не спец в си.

Фокус!Желательно проверить весь код на переполнение в процессе вычислений.

focus

x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;

у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃

yura_v
focus:

у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃

эти пофиг. к ним присвоение в самом конце. Главное с какой точностью вычисления делаются.
каков у тебя диапазон измений AD[i] ?

После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.

Кстати наверно не стоит при копировании модели копировать и её название.

jon_bear
yura_v:

После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.

Привет! А они загадились не после выключения-включения передатчика? у меня такое было, и решилось просто, спасибо VAD64 ! (см. Сообщение #503)

ubd

Рекомендую активизировать в процессоре систему BOD. При выключении питания напряжение спадает плавно, а при критически низком напряжении процессор может делать странные вещи, в том числе - портить EEPROM. Включенный BOD будет переводить проц в RESET при падении напряжения ниже заданного порога.

Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?

yura_v
ubd:

Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?

насколько из тех постов я понял - оба. если питание у меги 5 вольт. сам ещё не шил.

кстати а никто не хочет дописать тахометр для этого проекта?

Modris

Voznjiklji tupije voprosi pro organi upravljenija v peredat4ike po sheme kotoraja nahoditsa v arhive CVProject_Final_S:

1: kuda podsoedinjatj konektor JP4?
2: kakova vida pereklju4a4elji cifrovih kanalov JP8?
i kakaja ih funkcija

3: Kakaja poljza i kak ispoljzovatj dvoinije rashodi?
4: na 4to vlijajut “MOD K1” i “MOD K2”???
5: spasoben lji etot moduljator rabotatj sovmestno s sprijemnjikam Graupner FM??

kak posovetujete ustanavljivatj organi upravljenija v puljte?
Imejetsa korpus ot Graupner FM314.

ubd

1: kuda podsoedinjatj konektor JP4?

Никуда.

2: kakova vida pereklju4a4elji cifrovih kanalov JP8?
i kakaja ih funkcija

Это тумблеры, а SW2.1 и SW2.2 тумблер трёх позиционный средний вывод тумблера на минус.

3: Kakaja poljza i kak ispoljzovatj dvoinije rashodi?

Можно оперативно в полёте уменьшить или увеличить расходы рулей, на тол-во процентов которое запрограммируешь заранее на тумблеры которые отвечают за расходы.

4: na 4to vlijajut “MOD K1” i “MOD K2”???

Это режимы полёта. Это примерно то же самое что выбрать другие настройки передатчика прямо в полёте. Как бы загружается другая модель. В принципе на первых порах эти тумблеры можно даже не выводить на корпус.

5: spasoben lji etot moduljator rabotatj sovmestno s sprijemnjikam Graupner FM??

Да. Он способен работать с любым стандартным передатчиком.

kak posovetujete ustanavljivatj organi upravljenija v puljte?
Imejetsa korpus ot Graupner FM314.

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

yura_v

А есть у кого разводка в eagle? а то спринтлейаут под линухом не идёт зараза. А макеток больше нету.

yura_v

попробовал дописать осциллограф(точнее просто вывод сигнала) - добавил пункт меню в options
но выяснилось что если обращаться к ацп в этом пункте то оно либо вешается либо глюкает
Фокус, почему так?
Пришлось вынести это как калибровку на включение пульта.

с реальным сигналом попробовать ещё не успел
наводку от пальца кажет

void oscill (void)
{
unsigned char i;
int y0[95];

while (LEFT){
lcd_clear();
lcd_line(1,30,90,30,1);
for (i=1; i<95; i++){
read_adc(Rpop_contr);
y0[i]=ADCW;
}
for (i=1; i<95; i++) lcd_pixel(i,23-y0[i]/60,1);

lcd_refresh();
}
}

focus

Т.к. помо чтения АЦП из этой подпрограммы, оно еще читается в прерывании. Причем 100 раз в секунду… поэтому и виснет.

Korzoff

Уважаемые rulll и focus!

IMHO, в опубликованных вами архивах не хватает копирайта, лицензии и реквизитов для приема благодарности (в денежном эквиваленте).