Asked — Edited

Analog Capacitive Question

I am thinking about adding analog capacitive wires for my InMoov but have a questions. All of my V4's are in use on the inmoov right now so I dont have one to try this with or I would.

In order for the analog signal to increase or decrease when a wire is touched, I assume that I have to provide current (+ and/or -) to the pad that I will be incorporating along with the signal wire. Is this an accurate statement or do I just need the signal wire?

Thanks David


Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

United Kingdom


I don't know if the information here will be of any use to you. The sensors described here are similar to the flex sensors I used which just use the signal and ground pins on an analog port.


Are you needing a touch sensor or an "amount of force" sensor?


If the touch sensor provides resistance when touched, then you can read this resistance value right from the analog port... no need for an external source of power... @Bob should comment, I believe he made some simple ones for his inMoov...


More questions: Does it have to be an analog signal or would a digital touch switch signal work for what you need? If it can be digital, would you want it to just trigger a digital input or would you need it to pull in a relay?


Ideally, I would just run the wire to a small hole in the finger. At that point any resistance to a conductive object (such as a person) should be able to be measured.

The other option is to use foam from one of the EZ-Robots boxes that I have and run ground and the signal cable through the fingers to some copper strips, which would then allow me to measure pressure more than just touch.

I think I am just going for touch but don't have much room at all to put in switches. these finger tips are pretty tight.


@David... I think you can do that with a pullup or pulldown resistor (depending on how you wire it) ... as an experiment, If you take 2 wires... one on the analog signal pin and one on the ground pin... Now squeeze them between your fingers without letting them touch each other... You will see the analog value rise and fall depending on how hard your squeeze... what you are seeing is a change in resistance value...


I know @bob made some cheap home made touch sensors... I am not quite sure how he made them but maybe he'll chime in and let us know...


Yep, the antistatic foam that is in the EZ-Robot boxes will act as a resistor. As the foam is compressed it becomes less resistive and conducts more electricity. That is the theory anyway. I have to find something to do with all of these analog ports and this seems like as good of a thing as anything at this point. I can have 8 ports per hand right now. The thought is that 5 of these would be in the fingers and a few of them in the palm (thinking thumb, palm and pinky joints in the hand). This should allow me to know how tight something is being held. There is a ground run to the wrist just outside of the rotational servo.

Do the ground and signal pins have to run off of the EZ-B or is a common ground good enough? Lots of testing to do on this.

As for other points for contact sensing, I have 16 more analog ports to use. I figure shoulders, and head would be a good place to add some copper for touch sensing. I may do something in the stomach, not sure.


David, that would be awesome... Lots of finger stringing/wiring surgery coming you way soon... LOL:D


All the ground pins on every port on the ezb are common to each other. As long as you have at least one ground wire going back to the ezb you can make a common grounding point anywhere away from the ezb you would like for your analog ports. I like to run at least two grounds back to the ezb just in case one comes loose or breaks.


Well I conducted a test on this. The rubber that is used in the boxing is really good at suppressing voltage. I was however able to get it to act like a switch based on pressure. The foam kept the two contacts (signal and ground) separate until enough pressure was applied to make them "make contact".


It seems that the amount of this rubberized material makes a rather large difference as one would expect. I now have a lead glued to the outside of this material and another one very shallow in the material. I am now getting the pressure type sensor I am looking for. A little bit of paint over the top of the wire and it should be good. I will post pics when it is painted.

With the signal wire being on the outside of the material, it also acts as a touch sensor I guess. Non-conductive contact it acts as a pressure sensor, conductive material it acts as a touch sensor. Not bad...

United Kingdom

This sounds pretty sweet. I knew that foam packaging would be useful for something else;). Great idea David.


I have painted it with conductive paint. I will see how that works out and post.

If the conductive paint works out well, I will use this to paint the copper strip that I will use for the shoulder touch sensors. If it doesn't work out, I will have a lot of cleanup to do:)


conductive paint works well right now. I dont know if it will break down over time or not, but...

I get normal analog readings of between .82 volts and.87 volts when not When I touch the palm of the hand softly, I get analog readings of 1.3 V to 1.5V

When I put pressure on the palm with the rubber handle of a screw driver, I get analog readings from .42 volts to .51 volts.

I also roughed up the paint by patting it with sandpaper when it was tacky still. This gives some texture to the palm of the hand.


Hi, here's a link to the post I made about the touch sensors I experimented with.

Strange thing happened though, they quit working. Everything was set up and the next day when I fired up the robot nothing. I haven't able to figure it out.

Anyway, I am going to try what you have done Dave, looks a lot more sophisticated than my effort.


I did also try touch sensor base on Bob experimentation.

A thin 5 feet HDMI wire directly connected to an A/D port touched by myself will trigger the "your are touching my finger" sentence.

Here a quick script based on what BOB did before.

:loop #Get ADC value $TS0 = GetADC(ADC5)#finger

SetVolume( 200) if($TS0 >75 ) #sleep(500) SayEZBwait("You are touching my finger") endif Goto (loop)

I intend to wrap a small metal foil ring around the tip of each finger, maybe connect tree fingers together and keep the thumb and index separate. An other one in the palm of the hand.

So 8 a/d port of one EZB would be enough to cover the 2 hands.

By the way what is the easiest way to increase the amount on A/D port of a EZB ?


currently there is only one option that I know of. You could put in an arduino mini pro and then send the results of the analog ports on the arduino to the v4 via a serial connection. Any digital port can be used or the serial port on the v4 to get the data, but you are probably out or close to out of digital ports. You might need to use the new ability of ARC to add more digital ports to free up one of the digital ports to use this solution.


Tanks for the sugestions David, Indeed I will need to add at least an other EZB, but still I'll be short of input port. So I'll explore the other options.


User-inserted image

Here is the end result photo. I wanted to give my robot the ability to sense touch in the hands. I accomplish this by using analog ports on the V4 and connect it to the hand using the HDMI cable that runs from the shoulder to the wrist. There is an HDMI splitter in both locations. The HDMI cable also carries the signal to the servo motors in the hands that move the rotational writs and fingers. I cut the foam from an EZ-Robot box to fit the palm of the hand and the fingers. This foam provides extra grip for the hands. I placed the analog signal wire on the outside of these pads and then painted over the wire with some conductive black paint. When the pads are touched by something conductive like a human, the analog readings increase. I also wanted to add a pressure sensor for the palm of the hand. This was done by adding a ground wire to the palm pad that is inserted into the pad just below the surface of the pad. Now when a non-conductive object, such as a screw driver is pressed into the palm the analog reading decreases. This allows me to know if it is a person or an object that is contacting the palm. It also allows me to program the inmoov to grip an object tight enough so as not to drop it.