OSD на ATmega1281

avisenja

To msv

Вчера спросил у своего знакомого китайца про изготовление много слойных плат (с 3-им, общим слоем под землю ), пишет что они на заводе такие изготавливают, вам это интересно?

Попробую заказать для тестирования штук 5, он спрашивает сколько потенциально нужно будет изготовить???

P.S. Извиняюсь!, пишу здесь т.к. ваш ящик переполнен а ответ хочется поскорей.

Вахтанг

Да, в Китае полно таких производств. Но нет резона изготавливать там опытные образцы, больше времени уйдет на доставку плат. Вроде как от Новокузнецка до Новосибирска ~300км. А там много хороших производителей печатных плат. Я лично, для опытных партии пользуюсь услугами вот этой конторы pselectro.ru. У них имеется филиалы во многих городах. Многослойные плати по 4-му классу они делают без претензии к качеству. Сроки и стоимость тоже приемлемые. Можно даже поторговаться. На мелкой партии вы ничего не сэкономите в Китае, т.к. доставка займет много времени и денег.
После этого, ПП для отлаженных и опробованных серийных изделий я заказываю уже в Китае, и то не на прямую а через Московскую контору, которая занимается и производством и доставкой и растаможкой.
Что касается 3-го слоя, то не вижу смысла! если делать МПП, то уже четное число слоев - 4,6,8,10 и т.д

Dikoy
AndyBig:

Не понял, а в чем это противоречит моим словам?

Вообще-то всем 😉

AndyBig:

Датчики работают чисто только в определенном диапазоне, да и то с определенной (ограниченной) точностью.

Это ёжику понятно. Однако к погрешностям динамический диапазон не имеет никакого отношения, а тем более к их накоплению.

AndyBig
AndyBig:

Датчики углового ускорения (гироскопы) для этих целей гораздо лучше. Акселерометр, например, практически не заметит поворот вокруг своей оси, зато прекрасно заметит снос вместо поворота.

Dikoy:

Акселерометр мериет ускорение.

Dikoy:

Гироскоп, а точнее ДУС, ибо микромеханических гироскопов не бывает в принципе, мериет угловую скорость.

Ну и? Противоречия в студию 😃

Dikoy:

к погрешностям динамический диапазон не имеет никакого отношения, а тем более к их накоплению.

Имеет, и самое непосредственное. Выход параметров за пределы ДД влечет за собой увеличение погрешности измерений, которые в системе ориентирования накапливаются при множественных измерениях.

Dikoy
AndyBig:

Датчики углового ускорения (гироскопы)

Во всём предложении правильно только слово “датчики”. Вы ссылочки то почитайте, что я привёл.

AndyBig:

Акселерометр, например, практически не заметит поворот вокруг своей оси, зато прекрасно заметит снос вместо поворота.

А если снос равноускоренный? 😉 Например, скольжение на крыло в спокойной среде.

AndyBig:

Выход параметров за пределы ДД влечет за собой увеличение погрешности измерений,

Ну, вообще-то в нормальных системах на ДУС погрешности вызваны алгоритмами интегрирования, что также описано в ссылках, что я дал. Но если разработчик установил датчики не подходящие по диапазону, то таки соглашусь - их зашкал будет основным источником погрешностей 😃 Правда, в реале я таких систем не видел.

AndyBig
Dikoy:

Во всём предложении правильно только слово “датчики”

Согласен, не ускорения, а скорости 😃

Dikoy:

А если снос равноускоренный?

Вам нужно буквально описать? Пожалуйста: заметит начало сноса 😃

Dikoy:

погрешности вызваны алгоритмами интегрирования

И если величина ускорения лежит в пределах шумов на выходе датчика, то виновато интегрирование? 😃

Vlado
msv:

Похоже, но вроде бы не совсем…
ЗЫ Кстати, после заземления корпуса кварца, вроде бы все барабашки у меня исчезли. Кварц от старой сетевой платы 10мбт, и был конечно там заземлен.
ЗЫЫ По ЛУТ платку такой сложности можно сделать за один вечер…

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

msv

С возвращением! 😃 Очень интересно узнать (думаю не только мне) о Ваших успехах и впечатлениях по этому проекту. Но торопиться не надо… 😃

Dikoy
AndyBig:

Вам нужно буквально описать? Пожалуйста: заметит начало сноса

