Smalltim OSD and autopilot (часть 2)
[QUOTE=smalltim;2455822]Приветствую, коллеги.
Пока был 2 недели в стране заморской, в полетах (почти сутки в одну сторону блть!)
В Африке?
Всем привет!
Если оторвать отсюда модуль GPS
www.leapsecond.com/pages/MG1613S
его можно приладить к телеметрии?
to smalltim Тимофей, а есть возможность выложить исходники прошивки телеметрии свежее, чем 252?
P.S. С такими комментариями, как в исходниках - любой школьник разберется как скорректировать прошивку под 150А датчик тока или добавить/убрать поддержку старых/новых GPS. Такой красивый код с такими комментариями вызывает не просто уважение - ВОСХИЩЕНИЕ! Как программист программисту - РЕСПЕКТ!
Хех, спасибо 😃
На самом деле, асмовый код читать и писать тяжело, поэтому все комментарии я для себя делал, чтобы потом, скажем, через год, волосы не рвать на голове - " а как же я тут всё считал?"
Рад, что оказалось полезно 😃 Насчет того, что код красивый - не уверен. Компактный - да, в 8к столько запихать - подвиг. А вот красивый - ммээээ…
Попрошу ребят, чтобы выложили исходники самой свежей прошивки.
Компактный - да, в 8к столько запихать - подвиг. А вот красивый - ммээээ…
Во-первых, компактность само по себе уже красиво.
Во-вторых, вместо мешанины непонятных цифр, битов, гонений туда-сюда по регистрам непонятно чего - все расписано, разложено, все последовательно по полочкам, переменные заведены, все как по нотам…
НО! Вот тут мне непонятно:
Смотрю прошивку 252, это одна из последних перед переходом с утюжной платы на мини-телеметрию. Код, где считаем амперы. Комментарий говорит сам за себя:
; 100A corresponds to 4.5V of current sensor output, 0A is 2.5V
; it means 32768 samples for 0A and 65536*4.5/5=58982 samples for 100A
; full range is 58982-32768=26214 samples or 0.003814697265625 A per sample
; to get Ampers (*100 because I want 2 decimal digits) I have to multiply samples * 0.005086 A per sample and * 100,
; it gives Current = samples * 0.003814697265625, or Current = samples * 25000 / 65536;
Вот только по схеме и по плате напряжение с датчика ADC6 проходит через делитель 1/3. Что это и как? Ведь вроде прошивка работала и платы летали… Проверил у себя, показания врут в три раза… Или была хитрость и нижнее плечо выпаивали?
Попрошу ребят, чтобы выложили исходники самой свежей прошивки.
Тимофей, на сайте в нижнем меню не работает ссылка “Телемерия - Прошивки”. Поправьте. Строка “smalltim.ru/production/autopilot/…/firmwares/#"”
Добавление полёта по точкам это хорошо конечно, но почему только 3?
Или была хитрость и нижнее плечо выпаивали?
Да, выпаивали.
Добавление полёта по точкам это хорошо конечно, но почему только 3?
Чтоб халява не была безбрежной. Еще и ограничение на дальность будет.
Отчитываюсь.
На прошлой неделе воодушевленный успехами Zinchenko раскопал в закромах спаяную почти год назад на макетке телеметрию. Использована мега в диповом корпусе. После нескольких проверок и восстановления в памяти доделок/недоделок мега была прошита. Но первый запуск успехом не увенчался. После нескольких часов колдовства все запустилось. Первое, что сделал - выпял и впаял новую LM1881, не помогло. Затем выяснилось - на ноге питания LM1881 после указанного на схеме резистора в 4.7ком появлялось не 5в, а 2,4в. Резистор замкнул, изображение появилось. Много криков УРА!!! Но тяга к истине заставила выпаять LM1881 еще раз. Ну и дурак. Убедился, что первая LM-ка действительно была мертвой (или к этому привела выпайка-впайка). По даташитам различий между диповой и сотовой LM1881 быть не должно, однако сейчас телеметрия работает только с непосредственной подачей +5в на ногу питания.
Но смотреть на изображение телеметрии, где смысл несут только две цифры - напряжения питающих двух банок - скучно. 😃 Поэтому был расковырян сгоревший год назад древнейший CompactFlash GPS. Год назад было выяснено, что реально сгорел только контроллер CF, а сам модуль, с возможностью питания как +3.3 так и +5в (грамотно сделано, на модуле два разъема под разное питание с разной распиновкой, не ошибешься и в то же время универсально). Завел GPS, пошел на “рыбалку”. Но с подоконника ничего не наловил. На следующий день под чистым солнечным небом улов был намного лучше. GPS принес 9 спутников, телеметрия оживилась новыми циферками и шевелениями значочков.
Следующим шагом стали датчики. Датчик температуры проблем не представлял, в продаже их полно, стоит не безбожных денег (если не покупать в чипедипе). Был распаян, засунут подмышку. Через 5 минут показывал 36.2С. То, что доктор прописал. 😃
Датчик тока мне достался ACS758-50B. По даташиту - различий со штатным никаких, кроме тока. Было очевидно, что придется что-то править. Но, спасибо Тимофею, исходники пары версий есть. Но после того, как датчик был припаян к разъемам, укутан в термоусадку и вообще начал радовать глаз, выяснилось, что подключать его некуда! Да! Просто некуда! У диповой меги на два ADC меньше! Срочно напряглись затылочные мышцы, пин для третьей банки был выпаян за ненадобностью, на ADC2 заведен датчик тока (бародатчики планируются, поэтому входы для них в резерве). Дело встало за программой.
Во-первых, надо было сменить коэффициент при расчете ампер, т.к. диапазон датчика в два раза меньше. Это было сделано очень быстро благодаря очень подробным комментариям в исходниках. Сперва сделал некрасиво, прямо в месте расчета, потом вывел коэффициент в начло программы в константы. Теперь скомпилить прошивку по свой датчик тока себе сможет даже школьник (требований три - ноль тока=Vcc/2, ратиометрический, симметричный).
Во-вторых, надо было сменить порт, значения которого закреплены за датчиком тока. Или наоборот. Это заняло немного больше времени, т.к. потребовалось почитать немного хелпа по асму меги. (Заметьте, первую задачу я выполнил ВООБЩЕ не зная ничего о командах меги. Только благодаря комментариям Тимофея). Основную привязку в цикле опроса поменял быстро, потом подумал, и сделал еще быстрее и проще, просто перекинув третью банку на ADC6, а ток - на ее место. Еще выяснилось, что забыл поменять в том месте, где датчик калибруется. Почитал хелп по асму, понял назначения регистров и битовых масок, сделал, но выяснилось, что:
В-третьих, надо вернуть обязательную калибровку датчика тока при старте, т.к. ручную калибровку организовать мешает отсутствие ADC7. Было уже поздно ночью, поэтому просто изменил места пары меток перехода оставив в тылу горку неиспользуемого кода, в который программа никогда не зайдет. Стыдно, но пока ладно. В планах сделать ручную калибровку, через скажем порт датчика температуры. Т.е. снимаем датчик, замыкаем его порт, калибруем ток, выключаемся ,ставим датчик на место.
В планах попробовать покупку бародатчиков не таких, которые указаны в схеме штатно, а более поздних аналогов. Скажем MPXA6115 сейчас намного доступнее и дешевле, чем 4115, а по даташиту - он же. Посмотрим, что из этого выйдет. Продолжение следует.
ЗЫ: Фото выкладывать наверное смысла нет, т.к. диповая телеметрия на макетке - это зрелише не для слабонервных. Прошивку под датчик тока могу подготовить, когда появятся исходники версии посвежее. Вроде Тимофей в просьбе об их предоставлении не отказал, за что ему еще раз “ку”.
ЗЗЫ: По весу сейчас макетка - 23г., все в сборе с датчиками тока и температуры и с GPS - 52г. Что в принципе очень неплохо для такого безобразия.
В схеме усё правильно, это вы чуть промахнулись.
4R7 - 4,7 Ом ! Я поставил 10R и усё - ОК!
В некоторых ГОСТах СССР и Европы, даже есть такая маркировка
4Е7 что есть те-же - 4,7 Ом !
Для общего понимания
R47 - 0,47 Ом
Е47 - 0,47 Ом
В схеме усё правильно, это вы чуть промахнулись. 4R7 - 4,7 Ом ! Я поставил 10R и усё - ОК!
Ох ты йолки! Видимо ошибся еще год назад… Спасибо!
Бувает;)
Тимофей, я конечно понимаю, что мини-телеметрия вещь уже достаточно коммерческая. Но если в общем исходники открыты, то может быть есть возможность показать кусок схемы по формированию буковок с тенями? Вроде на заре их появления говорилось, что при желании можно соплями навесить вокруг старой схемы… 😒
Еще и ограничение на дальность будет.
и сколько?
Smalltim, я на прошлой странице спрашивал как откалибровать магнитный компас на новой плате. помогите пжлста.
Чтоб халява не была безбрежной. Еще и ограничение на дальность будет.
Ну если из-за этого, то тогда понятно…
Oliver *кусок схемы по формированию буковок с тенями * --> (соседняя ветка)😮
Кстати, не менее навороченный проект!
кусок схемы по формированию буковок с тенями * --> (соседняя ветка)
ГДЕ? Ну НЕ ВИЖУ! Перелопатил по две-три страницы всех непрочитанных веток с первой страницы темы, ушел на вторую. Научите ТАК пользоваться поиском. 😃
За схему спасибо, куда ведет ниточка с подстроечника?
😲
жмём на мордашку
подстроечник идёт на ножку меги - которая рисует текст
У меня такое впечатление, что я сам с собой разговариваю… куда то в пустоту всё уходит…
пост #1049, #950…
Если пишет неизвестное устройство, надо звякнуть USB и ноги контроллера 3 и 4 - это USB. Сопротивление должно быть 30 - 50 ом. Ну и посмотреть питание контроллера 3,3 вольта на ножках 21,52. И еще 3 и 8 ноги контроллера должны звонится с контактом питания разъема USB, как через диод.
ЗЗЫ: По весу сейчас макетка - 23г., все в сборе с датчиками тока и температуры и с GPS - 52г. Что в принципе очень неплохо для такого безобразия.
Полетаете, отчитайтесь о наводках на радиотракт , есть у меня похожая телеметрия…
Если пишет неизвестное устройство, надо звякнуть USB и ноги контроллера 3 и 4 - это USB. Сопротивление должно быть 30 - 50 ом.
У меня две платы АП, одна исправная и одна с замененным 90USB1287
По даташиту 4 и 5 USB ноги, на них бескончное сопротивление, на обоих платах.
Питание идет на 3,8,21,52,64 ноги, на исправной плате 4,95 вольт, на неработающей 5,05 вольт.
Питание подавал от одного и того же USB шнура.