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

focus

Предлагаю не особенно вдаваться в то, на каком проце делать будем. Кто-то любит AVR, кто-то - PIC. Тут самое главное алгоритм и математика. Вот я и предлагаю сделать упор на обсуждение именно этого. Очень хочется услышать мнение Vad64.

Psw

Двумя руками за ПИК. За ПИК18 или ПИК30 - особенно. Ассортимент ПИКа хороший в TRT.RU и они высылают по России штучно наложенным платежом почтой - получал. За Asm - потому как до С не дорос - только читаю со словарем. Схема в ПДФ сделана под А3, при ентом половина площади листа не использована ? У меня на столе только А4 принтер - на нем мелковато, но разглядел, не вопрос.
А аналоговые триммеры/расширители портов - это действительно надо ? Разве цифровое триммирование - это не благо ? Я на RD8000 насчитал примерно 20 кнопок которые единовременно только одна нажимается (управление меню/цифровые триммера) и 8 переключателей которые могут в любых положениях быть. Итого 4х5 матричная клава и максимум 8 дискретных входов. Ну и 4 традиционно аналоговых входа от ручек - вполне можно пробовать на 40 ног разбросать.
Хотя дисплей лучше думать какой-либо СПИ/И2Ц от сотовых телефонов - примеров пока нет, но этом случае один синхронный приемопередатчик будет маловато, а по 2 на борту только у 64 ног и более.
Кроме того - быть может за основу взять ПИК PIC18F4550-I/PT=$6,60 - доступен сейчас в Трт.Ру и содержит на борту USB2.0 среднескоростной контроллер на 32 ендпоинта?
И - кто будет координатором проекта, ну то есть кто подпишется под обязательством тратить на енто дело хотя бы по 10 часов в неделю в течение ближайшего года в лучшем случае ? За право в конце писать, что енто - ЕГО проект ? Менеджер ентого сайта Виталий Пузрин ? Мне кажется - у него нет столько времени (как минимум одна из причин). Хотя с точки зрения созидания макс удобного веб-интерфейса к публично ведомым проектам дело может ему показаться интересным. Даже на поисках такого добровольца дело может застопориться.
Ну и текстики лично я бы с большим удовольствием читал в *.ТХТ чем в *.ПДФ - хотя это не принципиально.
А там уже и интерфейс СПИ от передатчика к доступному готовому (дерьмовому по Рулл - но других доступных/готовых пока не встретил - довольствуемся тем что имеем ) цифровому радиомодулю трансивера 433-435 МГц - DP1205 который мной уже упоминался - для обратной связи и очень коротких антеннок - правда это уже 3 синхронных канала - 40 ног корпус ПИКи такие отсутствуют - только 64/80 ног. Кстати, в RD8000 стоит 100 ног МК - но он скорее всего напрямую разрядами ЖКИ управляет судя по разводке платы - потому и ног так много и ЖКИ такой убогий - так что по такому пути идти вряд-ли стоит - надо использовать стандартный индикатор с контроллером на борту.
Кстати, где-то прочел - не могу вспомнить где - что в России вроде как что-то там разрешено около 430-440 МГц для целей дистанционного управления моделями - просто этот диапазон не освоен из-за тех сложностей созидания ВЧ модулей.
С Уважением, Удачи всем в начинаниях …

Vad64
focus:

Тут самое главное алгоритм и математика. Вот я и предлагаю сделать упор на обсуждение именно этого. Очень хочется услышать мнение Vad64.

Мнение - по поводу чего? Микростар и его углубленное изучение мне не слишком интересны. Реализация микшеров для вертолетной аппаратуры, по-моему, довольно простая задача (про специфику других моделей я не в курсе). Математика там на уровне средней школы. АЦП - нормализация - учет триммера - линейная интерполяция по кривой - укладка в расходы - учет реверса - выдача в ШИМ (для РРМ). Какие конкретно проблемы?

PIC или AVR - дело вкуса (мне лично больше нравится Atmel). Я бы только посоветовал осторожно подойти к выбору процессора по количеству ресурсов. У меня в передатчике сейчас уже задействовано 18Кбайт флеша из 64 и 1.6 кбайт ОЗУ из 4. Правда, у меня Си-код и графический ЖКИ.

serj

