Is there a way to make a "ball" (or an object with curved surface) touch sensitive? I want the ball to do something when someone touches it with their hand.

So, currently I got an object out of plastic, i.e. the surface is smooth. The object is hollow. Inside of that object there is an arduino uno with LED and a speaker.

Whenever someone touches it and as long as a person touches, I want the arduino to make a sound or blink with the LED. That object should be also freely moveable, i.e. not tied to something. Its also very light; like a small ball that can fit into your hand.

I want the whole object to be touch sensitive. I want the ball to register whether someone is currently touching the ball or not (I.e. it should also recognize when a person is not touching the ball anymore). Is there a way to accomplish it without buying multiple expensive touch sensors?

At first I was wrapping aluminium foil around the object and put voltage on it so it becomes a capacitor. The downside is that it is not reliable, i.e. sometimes it recognizes the touch sometimes it doesnt. I suspect the aluminium foil area is too big to recognize the touch reliably.

The solution doesn't have to involve with arduino uno. I could use any arduino as long as it does the job of creating a touch sensitive (curved) surface.

The reason why I want the curved is because I want people to be able to comfortable hold it in their hands. A curved surface is suitable the best for this, I think

  • \$\begingroup\$ No idea if this is possible, but there is anti-static foam. I have no idea what the resistance would be for a sphere of (I assume) about 30 cm diameter. Which means about 15 cm to some sensor in the core. \$\endgroup\$ – Oldfart Aug 31 '19 at 8:21
  • \$\begingroup\$ Add in a schematic of your foil sensor and microcontroller interface. A schematic is better than words. You can add one in using the CircuitLab button on the editor toolbar. Double-click a component to edit its properties. 'R' = rotate, 'H' = horizontal flip. 'V' = vertical flip. Note that when you use the CircuitLab button on the editor toolbar and "Save and Insert" on the editor an editable schematic is saved in your post. That makes it easy for us to copy and edit in our answers. You don't need a CircuitLab account, no screengrabs, no image uploads, no background grid. \$\endgroup\$ – Transistor Aug 31 '19 at 8:32

Your on the right track with capacitive touch, however you can make it all internal to the ball, as the touch sensing for this method works through most plastics, I would recommend using copper tape on the inside as the adhesive and plyability make it much easier to work with, you will need a big copper area e.g. 3cm x 3cm, and spaced about 1cm away, a line with your arduino ground, you will probably want a few of these around the device,

you charge this capacitor up with the arduino pin pullup, turn off the pull up, then take an ADC reading of that pin, the ADC has a small capacitor inside that it uses to sample the analog voltage, in this situation it acts as a charge divider, so the sensor capacitor discharges a little and the ADC capacitor charges up a lot,

This voltage reflects the dielectric of the material across the sensor, now water, water is a crazy good dielectric, 80 times better than air, and about 8-20 times better than most common materials or rocks, and humans, humans are made of water, so the persons hand is over the sensor, the capacitance of the sensor is higher, so the ADC voltage is higher, and suddenly you can tell when a person is there,

Main quirk and why touchscreens don't work well in the rain is its hard to tell a persons finger apart from a rain drop, so if it rolls through a puddle or gets water sprayed on it, it will give false triggers.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.