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

gorbln
EagleB3:

Высокоомные входы в воздухе с длинными дорожками/проводами? Какая именно микросхема стояла?

Вроде всё по схеме, топологию я тоже не менял, всё как у всех. Грешу на микросхему, что она при определённых условиях начинала свистеть. Микруха HEF4066BT, производитель NXP.

Вообще, если есть возможность - сделать бы краткий FAQ, где и про фузы сказать, и про то, как заменять, например, файл драйвера экрана.
Ссылку, опять же, на сайт sites.google.com/site/samocoder/variantes, там много чего весьма дельного понаписано касательно сборки кодера. И кинуть этот фак на первую страницу темы. Ибо ваще нереально найти что-то в 2 темах по 50 страниц даже поисковиком, я уж молчу про внутренний поиск.

Про фьюзы - я ставил CKOPT, BODLEVEL, BODEN. Все остальные галочки снимал. Codevision. Вроде всё работает.

По поводу замены драйвера экрана. С согласия автора, пощщу его описание процесса прицепления драйвера для Nokia 1100 (в начале - мои вопросы):

Denn

>>> В проекте обязательно надо подключить 2 файла: 1100.h и 1100_Rus.lib
>>> А со старыми что сделать?

>>> И со шрифтами. Если я планирую использовать только один - толстый от MSV
>>> - мне всё остальное (включая 12х24) - закомментить? Правильно я понял?
_________________________________________________________________________________