Во-во!! количество ног считать обязательно надо! на мой прикид, 32-й меги будет достаточно. взваливать на один проц и общение с радиомодулем- тяжко. в модуле свой камень стоять должен- мега 8 как пример. Если народ будет падать на xemix, то следует иметь в виду, что там spi софтовый придется делать, ибо обмен там не 8-ми, а 14 битный…

однако я этого делать увы, не буду, мне эклипса хватает.

Andrey_K
Psw:


А аналоговые триммеры/расширители портов - это действительно надо ? Разве цифровое триммирование - это не благо ? …

В отношении триммеров я - ретроград.

Psw:


Кроме того - быть может за основу взять ПИК PIC18F4550-I/PT=$6,60 - доступен сейчас в Трт.Ру и содержит на борту USB2.0 среднескоростной контроллер на 32 ендпоинта?

Расцениваю это предложение как согласие представить текст программы на ассемблере. USB интерфейс для Микростар - большая проблема даже для американцев.

Psw:

И - кто будет координатором проекта …

Я не предлагал разрабатывать проект.
Я предлагал на примере Микростар изучить:

  1. Проблемы, которые решали схемотехник, математик, программист.
  2. КАК и почему именно ТАК решены проблемы. Анализ полученных результатов.
  3. Предложить другие возможные варианты решения проблем.

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

Кстати о проблемах. Вот одна из них.
Микростар - компьютерный передатчик. Большинство исходных чисел – результаты АЦП. Для проверки ‘что в черном ящике” Гордон Андерсон придумал п/п TestI0. Проверим, как работает? Транслируем файл MS18_12_05.asm. Программируем. Стартуем при нажатых кнопках OPTION и PRESET. Через 3 сек после появления на экране стартового сообщения отпускаем кнопки. Горит светодиод OVERRUN. Проверяем все кнопки и выключатели кроме OPTION. После нажатия и отпускания кнопки OPTION проверяем результаты АЦП. У меня при ПОСТОЯННОМ напряжении на входе результат АЦП не постоянный. Если это не цифровой шум, то что? А как в настоящем Микростар?
Предполагаю, что аналогично.
Предполагаю, что по этой причине Гордон придумал OverSample – четырехкратный последовательный опрос потенциометра с осреднением результатов. Транслируем файл MS19_12_05.asm. Программируем. Стало лучше, но результат АЦП по прежнему не постоянный. ВЫНУЖДЕН предпринять решительные меры. Ввел принудительное обнуление младшего бита результата OverSample. Файл MS20_12_05.asm. Результат воодушевляет. Но ПОЛНОСТЬЮ проблема не исчезла.
Может, обнулить два младших бита?
Кто знает, как решить проблему без внешнего АЦП?
Кто знает, как решают эту проблему Футаба или Хайтек?
Отзовитесь!

В моей MPLAB v6.50 какой-то шутник удалил из файла P18F452.INC часть текста, обеспечивавшего совместимость программ для PIC16 и PIC17 с системой команд PIC18. Если у кого-то есть эта проблема - воспользуйтесь прилагаемым файлом.

ВАЖНОЕ ЗАМЕЧАНИЕ. Мне не удается вывести информацию на вторую и четвертую строки дисплея АС-204. Если применяется АС-162 – константа LINE2 должна быть H’C0’!!!

А РРМ сигнал на выходе видели? Его ПОКА нельзя изменить, но…
Процесс пошел…

Может, остановимся? А то еще немного и …
……………
Акции Футабы падают…….
Хайтек на грани банкротства……
Graupner разводится с JR….
Санва затачивает нож для харакири…
Магазины, торгующие этим барахлом закрылись….
ИГВА воскресла….
……………………………………
Кошмар!!!

Еще одна важная проблема, которую стоит рассмотреть ДО того, как начать программировать – располагаемое время для вычислений.
Утверждаю: просматривается устойчивая ТЕНДЕНЦИЯ роста объема вычислений в компьютерных передатчиках.
Примерно через неделю попробую изложить как это решено в Микростар.

MS181920.ZIPСХЕМА_15_12_05_А4.ZIP

Vad64
Andrey_K:

У меня при ПОСТОЯННОМ напряжении на входе результат АЦП не постоянный. Если это не цифровой шум, то что?

