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

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

Здравствуйте товарищи! Мне достаточно много лет, увлекся постройкой ракет, причем пневмогидравлических!Есть необходимость в высотомере, причем простом, который может собрать каждый.
Спецы-программисты игриво брались за задачу, но быстро сдулись! Я не
программист, но имею отношение к радиотехнике. Используя уроки, за 3 дня на
 FLP собрал программу для высотомера, причем  работает! Уперся в одну проблему, необходимо
определить апогей, то есть нужна схема типа Comparator, только необходимо сравнивать сигнал не с двух входов, а последовательные данные датчика BMP180, дабы определить точку перегиба. Возможно,ли подобное реализовать в FLP! Спасибо!
Последний раз редактировалось Брат 16 янв 2016, 18:15, всего редактировалось 1 раз.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

Я думаю сделать можно так - значение записывать в ЕЕПРОМ например раз в секунду и текущее значение сравнивать со значением из ЕЕПРОМ (оно будет предыдущим). Количество циклов записи чтения в ЕЕПРОМ гарантируется до 100000, но я думаю, что ракеты у вас не круглосуточно летают, так что это несущественно.
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

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

Сообщение DWD »

А зачем ЕЕПРОМ напрягать? Хватит обычной памяти ОЗУ. К тому же и быстрее будет.
Изображение
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

И то правда, что-то торможу.
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

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

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

Сообщение Олег »

Насчет ОЗУ. В переменной можно поставить вход разрешения записи, а чтение из переменной происходит все время. Может вам подойдет такой вариант, не супер точный, но простой.
На первый вход компаратора подается сигнал c датчика, на второй сигнал с датчика, но уже через переменную.
В переменной есть вход разрешения записи и сигнал на него идет с симметричного мультивибратора.
Получается что в тот период когда уровень высокий, то показания одинаковые, если низкий, то на это время в переменной хранится старое значение. Так-как в компараторе стоит сравнение на меньше, то когда ракета начнет спускаться компаратор сработает.
Период в мультивибраторе сейчас стоит 500 мс, чтобы проверить работу поднимая датчик руками, а для точности можно уменьшать на сколько необходимо.
Слов написал много, на самом деле все просто, проект в приложении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Олег 16 янв 2016, 22:36, всего редактировалось 1 раз.
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

---------------------------------------------
Олег писал(а):В переменной есть вход разрешения записи и сигнал на него идет с симметричного мультивибратора.
Построил свой высотомер, проблему решил подав на разрешающий вход переменной сигнал с ТТ
триггера, реализовал сложные алгоритмы выброса парашютов, но есть проблемы,
причем они касаются всех.  Давно заметил, что подав на вход переменной  Integen, на выходе получаем несколько иное значение, то есть примерно то, но далеко не всегда это же число. По этой причине отказался проект делить на платы, ведь соединения между плат при помощи неадекватных переменных! Проект большой, спасли именованные соединения. Кстати, подобный эффект заметил еще один участник форума, но его сообщение не нашел. Может, я чего-то недопонимаю, но проблема более чем серьезная. Безусловно, при необходимости представлю доказательство, а может об этом знают все?
Последний раз редактировалось Брат 25 май 2016, 18:08, всего редактировалось 1 раз.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

Брат писал(а):Давно заметил, что подав на вход переменной  Integen, на выходе получаем несколько иное значение, то есть примерно то, но далеко не всегда это же число
Не совсем понял, как это? У меня есть проекты по 20 плат, одна и та-же переменная может использоваться не однократно в любом месте, но ничего такого не замечал. Может пока вы сравниаваете значение переменной оно успевает поменяться?
Последний раз редактировалось Олег 25 май 2016, 18:18, всего редактировалось 1 раз.
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

Олег писал(а):Не совсем понял, как это?
Может быть,торопиться не будем, немного погодя предоставлю конкретную информацию, внучка
пришла!
Последний раз редактировалось Брат 25 май 2016, 18:26, всего редактировалось 1 раз.
Аватара пользователя
Rovki
Полковник
Сообщения: 5746
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 69 раз
Поблагодарили: 223 раза
Контактная информация:

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

