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

Andrey_K

Хочу вернуться к двум деталям.

  1. Цифровые триммеры. Если таковые применяются - обычно это триммеры джойстиков и на индикатор выводятся рисунки, позволяющие визуально определить положение триммера. Маленькие прямоугольные индикаторы для этого не подходят.
  2. Джойстики остаются проблемой. Судя по сообщению Vad64, SANVA применяет специальные потенциометры, у которых полное изменение сопротивления происходит при повороте на угол 90…120 градусов. Если кто-то знает марку и где можно купить такие потенциометры – просьба сообщить. Футаба применяет стандартные потенциометры. Сигнал 2,5 плюс/минус 0,5 Вольт усиливает в пять раз операционный усилитель C3508C после мультиплексора. Мне пока не удалось повторить такое решение с другим ОУ, а C3508C купить невозможною Даже не нашел его характеристик… Может кто-нибудь помочь?
Vad64
Andrey_K:

Хочу вернуться к двум деталям.

  1. Цифровые триммеры.
  2. Джойстики остаются проблемой.
  1. Цифровые триммеры более просты конструктивно, более гибки в использовании, могут выполнять несколько функций. Из-за распространности мобильных телефонов графические ЖКИ достаточно доступны и дешевы. Индикатор от Нокиа 3510, к-рый я применяю, стОит 150 руб.
  2. На мой взгляд, самое простое решение - запитать потенциометры от бОльшего напряжения. Скажем, при 7В питания потенциометров и 2.6-3.3В опорного напряжения АЦП получится искомый рабочий угол 90-120град. Правда, при этом придется подбирать механическое положение потенциометра.
    Возможны также другие схемотехнические решения.
    В конце концов, я не вижу большой проблемы в снижении эффективной разрядности джойстика с 10 до 8-8.5 разрядов.
Psw

Я тоже не вижу смысла в повышении разрядности положения ручек более 8 бит - потому как ТРЕМОР (непроизвольные сокращения мускулов) пальцев человека наверняка превышает те самые дольки градуса - если длинна ручки 50-80 мм, то отклонения в (величина младшего разряда для 8 бит) дольки градуса на кончике ручки - это путь в 0,3 мм примерно - выше величины тремора пальцев у большинства людей - не говоря уж про люфт в системе управления.
Путь с повышением питания потенциометров - ну мне поначалу показалось страшновато, хотя в свое время я предлагал именно такой путь самой простой коррекции датчика расхода воздуха для авто двигла - просто на всех выводах ПИКов (про Атмел думаю так же) стоят защитные диоды 20 мА на питание/землю - достаточно ограничивающего ток резистора на всяк случай.
А опер усилитель с питанием 5 вольт и входом/выходом от +Питания и до Земли (от линии до линии) если денег не жаль то к примеру OP491 www.platan.ru/cgi-bin/…/id=11151&group=150 от АналогДевайс инструментал - 4 штуки в корпусе ДИП-14 за 170 руб. Ну а уж сопротивления резисторов отрицательной ОС для *5 усиления - ну как-нибудь вычислите из имеющихся у Вас номиналов.
Вот только НеКратные степеням 2 края диапазонов на входе тащат за собой арифметику приведения к нужному диапазону, которая может порождать некоторую неоднородность. Неизвестно - заметную или нет.
А Вад64 всё-таки наблюдает за темой - хотя и не отступает от своей позиции НеПубликации исходного кода своих разработок Самодельного Кодера для Пульта Управления Моделями - и я по-прежнему в ентом вопросе с ним не согласен - хотя дополнительных к сказанным доводов у меня нет, но и его высказанные доводы в защиту точки зрения меня не убедили.
А про индикатор Пульта хорошо бы найти что-либо большое в диагонали и дешёвое (сказка) 256*256 монохром к примеру. Ну если уж всех так заводит GUI. Да ещё и Touch-Screen - вообще сказка. От наладонника 320*240 - и диагональ 3.5 дюйма - и нормальный размерчик, и цвет - все блага. Цены не искал, но менее $100 я надеюсь - вроде такую сумму мне называли барыги стоимость замены разбитого дисплея в наладоннике.
Один наладонник со свернутой самолично башкой (разрыв кабеля соединяющего голову и корпус) и экраном NEC 3" у меня уже валяется - в гарантии отказали, купил новый (однокорпусный - что-бы нечего было свернуть), первый ещё не отремонтировал. Или для цветных дисплеев с 240*320 разрешением ресурсов Атмела/ПИК30 маловато будет ? Потому как только экранный буфер 154 Кб - без внешнего ОЗУ не обойтись ?