Это похоже на шум АЦП. Не знаю, как ведет себя АЦП в новых чипах PIC, а в старых он шумел довольно сильно (насколько я помню). Вполне возможно также, что неправильно выбрана частота преобразования и/или не выдерживаются достаточные задержки при переключении каналов и при работе СВИХ.
С этой точки зрения мне нравятся контроллеры Atmel - их АЦП работает без мерцаний младших разрядов.
Также необходимо убедиться в отсутствии помех и наводок на сигнал при прохождении аналоговых мультиплексоров (прямое подключение потенциометров было бы более предпочтительным). После переключения канала мультиплексора должна быть достаточная задержка.

aromu
Vad64:

Это похоже на шум АЦП. Не знаю, как ведет себя АЦП в новых чипах PIC, а в старых он шумел довольно сильно (насколько я помню).

Всем добрый день.
На AT Mega 32 при частоте встроенного АЦП кажется 64 кГц
(если на память не путаю), частоте проца 8 МГц, при емкостях на входе АЦП - 10Н,
на сервах шума я на наблюдаю (задержек после переключения каналов АЦП нет),
(так же в тест режиме выводились результаты на индикатор, шумит на один младший бит.)
в другой проге (не передатчие) сделано по 30 измерений (с задержкой при переключении каналов)
а потом деление на 15, шума нет а точность измерения выше на 1 бит (т.е имеем как бы 11 бит АЦП).
В третей проге, при попытке загнать АЦП на макс. возможную частоту, оцифровать синусоиду
и вывести на граф. ЖКИ, синусоида перестала быть синусоедой, особенно если
переключать каналы с макс. возможной скоростью и давать разные сигналы на разные входа.
Из выше сказанного можно сделать вывод, что не надо загонять АЦП на высокую частоту,
и надо ставить конденсаторы по каждому каналу АЦП, тогда будет работать чисто, без проблем.
С уважением, Андрей.

klen_s

2_focus

А ты на GCC собранный под AVR перейти не хочешь. Преимущества - более быстрый код (только IAR может соперничать с GCC), постоянное обновления. Наличие всех средств написания и отладки. Про бесплатность я и не говорю.

mivaol

Здравствуйте Уважаемые!
Я тут немного написал на AVR могу и на обшаг кинуть хотя до логического конца ещё поработать надо.

klen_s
focus;222889

Трямс!
2 klen_s: я ни разу ССG не видел даже. Я смотрю, к нему в нете куча библиотек всяких разных.

Что использовать это дело каждого, но рекомендую попробывать и посмотреть. На это есть четыре веских причины хотябы пороывать:

  1. gcc под AVR дает отличный код оттранслированный с С.
  2. Немерянная куча библиотек, документации ( например под управление рулевыми машинками, бесколекторниками и всяко другого)
  3. поддержка новых устройств. Я сам правлю исходники gcc для поддерки новых устройств, собираю всю среду для разраотки и затем использую в AVRStudio.
  4. AVRStudio крайнего билда подерживает gcc.

Я сам с ICC перешел на gcc потомучто когда я захотел вставить ATmega48 в рулевую машинку то едиственным компиллером С поддерживающим в тот момент 48 был gcc. Кроме того ICC выдавал крайне отвратный код.

mivaol

Привет всем я обещал выложить свой недоделаный код вот и выкладываю с терпение вынесу все упреки 😃 Atmega128.rar

focus

Оказывается ссылки на варез кидать на форуме нельзя… Заработал себе продупреждение. А так хотелось поделиться.

Я вот часть менюшки накатал. если интересно кому - гляньте. Пока смамое начало. Все работает. Очень похожа на менюху Vad64.

Прошу извинить за качество фоток - сфоткано мобилкой

menu.rar

serj

Женя, МОЛОДЕЦ!!!

Продолжай так же!

Vad64
focus:

Я вот часть менюшки накатал. если интересно кому - гляньте. Пока смамое начало. Все работает. Очень похожа на менюху Vad64.

Евгений,
Я бы посоветовал изолировать отдельные модули проекта, а то сейчас все в одной куче - и железо и графика и ЖКИ. По мере роста проекта его будет трудно менеджить. Еще труднее будет проводить изменения, например, поменялся формат ЖКИ или тип интерфейса ЖКИ. Или кнопки переехали на другие ноги и т.д. Лучше попытаться сразу продумать структуру проекта так, чтобы модули не зависели от внутренностей друг друга, а общались между собой только через API. Как пример прикладываю свою разбивку. Может, разбивка не оптимальная, но мне она показалась довольно удобной в работе.

vad_headers.zip

