Самодельный передатчик (часть 1)
Тут самое главное алгоритм и математика. Вот я и предлагаю сделать упор на обсуждение именно этого. Очень хочется услышать мнение Vad64.
Мнение - по поводу чего? Микростар и его углубленное изучение мне не слишком интересны. Реализация микшеров для вертолетной аппаратуры, по-моему, довольно простая задача (про специфику других моделей я не в курсе). Математика там на уровне средней школы. АЦП - нормализация - учет триммера - линейная интерполяция по кривой - укладка в расходы - учет реверса - выдача в ШИМ (для РРМ). Какие конкретно проблемы?
PIC или AVR - дело вкуса (мне лично больше нравится Atmel). Я бы только посоветовал осторожно подойти к выбору процессора по количеству ресурсов. У меня в передатчике сейчас уже задействовано 18Кбайт флеша из 64 и 1.6 кбайт ОЗУ из 4. Правда, у меня Си-код и графический ЖКИ.
Во-во!! количество ног считать обязательно надо! на мой прикид, 32-й меги будет достаточно. взваливать на один проц и общение с радиомодулем- тяжко. в модуле свой камень стоять должен- мега 8 как пример. Если народ будет падать на xemix, то следует иметь в виду, что там spi софтовый придется делать, ибо обмен там не 8-ми, а 14 битный…
однако я этого делать увы, не буду, мне эклипса хватает.
…
А аналоговые триммеры/расширители портов - это действительно надо ? Разве цифровое триммирование - это не благо ? …
В отношении триммеров я - ретроград.
…
Кроме того - быть может за основу взять ПИК PIC18F4550-I/PT=$6,60 - доступен сейчас в Трт.Ру и содержит на борту USB2.0 среднескоростной контроллер на 32 ендпоинта?
…
Расцениваю это предложение как согласие представить текст программы на ассемблере. USB интерфейс для Микростар - большая проблема даже для американцев.
…
И - кто будет координатором проекта …
Я не предлагал разрабатывать проект.
Я предлагал на примере Микростар изучить:
- Проблемы, которые решали схемотехник, математик, программист.
- КАК и почему именно ТАК решены проблемы. Анализ полученных результатов.
- Предложить другие возможные варианты решения проблем.
Схема предложена для тех, кто любит паять и кому скучно просто читать про проблемы.
Кстати о проблемах. Вот одна из них.
Микростар - компьютерный передатчик. Большинство исходных чисел – результаты АЦП. Для проверки ‘что в черном ящике” Гордон Андерсон придумал п/п 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….
Санва затачивает нож для харакири…
Магазины, торгующие этим барахлом закрылись….
ИГВА воскресла….
……………………………………
Кошмар!!!
Еще одна важная проблема, которую стоит рассмотреть ДО того, как начать программировать – располагаемое время для вычислений.
Утверждаю: просматривается устойчивая ТЕНДЕНЦИЯ роста объема вычислений в компьютерных передатчиках.
Примерно через неделю попробую изложить как это решено в Микростар.
У меня при ПОСТОЯННОМ напряжении на входе результат АЦП не постоянный. Если это не цифровой шум, то что?
Это похоже на шум АЦП. Не знаю, как ведет себя АЦП в новых чипах PIC, а в старых он шумел довольно сильно (насколько я помню). Вполне возможно также, что неправильно выбрана частота преобразования и/или не выдерживаются достаточные задержки при переключении каналов и при работе СВИХ.
С этой точки зрения мне нравятся контроллеры Atmel - их АЦП работает без мерцаний младших разрядов.
Также необходимо убедиться в отсутствии помех и наводок на сигнал при прохождении аналоговых мультиплексоров (прямое подключение потенциометров было бы более предпочтительным). После переключения канала мультиплексора должна быть достаточная задержка.
Это похоже на шум АЦП. Не знаю, как ведет себя АЦП в новых чипах PIC, а в старых он шумел довольно сильно (насколько я помню).
Всем добрый день.
На AT Mega 32 при частоте встроенного АЦП кажется 64 кГц
(если на память не путаю), частоте проца 8 МГц, при емкостях на входе АЦП - 10Н,
на сервах шума я на наблюдаю (задержек после переключения каналов АЦП нет),
(так же в тест режиме выводились результаты на индикатор, шумит на один младший бит.)
в другой проге (не передатчие) сделано по 30 измерений (с задержкой при переключении каналов)
а потом деление на 15, шума нет а точность измерения выше на 1 бит (т.е имеем как бы 11 бит АЦП).
В третей проге, при попытке загнать АЦП на макс. возможную частоту, оцифровать синусоиду
и вывести на граф. ЖКИ, синусоида перестала быть синусоедой, особенно если
переключать каналы с макс. возможной скоростью и давать разные сигналы на разные входа.
Из выше сказанного можно сделать вывод, что не надо загонять АЦП на высокую частоту,
и надо ставить конденсаторы по каждому каналу АЦП, тогда будет работать чисто, без проблем.
С уважением, Андрей.
2_focus
А ты на GCC собранный под AVR перейти не хочешь. Преимущества - более быстрый код (только IAR может соперничать с GCC), постоянное обновления. Наличие всех средств написания и отладки. Про бесплатность я и не говорю.
Здравствуйте Уважаемые!
Я тут немного написал на AVR могу и на обшаг кинуть хотя до логического конца ещё поработать надо.
Трямс!
2 klen_s: я ни разу ССG не видел даже. Я смотрю, к нему в нете куча библиотек всяких разных.
Что использовать это дело каждого, но рекомендую попробывать и посмотреть. На это есть четыре веских причины хотябы пороывать:
- gcc под AVR дает отличный код оттранслированный с С.
- Немерянная куча библиотек, документации ( например под управление рулевыми машинками, бесколекторниками и всяко другого)
- поддержка новых устройств. Я сам правлю исходники gcc для поддерки новых устройств, собираю всю среду для разраотки и затем использую в AVRStudio.
- AVRStudio крайнего билда подерживает gcc.
Я сам с ICC перешел на gcc потомучто когда я захотел вставить ATmega48 в рулевую машинку то едиственным компиллером С поддерживающим в тот момент 48 был gcc. Кроме того ICC выдавал крайне отвратный код.
Привет всем я обещал выложить свой недоделаный код вот и выкладываю с терпение вынесу все упреки 😃 Atmega128.rar
Оказывается ссылки на варез кидать на форуме нельзя… Заработал себе продупреждение. А так хотелось поделиться.
Я вот часть менюшки накатал. если интересно кому - гляньте. Пока смамое начало. Все работает. Очень похожа на менюху Vad64.
Прошу извинить за качество фоток - сфоткано мобилкой
Женя, МОЛОДЕЦ!!!
Продолжай так же!
Я вот часть менюшки накатал. если интересно кому - гляньте. Пока смамое начало. Все работает. Очень похожа на менюху Vad64.
Евгений,
Я бы посоветовал изолировать отдельные модули проекта, а то сейчас все в одной куче - и железо и графика и ЖКИ. По мере роста проекта его будет трудно менеджить. Еще труднее будет проводить изменения, например, поменялся формат ЖКИ или тип интерфейса ЖКИ. Или кнопки переехали на другие ноги и т.д. Лучше попытаться сразу продумать структуру проекта так, чтобы модули не зависели от внутренностей друг друга, а общались между собой только через API. Как пример прикладываю свою разбивку. Может, разбивка не оптимальная, но мне она показалась довольно удобной в работе.
хотел к НГ довести до презентабельного состояния и выложить на этом форуме (типа финальный аккорд перед уходом на другой форум), но раз пошла такая пьянка, то похоже теперь моя очередь - выложу что есть.
Времени для работы над проектом удаётся выделять немного, так что дальше меню я тоже пока не дошел, однако направил свои усилия главным образом на создание добротного эмулятора. Считаю это очень важным моментом, т.к. он позволит комфортно обкатывать большую часть алгоритмов и съэкономит гораздо больше затраченного на него времени. При разработке больше ориентировался на внутреннюю “правильность и красоту”, так что внешних проявлений немного, но достаточно чтобы почуствовать, что всё настоящее.
Симулятор сделан максимально модульным, дабы именть возможность варьировать переферию и задействовать максимальное количество рабочего (не эмулирующего) кода.
Исходники прилагаются, но чисто для референса - сильно порезанные (не обессутьте, ну не готов я пока).
Если программа не запускается из-за отсуствия msvcr71.dll, то её легко можно найти гуглем.
Это точно - режь последний огурец …
Если судить по количеству скачиваний то пока интерес к теме не у многих людей. Интересно всё-таки - а сколько людей подписалось бы каким-либо первоначальным денежным взносом в копилку реализации проекта ? В данном случае - Самодельного Нутра для Модельного Пульта Управления ?
Согласен с НайсТрай в его мнении - бесплатные бета-тестеры нужны авторам открытого кода - взаимополезное сотрудничество. Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.
Ну а раз уж основная инициативная группа сошлась во мнениях - какую линейку МК счесть более удобной/быстродействующей/перспективной и на каком языке писать - то для обхода уже найденными кем-то граблей хотя-бы между членами группы имело бы смысл опубликования всех наработок хотя бы внутри группы. К чему Вад64 и присоединился/предлагал давно - начал с обсуждения стандартов обмена настройками/параметрами моделей - вот и сейчас структуру проекта выложил.
Однако если проект будет двигаться Только Ради Самообучения - тогда и повторно на грабли можно наступать/код без опаски публиковать, а если (хотя бы с гипотетической и отдаленной) коммерческой реализацией типа выпуска нескольких десятков наборов из печатки/прошивки - тогда нужно платные мнения/голоса собирать в поддержку проекта на мой взгляд. Потому как исследование потенциального рынка сбыта - немаловажный этап в умении/успехе продавать. А уж если его сделать до того, как понести затраты на производство/разработку - так это вообще существенное снижение первоначального риска.
На чем мои нетрезвые мысли и завершаются. Модулятор (ASK) выключит за графоманство и некоторый офф-топ (односложные комментарии). Но всё-же для самоуспокоения написал.
С Уважением ко Всем,
Удачи в Начинаниях.
1.По поводу написанного Psw: я ни от кого скрывать свой код не собираюсь, хотя и придерживаюсь экономиеских соображений. Но дело тут не в зароботке, а в экономии. Покупать новый передатьчик за 300 уе как-то жаба двит. А функций старого не хватает. Ну и конечно же я начал это дело для самообучения.
2. А совет Vad64 очень своевременный. Сейчас вот с хедерами и библиотеками разбираюсь сижу.
Это точно - режь последний огурец …
Если судить по количеству скачиваний то пока интерес к теме не у многих людей. Интересно всё-таки - а сколько людей подписалось бы каким-либо первоначальным денежным взносом в копилку реализации проекта ? В данном случае - Самодельного Нутра для Модельного Пульта Управления ?
Согласен с НайсТрай в его мнении - бесплатные бета-тестеры нужны авторам открытого кода - взаимополезное сотрудничество. Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.
Давно уже подписался на эту тему и вижу, что в теме появляется конструктив, что очень радует.
Я готов подписаться.
Сам програмил AVR на асме года полтора-два назад, но сейчас растет дочка маленькая и на написание серьезного и большого кода, регулярное паяние у меня банально нет сил 😦 . Поделать с этим я ничего не могу, но могу участвовать в дискуссиях, тестировать что-либо, писать тех документацию. То есть делать то, что не требует обязательных непрерывных затрат времени.
Готов проанализировать работу пользовательских интерфейсов передатчиков, до которых смогу дотянуться и сообщить результаты. По-моему очень важно не упереться в ошибку, которую очень часто делали раньше при изготовлении программ и устройста - нужно четко понимать, что интерфейс - это одна из главных частей программы и на разработку самого интерфейса (не его реализацию) надо потратить довольно много времени.
to all
Жаль правда, что из-за НеСмены ника он решил перейти на другой форум - но хоть бы сказал на какой.
А зачем ? Те, кто был реально заинтересован - поинтересовались, а остальным и тут неплохо 😉
Еще замечу, что потерял интерес к теме не из-за НеСмены ника (это была лишь оследняя капля), а из-за того, что, в отличии от Сергея Боровкова, не вижу в ней конструктива. Наоборот, вовсю проступает басня Крылова “Лебедь, рак и щука”, ведь каждый тянет в свою сторону: один почил на лаврах, другой предлагает заниматься эксгумацией микростара, третьи ставят лично перед собой задачи несколько несопоставимые со своим уровнем подготовки… - каши из всего из этого не сваришь, так что я подозреваю, что через много-много дней воз будет и ныне там.
Вобщем, не поминайте лихом и счастливо оставаться! 😉
Хочу вернуться к двум деталям.
- Цифровые триммеры. Если таковые применяются - обычно это триммеры джойстиков и на индикатор выводятся рисунки, позволяющие визуально определить положение триммера. Маленькие прямоугольные индикаторы для этого не подходят.
- Джойстики остаются проблемой. Судя по сообщению Vad64, SANVA применяет специальные потенциометры, у которых полное изменение сопротивления происходит при повороте на угол 90…120 градусов. Если кто-то знает марку и где можно купить такие потенциометры – просьба сообщить. Футаба применяет стандартные потенциометры. Сигнал 2,5 плюс/минус 0,5 Вольт усиливает в пять раз операционный усилитель C3508C после мультиплексора. Мне пока не удалось повторить такое решение с другим ОУ, а C3508C купить невозможною Даже не нашел его характеристик… Может кто-нибудь помочь?
Хочу вернуться к двум деталям.
- Цифровые триммеры.
- Джойстики остаются проблемой.
- Цифровые триммеры более просты конструктивно, более гибки в использовании, могут выполнять несколько функций. Из-за распространности мобильных телефонов графические ЖКИ достаточно доступны и дешевы. Индикатор от Нокиа 3510, к-рый я применяю, стОит 150 руб.
- На мой взгляд, самое простое решение - запитать потенциометры от бОльшего напряжения. Скажем, при 7В питания потенциометров и 2.6-3.3В опорного напряжения АЦП получится искомый рабочий угол 90-120град. Правда, при этом придется подбирать механическое положение потенциометра.
Возможны также другие схемотехнические решения.
В конце концов, я не вижу большой проблемы в снижении эффективной разрядности джойстика с 10 до 8-8.5 разрядов.
Я тоже не вижу смысла в повышении разрядности положения ручек более 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 Кб - без внешнего ОЗУ не обойтись ?
Vad64 правильно делает! Думаю очень правильно! Следит за темой, дает намеки как обойти те грабли, на которые он наткнулся. А отдавать свои наработки всем подряд - смысл? Чтоб всем подряд отвечать почему у них что-то работает не так как они хотят??? Сколько ему вопросов задавали по шнурку на USB? Там не работать просто нечему, однако не работает же у кого-то… Тот, кто МОЖЕТ хоть что-то - сделает сам ВСЕ, ЧТО ЗАХОЧЕТ! (со временем…) Он сделал разработку ДЛЯ СЕБЯ, под исключительно СВОИ нужды и так, как ЕМУ удобней! И доводить ее он будет только под себя, по мере необходимости и свободного времени. Сырой или малофункциональный продукт Вам нужен? Будете его улучшать? Сделаете лучше чем у автора? Тогда делайте с нуля! Мне свои проги писать проще, чем в чужих разбираться. Давайте отстанем от Vad-a с намеками и просьбами, а займемся делом. Он поможет, обязательно, но надо делать а не просить!
Или купить в магазине и не париться!!!