Aleksey_Gorelikov

Vad64 правильно делает! Думаю очень правильно! Следит за темой, дает намеки как обойти те грабли, на которые он наткнулся. А отдавать свои наработки всем подряд - смысл? Чтоб всем подряд отвечать почему у них что-то работает не так как они хотят??? Сколько ему вопросов задавали по шнурку на USB? Там не работать просто нечему, однако не работает же у кого-то… Тот, кто МОЖЕТ хоть что-то - сделает сам ВСЕ, ЧТО ЗАХОЧЕТ! (со временем…) Он сделал разработку ДЛЯ СЕБЯ, под исключительно СВОИ нужды и так, как ЕМУ удобней! И доводить ее он будет только под себя, по мере необходимости и свободного времени. Сырой или малофункциональный продукт Вам нужен? Будете его улучшать? Сделаете лучше чем у автора? Тогда делайте с нуля! Мне свои проги писать проще, чем в чужих разбираться. Давайте отстанем от Vad-a с намеками и просьбами, а займемся делом. Он поможет, обязательно, но надо делать а не просить!
Или купить в магазине и не париться!!!

nicetry

очень дельное и информативное сообщение, а главное - по теме.

PS: всё-всё, уже ушел 😃

Vad64
Psw:

А про индикатор Пульта хорошо бы найти что-либо большое в диагонали и дешёвое (сказка) 256*256 монохром к примеру. Ну если уж всех так заводит GUI. Да ещё и Touch-Screen - вообще сказка. От наладонника 320*240 - и диагональ 3.5 дюйма - и нормальный размерчик, и цвет - все блага. Цены не искал, но менее $100 я надеюсь - вроде такую сумму мне называли барыги стоимость замены разбитого дисплея в наладоннике.

По-моему, это не слишком рационально с точки зрения соотношения функциональность/(цена+сложность). Необходимая информативность ЖКИ в передатчике не так уж велика - книжки с него не читать и фильмы не смотреть. Для организации красивого GUI большого формата придется делать довольно мощный графпакет и ресурсов он отожрет немеряно. Вписать конструктивно дисплей такого размера в существующий корпус тоже будет непросто.
Если хочется развесистое редактирование настроек, то по-моему, лучше уж использовать внешний редактор (на том же наладоннике). Т.е. изолировать модель данных и организовать хороший канал связи, как я предлагал в начале.

APA

Не надо загонятся с потенциометрами .
У многих МК входы АЦП можно запрограммировать как дифы, выставить середину и максимальный размах, и будете иметь до 10бит при напруге от 2 до 3 вольт, при 2.5 средних (1мВ на единицу АЦП) 😛
А триммеры лучше цифровые, т.е. кнопки 😃
А в остальном МОЛОДЦЫ!!! 😃

nicetry
Vad64:

По-моему, это не слишком рационально с точки зрения соотношения функциональность/(цена+сложность).

Просто для информации: я покупал рабочие ipaq 3660 с небольшими дефектами с рук за 500-600 руб, за эти деньги его и выбросить не жалко. При таком раскладе соотношение смещается, особенно если вспомнить что можно наваять в 32/64Мб памяти при процессоре в 200MHz. За такие деньги конечно придется еще поискать, но совсем несложно найти долл за 50, а это цена нормального ЖКИ (не от телефончика). Правда… если стоит сверхзадача собрать передатчик за гроши, то всё это не прокатит.

PS: теперь точно ушел.