Во-1 не заметит, во-2 выявить именно снос из его сигнала всё равно невозможно, в-3 это рассуждения из серии “приделать к табуретке крылья”. Я вам дал ссылки, при желании можете сами нагуглить. Принципов работы БИС и БСО в инете море. В вашем исходном посте каша из понятий и принципов. Не сочтите за наезд, я бы и не вклинился, но вы же этим других учите… В итоге народ потратит время и деньги ради пары-тройки морковок.
Вывод номер раз: стабилизация только на акселерометрах невозможна. Почему - читать ссылки.
Вывод номер два: основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования, а не шумы гиро. Я вам по секрету скажу, что при использовании большинства видов ФК наличие шумов идёт даже на пользу и в некоторых системах их искусственно смешивают с сигналом гиро, дабы повысить шумность. А шумность самого гиро очень мала, да ещё хорошо давится этими же алгоритмами интегрирования, как бесплатное приложение. Шум гиро примерно в 100 раз меньше шума пирометров в среднюю погоду. Я уже постил когда-то этот график:

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

AndyBig:

И если величина ускорения лежит в пределах шумов на выходе датчика, то виновато интегрирование?

В этом случае погрешностей вообще не будет.
Кстати, способ борьбы с погрешностями интегрирования - установить изначально неисправные датчики! В этом случае действительно, интегрирование на качество системы не скажется. Патентуйте 😃

msv
Dikoy:

основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования

Что Вы имеете в виду под погрешностью от “алгоримом интегрирования”? Мне известна только два варианта дискретного интегрирования- метод прямоугольников и трапеций (второе- по сути совмещение собственно интегрирования с примитивным сглаживанием). И оба варианта (тем-более в целочисленке) никаких погрешностей давать не могут. Есть проблема неточности квантования, неизбежных ошибок дискретизации (при которой непрерывная функция условно считается не изменяет значения на время дискретизации). Но основная накапливающаяся ошибка после интегратора имхо именно из-за неидеальности ДУС (несимметричного шума, сдвига нуля). Вопрос о необходимости и вариантах коррекции постоянной составляющей после интегратора, как бы собственно к интегратору и не относится, он парень простой- складывает все что дали…
ЗЫ Кстати на графике не понятно, черная линия- это плывет ноль с гиры или ошибка после интегратора? И почему она никак не меняется при изменении угла?

Diman_Y
Dikoy:

основным источником нарастающей со временем погрешности БСО на микромеханике являются именно алгоритмы интегрирования, а не шумы гиро

Или это опечатка, или одно из двух. 😃

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

Основная проблема при интегрировании, не только мемсов, а вообще интегрирования, это наличие постоянной составляющей в сигнале. Наличие этой постоянной составляющей и дает постоянный уход сигнала при интегрировании.
Природа этой постоянной составляющей это ADC offset, или постоянная ошибка АЦП. Вот чтобы компенсировать эту ошибку и используют разные методы.

Компенсировать эту ошибку можно разными методами. Вот некоторые предлагают использовать данные темпиратуры для этого. Я на пример использую оценку постоянной составляющей во времени фильтром 8-го порядка. И т.д.

В любом случае, ошибка алгоритма тут не причем. Если вы используете 16 бит, то при правильном использовании можно добиться постоянной ошибки в 96 dB. Причем постоянной составляющей шума не будет вообще. Я использую 32 бита плавучку и у меня ошибка не больше 144 дБ.

targetorsk

Пробежался по теме. Очень интересно. Но не нашел программы или готового HEX файла для этого супер девайса.

msv

Периодически отвечаю на этот вопрос… 😃 Исходники по ряду причин выложить не решаюсь. Если Вы программист и делаете свой проект, с удовольствием готов публично по обсуждать разные решения, алгоритмы итп. в тч. в кодах. HEX тоже нет пока смысла выкладывать, он меняется каждую неделю. Для желающих повторить, всегда готов выслать последнюю облетанную версию на момент, когда она будет востребована.

Vlado

msv:

С возвращением! 😃 Очень интересно узнать (думаю не только мне) о Ваших успехах 😃

