I've used a low cost ball-in-tube sensor. This is a passive device. A tiny cylinder perhaps 1/3 inch long. Inside is an etched gold ball rolling on an etched interior of the cylinder.
Several vendors. I got some samples from signalquest.com. Here's one of many they make
https://signalquest.com/product/components/sq-sen-200/
I connected its two leads to an I/O pin on my microprocessor, to create an interrupt on contact closure. The microprocessor ISR increases a count on each interrupt (stopping at 255). A non-ISR code driven by the recurring timer clock interrupt decrements the same counter. If the counter is > x, there is significant vibration/movement.
I put this on a vault door. It reliably reported both hammer-strikes on the door handle and opening or closing the hinged door.
In the lab, I put the sensor on a table top, in a hunk of plumbers putty. Tapping a #2 pencil's eraser lightly trigger counts.
It would do well also as a car-in-motion detector - simple.
There a lots of forms of ball-in-tube sensor. Some mount for V or H sensitivity. Some have a hump in the middle. Some are made so that half of the cylinder is not a conductor, so it becomes a tilt sensor - as might be on a garage door sensor affixed to the door with an adhesive and connecting to a low cost wireless radio.
SignalQuest is high quality. You can find cheap ones on eBay and china importers' web sites. I think SparkFun has one too.