nicetry

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

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

Симулятор сделан максимально модульным, дабы именть возможность варьировать переферию и задействовать максимальное количество рабочего (не эмулирующего) кода.
Исходники прилагаются, но чисто для референса - сильно порезанные (не обессутьте, ну не готов я пока).

Если программа не запускается из-за отсуствия msvcr71.dll, то её легко можно найти гуглем.

Psw

Это точно - режь последний огурец …
Если судить по количеству скачиваний то пока интерес к теме не у многих людей. Интересно всё-таки - а сколько людей подписалось бы каким-либо первоначальным денежным взносом в копилку реализации проекта ? В данном случае - Самодельного Нутра для Модельного Пульта Управления ?
Согласен с НайсТрай в его мнении - бесплатные бета-тестеры нужны авторам открытого кода - взаимополезное сотрудничество. Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.
Ну а раз уж основная инициативная группа сошлась во мнениях - какую линейку МК счесть более удобной/быстродействующей/перспективной и на каком языке писать - то для обхода уже найденными кем-то граблей хотя-бы между членами группы имело бы смысл опубликования всех наработок хотя бы внутри группы. К чему Вад64 и присоединился/предлагал давно - начал с обсуждения стандартов обмена настройками/параметрами моделей - вот и сейчас структуру проекта выложил.
Однако если проект будет двигаться Только Ради Самообучения - тогда и повторно на грабли можно наступать/код без опаски публиковать, а если (хотя бы с гипотетической и отдаленной) коммерческой реализацией типа выпуска нескольких десятков наборов из печатки/прошивки - тогда нужно платные мнения/голоса собирать в поддержку проекта на мой взгляд. Потому как исследование потенциального рынка сбыта - немаловажный этап в умении/успехе продавать. А уж если его сделать до того, как понести затраты на производство/разработку - так это вообще существенное снижение первоначального риска.
На чем мои нетрезвые мысли и завершаются. Модулятор (ASK) выключит за графоманство и некоторый офф-топ (односложные комментарии). Но всё-же для самоуспокоения написал.
С Уважением ко Всем,
Удачи в Начинаниях.

focus

1.По поводу написанного Psw: я ни от кого скрывать свой код не собираюсь, хотя и придерживаюсь экономиеских соображений. Но дело тут не в зароботке, а в экономии. Покупать новый передатьчик за 300 уе как-то жаба двит. А функций старого не хватает. Ну и конечно же я начал это дело для самообучения.
2. А совет Vad64 очень своевременный. Сейчас вот с хедерами и библиотеками разбираюсь сижу.

Сергей_Боровков
Psw:

Это точно - режь последний огурец …
Если судить по количеству скачиваний то пока интерес к теме не у многих людей. Интересно всё-таки - а сколько людей подписалось бы каким-либо первоначальным денежным взносом в копилку реализации проекта ? В данном случае - Самодельного Нутра для Модельного Пульта Управления ?
Согласен с НайсТрай в его мнении - бесплатные бета-тестеры нужны авторам открытого кода - взаимополезное сотрудничество. Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.

Давно уже подписался на эту тему и вижу, что в теме появляется конструктив, что очень радует.

Я готов подписаться.

Сам програмил AVR на асме года полтора-два назад, но сейчас растет дочка маленькая и на написание серьезного и большого кода, регулярное паяние у меня банально нет сил 😦 . Поделать с этим я ничего не могу, но могу участвовать в дискуссиях, тестировать что-либо, писать тех документацию. То есть делать то, что не требует обязательных непрерывных затрат времени.

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

nicetry

to all

Psw:

Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.

А зачем ? Те, кто был реально заинтересован - поинтересовались, а остальным и тут неплохо 😉
Еще замечу, что потерял интерес к теме не из-за НеСмены ника (это была лишь оследняя капля), а из-за того, что, в отличии от Сергея Боровкова, не вижу в ней конструктива. Наоборот, вовсю проступает басня Крылова “Лебедь, рак и щука”, ведь каждый тянет в свою сторону: один почил на лаврах, другой предлагает заниматься эксгумацией микростара, третьи ставят лично перед собой задачи несколько несопоставимые со своим уровнем подготовки… - каши из всего из этого не сваришь, так что я подозреваю, что через много-много дней воз будет и ныне там.
Вобщем, не поминайте лихом и счастливо оставаться! 😉

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 разрядов.