Вот вернулся и плата поспела видео передатчика 5.8GHz с антенной. Типично люди гибнут за металл а тут за FR4. Вес 12 гр усиление антенны до 10dBi ну и мощность Китайская, написано 23 а померил до 20dBm. Походу посмотрим, если понадобиться прикрутим драйвер, пока потребление 100мА от 12V.
Приемная часть пач антенна где то 110 на 110мм так шта прикрутим к пульту. С запуском не скоро как будет результат что нить покажу а на мои просьбы прошу любить и жаловать.

msv

На выходном полетал на новом месте. Не самый удачный день.
В первых почему-то раза два подвирала высота GPS. Значение обновлялось на 1-2 м с большим отставанием, потом резко менялось сразу метров на 50, показывая действительную высоту. Самолет каждый раз в попытках достичь целевую высоту уходил в крутое пике, приходилось отключать RTH и переходить на режим стабилизации. Не знаю связано ли это с особенностями рельефа (какие-нибудь переотражения) или просто неудачное время. Задумываюсь о дополнительном контроле по бародатчику…
Во вторых во время полета солнце зашло за тучку, воздух прохладный и заметно уменьшился температурный градиент. Поэтому в авто-режимах при резких сменах целевого курса самолет вместо аккуратных виражей пытался лететь на ноже. Для исключения возможности этой проблемы есть мысль сделать контроль и ограничение скорости изменения курса. Принцип то понятен, как-то от этой скорости уменьшать целевой крен, но вот какой конкретный алгоритм для этого сделать, пока не соображу… Может у кого есть какие мысли?..

Иван

может аксель ещё добавить? если с него не было инфы о смене крен - значит врёт пира?

Dikoy
msv:

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

Это первая большая составляющая погрешности.

msv:

Но основная накапливающаяся ошибка после интегратора имхо именно из-за неидеальности ДУС (несимметричного шума, сдвига нуля). Вопрос о необходимости и вариантах коррекции постоянной составляющей после интегратора, как бы собственно к интегратору и не относится, он парень простой- складывает все что дали…

А это - вторая. Каждый раз сложение идёт с некоторой ошибкой. И эта ошибка накапливается по мере складывания.
Источник этой погрешности, конечно же, и в шумах ДУС, и в шумах АЦП, но их порядок довольно мал. В моих фильтрах шум пирометра эффективно давился именно при помощи ДУС, как менее шумного прибора. А вот наибольшую погрешность вызывают как раз ошибки дискретизации. Причём в статике они больше, чем в динамике.

Diman_Y:

Основная проблема при интегрировании, не только мемсов, а вообще интегрирования, это наличие постоянной составляющей в сигнале. Наличие этой постоянной составляющей и дает постоянный уход сигнала при интегрировании.

Ну дык! Если её не давить, остальные погрешности можно вообще не упоминать. Уход будет диким. Я предполагал, что эта погрешность как раз подавлена калманом или т.п. способом. Например, ТЕКНОЛ применяет термостатирование и отбор сенсоров по параметрам. Тогда основным источником погрешности становятся ошибки дискретизации и линеаризации, которые никак не спрогнозируешь и не подавишь. А это именно ошибки алгоритма. О чём я и говорил.
Опять же, на сколько систематически уходит ДУС? Ну, 0,1-0,5% от шкалы при обычном дрейфе температуры. Это фигня. В фильтрах, корректирующих пиро я вообще на это внимания не обращаю.
Не фигнёй это становится, когда интегратор начинает эти 0,5% многократно суммировать. И именно сбросом интегратора мы добиваемся коррекции, а не ударом по гиро, как было с когерером 😃
Опять виноват интегратор. В алгоритмах, где его нет, и ошибок не накапливается.

Иван:

может аксель ещё добавить? если с него не было инфы о смене крен - значит врёт пира?

Дельная идея, кстати. Только не аксель, а дус. В этом случае систематика ДУС вообще побоку, т.к. нет интегратора.

msv

Спорить можно бесконечно, думаю мы все говорим об одном и том-же, вопрос терминологии…

Иван:

может аксель ещё добавить? если с него не было инфы о смене крен - значит врёт пира?

Конечно чем больше датчиков тем надежнее… в теории… если их правильно скоррелировать… А это уже не такая простая задачка, не имеющая аналитического решения.
У меня пока не получается качественно свести даже казалось бы очевидные и однозначные вещи- коррекция ноля крена по пиро (часто значительно уплывающего даже во время полета по объяснимым причинам) с контролем изменения курса…

Diman_Y
Dikoy:

