Страница 1 из 2

Comparator последовательных данных

Добавлено: 16.01.2016{, 14:44}
Брат
Здравствуйте товарищи! Мне достаточно много лет, увлекся постройкой ракет, причем пневмогидравлических!Есть необходимость в высотомере, причем простом, который может собрать каждый.
Спецы-программисты игриво брались за задачу, но быстро сдулись! Я не
программист, но имею отношение к радиотехнике. Используя уроки, за 3 дня на
 FLP собрал программу для высотомера, причем  работает! Уперся в одну проблему, необходимо
определить апогей, то есть нужна схема типа Comparator, только необходимо сравнивать сигнал не с двух входов, а последовательные данные датчика BMP180, дабы определить точку перегиба. Возможно,ли подобное реализовать в FLP! Спасибо!

Comparator последовательных данных

Добавлено: 16.01.2016{, 15:10}
Олег
Я думаю сделать можно так - значение записывать в ЕЕПРОМ например раз в секунду и текущее значение сравнивать со значением из ЕЕПРОМ (оно будет предыдущим). Количество циклов записи чтения в ЕЕПРОМ гарантируется до 100000, но я думаю, что ракеты у вас не круглосуточно летают, так что это несущественно.

Comparator последовательных данных

Добавлено: 16.01.2016{, 15:19}
DWD
А зачем ЕЕПРОМ напрягать? Хватит обычной памяти ОЗУ. К тому же и быстрее будет.

Comparator последовательных данных

Добавлено: 16.01.2016{, 15:43}
Олег
И то правда, что-то торможу.

Comparator последовательных данных

Добавлено: 16.01.2016{, 19:20}
Брат
Спасибо за подсказки, меня радует, что Вы правильно поняли обозначенную мной задачу! Меня поразили возможности FLP, но вот некоторые пояснения ввели в суппорт! Оказывается pin9, это не 9 вывод Аурдуино, а адрес D9,  или «сравнение двух аналоговых сигналов», при этом по факту цифровых. Очень скудно описано функциональное назначение элементов, или совсем не понятно. Да для обращения к EEPROM есть инструмент, а как обратиться к ОЗУ? Не нашел я и регистров сдвига, возможно ответ в «Строках» или «Массивах».
Возможно, все уляжется, за 3 дня не въедешь,  но если можно, подскажите ближе к телу! :)

Comparator последовательных данных

Добавлено: 16.01.2016{, 22:11}
Олег
Насчет ОЗУ. В переменной можно поставить вход разрешения записи, а чтение из переменной происходит все время. Может вам подойдет такой вариант, не супер точный, но простой.
На первый вход компаратора подается сигнал c датчика, на второй сигнал с датчика, но уже через переменную.
В переменной есть вход разрешения записи и сигнал на него идет с симметричного мультивибратора.
Получается что в тот период когда уровень высокий, то показания одинаковые, если низкий, то на это время в переменной хранится старое значение. Так-как в компараторе стоит сравнение на меньше, то когда ракета начнет спускаться компаратор сработает.
Период в мультивибраторе сейчас стоит 500 мс, чтобы проверить работу поднимая датчик руками, а для точности можно уменьшать на сколько необходимо.
Слов написал много, на самом деле все просто, проект в приложении.

Comparator последовательных данных

Добавлено: 25.05.2016{, 17:59}
Брат
---------------------------------------------
Олег писал(а):В переменной есть вход разрешения записи и сигнал на него идет с симметричного мультивибратора.
Построил свой высотомер, проблему решил подав на разрешающий вход переменной сигнал с ТТ
триггера, реализовал сложные алгоритмы выброса парашютов, но есть проблемы,
причем они касаются всех.  Давно заметил, что подав на вход переменной  Integen, на выходе получаем несколько иное значение, то есть примерно то, но далеко не всегда это же число. По этой причине отказался проект делить на платы, ведь соединения между плат при помощи неадекватных переменных! Проект большой, спасли именованные соединения. Кстати, подобный эффект заметил еще один участник форума, но его сообщение не нашел. Может, я чего-то недопонимаю, но проблема более чем серьезная. Безусловно, при необходимости представлю доказательство, а может об этом знают все?

Comparator последовательных данных

Добавлено: 25.05.2016{, 18:18}
Олег
Брат писал(а):Давно заметил, что подав на вход переменной  Integen, на выходе получаем несколько иное значение, то есть примерно то, но далеко не всегда это же число
Не совсем понял, как это? У меня есть проекты по 20 плат, одна и та-же переменная может использоваться не однократно в любом месте, но ничего такого не замечал. Может пока вы сравниаваете значение переменной оно успевает поменяться?

