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

ARC Pro

Upgrade to ARC Pro

Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.

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