I have a project that involves moving the larger object that my Arduino is in in two degrees of freedom parallel to some sort of flat surface, but it could be a horizontal or vertical surface. The actual device doesn't ever touch the surface, so I can't use some sort of wheel with encoding. I am wondering if there is a good type of sensor and general method to use for determining how fast the Arduino is being moved. I don't need direction, only absolute velocity, and it would be being moved on the scale of cm/sec.
If you want a better idea of what I am talking about, imagine taking your phone and slowly passing it about an 2-3cm over your keyboard. I want to know how fast it was moving during that time, and then make LEDs flash or a buzzer beep, if you are moving too quickly.
zwieblum:
search for "arduino optocal flow" --> ADNS3080
That looks really promising, thanks for the point in the right direction. Do you know if this will work in the horizontal and vertical orientations? IE if I am only ever moving it along 2 axis, but sometimes it might be X and Z, and sometimes X and Y, will it still function? If not I'll try to do some more digging. Thanks!
MPU6050 has accelerometers in it which you would be able to determine how long and how much you accelerated to calculate speed. the accelerometers generate a rate of change
Z