Prototype Features
- Input resistance from flex sensors
- Converted voltage from voltage divider
- 12V motor driven by current “bend angle” of data glove
Up next
- Encoders to implement angular position control
Proof of Concept
- Provides proof that our pinned joint design is effective when operated by a cable
- Proves that torsional bands are enough to pull the join straight when load is released
Current Arduino Logic
const int flexPin = A0; // Pin connected to voltage divider output
int motorPin = 2;
const float Arduino_voltage = 5; // voltage at Ardunio 5V line
const float Resistor_value = 47000.0; // resistor used to create a voltage divider
const float Flat_resistance = 34000; // resistance when flat
const float Bent_resistance = 54000; // resistance at 90 deg
void setup() {
Serial.begin(9600);
pinMode(flexPin, INPUT);
pinMode(motorPin, OUTPUT);
}
void loop() {
int ADCflex = analogRead(flexPin);
float Voltage_flex = ADCflex * Arduino_voltage / 1023.0;
float Resistance_flex = Resistor_value * (Arduino_voltage / Voltage_flex – 1.0);
Serial.println(“Resistance: ” + String(Resistance_flex) + ” ohms”);
// Use the calculated resistance to estimate the sensor’s bend angle:
float angle = map(Resistance_flex, Flat_resistance, Bent_resistance, 0, 90.0);
Serial.println(“Bend: ” + String(angle) + ” degrees”);
Serial.println();
//digitalWrite(motorPin, HIGH);
if (angle > 90) {
digitalWrite(motorPin,HIGH); }
else {
digitalWrite(motorPin,0);
}
delay(500);
}