Сообщение Rovki »

Я делал для таких целей макросы на ПР - они ищут экстремум сигнала на входе и запоминают его.Находил два экстремума -мин. и макс.
Для вещественных и целочисленных данных ...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Rovki 25 май 2016, 18:52, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

Брат писал(а):немного погодя предоставлю конкретную информацию
Вот такая схемка. Данные ВМР180 прогоняем через переменную, опрос датчика в каждом цикле,
записываем на SD как Comment. Также записываем на SD прямые показания датчика. Должны быть данные одинаковыми?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Брат 25 май 2016, 18:43, всего редактировалось 1 раз.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

При большой скорости изменения показаний датчика только разработчик скажет какой алгоритм будет при обработке данной схемы. Вполне может быть, что сначала берется значение из переменной 1, записанное в прошлом цикле и пишется на SD карту, а только потом присваивается новое значение. А вот показания датчика уже берутся из этого цикла.
Аватара пользователя
Rovki
Полковник
Сообщения: 5746
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 69 раз
Поблагодарили: 223 раза
Контактная информация:

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

Сообщение Rovki »

В моей схеме определяется изменении числа ,при каждом изменении анализируется предыдущее значение и новое ,если был подьем функции то на подьеме значение не обновляется ,как только функция идет на убывание происходит изменение значения на выходе -находим максимум ,аналогично находим минимум ...
Электронщик до мозга костей и не только
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

А зачем генератор. Вот по этой схеме наверное проще будет.


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

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Автор программы FLProg.
Аватара пользователя
Rovki
Полковник
Сообщения: 5746
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 69 раз
Поблагодарили: 223 раза
Контактная информация:

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

Сообщение Rovki »

support писал(а):Вот по этой схеме наверное проще будет.
Для одного экстремума пойдет
Электронщик до мозга костей и не только
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

Rovki писал(а):Для одного экстремума пойдет
Да одинэкстремум и нужен, но с оговоркой, что отметка должна быть немного дальше
апогея, ведь датчик сильно шумит, да и возможны небольшие паразитные скачки давления,
что может приводить к ложным срабатываниям!Но главный вопрос,что происходит с соединением по переменной? Сейчас загнал схему и получил для
наглядности  результат в виде графика Excel.  Как видим на выходе (красным) и входе (синим)данные отличаются, причем существенно! Хорошо, допустим причина в датчике.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Rovki
Полковник
Сообщения: 5746
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 69 раз
Поблагодарили: 223 раза
Контактная информация:

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

Сообщение Rovki »

Брат писал(а):ведь датчик сильно шумит,
Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..
Электронщик до мозга костей и не только
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

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

Добавлено (25.05.2016, 22:47)
---------------------------------------------
Rovki писал(а):Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..
Безусловно! Я использую датчик в режиме ULTRA_LOW_POWER, то есть без внутреннего усреднения, затем
фильтрую при помощи аналогового фильтра, который есть  на нашем форуме (пользовательский блок)!  Интересно, если использовать режим внутреннего усреднения датчика, то падает количество циклов опроса, а если использовать внешний фильтр, то при одном результате сглаживания количество циклов не уменьшается!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Брат 25 май 2016, 22:50, всего редактировалось 1 раз.
Брат
Рядовой
Сообщения: 74
Зарегистрирован: 03 янв 2016, 13:11
Откуда: г.Курганинск, Краснодарский край
Имя: Александр

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

Сообщение Брат »

Сегодня еще раз проверил нюансы в работе переменной, но числа загонял с генератора, дабы исключить непонятки! Если через переменную прогонять одинаковые числа или Byte, то все нормально. А если случайные числа, то полная неадекватность!  То есть, использовать переменную в качестве межплатных соединений нужно очень осторожно! На мой взгляд, необходимо и соединения между платами выполнять по принципу именных !
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Брат 26 май 2016, 12:01, всего редактировалось 1 раз.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Брат писал(а):опрос датчика в каждом цикле,
Так и делайте замеры в одном цикле для всех.
[spoiler=Спойлер][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя