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.
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..
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.
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?
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.
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.
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");
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);
}
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
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);
}
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.