Мой ответ:

  1. Выкинуть из проекта LCD3310.c и LCD.h и скопировать 1100.h и 1100_Rus.lib в папку проекта.
  2. В файле coder.c убрать строку #include “LCD_3320.h” и добавить #include <1100.h> или #include “1100.h”
  3. В файле 1100.h нужно сделать следующее:
  • указать адрес порта, к которому подключается дисплей ( sfrb LCD_PORT=0x12; ). Адрес можно найти в DataSheet.
    {
    Если используются ноги разных портов, то нужно править функцию void lcd_write(char cd,unsigned char c)
    в 1100_Rus.lib , где конкретно указать, какие ноги куда дёргать
    ( в CVAVR PORTB.3=1; - например , ( у себя я не пробовал, так как нет нужды )
    }
  • указвть, какие ноги отвечают за какие сигналы - #define sclk 3; //bit number 3 и т.д.
  1. В файле 1100_Rus.lib поставить или удалить комментарии на:
  • //#define Rotate // поворот дисплея на 180 градусов Вам закомментировать, если поворот не нужен
  • //#define Panda // вывод на экран от Panda Вам закомментировать
  • //#define font_8x5 // вывод на экран от Panda print_char … + LCD_boldU Вам закомментировать
  • #define font_8x8 // от MSV LCD_char + LCD_bold Вам оставить без комментария
  • //#define font_8x8F // от Фокуса LCD_char_F Вам закомментировать
  • //#define font_12_24 // вывод на экран от Panda , MSV и Фокуса Вам закомментировать

Это всё. Мне кажется, что для Меги 128 можно закомментировать только //#define Rotate - там места много в флэше, всё уберётся.

По поводу стека: для Меги 128 размер ОЗУ составляет 4 КБ, что с лихвой хватает на всё и размер стека менять не надо.
Для других МК с меньшим ОЗУ, в CVAVR в верхнем меню выбираем Project -> Cofigure -> C Compiler и меняем параметр Data Stack Size на нужную величину.

EagleB3
gorbln:

Вообще, если есть возможность - сделать бы краткий FAQ

Лично я не вижу содержания этого FAQ. Ничего нет такого, что не влезало бы в Readme, вложенного в архивы.
Если Вы возьметесь вести страницу FAQ - можно такую страницу сделать.

… где и про фузы сказать,

Добавил п.3 на страницу “ПО от msv (мейнстрим)”.

… и про то, как заменять, например, файл драйвера экрана

Это, КМК, не следует вписывать в FAQ. Потому, что каждый раз этот процесс будет сильно индивидуален. Наверное стоит описать описать этот процесс детально на странице с описанием своей конструкции. Типа: “конструкция на базе варианта <…> версии <…>, применен дисплей <…>
Драйвер дисплея прицеплял так: …”

Хотите - сделаем страницу с Вашим вариантом конструкции (и страницу FAQ, если возьметесь). Шлите мне в ЛС Ваши контактные данные.

gorbln
EagleB3:

Типа: "конструкция на базе варианта <…> версии <…>, применен дисплей <…>

Как только всё проверю - пошлю все данные.

Mininc

…А что такое “дифференциальное управление элеронами”? Что должно получиться в идеале?

Может и по другому называется… В идеале должно получится чтоб элероны вверх отклонялись на больше градусов чем вниз.

EagleB3
Mininc:

чтоб элероны вверх отклонялись на больше градусов чем вниз

Настройки -> Model -> Controls -> Ailerons и настраиваем расходы (Rates). Отдельно одинарные, отдельно - двойные. Отдельно в плюс, отдельно в минус. Поэтому там 4 числа.
Включаешь одинарный расход элеронов тумблером, отклоняешь джойстик и меняешь соответствующее число в Rates. Сразу видишь на сколько элерон отклонится. Перекидываешь джойстик и настраиваешь расход в другую сторону (соответствующее число). Потом перещелкиваешь расходы элеронов на двойные, и повторяешь процедуру для DRates.
Если закон отклонения должен быть нелинейным, там же настраиваем Curve.

Но есть тонкость: если требуется задавать максимальные точки отклонения (EPA), то сперва задаем EPA в каждую сторону (Настройки -> Model -> Channels -> Соответствующий канал -> EPA+, EPA-) и только потом - расходы.

Mininc

Как настроить это для одного канала я понимаю, но у меня 1 и 6 каналы замикшированные на 100%. Получается что когда 1й сильно вверх то второй сильно вниз. Кроме как применить сервореверсер или просто механически поставить качалку с другой стороны пока ни чего не придумал.

Aleksey_Gorelikov

Вариантов миллион. Можно использовать ЕПА, как уже посоветовали, только убедиться какой режим из трех режимов ЕПА выбран при компиляции, можно использовать виртуальные каналы и для каждого элерона задать свою кривую.

СашаЖ

Решил не курочить рабочую аппаратуру и прикупил ВЧ блок с приемником, работает великолепно сервы перемещаються плавно , дерготни не наблюдал.
буду все вживлять в корпус.

Aleksey_Gorelikov

Можно еще и телеметрию для кодера дописать. Только приемник другой нужен будет.

v61
Aleksey_Gorelikov:

Можно еще и телеметрию для кодера дописать.

Вот это было бы здорово! А то для Turnigy уже давно сделали, а для этого проекта до сих пор нету… Обидно!

Aleksey_Gorelikov:

Только приемник другой нужен будет

Наверное и передатчик тоже

Andr_2
v61:

Вот это было бы здорово! А то для Turnigy уже давно сделали, а для этого проекта до сих пор нету… Обидно!
Наверное и передатчик тоже

+99,9%
Всем хорош данный кодер,но своего хорошего передатчика и приёмника до сих пор нет.Хочется видеть его,в диапазоне 430-470мгц.В качестве радио тракта можно использовать схемотехнику УКВ трансиверов.Хорошо если приёмник будет супергетеродин с двойным преобразованием частоты.В приёмнике частота первого ПЧ, 10,7 мгц или 21,4мгц.Синтезатор частоты на LMX 2306 или LMX 2316,гетеродин с верху.То есть,частота гетеродина,минус частота ПЧ,равно частоте приёма.А индикатор настройки оставить от Нокии 3310 и частоту показаний в мгц ,до сотен герц.Плюс энергонезависимая память и настройки прошлой установки частоты.Добавить S-метр.А если к этому,добавить прошивку сканера и тогда можно сканировать,весь диапазон,прямо на модели,перед взлётом.
А если помечтать дальше,то так же возможно организовать канал телеметрии,хотя бы в трансиверном или в полном дуплексном режиме(на двух LMX 2306). Например: заряд батареи или пропадание сигнала.Потеря модели после падения тоже весьма насущная проблема,значит нужен режим “Лиса”. Возможно подумать о “Рите”-автоматический голосовой информатор и так далее.
В передатчике и приёмнике возможно использовать имеющиеся в широкой продаже радиокомпоненты, такие ,как:BF998,BFR93A,BFG540,BFG541,микросхемы MC3361,MC3371,CD4017 в декодере и т.д.
Вот это крутой будет комплекс радиоуправления.Начать обновление,конечно нужно с простого.

ubd

Есть готовые модули RFM22B 433, и ничего городить не нужно. Да же телеметрию можно сделать, т.к. это готовый трансивер. Нужно только привязать их к кодеру. Правда, дальность где то метров 400. Но этого вполне для среднестатистической модели.
А то что вы предлагаете, это не под силу 99% участникам форума. Сделать с нуля ВЧ модуль на 433, и приёмник 433 это нужно очень шарить в области постоения радиостанций, ВЧ схем, и уметь их настраивать. Я сам радиолюбитель, и знаю что такое УКВ диапазон. Чем выше частота, тем требовани к уровню квалификации электронщика ВЫШЕ. Я пробовал делать радиостанцию на 144 мгц, и у меня не получилось т.к. нет приборов соответвующих, и ещё опыта в этой области. Те кто хорошо умеет сделать и настраивать ВЧ техзнику, занимаются именно этим всю жизнь.

v61

Речь шла об интеграции в кодер телеметрийного радиоканала FrSky с выводом информации на дисплей кодера. А делать радиоканал с нуля - на сегодняшний день действительно нецелесообразно.

EagleB3
Andr_2:

но своего хорошего передатчика и приёмника до сих пор нет. Хорошо если приёмник будет…

Как сказано в одном анекдоте: “Пацаны не против”.
Делайте. Публикуйте конструкцию. Желающие повторить найдутся наверняка.

Andr_2

Без соответствующей подготовки в написании программ и всё что с этим связано не возможно создать нормальный продукт.
К этому нужно подходить комплексно,сообща,и железо и программы.Одних моих мозгов и времени на это не хватит.

Tigra74

Телеметрия-вывод дополнительной информации на экран дисплея-а если от N3310,то места там маловато.Как вариант-еще один экран для вывода информации и на модели доп. передающий модуль,а на пульте приемник+атмега8+экран N3310.

gorbln
Andr_2:

но своего хорошего передатчика и приёмника до сих пор нет.Хочется видеть его,в диапазоне 430-470мгц

Есть, но он сырой пока, я так понимаю. Сцыль

gorbln
Andr_2:

можно посмотреть здесь

Посмотреть, и закрыть. Надо скиллы изготовления радиоаппаратуры иметь 85 левела =). И времени свободного неограниченно.

