As a robotic engineer who has had to develop a number of tactile sensor technologies, I can tell you that this problem can either be very hard or very easy, depending on your other requirements
- 10g is pretty low, and you may find that your sensor is quite affected by temperature fluctuations, depending on the technology you use. You may find that you have use software to tell the difference between a touch and a change in temperature.
- Do you need to be able to measure the actual force applied? What is the maximum force you need to be able to detect?
- What bandwidth do you need? How soon after the touch happens do you need to know? Be realistic, don't say "immediately", say: "within 0.1s". The longer the time, the less power consumption you may be able to achieve.
- What type of object? If it's definitely a finger, then you can use a capacitive touch sensor.
How much travel are you willing to accept? If it's a lot, then you can just use a miroswitch with a long lever attached to it.
But my guess is that you can't accept much movement. Therefore here are a few ideas:
Capsesense: This technology detects the presence of a human body part touching by te change in capacitance it causes. Pros: It is very sensitive, there are chips available which can do it all for you. Cons: power consumption isn't very low, it can't detect non-conductive things, like plastic.
Microphone: You will need to mount the microphone in a such a way that the touch translates into a good acoustic signal. Pros: This can be very sensitive indeed, and with a good low power amplifier you can get the power consumption down very low indeed. Cons: It can't measure the actual force applied. Can't tell when something is applying a static load.
Pressure sensor: Mount the sensor inside a fluid (air or liquid) filled bladder. Pressing on the bladder causes a change in signal from the sensor. Pros: Can be made very sensitive. Can give some sense of the force applied. Can be pretty low power if you switch it on to take a reading, then off again. Cons: Sensitive to temperature. Needs a bladder.
Optical transceiver: These can be used to measure the very small movements as a tiny load causes something to flex. Stick a white piece of paper to the back of a metal strip. Mount the transceiver about 0.5mm from the paper. Adjust the LED current so that you get a high reading. Now, even the tiniest movement will cause a change in the analog signal. I have made sensors that will detect the slightest touch. Pros: easy and cheap to make. Very sensitive. Cons: you'll need to switch it on and off to reduce power consumption. It's temperature sensitive, so you'll need to use software to tell the difference between touch and temperature.
QTC: This is a type of rubber which changes its conductivity as you press on it. Pros: Can be extremely sensitive, low power consumption, light, cheap. Cons: Can be very tricky to use, especially in very sensitive applications. For production, you definitely need to talk to Peratech, the company that produces it.
If you let me know more about your application, I'll try to find a good solution.
Trouble with ultrasound is that it doesn't stay in the box - you still have reflections from background. So for objects that are more than a few tens of cm from the sensor you need to do signal processing to find the target. In which case you might as well pick a solution using visible light to make it easier to debug. Computer vision tracking of moving objects against static background is a solved problem; see OpenCV for a free implementation. It works best against neutral backgrounds, but doesn't require that. Two cameras gives you stereo imaging and three positions.
If you just want ball speed along an axis you can get off-the-shelf radar guns for this purpose. Building your own radar system is an extremely difficult prospect.
Edit: 50m/s should have been in the original spec, that's quite fast. Ultrasonic usually works by sending out "chirps" and timing the response. Speed of sound is ~340m/s. So it takes 35ms for sound to traverse the 12m box. During that time a 50m/s target has moved 1.75m. You need to wait until your first pulse has gone out and back before sending the next, so pulse interval is at least 70ms. So you can only get one measurement every 3.5m.
You should also spec the latency: are you trying to interact with the moving object, or is it sufficient to work out where it was after is has passed? Do you care about the exact trajectory, or just speed of passing through the box (which can be found with doppler methods with ultrasound or radar).
Best Answer
It's actually a fairly difficult problem, depending on your constraints and requirements. Determining local positioning is prone to high levels of interference and accumulation of error.
GPS will be way too inaccurate unless you setup a super expensive differential GPS system, which sounds like it would be too much for you.
You could use accelerometers/gyroscopes as you mentioned, but there is a reasonable amount of error depending on your funds and how much error you can tolerate.
I'm not exactly sure what the application of this project is, but a low cost solution could be to just mount some ultrasonic distance sensors to the shoes? Or you could use cameras and colored shoes to track the movement? Just some thoughts.
Personally I'd just tie a rope to the shoes and then I'd know how long every step would be :)