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

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 разрядов.
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 с намеками и просьбами, а займемся делом. Он поможет, обязательно, но надо делать а не просить!
Или купить в магазине и не париться!!!