Inmoov's Touch Sensors

bhouston

Canada

The other day DJ suggested an easy way to make a touch sensor, see this thread https://synthiam.com/Community/Questions/7692.

So I started playing with that idea and made a couple of touch sensors by soldering a piece of foiling tape (I "borrowed" some from my wife's stain glass supplies) to the end of a wire. I attached the wire to an ADC Port and put the foiled end on the robot. Wrote a script and it works pretty good.

Here's a picture of the sensor.

User-inserted image

A short video of them working.

Thanks for the idea DJ !

By — Last update
Jump to end

ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

Germany
#1  

I'm so jealous that you have a Inmoov:D If you touch the shoulder, the robot should automatically look into the right direction. same function as a NAO robot and very human like.

#2  

Good job Bob.... Simple but effective touch sensor..... are you thinking about putting these sensors in his hands too?

Canada
#3  

Great idea Bob...The thread to also caught my attention. A conductive mesh over the silicone caps on the fingertips would do a good job.

Now you have to script your Inmoov to serve wine to your wife into a bare stain glass... Ask Richard how to. ;)

United Kingdom
#4  

Bob, I second that "great idea"! Love your Inmoov, and can't wait to get started on mine, once I figure out space to build it.

I would be interested in the script you wrote, can you post it?

Cheers, Chris.

#6  

Thanks for the comments. The foiling tape works well as it is copper and has an adhesive backing. I have also found that by putting a piece of electrical tape under the sensor improves the sensitivity. I have a sensor on each shoulder and one each forearm now and probably will try them in the hands. Here's the code.


:loop
#Get ADC value
$TS0 = GetADC(ADC0)#left shoulder
$TS1 = GetADC(ADC1)#Right shoulder
$TS2 = GetADC(ADC2)#left arm
$TS3 = GetADC(ADC3)#right arm

if($TS0 >150 or $TS0 <35)
sleep(500)
ControlCommand("Auto Position", AutoPositionFrame, "Head Left", 25,2,2)
$sent = "You are touching my left shoulder"
ControlCommand("2 Text to Speech", ScriptStart)
Sleep(2500)
ControlCommand("Auto Position", AutoPositionFrame, "Rest",25,2,2)
Sleep(2000)

elseif($TS1 >150 or $TS1 < 35)
Sleep(500) 
ControlCommand("Auto Position", AutoPositionFrame, "Head Right", 25,2,2)
$sent = "I feel you  touching my right shoulder"
ControlCommand("2 Text to Speech", ScriptStart)
Sleep(2500)
ControlCommand("Auto Position", AutoPositionFrame, "Rest",25,2,2)
Sleep(2000)

elseif($TS3 > 175)
ControlCommand("Auto Position", AutoPositionFrame, "Look down right",25,2,2)
$sent = "you are touching my right arm"
ControlCommand("2 Text to Speech", ScriptStart)
Sleep(2500)
ControlCommand("Auto Position", AutoPositionFrame, "Rest",25,2,2)
Sleep(2000)

elseif($TS2 > 175 or $TS2 <35)
ControlCommand("Auto Position", AutoPositionFrame, "Look down left",25,2,2)
$sent = "I feel you touching my left arm"
ControlCommand("2 Text to Speech", ScriptStart)
Sleep(2500)
ControlCommand("Auto Position", AutoPositionFrame, "Rest",25,2,2)
Sleep(2000)
endif

Sleep(3000)
Goto (loop)

In the video I didn't have it running in the "loop" and I activated the script with a voice command. If it is running in the loop it will sense your touch whenever you touch a sensor. I had to play with the values using the ADC Value control to know what settings to use.

#7  

I need to print one of these inmooves

Canada
#8  

Look at what I have found you might be interesting to implement

Working on a HDMI cable to fit in my Inmoov's arm, I discover a conductive mesh that can fit easily on hand's fingers.

User-inserted image