| Автор |
Съобщение |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Филтриране на шум от акселерометър
Здравейте, Искам да измервам акселерация и де-акселерация с аналогов акселерометър MMA7361. Понеже ще бъде монтиран на мотоциклет, а там вибрациите са доста големи, искам съвет за някакъв алгоритъм, с който малко да филтрирам тоя шум. В момента ползвам най-простия а именно да взема усреднената стойност на примерно 50-100 четения от сензора. Това върши работа само когато няма вибрации. Запаля ли звяра и става като рандом генератор  Чета стойностите с три аналогови пина на ардуино. 0.206V/g за режима, който съм избрал(сензора е на 3.3V). Най-вероятно ще ми трябва и някой външен филтър примерно low-pass ама не знам какъв точно да е.
|
| Съб Дек 14, 2013 12:56 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
 Re: Филтриране на шум от акселерометър
През колко време ги правиш тези семпли?
|
| Съб Дек 14, 2013 1:07 pm |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Ами в момента на "сухо" го тествам с 200-500ms delay в loop-a. Предполагам, че повече от 5 изчистени стойности в секунда няма да ми трябват.
|
| Съб Дек 14, 2013 1:36 pm |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Филтриране на шум от акселерометър
Някакъв нискочестотен филтър (LPF) ще си трябва, RC примерно, съвсем на око примерно 2КОм сериино и 100..1000нф към земя. Отделно можеш да направиш допълнително и цифров, би трябвало да можеш да четеш достатъчно често АЦП-то. Като странична бележка - имай предвид че "автомобилната" среда няма нищо общо с псевдо-лабораторната вкъщи. Тия смущения дето ги виждаш може въобще да не идват от акселерометъра, а да са електромагнитни набивания в платката ти. Дано не опитваш на репинг с ардуино и хвърчащи жици? Пробвай вместо акселеромеръта да сложиш (три) делителя и да замериш какво ще видиш след запалване. Това ще те наведе накъде да търсиш решение. Друг проба може да е с смартфон. Има програмки да гледаш сигналите от акселерометрите им. Можеш да ги ползваш като база за сравнение. Ако имаш проблеми с шум по аналоговите жици можеш да погледнеш за акселерометър с I2C или SPI. Достатъчно бързи са, а и по-новите чипове има доста вътрешна обработка с настройваеми филтри.
|
| Съб Дек 14, 2013 2:48 pm |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Мерси. Ще пробвам с RC филтър. За момента е с жици, но после ще пренеса нужните компоненти на платка (атмега 328 на цокъл и директно до чипа ще сложа сензора). Поръчал съм i2c акселерометър (MMA8451 module, high-precision tilt sensor module 14BIT-digit ), но още го чакам да пристигне и за момента тествам с аналоговия. Май ще трябва да помисля и за някакъв "по-мек" монтаж към корпуса, за да не минават вибрациите директно към електрониката.
|
| Съб Дек 14, 2013 3:07 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: Филтриране на шум от акселерометър
както е казл колегата по горе, първо се увери че наистина е от акселерометъра
|
| Съб Дек 14, 2013 4:18 pm |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Открих това http://www.freescale.com/files/microcon ... AN3380.pdf Freescale (същите, които произвеждат ММАхххх серията) са направили продукт, който контролира определен брой ЛЕД-ове според де-акселерацията на мотоциклет ползвайки подобен аналогов сензор - MMA7260Q. Описали са шумовете даже и диаграма има. Та като гледам ползват даже три нива на филтриране: 1) Механично - някак си го монтират за корпуса да не приема толкова механични вибрации 2) Аналогов филтър - RC low-pass filter 3) Няколко нива на софтуерно филтриране като едното е това, което и аз правя. Разликата е, че те ползват само декселерация, а при мен се ползва и ускорението. Стейт машината също е добра идея, защото не ми трябват чак толкова точни данни.
|
| Съб Дек 14, 2013 4:57 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
 Re: Филтриране на шум от акселерометър
