Научная статья на тему 'Цифровой фильтр для работы с Arduino'

Цифровой фильтр для работы с Arduino Текст научной статьи по специальности «Математика»

CC BY
1269
102
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Научный журнал
Область наук
Ключевые слова
ARDUINO / ФИЛЬТР / ЦИФРОВОЙ ФИЛЬТР / ДАТЧИК / ДАВЛЕНИЕ

Аннотация научной статьи по математике, автор научной работы — Исмаилов Анарбек Оразавич, Нуркин Султанбек Акылбекович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Цифровой фильтр для работы с Arduino»

12. Zhu G. and Huang К. Analog Spatial Decoupling for Tackling the Near-Far Problem in Wirelessly Powered Communications. Submitted to IEEE ICC. Kuala Lumpur. Malaysia, May 2016. [Электронный ресурс]. Режим доступа: http://arxiv.org/abs/1510.09124/ (дата обращения: 20.11.2017).

13. Balanis С.А. Antenna Theory: Analysis and Design. Wiley, 2012.

14. Poon A.S.Y. and Tse D.N.C. Does Super-Directivity Increase the Degrees of Freedom in Wireless Channels. Proc. IEEE Int'l. Symp. Info. Theory. Hong Kong. June 2015.

ЦИФРОВОЙ ФИЛЬТР ДЛЯ РАБОТЫ С ARDUINO

1 2 Исмаилов А.О. , Нуркин С.А.

1Исмаилов Анарбек Оразавич - кандидат технических наук;

2Нуркин Султанбек Акълбекович - магистрант, кафедра мехатроники, Костанайский государственный университет им. А. Байтурсынова, г. Костанай, Республика Казахстан

Аннотация: в данной статье описывается способ построения фильтрации данных с датчиков давления. В качестве управляющего элемента был использован инструмент для проектирования электронных устройств Arduino. Ключевые слова: Arduino, фильтр, цифровой фильтр, датчик, давление.

Фильтрация призвана сделать работу вашего устройства более стабильной, так как она фильтрует фоновые шумы измерений, а также способна отфильтровать ложные показания с датчика [1].

В качестве источника плохого, сильно шумящего сигнала используется датчик атмосферного давления на чипе BMP180.

В данной работе, мы написали скетч в программе Arduino IDE, который получает значения с датчика, записывает их в переменную alt, а затем эту же переменную x выводит в порт, но выводит специальным образом, чтобы мы могли построить по полученным данным график в реальном времени. График мы строим с помощью программы Serial Port Plotter. Для того чтобы пользоваться данной программой нужно соблюдать специальный синтаксис. Синтаксис подробно описан в Help, панель меню.

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

Для работы с данным фильтром необходимо вставить переменные в начало скетча, а функцию фильтрации нужно вставить в конец скетча. Среднее отклонение значений мы можем найти при помощи Excel, для этого нужно получить нефильтрованные значения, вывести их в COM port, скопировать и вставить в Excel. Для этого мы должны загрузить в микроконтроллер скетч, но в этот раз удаляем строчки, отвечающие за построение графика в реальном времени (Serial.print("&"); SeriaLprint(";");). Загружаем скетч в микроконтроллер и включаем COM port [2].

Полученные значения копируем и вставляем в блокнот, заменяем точки на запятые с помощью ctrl+f, это нужно потому что Excel не читает точки, а в COM port, дробные числа разделены точкой. После того, как мы заменили все точки на запятые, вставляем значения в Excel в столб А1. В отдельной ячейке записываем формулу среднего отклонения =СТАНДОТКЛОН.Г(A:A), среднего значения ^РЗНАЧ^^), максимальное значение =МАКС^^) и минимальное значение =МИН(A:A).

Полученное значение среднего отклонения записываем в функцию float varVolt. Функция float varProcess - скорость реакции на изменение, подбирается вручную в процессе работы фильтра с датчиком. Далее мы должны вывести график фильтрованных значений и график нефильтрованных значений. Конечный скетч выглядит таким образом