Comparator последовательных данных

Добавлено: 25.05.2016{, 18:25}
Брат
Олег писал(а):Не совсем понял, как это?
Может быть,торопиться не будем, немного погодя предоставлю конкретную информацию, внучка
пришла!

Comparator последовательных данных

Добавлено: 25.05.2016{, 18:34}
Rovki
Я делал для таких целей макросы на ПР - они ищут экстремум сигнала на входе и запоминают его.Находил два экстремума -мин. и макс.
Для вещественных и целочисленных данных ...

Comparator последовательных данных

Добавлено: 25.05.2016{, 18:42}
Брат
Брат писал(а):немного погодя предоставлю конкретную информацию
Вот такая схемка. Данные ВМР180 прогоняем через переменную, опрос датчика в каждом цикле,
записываем на SD как Comment. Также записываем на SD прямые показания датчика. Должны быть данные одинаковыми?

Comparator последовательных данных

Добавлено: 25.05.2016{, 19:48}
Олег
При большой скорости изменения показаний датчика только разработчик скажет какой алгоритм будет при обработке данной схемы. Вполне может быть, что сначала берется значение из переменной 1, записанное в прошлом цикле и пишется на SD карту, а только потом присваивается новое значение. А вот показания датчика уже берутся из этого цикла.

Comparator последовательных данных

Добавлено: 25.05.2016{, 19:58}
Rovki
В моей схеме определяется изменении числа ,при каждом изменении анализируется предыдущее значение и новое ,если был подьем функции то на подьеме значение не обновляется ,как только функция идет на убывание происходит изменение значения на выходе -находим максимум ,аналогично находим минимум ...

Comparator последовательных данных

Добавлено: 25.05.2016{, 21:07}
support
А зачем генератор. Вот по этой схеме наверное проще будет.


В переменной Максимум будет максимальное значение. Ну а потом уже используете эту переменную как надо.
Для сброса используется такая схема


Comparator последовательных данных

Добавлено: 25.05.2016{, 21:38}
Rovki
support писал(а):Вот по этой схеме наверное проще будет.
Для одного экстремума пойдет

Comparator последовательных данных

Добавлено: 25.05.2016{, 22:12}
Брат
Rovki писал(а):Для одного экстремума пойдет
Да одинэкстремум и нужен, но с оговоркой, что отметка должна быть немного дальше
апогея, ведь датчик сильно шумит, да и возможны небольшие паразитные скачки давления,
что может приводить к ложным срабатываниям!Но главный вопрос,что происходит с соединением по переменной? Сейчас загнал схему и получил для
наглядности  результат в виде графика Excel.  Как видим на выходе (красным) и входе (синим)данные отличаются, причем существенно! Хорошо, допустим причина в датчике.

Comparator последовательных данных

Добавлено: 25.05.2016{, 22:19}
Rovki
Брат писал(а):ведь датчик сильно шумит,
Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..

Comparator последовательных данных

Добавлено: 25.05.2016{, 22:47}
Брат
А я пришел вот к этой схеме, почему в ней все работает идеально! Изменяя размер массива могу
смещать данные на любое количество циклов, то есть не только находить апогей,
но и задавать любое значение чувствительности!  Да, но данные с того же датчика, а результат
один в один! Получается, что дело не в датчике и соединение через переменную не
равнозначно перемычке! На мой взгляд есть повод задуматься!

Добавлено (25.05.2016, 22:47)
---------------------------------------------
Rovki писал(а):Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..
Безусловно! Я использую датчик в режиме ULTRA_LOW_POWER, то есть без внутреннего усреднения, затем
фильтрую при помощи аналогового фильтра, который есть  на нашем форуме (пользовательский блок)!  Интересно, если использовать режим внутреннего усреднения датчика, то падает количество циклов опроса, а если использовать внешний фильтр, то при одном результате сглаживания количество циклов не уменьшается!

Comparator последовательных данных

Добавлено: 26.05.2016{, 11:59}
Брат
Сегодня еще раз проверил нюансы в работе переменной, но числа загонял с генератора, дабы исключить непонятки! Если через переменную прогонять одинаковые числа или Byte, то все нормально. А если случайные числа, то полная неадекватность!  То есть, использовать переменную в качестве межплатных соединений нужно очень осторожно! На мой взгляд, необходимо и соединения между платами выполнять по принципу именных !

Comparator последовательных данных

Добавлено: 26.05.2016{, 12:50}
rw6cm
Брат писал(а):опрос датчика в каждом цикле,
Так и делайте замеры в одном цикле для всех.

СпойлерПоказать