Arduino Forum

Topics => Interactive Art => Topic started by: starsraindown on Jul 26, 2012, 04:14 am

Title: how to make three-dimensional objects completely touch sensitive
Post by: starsraindown on Jul 26, 2012, 04:14 am
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
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: EVP on Jul 26, 2012, 01:39 pm
Paint it. http://www.bareconductive.com/store (http://www.bareconductive.com/store)
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: starsraindown on Jul 26, 2012, 02:21 pm
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!

Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: Magician on Jul 26, 2012, 02:37 pm
How big object is? I'm thinking to wrap it in many  FSR.
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: focalist on Jul 26, 2012, 03:55 pm
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..
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: focalist on Jul 26, 2012, 04:01 pm
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

(http://i.ebayimg.com/t/FSR400-Force-Sensitive-Resistor-Force-Sensor-/00/s/NjAwWDYwMA==/$(KGrHqNHJBcE63VgzhjZBO1,f2(4Cg~~60_3.JPG)

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..
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: focalist on Jul 26, 2012, 04:12 pm
http://www.ebay.com/itm/Pocket-Electronic-Scale-100g-Weighing-Sensor-Load-Cell-/180919107048?pt=LH_DefaultDomain_0&hash=item2a1f9e7de8

(http://i.ebayimg.com/t/Pocket-Electronic-Scale-100g-Weighing-Sensor-Load-Cell-/00/s/NDAwWDQwMA==/$(KGrHqF,!o8E-)D408z1BP8KbjnIyg~~60_1.JPG)


These load cells are about half the price at $7 each
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: EVP on Jul 26, 2012, 08:29 pm
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?
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: focalist on Jul 28, 2012, 07:51 pm
The load cells are metal, but the pressure sensitive resistors are flexible thin film.
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: starsraindown on Jul 29, 2012, 02:04 am
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.
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: udoklein on Aug 17, 2012, 11:10 pm
phase array microphones inside?
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: radman on Sep 06, 2012, 12:53 am
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.
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: starsraindown on Sep 13, 2012, 10:24 pm
solution?: http://www.theyinhe.com/2011/caressme-touch/
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: rbosamiya9 on Apr 12, 2019, 09:20 am
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);
}





Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: rbosamiya9 on Apr 12, 2019, 09:26 am
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
Title: Re: how to make three-dimensional objects completely touch sensitive
Post by: rbosamiya9 on Apr 12, 2019, 09:40 am
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