Самодельный передатчик (часть 1)
Вот испаравленная прошивка. Исправлен глюк с восьмым каналом, поменяны местами триммеры на дисплее (Для Ubd). Скорость триммера уменьшена вдвое.
кто- нибудь пробовал собрать кодер на МЕГА8 и Индикатором от телефона например nokia3310??
По поводу использования меги 8 вот что могу сказать: про нормальное использование граф дисплея можно забыть - некуда девать буффер. Матеатика поместится. Но вот графику запихнуть проблема будет. Я делал первый кодер на меге16. Все с натяжкой влезло в нее. Прога выложена в начале ветки где-то.
Я делал первый кодер на меге16. Все с натяжкой влезло в нее.
Очень увлекаетесь конструкциями вроде lcd_pixel(8,24,1); Это занимает много места и работает долго. Напишите функцию вывода спрайтов и задавайте картинки (спрайты) в виде констант. Так как рисунок ч/б то можно кодировать 1 бит = 1 пиксел; это даст экономию по памяти и быстродействию.
Насчет резюка, на АРЕФ, его надо задвинуть в крайнее положение, т.е. на напряжение поданное на резюки. В противном случае повышая точность ацп мы теряем линейность. (нейтараль - вовсе не нейтраль, видно при калибровке). Выход?!? Диф. вход АЦП решит проблему, но Женя почему-то от него отказался… Почему??? Да потому, что с его резисторами (Хайтек) все клево, ибо у них ход равен ходу ручки. Наверно по этому… Соответственно, на АРЕФ у него, скорее всего 5в.
И что, нет смысла в этом переменном резисторе? Дело то в том что 5-ти килоомный резистор перемещается всего на 1 К в одну сторону и в другую 1К - амплитуда примерно 2К. Если подать на него 5В, то на выходе будет - в крайнем нижнем положении ручки 1,5В а в верхнем положении 3,5В. А на AREF нужно подать немного больше того что подаётся на аналоговые входы АЦП. Т.е. оптимально 4В. Значит этот переменный резистор очень нужен. В принципе, будет и с 5В работать… А линейность, линейность будет, ведь калибровка на то и нужна…
Focus, огромное тебе спасибо! Завтра прошъю на работе и посмотрю как всё будет работать.
Удачи всем!
А линейность, линейность будет, ведь калибровка на то и нужна…
Дык тогда надо всю логику подправить. Появившуюся нелинейность калибровка не спасет. Прошьешь - упидишь, при калибровке - “глазки” будут косые. Собственно и нейтраль машинок - тоже. С шайтековскими джойстиками проблем то нет, т.к. резистивное покрытие у них только в рабочем диаппазоне хода ручки. Тут как раз ставишь 5 вольт (или выкидываешь резистор) и все нормально, “глазки” не косые. А в вашем случае именно диф. вход предпочтителен.
А вопрос как один контрол засунуть в два канала с разными кривыми?
Это нужно во всех вертолётах с коллективным шагом
кривые шаг газ с одной ручки снимаются и могут быть весьма произвольными.
Насколько я понял кривая привязана к контролу и как тогда быть?
Последнюю прошивку ещё не пробовал а на этой при попытке зайти в users1 или users2 вешается и через несколько секунд сыпет мусор на экран
Переключатели режимов не запаяны. кроме нормала.
Focus, ты перепутал. Я просил поменять местами руль высоты и газ, а ты поменял местами элероны и руль поворота. Теперь получается что перепутаны тримера на всех органах управления.
А чувствительность тримеров, более менее нормальная стала. Хотя говорить так уверенно я не буду, нужно в полёте попробовать. Пока так оставим.
Focus, пожалуйста поправь ещё раз…
Ждём следующую версию…
_________.rar Дело то в том что 5-ти килоомный резистор перемещается всего на 1 К в одну сторону и в другую 1К - амплитуда примерно 2К. Если подать на него 5В, то на выходе будет - в крайнем нижнем положении ручки 1,5В а в верхнем положении 3,5В.
Вот таким образом изменил резисторы,хотя про токопроводящий клей уже писали.
Дискретность около 800
Поспешность и мерзкое отсутствие осцилоскопа сделали своё злое дело - начал летать на фпшнике - и прикладывал по комнате пока не сломал обе лопасти.И это при том что он у меня отстроенный и нормально управлялся на родном пульте.
Проблема переползания с китайских прошитых пультов следующая - надо точно знать что у них шло с каналов - сколько мс центр и каков размах. Потому как в делюксе пашет замечательно а на верте - не управляется нифига причем не сразу понятно почему.
Вопервых надо точно выставить центр по рудеру иначе гиры не хватает в какую либо сторону.
Во вторых я не знаю где китайцы замикшировали ревомикс - на пульте или на приёмнике
Поэтому повторяю свой вопрос - как отдать контрол (тягу) в два канала
в данном случае тяги и микс рудера - с разными кривыми?
Пожелание к прошивке будет такое - возможность замерять оригинальный и свой ппм и казать в цифрах
например в окне калибровки
Поэтому повторяю свой вопрос - как отдать контрол (тягу) в два канала
в данном случае тяги и микс рудера - с разными кривыми?Пожелание к прошивке будет такое - возможность замерять оригинальный и свой ппм и казать в цифрах
например в окне калибровки
Есть каналы Юзерс. Заходишь в меню, там выбираешь с какого джойстика брать инфу и забиваешь свою кривую. Проще некуда, все интуитивно понятно.
Есть каналы Юзерс. Заходишь в меню, там выбираешь с какого джойстика брать инфу и забиваешь свою кривую. Проще некуда, все интуитивно понятно.
понял
они у меня как раз и не работают 😦 вешают пульт
буду сегодня пробовать последнюю прошивку что фокус для ubd выложил
Focus, ты перепутал. Я просил поменять местами руль высоты и газ, а ты поменял местами элероны и руль поворота. Теперь получается что перепутаны тримера на всех органах управления.
Мои извинения… 😃 Вот, поправил.
они у меня как раз и не работают вешают пульт
буду сегодня пробовать последнюю прошивку что фокус для ubd выложил
Она такая же как и предыдущая, только изменена скорость и привязка триммеров.
Мои извинения… 😃 Вот, поправил.
Она такая же как и предыдущая, только изменена скорость и привязка триммеров.
Пришлось потереть еепром - полечило.
Припаял два потенциометра на проп и ад1
проп не каибруется и рисуется с ошибками - курсор кидает влево с определенной правой позиции.
мелкий недочёт - в меню controls назавания смещены на 1 писель вверх.
при введении имени модели последние буквы не отображаются сразу - только после перезагрузки
после некоторых действий разваливается max ch количество каналов - рисуется мусор и не работает.
Пришлось потереть еепром - полечило.
А нужно было пямять ЕЕПРОМ, сохранить отдельным файлом, а после обновления программы, загрузить его опять - все бы настройки сохранились…
Припаял два потенциометра на проп и ад1
проп не каибруется и рисуется с ошибками - курсор кидает влево с определенной правой позиции.
ад 1 не существует. Как я понял, есть только пять пропорциональных канала - элероны, руль высоты, газ, руль поворота и дополнительный канал, он подключается к 61 ноге, т.е. ADC0. Вот он как раз калибруется нормально.
мелкий недочёт - в меню controls назавания смещены на 1 писель вверх.
У меня всё нормально.
при введении имени модели последние буквы не отображаются сразу - только после перезагрузки
Это не страшно, можно питание выключить и включить. Лиш бы всё остальное работало…
А нужно было пямять ЕЕПРОМ, сохранить отдельным файлом, а после обновления программы, загрузить его опять - все бы настройки сохранились…
дык изза неё как раз и не работали юзерсы Поэтому пришлось тереть.
ад 1 не существует. Как я понял, есть только пять пропорциональных канала - элероны, руль высоты, газ, руль поворота и дополнительный канал, он подключается к 61 ноге, т.е. ADC0. Вот он как раз калибруется нормально.
а у меня такое впечатление что зашкал идёт.
Фокус, калибровка всех джойстков независима друг от друга?
Китайцы в моём пульте применили 5к резюки и задействовали среднюю зону 3.4к оставив по краям 810ом мёртвые зоны
А на пропы я поставил резюки на 20к …
У меня всё нормально.
не может быть. Зайди в controls потом в ailerons и увидишь что надпись вверху - Ailerons подпрыгнула на пиксел
Это не страшно, можно питание выключить и включить. Лиш бы всё остальное работало…
Это да но вот то что макс ch может развалиться напрягает. Вчера сделал модель - для сима назаначил 8 каналов и забыл
сегодня сунулся туда - мусор вместо цифры 8. Причём это не просто на экране мусор - оно в натуре не работает.
Вопрос: отображаются только три режима. Все остальные тумблеры давишь вслепую? swXX, kmodX, дуалы…
нигде не индицируются?
Из пожеланий:
калибровочный экран под mode2 переделать
сделать монитор всех контролов в цифре и миллисекундах
добавить проп2 на всякий случай - на вертолётных пультах до трёх крутилок бывает
скоро приедет ccpm верт и тогда точно всё скажу
Залез в код
по поводу смещения на пиксель - да стоит 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 в процессе вычисления -
я не спец в си.
Фокус!Желательно проверить весь код на переполнение в процессе вычислений.
x2=(AD[4]-ADmin[4])*50/(ADmax[4]-ADmin[4])+23 ;
у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃
у меня в проге они вообще типа unsigned char i,x2,y2; - 1байт, и все работает… странно даже. я сам шас глянул и удивился 😃
эти пофиг. к ним присвоение в самом конце. Главное с какой точностью вычисления делаются.
каков у тебя диапазон измений AD[i] ?
После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.
Кстати наверно не стоит при копировании модели копировать и её название.
После интенсивного тестинга обнаружил что опять загадились юзерсы. Придётся опять тереть еепром и все по новой.
Либо в еепром чтото случайно пишется например при копировании модели
либо у меня такая странная мега.
Привет! А они загадились не после выключения-включения передатчика? у меня такое было, и решилось просто, спасибо VAD64 ! (см. Сообщение #503)
Рекомендую активизировать в процессоре систему BOD. При выключении питания напряжение спадает плавно, а при критически низком напряжении процессор может делать странные вещи, в том числе - портить EEPROM. Включенный BOD будет переводить проц в RESET при падении напряжения ниже заданного порога.
Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?
Там во фьюзах есть BODLEVEL и BODEN. Какой из них ставить?
насколько из тех постов я понял - оба. если питание у меги 5 вольт. сам ещё не шил.
кстати а никто не хочет дописать тахометр для этого проекта?