float varVolt = 0.25; float varProcess = 0.05; float Pc = 0.0; float G = 0.0; float P = 1.0; float Xp = 0.0; float Zp = 0.0; float Xe = 0.0; int baseline; float alt;

Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); bmp.begin();

baseline=bmp.readAltitude(); } void loop() { alt=bmp.readAlttitude()-baseline; float.filtered_x = filter(alt); Serial.print("$"); Serial.print(alt); Serial.print(" "); Serial.print(filtered_x); Serial.print(";"); } { float filter(float val) Pc = P + varProcess; G = Pc/(Pc + varVolt); P = (1-G)*Pc; Xp = Xe; Zp = Xp;

Xe = G*(val-Zp)+Xp; return(Xe);}

Скетч 1. Фильтрация значений датчика атмосферного давления

Загружаем скетч, запускаем Serial Port Plotter, в flot controle ставим 2 графика и нажимаем подключиться. Красным цветом, вы можете видеть, не фильтрованные значения и желтым цветом фильтрованные значения.

При заданных значениях графики не имеют особых различии. Для того чтобы наш отфильтрованный сигнал выглядит более гладким, в написанном скетче мы должны изменить функцию float varProcess - скорость реакции на изменение. Изначально в функции float varProcess мы установили скорость реакции равной 0,05. График покажет, как измениться фильтрованный сигнал, если в функции float varProcess скорость реакции установить 0,005.

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

реакция на резкое изменение довольно медленная, поэтому если красный график резко подскочит вверх, желтый график за ним подняться не успеет.

Если вы хотите использовать данный фильтр в своем проекте, то необходимо обязательно испытывать датчик в реальных условиях и функцию float varProcess подбирать вручную. В данной работе мы использовали датчик давления BMP 180, для этого датчик подойдет и низкое значение функции float varProcess, так как коэффициент изменяется довольно медленно. Он подойдет для измерения давления в течение всего дня. Но если нам нужно зафиксировать вспышку давления, то заданное нами значение float varProcess слишком мало, то есть скорость измерения реакции должно быть намного выше.

Список литературы

1. [Электронный ресурс]. Режим доступа: http://www.poprobot.ru/theory/low_pass_filte r Фильтр низких частот/ (дата обращения: 17.11.2017).

2. [Электронный ресурс]. Режим доступа: http://arduino.ru/forum/apparatnye-voprosy/filtratsiya-pomekh-impulsnogo-bp Фильтрация помех импульсного БП/ (дата обращения: 17.11.2017).

БЕСПИЛОТНЫЕ ЛЕТАТЕЛЬНЫЕ АППАРАТЫ В ОБОРОННОЙ

ПРОМЫШЛЕННОСТИ

1 2 Федосеева Н.А. , Загвоздкин М.В.

1Федосеева Наталья Алексеевна - преподаватель иностранного языка;

2Загвоздкин Матвей Викторович - студент, специальность: производство летательных аппаратов, Ульяновский авиационный колледж, Межрегиональный центр компетенций, г. Ульяновск

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

Развитие современных технологий позволяет сегодня беспилотным летательным аппаратам успешно выполнять функции, недоступные им в прошлом. Например: Беспилотные летательные аппараты (далее - БЛА) показали высокую эффективность при выполнении задач разведки и ведения наблюдения. БЛА стали «всевидящим оком», позволив оператору отслеживать и контролировать развитие обстановки в заданном районе или на заданном маршруте в реальном масштабе времени [1, 107-108].

Главное достоинство БЛА, по мнению экспертов, - отсутствие на борту человека, поэтому, независимо от сложности и опасности выполняемой БЛА задачи, жизни пилота не угрожает опасность. БЛА способен выполнять поставленные задачи в зонах

i Надоели баннеры? Вы всегда можете отключить рекламу.