Robotic finger with tactile sensation

Hi everyone,

I am a computer science student with very few knowledge on electronic engineering. Basically my final year project is to make a robotic finger with tactile sensation.

I use the finger model from Yale OpenHand Project (Yale OpenHand Project). Also i have set up the connection between two flexiforce sensor and two Hi-Tec motors. However, tactile sensation is not just simply reading data through Arduino.

I will be so appreciated if anyone can please simplify the requirement and setup of tactile sensation?

How do you have it wired up? Maybe you wired it wrong.

How are you trying to read it out? Where’s your code? Maybe you coded it wrong.

What exactly are you trying to do with it? Maybe you’re trying to do something for which the flexiforce sensor is not appropriate.

As a CS student, and a 4th year one at that, you should have been on the receiving end of technical questions often enough to know how to ask them :-/

Thank you for correcting me the way i asking question.

Here is how i hook up the components. I am reading the data with very few lines of code. Basically just analogRead() method. (Link)

As you mentioned, the rate for flexiforce sensor may not be fast enough to detect. Therefore i have a set of Hall sensor. (Link)

I have read a few papers regarding how to achieve the tactile sensation. However, i have very few tools. The programming aspect should be too complex for this underactuated robotic hand project. I just want somebody who has experience smilier to this topic may give me some suggestions regarding the hardware.

DrAzzy:
How do you have it wired up? Maybe you wired it wrong.

How are you trying to read it out? Where's your code? Maybe you coded it wrong.

What exactly are you trying to do with it? Maybe you're trying to do something for which the flexiforce sensor is not appropriate.

As a CS student, and a 4th year one at that, you should have been on the receiving end of technical questions often enough to know how to ask them :-/

AAaha! There's the problem with the flex sensors.

Those sensors work by having a variable resistance - you're right to try to detect with analogRead() - but that's not enough.
You've got them connected to power on one side, and the analog out on the other side (good). But this alone won't work. No matter what resistance that force sensor is, the other end of it is going to be at supply voltage, because there's nothing to tell it otherwise.

You need a resistor between the end of the force sensor going into the arduino, and ground. That way, that resistor, and the flex sensor, will form a voltage divider. Monitor the voltage in the middle, and now you can see when the resistance of the flex sensor changes.

The only question now is what value of resistor. Per their specs, the not-flex'ed resistance is in the 5 mega-ohm range, with lower resistance (potentially much lower) when pressed/flexed. I'd hook the flex sensors up to a multimeter, and see if I could measure what sort of resistance it has within the range of force/movement you expect during operation. Then pick a resistor value around the middle of that range.

Sorry for the confusion. The pic i linked is a old one. I have connected a resistor for each flex sensor which lowered the initial value to 0 and also made it less sensitive. Thank you for your advice, i also haven't figure out the value of resistor i should use.

Another problem i have is, when i pressure one of the sensor the value of another one also changed. So is it correct if i plug one resistor for each flex sensor or i should place two sensors on separate breadboard.

Basically, my plan is place a sensor on the distant finger pad for each finger which helps to analyse the contact condition then the motor gets trigger to rotate corresponding degree.

DrAzzy:
AAaha! There's the problem with the flex sensors.

Those sensors work by having a variable resistance - you're right to try to detect with analogRead() - but that's not enough.
You've got them connected to power on one side, and the analog out on the other side (good). But this alone won't work. No matter what resistance that force sensor is, the other end of it is going to be at supply voltage, because there's nothing to tell it otherwise.

You need a resistor between the end of the force sensor going into the arduino, and ground. That way, that resistor, and the flex sensor, will form a voltage divider. Monitor the voltage in the middle, and now you can see when the resistance of the flex sensor changes.

The only question now is what value of resistor. Per their specs, the not-flex'ed resistance is in the 5 mega-ohm range, with lower resistance (potentially much lower) when pressed/flexed. I'd hook the flex sensors up to a multimeter, and see if I could measure what sort of resistance it has within the range of force/movement you expect during operation. Then pick a resistor value around the middle of that range.

Basically, my plan is place a sensor on the distant finger pad for each finger which helps to analyse the contact condition then the motor gets trigger to rotate corresponding degree.

I assume your "tactile sensation" is the output of a pressure sensing flex sensor. The flex sensor probably needs to be wired up as part of a voltage divider which inputs the arduino. You probably can search and find many previous post in the forum concerning flex sensors.