Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Филтриране на шум от акселерометър
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=12538
Страница 1 от 2

Автор:  anio [ Съб Дек 14, 2013 12:56 pm ]
Заглавие:  Филтриране на шум от акселерометър

Здравейте,
Искам да измервам акселерация и де-акселерация с аналогов акселерометър MMA7361. Понеже ще бъде монтиран на мотоциклет, а там вибрациите са доста големи, искам съвет за някакъв алгоритъм, с който малко да филтрирам тоя шум. В момента ползвам най-простия а именно да взема усреднената стойност на примерно 50-100 четения от сензора. Това върши работа само когато няма вибрации. Запаля ли звяра и става като рандом генератор :)
Чета стойностите с три аналогови пина на ардуино. 0.206V/g за режима, който съм избрал(сензора е на 3.3V). Най-вероятно ще ми трябва и някой външен филтър примерно low-pass ама не знам какъв точно да е.

Автор:  bateAz [ Съб Дек 14, 2013 1:07 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

През колко време ги правиш тези семпли?

Автор:  anio [ Съб Дек 14, 2013 1:36 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Ами в момента на "сухо" го тествам с 200-500ms delay в loop-a. Предполагам, че повече от 5 изчистени стойности в секунда няма да ми трябват.

Автор:  gicho [ Съб Дек 14, 2013 2:48 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Някакъв нискочестотен филтър (LPF) ще си трябва, RC примерно, съвсем на око примерно 2КОм сериино и 100..1000нф към земя. Отделно можеш да направиш допълнително и цифров, би трябвало да можеш да четеш достатъчно често АЦП-то.
Като странична бележка - имай предвид че "автомобилната" среда няма нищо общо с псевдо-лабораторната вкъщи. Тия смущения дето ги виждаш може въобще да не идват от акселерометъра, а да са електромагнитни набивания в платката ти. Дано не опитваш на репинг с ардуино и хвърчащи жици? Пробвай вместо акселеромеръта да сложиш (три) делителя и да замериш какво ще видиш след запалване. Това ще те наведе накъде да търсиш решение. Друг проба може да е с смартфон. Има програмки да гледаш сигналите от акселерометрите им. Можеш да ги ползваш като база за сравнение.
Ако имаш проблеми с шум по аналоговите жици можеш да погледнеш за акселерометър с I2C или SPI. Достатъчно бързи са, а и по-новите чипове има доста вътрешна обработка с настройваеми филтри.

Автор:  anio [ Съб Дек 14, 2013 3:07 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Мерси. Ще пробвам с RC филтър. За момента е с жици, но после ще пренеса нужните компоненти на платка (атмега 328 на цокъл и директно до чипа ще сложа сензора). Поръчал съм i2c акселерометър (MMA8451 module, high-precision tilt sensor module 14BIT-digit ), но още го чакам да пристигне и за момента тествам с аналоговия.
Май ще трябва да помисля и за някакъв "по-мек" монтаж към корпуса, за да не минават вибрациите директно към електрониката.

Автор:  ToHu [ Съб Дек 14, 2013 4:18 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

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

Автор:  anio [ Съб Дек 14, 2013 4:57 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Открих това http://www.freescale.com/files/microcon ... AN3380.pdf
Freescale (същите, които произвеждат ММАхххх серията) са направили продукт, който контролира определен брой ЛЕД-ове според де-акселерацията на мотоциклет ползвайки подобен аналогов сензор - MMA7260Q. Описали са шумовете даже и диаграма има. Та като гледам ползват даже три нива на филтриране:
1) Механично - някак си го монтират за корпуса да не приема толкова механични вибрации
2) Аналогов филтър - RC low-pass filter
3) Няколко нива на софтуерно филтриране като едното е това, което и аз правя.
Разликата е, че те ползват само декселерация, а при мен се ползва и ускорението. Стейт машината също е добра идея, защото не ми трябват чак толкова точни данни.

Автор:  Desert Leo [ Нед Дек 15, 2013 9:23 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

С просто усредняване няма да стане. Пробвай, например Savitzky–Golay. Като си поиграеш с реда и времеконстантата може да докараш желания резултат. А и сметките не са сложни.
Хубаво си се насочил към цифров акселерометър, ама тия 14 бита са множко. Едва ли ще използваш повече от 8. Аз използвам ММА8652 и неговите 12 са ми повече от достатъчни. И при него показанието си играе дори при (уж) неподвижно положение на масата и липса на смущения. Хубавото на ММА8652 (не знам дали MMA8451 има тази възможност) е, че има high-pass филтър, който реже DC компонентите по трите оси, т.е. акселерометъра ти дава ненулеви показания само при движение. Така проца спи и не хаби енергия, но се буди при разклащане.

Автор:  gicho [ Пон Дек 16, 2013 10:46 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

Като казвах че цифровите имат повече функционалност имах и това предвид - филтри, FIFO-та, детектори на преходни процеси с прекъсване и тем подобни. Ако говорим за ардуино може и да има директно библиотека за някой от тях, така че "сложността" на I2C-то (или SPI) няма какво да се мисли.

Автор:  anio [ Пон Дек 16, 2013 10:51 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

И трите модела 51,52 и 53 се различават само по битовете. Съответно 14,12 и 10. Всичко друго им е еднакво. Всички могат да се пуснат на 8 бита и така мисля да го ползвам моя. Freescale са описали доста полезни PDF-и за настройка,FIFO, калибрация и настройка на филтрите: http://www.freescale.com/webapp/sps/sit ... tation_Tab
Единствената причина да пробвам първо с аналоговия е, че не ми трябва допълнителен logic level converter за него. С новия ще ми трябва нещо, че е до 3.6V, а ардуиното 5V.
Има и готови библиотеки като например тази https://github.com/n0m1/MMA8453_n0m1

Автор:  anio [ Вто Фев 04, 2014 9:18 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Здравейте. Първо да спомена, че с цифровия акселерометър е много по-добре и шумовете могат да се обират с вградените в него филтри.
Имам друг въпрос по темата. Първо мислех да променям яркостта на ледовете с ШИМ, но се замислих, че при движение от страни това може да иглежда като премигване (от статична гледна точка). Дали е добра идея да се направи с цифров потенциометър примерно MCP4162-502, който да контролирам по SPI от контролера?
Не се сещам други методи и всяка идея е добре дошла.

Автор:  ike [ Сря Фев 05, 2014 1:51 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

Пак с PWM, но и с кондензатор и интуктивност.

Автор:  goose [ Сря Фев 05, 2014 9:49 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

Не, че мога да ти дам конкретен съвет, но все пак - какво точно се опитваш да направиш? Подозирам, че ако споделиш самата идея на това измерване, ще получиш далеч по-практични съвети :-)

Автор:  anio [ Сря Фев 05, 2014 11:05 am ]
Заглавие:  Re: Филтриране на шум от акселерометър

Целта е според ускорението на мотоциклета да се усилва яркостта на светлината и съответно при де-акселерация да се намалява до някаква минимална степен. Още не съм измислил точно с какъв алгоритъм, защото не съм решил какво да правя когато ускорението е 0.

Допълнително ще сложа няколко отделни червени лед-а отзад при номера, които ще премигват при де-акселерация, за безопасност, защото това е честа причина за инциденти (стопа светва само при натисната спирачка, но при връщане на газта двигателната спирачка е силна, защото мотора е лек, и е много лесно да те ударят отзад). Това е горе-долу целта ми.

Лед лентата е 3528 SMD водоустойчива на 12В и си има резистори вградени за всеки лед. Та както писах в предишния пост мислех просто с един мосфет и PWM да я управлявам, но при движение ще изглежда доста грубо. Тъй като това ми е само хоби мога да се пробвам да сметна една RLC верига, но не знам какво време ми трябва, да стане плавно. Чудя се дали няма да стане просто с един 100uH индуктор след самия мосфет?
Мерси за отговорите!

Автор:  anio [ Сря Фев 05, 2014 1:49 pm ]
Заглавие:  Re: Филтриране на шум от акселерометър

Какво мислите за тази крива на low pass филтър в прикачената снимка. Това е с 7800Hz PWM, 50% duty step, 10k резистор и 1.0uF кондензатор. Не знам как трябва да изглежда кривата, за да се получи плавно.

Прикачени файлове:
im_grph.png
im_grph.png [ 1.29 KiB | Прегледано 4226 пъти ]

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/