This is an old revision of the document!


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 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.

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>.

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);
  //Serial.println("Hello");
  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

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

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Bibliografie/Resurse

pm/prj2021/apredescu/robotic_hand.1622210484.txt.gz · Last modified: 2021/05/28 17:01 by nicolae.rosca
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0