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

Andrey_K

Два! Толькл два настоящих любителя Микростар осталось.Тэд Сандер и Александр Молчунов. Глохнет тема. Жаль.

“А в чем проблема? Делайте MicroStar2000 - просто и открыто”- написал Vad64.

А я до сих пор не сделал. Главная причина, по которой я отказался повторять конструкцию Гордона – ретропроцессор. Для изменения и отладки программы необходим эмулятор. Дорого. Где же выход?
Преподаватели по марксистско-ленинской философии учили: если у вас есть сомнения, обратитесь к классикам. Достал из книжного шкафа фолиант “Гордон Андерсон. Полное собрание сочинений. Издательство RCdesign. Москва, 2165г.” (Твердый переплет, золотое тиснение, суперобложка).
На первой странице эпиграф: Do as I say, and not as I do!!! Twinman
Открыл документ “The Encoder. A Technical Discussion And Fabrication Notes. Gordon Anderson. September 6, 2001“. На стр.10 прочел: “…Please remember this is not a commercial product, its intended for the guy who likes to tinker a bit with RC radio equipment…You are also welcome to change the software as you like to build your our custom radio, but please do not sell or claim this development as your own, I have lots of work invested in this project.”
Предлагаю для тех, кто любит паять, схему устройства для экспериментов с программным обеспечением Микростар на PIC18F452.
Достоинства:

  • современный процессор в корпусе PDIP;
  • есть описание процессора на русском языке;
  • количество пропорциональных и дискретных органов управления м.б. увеличено;
  • можно проверить схемные решения, применяемые Футаба

Недостатки:

  • только некоторые программы с PIC17 м.б. автоматически перенесены на PIC18;
  • это не законченная схема кодера, это устройство для проверки решений Гордона и своих;
  • нелинейность результатов АЦП. Располагаемый диапазон результатов АЦП немного меньше 0…1023. А кто сказал, что будет легко? Я не случайно спрашивал у Vad64 про потенциометры. Это – отдельная проблема. Для изучения и изменения “под себя” п/п режима CAL и интерфейса пользователя вместо потенциометров AIL и ELE можно установить трехпозиционные тумблеры.

Резервы схемы:

  • переход на четырехпроводную шину данных индикатора высвободит 4 вывода PIC (если этого окажется недостаточно – возможны и другие варианты);
  • программная память PIC18F452 такая же, как у PIC17С766. MICROCHIP уже производит PIC18F4610 и PIC18F4680. Там в два раза больше памяти. Эти процессоры невозможно купить. Но это - временно, а до необходимости использования их ресурсов еще нужно ДОРАСТИ;
  • Предлагаемая внешняя память обеспечит хранение данных 16 моделей (по 512 байт для одной модели).

В одном из ответов мне Тед Сандер написал: “…Given Gordon’s time commitments, I think the best chance of fully understanding how it works will come when he’s ready to release the source code. Perhaps late this year…”
Будем ждать или продолжим?

PS. По поводу эпиграфа. Если среди читателей есть пользователи передатчика FUTABA8U, имеющие ПРАКТИЧЕСКИЙ опыт использования трансляционных таблиц в смесителях PMIX-6 и PMIX-7 и согласные потратить некоторое время, чтобы ответить на мои вопросы – отзовитесь.

Cхема_15_12_05.zip

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 купить невозможною Даже не нашел его характеристик… Может кто-нибудь помочь?