mivaol
Vad64:
  1. На мой взгляд, самое простое решение - запитать потенциометры от бОльшего напряжения. Скажем, при 7В питания потенциометров и 2.6-3.3В опорного напряжения АЦП получится искомый рабочий угол 90-120град.

Привет всем!
А зачем повышать напряжение, когда можно подать на ногу AREF то напряжение которое максимально для угла отклонения вашего резистора. Ну и конечно выбрать опорное напряжение с AREF ноги.
Хотя я сам использую фирменные резисторы с аппаратуры грапнер314.
Думаю если кто-то знаком с электро-химией то можно часть резистора которая не работает покрыть медью или серебром.

APA

mivaol
Посмотри выше, написан простой и эффективный метод решения данной проблемы 😃 .
Для этого АЦП должно уметь работать с дифференциальными сигналами.
Почти все Меги это умеют, встречал и др. МК у которых это можно.
Просто на общий инверсный вход подается 2.5В(центр), а на Aref размах относительно центра.
Пример: на общий вход 2.5В, на Aref 1В -> 0=1.5В…1023=3.5В.
Посмотрите в доках 😃

focus

Доброго времени суток. Я переделал менюху. Написал библиотеку для дисплея. Кому интересно - гяньте.

Возник такой вопрос: какие готовые микшеры надо испоьзовать? (V-tail, Elevon, Flapperon. А какие еще нужны?)

menu.rar

anm
focus:

Возник такой вопрос: какие готовые микшеры надо испоьзовать? (V-tail, Elevon, Flapperon. А какие еще нужны?)

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

икс600

привет всем. Кто подскажет что за микрухи стоят в хайтеке двойки
в передатчике М 52460Р
и в приемнике 14013В

Andrey_K
anm:

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

Александр, а какие ограничения лучше: в процентах от какой-то величины (какой?) или в миллисекундах как в Микростар?

anm
Andrey_K:

Александр, а какие ограничения лучше: в процентах от какой-то величины (какой?) или в миллисекундах как в Микростар?

Думаю, что лучше в милисекундах. Это настройка общая для всех моделей и настраивается 1 раз. Если ставить в %, то не понятно от какого значения брать %.

Andrey_K
anm:

Думаю, что лучше в милисекундах. Это настройка общая для всех моделей и настраивается 1 раз. Если ставить в %, то не понятно от какого значения брать %.

Я ответ понял. Но, чтобы всем участнткам дискуссии было ясно о чем идет речь, повторю вопрос более развернуто и предложу еще несколько.

В описании FUTABA1024PCM я прочел, что числа 0…1023 соответствуют диапазону длительностей канальных импульсов 1520+/-600 мксек. Но фактически мой передатчик FC15 ограничивает диапазон канальных импульсов примерно 1520+/-500 мксек. В том числе ручка джойстика примерно +/-400 мксек, триммер джойстика примерно +/-100 мксек.(Даже если канальный потенциометр заменить на тумблер!)
ПРЕДПОЛАГАЮ, что числа +/-400 мксек и +/-100 мксек соответствуют 100% расходов ручки и триммера. Поскольку компьютерные передатчики Футаба допускают назначение расходов ручек, триммеров и нулей триммеров >100%, ПРЕДПОЛАГАЮ, что запас 100 мксек предназначен именно для этого.
Из известных мне передатчиков только в Микростар пользователь явно указывает длительность канальных импульсов. В остальных передатчиках пользователь вводит проценты. Пишу так подробно, т.к. считаю, что программист компьютерного передатчика обязательно должен указать в программе (если она доступна пользователю) и/или в инструкции по эксплуатации какому диапазону длительности канальных импульсов соответствует 100%. Крайне желательно хоть как-то обосновать принятые при программировании назначения и ограничения. В этом случае пользователь будет знать, а не угадывать логику программиста и понимать последствия сделанных им (пользователем) назначений тех или иных чисел.
Предлагаю участникам дискуссии высказаться по поводу того стоит ли вводить в интерфейс пользователя назначение длительности канального импульса в микросекундах.

