element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Detect oscillations
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 33 replies
  • Answers 1 answer
  • Subscribers 396 subscribers
  • Views 2669 views
  • Users 0 members are here
  • oscillations
  • processing
  • accelerometer
  • movement
  • algorithm
  • arduino
Related

Detect oscillations

kosme
kosme over 11 years ago

I'm trying to use an Arduino and a MMA8452Q accelerometer to sense movement and detect oscillations. What would be the best way to analyze and process the info to detect oscillations at a specific frequency range and act accordingly?

 

Edit 1:


Aswering Michael Kellett questions

Must you detect  a single frequency (known in advance) or a band of frequencies.

I must detect if the oscillation is in the 4-8Hz range.

 

Is the sampling rate under direct contorl of the Arduino or is it set by the accelerometer.

It is mostly under control of the Arduino. The accelerometer is set to sample at a certain rate but I can "miss steps" simply by reading the I2C interface at a much lower rate.

 

What is the range of frequencies and amplitudes you must detect.

I must detect if the oscillation is in the 4-8Hz range. The amplitude will be handled by the accelerometer but I expect it to be between ±4G's

 

Are there other signals present at the same time which you must ignore.

No, but it would be nice to be able to log the results.

 

How quickly must you reach a  decision when the signal appears.

I haven't decided that yet but the oscillation must persist for several seconds before action is taken. The exact number of seconds hasn't still been determined.

 

What accelerometer are you suing.

MMA8452Q I2C accelerometer

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 11 years ago +1 suggested
    Hello Enrique, It makes it easier for people to follow the thread if you just add a new message rather than editing the original question. It seems that you want to detect energy in the band 4 - 8Hz, not…
  • D_Hersey
    D_Hersey over 11 years ago +1
    SO has just come down with Parky's, so I know of the characteristics of the tremors, they do seem to have a characteristic wave form, narrow fq, fairly constant amplitude between ramp-up and ramp-down…
Parents
  • D_Hersey
    0 D_Hersey over 11 years ago

    I think Fourier (actually probably developed by Leonhard Euler) would be real useful here because the signal data is so sinuate.  FFT is commonly used to refer to spectral transforms generally, as I meant.  But you are technically correct, strictly speaking 'FFT' refers a specific algorithmic trick. This would be a very small problem if we had access to the analog signal,  we could be on our way with a dual op-amp and some Rs and Cs.

     

    The Fourier Transform is (like, say, negation) self-inverse:  Therefore it does not lose (aside from quantization) information.  Binoculars turn images into spectral data and back in order to have the optical system track.  Works fine.

     

    Further I never suggested real-time FFT, just that it would be a useful tool for looking at the data.  Voluntary movements are readily distinguishable from spasms.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 11 years ago in reply to D_Hersey

    Don, you are making huge and unjustified assumptions about the signal ('because the signal data is so sinuate') - the OP hasn't shared any recordings of acceleration data and until that data is available it just isn't possible to suggest an event detection algorithm.

     

    Step 1 is to look at the data, and, since it comes out of the accelerometer as a time series, that's the best way to look at it first.

     

    'The Fourier Transform is (like, say, negation) self-inverse:' 

    This is only partially true - to reconstruct a discrete event correctly you need an infinite time series, practical methods of sampling always involve some messing about like windowing, overlapping etc. This can all be very useful in trying to understand some data which is why I suggested the OP should try to get hold of  a copy of MATLAB which can do a lot of this stuff.

     

    'Therefore it does not lose (aside from quantization) information' - I'll be pedantic again - Fourier Transforms are linear, it's the Discrete Fourier Transform that involves quantizing. Since the data from the accelerometer is a digital time series already there need be no further loss in that area.

     

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kosme
    0 kosme over 11 years ago in reply to michaelkellett

    I agree with Don, indeed the signal I want to measure is very periodic. He correctly assumes that the shaking events I want to record and analyze have periodic movements that could be plotted not necessarily as sines, but as a triangular wave.

     

    - Enrique

     

    Ps. What is an OP? I am not familiar with that term or acronym.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • kosme
    0 kosme over 11 years ago in reply to michaelkellett

    I agree with Don, indeed the signal I want to measure is very periodic. He correctly assumes that the shaking events I want to record and analyze have periodic movements that could be plotted not necessarily as sines, but as a triangular wave.

     

    - Enrique

     

    Ps. What is an OP? I am not familiar with that term or acronym.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • michaelkellett
    0 michaelkellett over 11 years ago in reply to kosme

    OP = Original Poster

     

    If you haven't come across this term that means you may not have discovered usenet.

    You should be able to access it via your ISP's news server or (less good) via Google.

     

    Check out Usenet - Wikipedia, the free encyclopedia

    Get yourself a news reader programme and have  a look.

     

    Do you have any plots of typical acceleration data to show use the kind of events you want to detect and reject.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • kosme
    0 kosme over 11 years ago in reply to michaelkellett

    I don't have any right now but will get some and post them ASAP

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 11 years ago in reply to kosme

    I'll be interested to have a look at them and see if any ideas come to mind.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube