Asked
Resolved Resolved by Jeremie!

FSR 400 Force Sensing Resistors To The EZB4?

Now I have another question for you Jeremie.

I need to know if you can tell me how I can attach there FSR 400 Force Sensing Resistors to the EZB4 for finger touch sensors?

The FSR 400 short-tail model is a single-zone Force Sensing Resistor optimized to use human touch to control devices for use in automotive electronics, medical systems, and industrial and robotics applications. FSRs are two-wire devices. They are robust polymer thick film (PTF) sensors that exhibit a decrease in resistance with increase in force applied to the surface of the sensor. This device has a 5.6 mm diameter active area and is available in 4 connection options.

User-inserted image


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro

PRO
Canada
#1  

Hey @smiller29

I would recommend using a Voltage divider configuration and attaching them to the EZ-Bv4 ADC ports.

User-inserted image

VCC would be 3.3V from the ADC power rails, 0V would be GND from the ADC power rails, and Output Vo would go to the ADC pin.

#2  

So you have two connections on the FSR 400 connected to +VCC 3.3V and and the second connection goes to Vo with a Vo also connected through a 10k resistor to ground 0V

PRO
Canada
#3  

@smiller29 That's correct! You can mess around with different values for the 10k resistor to get more precision but 10k is a good value to start with.

#4   — Edited

I have another question related to this.  So let's say I was using the AutoPosition skill how would you write code to test the fingers grip pressure to stop the servo motor from burning out? And where would you put that code?

PRO
Canada
#5  

While it might be difficult to poll the sensor while it is moving, you can certainly have a script inside the Auto Position action (called "Action Script") to check the sensor after the servo has traveled and if the sensor is past a certain threshold you can send a command to back the servo off.

User-inserted image

If you have a main loop, you could poll the sensor every time you move that particular servo.

If your servos are burning out as soon as they stall, I would recommend switching to EZ-Robot servos. This is part of the reason EZ-Robot servos have stall protection, there is stall forgiveness built-in.

#6  

The servos have not burned out yet but it is not good for them.  I would think there would be a clean way to use these force sensors within ARC for limiting servo movements because any type of gripper or hand with touch sensors needs this type of feature.

In a right and left hand set up you are going to need 10 of these sensors connected to EZB4s making sure the servos stop when the pressure gets to a set point for each finger if the fingers restricted from making its full movement.

Please someone share a way to do this.

PRO
Canada
#7   — Edited

@smiller29 I have already shared a couple of ways to do it:)  As well as a third-way using servos with stall protection

Yet another way would be to move the servo in increments and check the sensor at each increment. 5 degrees check sensor, 5 more degrees check sensor, you can do fairly quickly probably takes 10mS to check the sensor.

Yet another way is to make a closed-loop hardware solution. You could replace the servo electronics with your own electronics with hall effect sensors, limit switches, or a pressure sensor. I mean I could develop such a thing but it isn't for the faint of heartxD

#8   — Edited

So if I am understanding you correctly you are saying there is no way to do this using the AutoPosition skill.  It sounds like you are saying a custom script needs to be written to close a finger outside of the AutoPosition skill because there is no way to leverage the sensor within the AutoPosition skill as it currently functions.

This sounds like something ARC needs to support as this is something most robots could use to help pressure with grippers, hands, bottom of feet just to name a few.

we can set all kinds of features for servos but no way to link it to and adc port and value to stop driving the servo.

I am sorry but it seems like I am spending more time trying to find ways to deal with limitations within ARC.