Go Down

Topic: how to make three-dimensional objects completely touch sensitive (Read 11815 times) previous topic - next topic

starsraindown

Hi!

I was just trying to research how to make a three-dimensional object completely touch sensitive without using external devices like hd-cameras or infrared cameras. The object is made of metal and completely conductive. Capacitive sensors? Piezos? Any idea?

My aim is to built a sculpture with artificial intelligence that interacts emotionally and sensually with the observer. The touch sensibility would be an important element amongst other forms of intelligence and emotion tracking.

This is the whole project: http://vvvv.org/forum/community-project

Thank you in advance for your help!!

Valentin


starsraindown

#2
Jul 26, 2012, 02:21 pm Last Edit: Jul 26, 2012, 02:30 pm by starsraindown Reason: 1
well, the metal-surface I am going to use is already conductive.

the question is rather how to detect -

1)if it got touched (simple capacitive sensing)

2) where exactly the three-dimensional surface got touched (the main problem!).

mabe also 3) how it got touched (http://www.disneyresearch.com/research/projects/hci_touche_drp.htm)


The second and third task cannot be performed onboard, I will trie to use PureData fot that.

Thanks for replies!


Magician

How big object is? I'm thinking to wrap it in many  FSR.

focalist

#4
Jul 26, 2012, 03:55 pm Last Edit: Jul 26, 2012, 04:20 pm by focalist Reason: 1
Hmm..

I am wondering if there's maybe a way you could coat it with something similar to graphite, followed by a conductive paint, followed (probably) by some type of flexible layer to keep it all tidy.  Pressure on the outer paint surface compresses the graphite, creating a resistance.  I think there's some way you could set it up to work as a "sheet" wrapped around the surface, then using the resistance taken from several locations on the perimeter, maybe there's a way to calculate location.  Of course, multi touch would immediately mess it up.

So, how about you paint on a graphite layer in smaller areas, then conductive, then sealant top layer.. creating individual variable resistors?

Graphite may not be the right stuff, but the idea is the key.  For some reason, Zinc Oxide comes to mind, from some science demo from youtube or some nonsense.. I don't know if Piezo would work, as they usually are for knock sensors, I am not sure if they produce any type of variable continuous output that could be used to measure force, like a strain gauge..

focalist

Also a quick search of ebay turned up these:

http://www.ebay.com/itm/FSR400-Force-Sensitive-Resistor-Force-Sensor-/220923419046?pt=LH_DefaultDomain_0&hash=item33700fd9a6



Looks like the perfect thing, even looks like it's flexible tape mounting.  Get yourself a bunch of these or similar.. same idea as making your own, 'cept someone else who knows how to do it, did it.

Expensive if you need a lot of them though..

focalist

http://www.ebay.com/itm/Pocket-Electronic-Scale-100g-Weighing-Sensor-Load-Cell-/180919107048?pt=LH_DefaultDomain_0&hash=item2a1f9e7de8




These load cells are about half the price at $7 each

EVP

mm, it would be easer if it was made of some kind of plastic. Then you could just paint multiple conducive areas in it. I think you might run into problems if you have to many, Atmel do a chip for multi dimensional conductive arrays and it sorts out a lot of the cross talk for you. I am going to tackle one when i have the time, i thought of using transparent conducive plastic layered with non conduction transparent plastic and then all put through a laminator to make transparent-ish conductive switched. Anyway your object is metal mmm. lot's of small microphones and some fancy code? piezo microphones stuck to the inside?

focalist

The load cells are metal, but the pressure sensitive resistors are flexible thin film.

starsraindown

great, thank you all for you ideas. i will have to figure out now if I want some really sophisticated solution with with a lot of coding and stuff or just to try to make it as simple as possible. conductive paint would definately be a pretty simple and convenient solution. but If it is possible to create a whole metal sculpture out of a square (or rectangular) base surface, capacitive sensoring would probably be possible. (it would be like a folded touchscreen). it is also a very "organic" way of sensoring, considering that the nervous system also works with electrical impulses &  fields.

udoklein

Check out my experiments http://blog.blinkenlight.net

radman

Quote
2) where exactly the three-dimensional surface got touched (the main problem!).


That does sound like the main problem to me.
The only solution to this problem that I know of is skin, either nerves in skin or hairs attached to nerves in skin.
You should define the size of your object and the resolution of touch you want to detect.

My gut feeling is that flexible conductive hairs would offer the best solution, but how you would fabricate something like that I have no idea.

starsraindown

solution?: http://www.theyinhe.com/2011/caressme-touch/

rbosamiya9

You can easily make paint from graphite or else the easier option will be to take out carbon from AA or AAA battery. Then mix some water and obtain the consistency like paint by stirring it properly, Then paint it on a surface whatever you want to make touch sensitive.

Connect this sensitive surface to A0 or any analog pin of arduino   and upload the following code



#include <ADCTouch.h>

int ref0;     //reference values to remove offset

void setup()
{
   // No pins to setup, pins can still be used regularly, although it will affect readings

   Serial.begin(9600);

   ref0 = ADCTouch.read(A0, 500);    //create reference values to
   
}

void loop()
{
   int value0 = ADCTouch.read(A0);   //no second parameter
   

   value0 -= ref0;       //remove offset
   

   Serial.print(value0 > 40);    //send (boolean) pressed or not pressed
   Serial.print("\t");           //use if(value > threshold) to get the state of a button

Serial.print(value0);             //send actual reading
   Serial.print("\t");

   Serial.println(value1);
   delay(100);
}






rbosamiya9

You can easily make paint from graphite or else the easier option will be to take out carbon from AA or AAA battery. Then mix some water and obtain the consistency like paint by stirring it properly, Then paint it on a surface whatever you want to make touch sensitive.

Connect this sensitive surface to A0 or any analog pin of arduino   and upload the following code

Code: [Select]


#include <ADCTouch.h>

int ref0;     //reference values to remove offset

void setup()
{
  // No pins to setup, pins can still be used regularly, although it will affect readings

  Serial.begin(9600);

  ref0 = ADCTouch.read(A0, 500);    //create reference values to
 
}

void loop()
{
  int value0 = ADCTouch.read(A0);   //no second parameter
 

  value0 -= ref0;       //remove offset
 

  Serial.print(value0 > 40);    //send (boolean) pressed or not pressed
  Serial.print("\t");           //use if(value > threshold) to get the state of a button

Serial.print(value0);             //send actual reading
  Serial.print("\t");

  Serial.println(value1);
  delay(100);
}





Here if value0 will be greater than 40 it means that touch is detected.


you can use this code according to your need.

You can install this library from arduino library manager library.

Thank You

Go Up