Тогда основным источником погрешности становятся ошибки дискретизации и линеаризации, которые никак не спрогнозируешь и не подавишь. А это именно ошибки алгоритма. О чём я и говорил.

Во первых, дискретизация не относится к алгоритму. Дискретизацию всю жизнь все считали шумовой составляющей подмешанной ко входному сигналу, но никогда не считали ошибкой алгоритма. Более того, характеристики шума дискретизации всегда известны и измеряемы. А значит результат всегда прогнозируем.
Второе.
Ошибка линеаризации то-же всегда известна. Более того, в большенстве случаев как раз ошибка линеаризации вообще отсутствует или ее можно свести в значению близкому к нулю.
Вообще я не понимаю что Вы понимаете под понятием линеаризации. В цифре есть либо децимация, либо интерполяция. В обоих случаях значения ошибки равны нулю, если конечно правильно делать.

Еще раз по поводу ошибки алгоритма.
Вот есть у меня DSP, где я использую плавующую запятую. На входе у меня приходит сигнал с шумом. Отношение сигнал/шум на входе 50 дБ. Т.е. собственный уровень шума у меня -50 дБ.
Уровень шума алгоритма у меня -192 дБ. Это в 10^-7 раз меньше чем шум на входе.
Если этого не достаточно, то я могу использовать двойную точность и у меня шумы алгоритма будут -384 дБ, это будет 10^-17.

Короче, то что Вы называете ошибками алгоритма, ошибками самого алгоритма не является. Это просто чувствительность алгоритма к шуму с определенными характеристиками (как на пример оффсет ADC).

Ну а если я не прав, то вот мне правда интересно, а какие еще есть погрешности в алгоритме, которые надо упоминать?

msv

Дмитрий, имхо не стоит спорить по мелочам, что значения углов посчитанных по ДУС плывут и причина этого понятна уже каждому “школьнику”… Лучше поподробнее расскажите про:

Diman_Y:

Компенсировать эту ошибку можно разными методами. Вот некоторые предлагают использовать данные темпиратуры для этого. Я на пример использую оценку постоянной составляющей во времени фильтром 8-го порядка. И т.д.

Честно говоря ничего не понял… Подразумевается, что усредняя за большой период времени скажем крен должен быть нулевым и от этого коррекция? но в реальных полетах это не так… 😦

Diman_Y
msv:

Честно говоря ничего не понял… Подразумевается, что усредняя за большой период времени скажем крен должен быть нулевым и от этого коррекция? но в реальных полетах это не так…

Да. Коррекция от этого, но не совсем в лоб. 😃
Вообще, я до самолета еще не добрался. Во думаю завтра-послезавтра в машине повозить а в выходные на самолете полетать и накопить данные сенсоров. Но на данный момент, на столе это работает так:
Есть данные начальной оценки. Т.е. сначала первые несколько секунд все спокойно, и я могу просто накопить ошибку. Эта ошибка и есть начальная оценка.
Потом включается следующий алгоритм:
ФНЧ (тот который 8-го порядка) включается тогда, когда изменения гиро - минимальные (а еще я подключу аксель и компас и буду считать изменения векторов гиро, компаса и акселя. Не их амплитуды, а их направления). Но с акселем там есть засада со знаком…
Так вот, вот когда изменения меньше пороговых, вот тогда все и считается.
Я конечно понимаю что это нелинейно, но кому сейчас легко. 😃
Все работает нормально если после долгой тряски на некоторое время будут спокойные промежутки.

Пока я вижу сто этого достаточно для коррекции. Потом уже будет введена корекция по абсолютной и относительной скоростям и высотам. Т.е. нафига мне нужен ноль по гироскопам если скорость не стабильна, высота падает и курс меняется. 😃

Вообще у меня с попробовать любой алгоритм проблем вообще нет. Все сводится к рисованию этого самого алгоритма. Если это работать не будет, то я спокойно его изменю. Причем я могу это делать как реалтайм, т.е. на данных с платы, так и на записанных данных.

Да еще.
У меня еще есть замечательный компас. Он работает не так быстро как другие устройства, но работает хорошо. Начальное направление держит очень прилично, как ни крути. Да и у акселя уход минимальный.
Так что за авиагоризонт лично я не волнуюсь. Вот расчет абсолютных координат это да. Вот там надо будет думать… 😃