Table of Contents

Robotic Hand

Robotic Hand este capabil de a apuca obiecte prin intermediul unei rezistente variabile din manusa utilizatorului

Poate fi folosit pentru manipularea de obiecte/substante periculoase la distanta, intr-un mod ce este mai comfortabil pentru utilizator

Robotic hand a fost inspirat de mana prostetica PheonixV2 (open source, 3D printabila). Am adaptat arhitectura mainii prostetice, adaugand un mod de a controla mana de la distanta.

Descriere generală

Mana robotica functioneaza prin 2 servomotoare comandatae de placa Arduino prin intermediul unei rezistente de tip flex.

Prin intermediul rezistentei placuta stie daca mana a fost indoita prin intermediul modificarii tensiunii receptionate pe pinul A0.

Mana robotica propriu zista este facuta din scart si din banda izolanta. Decetele sunt facute din 2-3 falangi, care sunt tinute sub tensiune mecanica de un elastic.

In momentul cand rezistenta flex este indoita, cele doua servomotoare sunt comandate sa tragata de ata si indoaie degetele.

DEMO:

https://www.youtube.com/watch?v=KqeZ_P5rO6E

https://www.youtube.com/watch?v=Py3qWZeAV7E

Hardware Design

Piese folosite: Placa Arduino Uno Breadboard Fire Rezistenta flex Rezistenta 10k Baterie 9v 2 X Servomotor 9g

Schema electronica:

Rezistenta flex folosita

20210528_155101.jpg

Manusa prin care utilizatorul interactioneaza cu Robotic Hand

20210528_155247.jpg

Procesul de creere al componentele mainii

20210528_154819.jpg 20210528_154832.jpg

Produsul Final

20210528_154411.jpg 20210528_154426.jpg 20210528_154904.jpg

Cablajul

20210528_154521.jpg

Software Design

Pentru dezvoltare software am folosit IDE-ul oferit de Arduino. Biblioteca folosita este <Servo.h>.

Folosesc functia map() pentru a transfroma inputul de la flexPin la unitati de la 0 la 180 folosite de servos.

Codul folosit pe Arduino.

include <Servo.h> 

Servo myServo;
Servo myServo2;
Servo myServo3;

const int flexPin = A0; 

void setup() 
{ 
  myServo.attach(11);
  myServo2.attach(10);
  myServo3.attach(9);
  pinMode(flexPin, INPUT);
} 

void loop() 
{ 
  int flexValue;
  int servoPosition;
  
  flexValue = analogRead(flexPin);
  servoPosition = map(flexValue, 785
  , 900, 0, 180);
  servoPosition = constrain(servoPosition, 0, 180);
  myServo.write(servoPosition);
  myServo2.write(servoPosition);
  myServo3.write(servoPosition);
  
  delay(20);
} 

Rezultate Obţinute

Robotic hand poate sa fie operat de la distanta prin intermediului unui sezor de flexiune.

Proiectul il consider un succes. Ceea ce consider ca s-ar putea imbunatatii este pozitionare degetelor pentru a aveea un grip mai puternic.

De asemenea proiectul poate fii scalat pentru folosirea a 5 degete miscate in mod individual.

Download

Bibliografie/Resurse

Export to PDF