Предлагаю еще несколько тем для дискуссии.

  1. В свободнопрограммируемых смесителях передатчика FUTABA 8U предусмотрена возможность выбора - влияет или не влияет триммер ведущего канала на ведомый канал. Какие мнения есть о необходимости такой возможности?
    Может кто-нибудь привести пример модели, где без вышеуказанной возможности не обойтись?

  2. FUTABA применяет внешнюю память (СamРАС).
    Какие мнения есть о необходимости такой возможности?
    И если есть только одна микросхема памяти - стоит ли делать ее быстросъемной?

  3. Традиционно в передатчиках предусматривают ф-ии D/R и EXPO для каналов AIL, ELE, RUD. Традиционно для включения этих ф-ий в полете могут программироваться выключатели.
    А что если заменить эти ф-ии универсальной ф-ей CURVE (она же трансляционная таблица, она же многоточечная кривая)?
    Стоит ли предусмотреть возможность назначения CURVE для всех восьми каналов?
    Стоит ли предусмотреть возможность программирования выключателей CURVE для всех восьми каналов?
    ПОДЧЕРКНУ, в п.3 речь едет о применении CURVE к нормализованным результатам АЦП канальных потенциометров до задействования каких-либо смесителей.

  4. Интерфейс пользователя-это вызов из памяти, изменение и запись в память каких-то чисел. Я так и не пришел к определенному выводу какие новые назначения должны вступать в силу немедленно а какие только после выхода из режима программирования. (Например, в Микростар до выхода из программирования в режиме CAL, изменения положений серво заблокированы.)
    Какие есть мнения?

  5. Традиционно модели делят на САМОЛЕТ, ПЛАНЕР, ВЕРТОЛЕТ. При этом внутри каждого типа есть еще деление ( планер с таким то числом серво в крыле, вертолет с таким то автоматом перекоса и т.д). Каждый подвид модели имеет свой набор смесителей. Такой подход сильно увеличивает число переменных.
    Может быть, стоит применять универсальные смесители как в Микростар?

  6. Какие мнения есть о необходимости наличия в передатчике таких ф-й как:

  • тахометр
  • контроль батареи приемника
  • программное назначение полярности РРМ сигнала
  • общее время работы передатчика после зарядки аккумулятора
  • программное ограничение числа передаваемых каналов тренер-ученик с передачей информации по кабелю или просто включением/выключением передатчика ученика как было раньше
focus:

Доброго времени суток. Я переделал менюху. Написал библиотеку для дисплея. Кому интересно - гяньте.

Возник такой вопрос: какие готовые микшеры надо испоьзовать? (V-tail, Elevon, Flapperon. А какие еще нужны?)

Отличный задел, Женя!
Неплохо предварить тексты программ анонсом, позволяющим оживить сухой текст и оценить возможности передатчика. (Меню без передатчика- нонсенс.)
Число пропорциональных каналов
Число дискретных каналов
Есть или нет внешние триммеры
Доступные смесители
Список переменных с указанием диапазона изменений
Органы управления (фиксированные или свободнопрограммируемые)

P.S. Периодически возникает мысль: УНИВЕРСАЛЬНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ. А почему нет? Для маленького экрана строка, за редким исключением, выглядит так:

<ТЕКСТ > <ЧИСЛО >

<ТЕКСТ > - это имя переменной или название следующего раздела меню
<ЧИСЛО > - всегда число, даже если на экране какой-то текст. Если <ЧИСЛО> - число, то допустимый диапазон чисел указывается при описании строки…

Если все строки не помещаются – автоматическая разбивка на страницы…

Как идея?

mivaol
Andrey_K:
  1. Традиционно модели делят на САМОЛЕТ, ПЛАНЕР, ВЕРТОЛЕТ. При этом внутри каждого типа есть еще деление ( планер с таким то числом серво в крыле, вертолет с таким то автоматом перекоса и т.д). Каждый подвид модели имеет свой набор смесителей. Такой подход сильно увеличивает число переменных.