С просто усредняване няма да стане. Пробвай, например Savitzky–Golay. Като си поиграеш с реда и времеконстантата може да докараш желания резултат. А и сметките не са сложни. Хубаво си се насочил към цифров акселерометър, ама тия 14 бита са множко. Едва ли ще използваш повече от 8. Аз използвам ММА8652 и неговите 12 са ми повече от достатъчни. И при него показанието си играе дори при (уж) неподвижно положение на масата и липса на смущения. Хубавото на ММА8652 (не знам дали MMA8451 има тази възможност) е, че има high-pass филтър, който реже DC компонентите по трите оси, т.е. акселерометъра ти дава ненулеви показания само при движение. Така проца спи и не хаби енергия, но се буди при разклащане.
|
| Нед Дек 15, 2013 9:23 am |
|
 |
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 1:59 pm Мнения: 3867 Местоположение: Габрово
|
 Re: Филтриране на шум от акселерометър
Като казвах че цифровите имат повече функционалност имах и това предвид - филтри, FIFO-та, детектори на преходни процеси с прекъсване и тем подобни. Ако говорим за ардуино може и да има директно библиотека за някой от тях, така че "сложността" на I2C-то (или SPI) няма какво да се мисли.
|
| Пон Дек 16, 2013 10:46 am |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 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
|
| Пон Дек 16, 2013 10:51 am |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Здравейте. Първо да спомена, че с цифровия акселерометър е много по-добре и шумовете могат да се обират с вградените в него филтри. Имам друг въпрос по темата. Първо мислех да променям яркостта на ледовете с ШИМ, но се замислих, че при движение от страни това може да иглежда като премигване (от статична гледна точка). Дали е добра идея да се направи с цифров потенциометър примерно MCP4162-502, който да контролирам по SPI от контролера? Не се сещам други методи и всяка идея е добре дошла.
|
| Вто Фев 04, 2014 9:18 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Филтриране на шум от акселерометър
Пак с PWM, но и с кондензатор и интуктивност.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Сря Фев 05, 2014 1:51 am |
|
 |
|
goose
Ранг: Популярен
Регистриран на: Сря Окт 03, 2007 3:39 pm Мнения: 311
|
 Re: Филтриране на шум от акселерометър
Не, че мога да ти дам конкретен съвет, но все пак - какво точно се опитваш да направиш? Подозирам, че ако споделиш самата идея на това измерване, ще получиш далеч по-практични съвети 
_________________ In God we trust. All others must submit an X.509 Certificate
|
| Сря Фев 05, 2014 9:49 am |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Целта е според ускорението на мотоциклета да се усилва яркостта на светлината и съответно при де-акселерация да се намалява до някаква минимална степен. Още не съм измислил точно с какъв алгоритъм, защото не съм решил какво да правя когато ускорението е 0.
Допълнително ще сложа няколко отделни червени лед-а отзад при номера, които ще премигват при де-акселерация, за безопасност, защото това е честа причина за инциденти (стопа светва само при натисната спирачка, но при връщане на газта двигателната спирачка е силна, защото мотора е лек, и е много лесно да те ударят отзад). Това е горе-долу целта ми.
Лед лентата е 3528 SMD водоустойчива на 12В и си има резистори вградени за всеки лед. Та както писах в предишния пост мислех просто с един мосфет и PWM да я управлявам, но при движение ще изглежда доста грубо. Тъй като това ми е само хоби мога да се пробвам да сметна една RLC верига, но не знам какво време ми трябва, да стане плавно. Чудя се дали няма да стане просто с един 100uH индуктор след самия мосфет? Мерси за отговорите!
|
| Сря Фев 05, 2014 11:05 am |
|
 |
|
anio
Ранг: Минаващ
Регистриран на: Пет Май 14, 2010 5:52 pm Мнения: 91
|
 Re: Филтриране на шум от акселерометър
Какво мислите за тази крива на low pass филтър в прикачената снимка. Това е с 7800Hz PWM, 50% duty step, 10k резистор и 1.0uF кондензатор. Не знам как трябва да изглежда кривата, за да се получи плавно.
|
| Сря Фев 05, 2014 1:49 pm |
|
|