What sensors for a MATERIAL TOUCH/FEEL device?

Dear Arduino Masterminds,

We are doing a little Arduino project and we would like to make a device that could 'feel' (touch/experience) materials around us and create a sound response depending on the material. Kind of like recreating our human experience of different materials. Ideally, it would feel all the subtle differences (like different types of smootheness, roughness, density?).

Do you think it is possible? What sensors could help?

We thought that maybe some sort of needle could be run over materials and move with the roughness. This could be then recorded and expressed by generating variable sounds.

Maybe an optical sensor would be better? Or maybe something to do with conduction?

We would be VERY VERY greatful, as it seems we could make a cool device with it. (it's a school project, so we probably could not afford any extremely expensive parts but ANY help/comment/inspiration would be appreciated)

Do you think it is possible? What sensors could help?

Well that is the key isn't it. The arduino part is simple assuming the sensor(s) uses some kind of electronic output measurement value either digital or analog that the arduino can measure. But finding/defining a sensor(s) that can detect what you are asking for sound pretty ambitious. Perhaps if you limited the specific things it has to discriminate between someone can offer an idea(s).


OP, two identical posts deleted.

Do NOT cross-post, it wastes time.

Well i once read of a record player that played records with a laser, it worked but the records had to be very clean as the dust and dirt wasn't moved out of the way (like a needle would). But lasers might be a bit ambitious, something hackable and close might be an optical mouse. Don't know how you would do that but i presume you might get some info on the surface if you looked at the data in the right way. You might need to use different light sensors and interface directly with them rather than the mouse it's self. Obviously this will only work on flat surfaces.

I might suggest three possible approaches:

(I have no experience with this, so these are just suggestions)

1) surface roughness: an optical sensor seems to make sense, assuming that the surface is not too glossy. I would consider a very fine beam laser diode pointed downwards, with a number of tiny phototransistors arranged in a star pattern around it. These transistors would of course be sensitive to the same wavelength as the laser diode. This is very similar to the way an optical mouse works, so as the previous poster suggested a mouse hack might be a starting point.

On a perfectly smooth surface the reflection would impinge on a specific transistor. On a rougher surface, the reflection might be detected by multiple transistors, to varying degrees. You would need to develop some fairly clever filtering software to discriminate between degrees of roughness.

2) surface elasticity: there are resistive pressure sensors available which (as you might guess) respond to variations in pressure. So if you could press down with a known force and distance, the elasticity of the material might be able to be determined through experimentation and software.

3) surface conductivity: most materials exhibit conductivity to some degree. This of course varies considerably with surface humidity. The easiest way to measure conductivity is with a resistive sensor, which can be as simple as two probes (or pads) connected via an op-amp to amplify the difference from measured value vs. a known value.

By combining multiple (conditioned) sensor outputs and using software to discriminate the patterns, it may be possible through experimentation to build up a simple database of standard surface types.

Consider for example the differences between determining the nature of your kitchen granite counter top, and granny's angora wool scarf. I think that entirely different sensor types would be needed, so perhaps if you could narrow down your requirements, some ideas could crystalize and help you find a way forward.

Just a thought.

A record player uses a piezo crystal on the needle to convert the roughness (?) of the record into an electric signal. Along those lines you could probably solder a pin/nail/etc to a piezo disc and emulate a record player -- or just use a record player needle of course. The signal out from the piezo would be varying frequency and amplitude and there will still be a requirement for tons of amplification/massaging of the signal.

A record player uses a piezo crystal on the needle

Can you still buy those things?
I thought most cartridges these days were moving magnet (very low output voltage) or moving coil (extremely low output voltage)

Wow, thanks a lot guys! These seem to be some very good starting points.

Do you happen to know anything fairly similar for inspirations? I’ll try to hack a mouse and a record needle.

Any more suggestions?

YEARS on Vimeo ← this seems to be using some sort of an optical input. Probably just to see the lines of the tree. Doesn’t seem to be that good for my project.