А мне кажется что удобно самому замешать все что надо, сделав например четыре-девять отдельных режимов в которых отдельно можно увязать микшеры, расходы. При этом режимы менять чем-то програмируемым самим пользователем. А после саму модель обозвать тем или иным типом и в дальнейшем при настройке новой модели выбирать тип модели и достраивать под определенную модель.
Конечно к типу нужно привязывать только настройку микшеров(с какого канала на какой), расходы и проценты микшера толко в самой модели настраивать надо.
А классная идея как на футабе СamРАС делать но наличие внутренней памати хотябы на две модели надо тоже.
Самое главное в самодельной апаратуре это возможность апгрейда на программном уровне. Подключил к компу установил программу и перепрошил, вот это да! 😃

focus

Трямс! Давно не заходил… Все с предатчиком возился. И наконец доделал. Конечно фукнкций в нем не очень много, но все, что мне надо в нем есть, а имнно

Неплохо предварить тексты программ анонсом, позволяющим оживить сухой текст и оценить возможности передатчика. (Меню без передатчика- нонсенс.)
Число пропорциональных каналов
Число дискретных каналов
Есть или нет внешние триммеры
Доступные смесители
Список переменных с указанием диапазона изменений
Органы управления (фиксированные или свободнопрограммируемые)

Конечно фукнкций в нем не очень много, но все, что мне надо в нем есть, а имнно:

  1. 7 каналов, 5 пропорциональных, 2 дискртых (5 канал - 2 позиции, 6 канал - 3 позиции)
  2. Триммеры, цифровые в настройке каналов и обычные рядом с ручками
  3. Реверс
  4. Расходы на все каналы (верхний и нижний)
  5. Двойные расходы для 1,2,4 каналов (верхний и нижний)
  6. Кнопка выключения двигателя
  7. 3 микшера (V-tail, Elevon, Flapperon)
  8. Память на 5 моделей
  9. Таймер с пищалкой

Про органы управления - они фиксированные, распределение стандартное:
1 элероны
2 элеватор
3 газ
4 поворот
5 шасси
6 закрылки
7 просто канал 😃

P.S. Периодически возникает мысль: УНИВЕРСАЛЬНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ. А почему нет? Для маленького экрана строка, за редким исключением, выглядит так:

У меня тоже возникала, но так и не получилость. Моя менюха мне наиболее понятна, и менеджить ее мне было просто…

Вот выкладываю окончательный вариант кода с библиотекой и фотки:
Еще схему выкладываю.

TX.rar

Prikupets

А экспонента будет? Могу помочь с реализацией 😃

focus

А экспонента будет? Могу помочь с реализацией

Хотел сделать, она даже была в изначальном варианте менюшки как опция. Но возникли проблемы. В Курске удалось достать только мегу 16, а у меня программа сейчас занимает тоже примерно 16кб. Так что экспоненту всовывать у меня некуда. Я вообще еще хотел туда функций впихнуть(маппинг, настраиеваемые микшеры, разные типы моделей, и т.д.) Поэтому я эти части разрабатывать не стал.
Для дальнейших апгрейдов я хочу себе мегу128, чтобы памяти наверняка хватило, но под заказ она у нас стоит больше 500р…

P.S. Сегодня облетал пульт - все ОК. Глюков не замечено. Конечно со старым путьтом это не сравнить. 😃

Doka

эх… тоже чтоли поучавствовать!? =)

focus:

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

есть два пути решения:

  1. использовать не табличный метод вычисления, а кусочно-линейную аппроксимацию. Это довольно распространенный метод. Более того он стандартизован (комитетом по телекоммуникациям . рекомендация ITU-T G.711 - для более полной инф.) чтобы было понятно о чем речь - прикрепляю файл, иллюстрирующий сам принцип (см. Figure1).
  2. использовать внешнюю память 24Схх, куда поместить все таблицы, массивы шрифтов, etc.
    При этом появится некий overhead во время выполнения программы. хотя, IMHO, с вашей тактовой и интенсивностью вычисления новых значений - это мало скажется на производительности.
    макс.объем доступных на сегодняшнй день 24Схх: 64-128Кбайт.
    там хранить и пресеты для разных типов моделей.
    успехов!

g711_pcm.zip