Andr_2
ubd:

Есть готовые модули RFM22B 433, и ничего городить не нужно. Да же телеметрию можно сделать, т.к. это готовый трансивер. Нужно только привязать их к кодеру. Правда, дальность где то метров 400. Но этого вполне для среднестатистической модели.

gorbln:

Посмотреть, и закрыть. Надо скиллы изготовления радиоаппаратуры иметь 85 левела =). И времени свободного неограниченно.

Использовать готовые модули,конечно не возбраняется.А море свободно времени пропадает по совсем другим причинам.
Конечно же нужен опыт в монтаже и настройке радиоприёмных и передающих средств,плюс наличие соответствующего оборудования.
А кто говорил,что будет легко и всё получится,с первого раза?Конечно же проще посмотреть и закрыть,ни чего не делая,покупать у дядюшки Ляо,который тоже когда то,не имел ни опыта ни знаний.
Был здесь товарищ,сейчас живёт в Липецке,переехал на ПМЖ.Так вот он на коленке этот трансивер собрал и при наличии ВЧ приборов настроил его и работал на УКВ,в тестах.Так что,не так страшен чёрт,как его малюют.

gorbln
gorbln:

Как только всё проверю - пошлю все данные

Наконец-то дошли руки проверить подключение экранчика от Nokia 1110.

(картинка не моя, из интернетов)

Последовательность действий:

  1. Удалён из проекта LCD_3320.c
  2. Закомментирован везде (coder.c, displ.c, menu.c) инклюд на LCD_3320.h
  3. Добавлен везде (coder.c, displ.c, menu.c) инклюд на 1100.h
  4. В 1100.h закомментировано
    //sfrb LCD_PORT=0x12; // PORT D
  5. В 1100.h раскомментировано
    sfrb LCD_PORT=0x15; // PORT C
  6. Проставлены пины порта:
    #define sclk 7; //bit number 0 … 7
    #define sda 6; //bit number
    #define cs 5; //bit number - не используется, замкнут на LCD на землю
    #define rst 4; //bit number

Таким образом, новый дисплей подключается к пинам 4, 6 и 7 порта С. Пин 4 - нога 5 экранчика, пин 6 - нога 2, пин 7 - нога 1. Ноги 3 и 4 - замкнуты между собой, и идут на GND.
Ноги 9 и 10 у меня также между собой замкнуты, хотя напряжение на них нарисовано различное. У меня в эту точку подключено питание с платы (около 2.8 вольта).

Есть проблема: крайне низкая контрастность экрана (практически ничего не видно). Пока разбираюсь с этим вопросом, сдаётся мне, разница в напряжении 2.5 и 2.8 вольта была-таки не зря…

Экран 1110 хороший, только вот картинка занимает его далеко не полностью. Полагаю - надо как-то изменить интерфейс, “растянув” его на родные для этих дисплеев 96х68. Прощу помощи, сам не знаю как и что.

Найдены баги:

  1. не сохраняются настройки алармов батарейки. После выключения - алармы по умолчанию
  2. Крайне неправильное переключение режимов вертолёта. должно быть “THold - Normal - IdleUp”, а сейчас “Normal - IU - TH”. Получается, чтобы врубить холд, когда газ у меня убран в режиме нормал, мне надо проскочить режим Idle Up, в котором при таком положении газа - ротор раскручивается с бешеной скоростью. Это неправильно и вообще травмоопасно!
  3. Переключатель Throttle cut в режиме вертолёта мёртвый. То есть, он видится, индикация режима TCut на экране есть - но газ не убирается.

С режимами попробую разобраться (мне это очень не нравится) - о результатах расскажу.

1_9_HK_T6_N1110.zip