Robotyczna ręka

Typ_projektu
Arduino
Zdjecie główne
Biała ręka wydrukowana 3D z czarnym palcem wskazującym.
Krótki opis projektu

Projekt polega na stworzeniu robotycznej ręki wydrukowanej w technologii 3D, którą można sterować za pomocą rękawicy z czujnikiem ugięcia. Główne cele to rozwijanie umiejętności związanych z drukiem 3D, elektroniką oraz techniką mikroprocesorów, a także zademonstrowanie możliwości zastosowania takich technologii w praktycznych zastosowaniach.

Niezbędne elementy

 

  1. Drukarka 3D: Wydruk poszczególnych elementów ręki za pomocą drukarki 3D.
  2. Filament: Materiał potrzebny do drukowania 3D.
  3. Serwomechanizmy: Służą do napędzania ruchów poszczególnych segmentów ręki.
  4. Mikrokontroler (np. Arduino): Kontroluje pracę serwomechanizmów i odbiera sygnały sterujące.
  5. Rękawica z czujnikiem ugięcia: Umożliwia bezpośrednią komunikację między rękawicą a modelem.
  6. Oprogramowanie: Dedykowany program na komputer, który wysyła komendy sterujące.
  7. Materiały dodatkowe: Gumki i żyłki umożliwiające sprawny ruch dłoni, stelaż na serwomechanizmy, drut/kabel.
  8. Kabelki męsko-męskie:  Umożliwiają podłączenie serwomechanizmów do  mikrokontrolera
  9. Płytka stykowa: Do podłączenia większej liczby kabli.
  10. Kabel USB: Do podłączenia Arduino do komputera.
  11. Bateria: Do dodatkowego zasilania serwomechanizmów

 

Opis projektu

Zamysłem projektu jest zrobienie modelu dłoni podążającej za ruchem dłoni osoby sterującej specjalną rękawicą.

Do realizacji, na samym początku jest potrzebny model dłoni. Używając projektu 3D znalezionego w internecie należy wydrukować wszystkie potrzebne części.

Wydruk, jak wiadomo, nie zawsze jest idealny, więc żeby zapewnić możliwie jak najbardziej płynny ruch części należy spiłować model w miejscach połączeń. Jeżeli jest pewność, że wszystko powinno już prawidłowo działać - należy połączyć części w całość.

Prawie każdy paliczek składa się z dwóch części, które powinny zostać trwale do siebie przytwierdzone. Do połączenia ich należy użyć kleju. Poza tym, paliczki między sobą muszą być połączone w taki sposób żeby umożliwiały ruch. Do tego można wykorzystać kawałki drutu miedzianego wyciągnięte z grubego przewodu.

Jeżeli model przypomina już dłoń, następnym krokiem jest zapewnienie jego ruchu. Przez otwory prowadzące przez tył palca powinna zostać przeciągnięta mocna gumka. Aby palec trzymał się prosto i po zgięciu wracał na miejsce, trzeba ją naciągnąć. Należy jednak uważać, bo jeśli gumka naciągnięta zostanie za mocno, serwomechanizmy mogą mieć problem ze zgięciem danego palca. Następnie należy przeprowadzić żyłkę przez otwory na przodzie palca. Służy ona do zginania palca.

Na tym etapie przechodzimy do elektronicznej strony projektu. Należy połączyć serwa, baterie oraz rękawicę w celu utworzenia układu (schemat dostępny w plikach projektu). Kod (również udostępniony poniżej) umożliwia ruch wszystkich pięciu palców. Rękawica używana w tym projekcie ma tylko jeden pasek ugięcia więc kod zbudowany jest tak, aby po sczytaniu danych poruszał się palec wskazujący, a za nim, z odpowiednim opóźnieniem kolejno reszta palców. Po prawidłowym połączeniu układu oraz ewntualnym dopasowaniu kodu do swoich potrzeb (np. zmianiana zakresu danych pobieranych z rękawicy lub opóźnień) mechanizm powinien działać w miarę płynnie.

Na koniec, najtrudniejszym zadaniem jest połączenie wszystkiego w całość. Należy umieścić serwomechanizny na stelażu dla zapewnienia stabilności (u nas wykonany on był z kartonu) Poza tym, trzeba jeszcze podłączyć palce do serw. Należy to wykonać przymocowując wcześniej przeciągane przez palce żyłki do ramion odpowiednich serw.

W tym momencie projekt jest już prawie gotowy. Wystarczy jeszcze tylko przetestować ruch wszystkich palców i ewentualnie coś zmienić. Możliwe jest na przykład, że niektóre palce będą za bardzo wyginać się do tyłu lub będą się opornie ruszały do przodu. Po takiej analizie i usprawnieniu modelu, można jeszcze poprawić estetykę projektu, doklejając opuszki palców, czy przycinając i doklejając odstające elementy.

Zdjęcia
kod programu

#include <Servo.h>

 

Servo wskazujacyS;  // utwórz obiekt serwomechanizmu

Servo srodkowyS; 

Servo serdecznyS; 

Servo malyS; 

Servo kciukS; 

 

int val;// zmienna do przechowywania wartości odczytanej z pinu

int val1;

 

void setup() {

    Serial.begin(9600);

  wskazujacyS.attach(8);  // podłącz serwomechanizm do pinu

  srodkowyS.attach(9);

  serdecznyS.attach(10);

  malyS.attach(11);

  kciukS.attach(12);

  

}

 

void loop() {

  val = analogRead(A1); 

 

  val1 = map(val, 800, 530, 15, 180);     // przekształć wartość na zakres od 0 do 180, 710 to warto zczytywana dla prostego palca, a 500 dla zgietego

     Serial.println(val1);// odczytaj wartość z pinu A1 

  

  wskazujacyS.write(val1);                  // ustaw kąt serwomechanizmu zgodnie z przekształconą wartością

  delay(100);                           // odczekaj na serwomechanizm, aby dotarł do wyznaczonej pozycji

 

  

  srodkowyS.write(val1);                  

  delay(100);

 

    

  serdecznyS.write(val1);                  

  delay(100);

 

  

  malyS.write(val1);                  

  delay(100);

 

  

  kciukS.write(val1);                  

  delay(100);

Schemat
Youtube
Tagi
#arm #robotichand #Arduino #arduinouno #robticarm
Odnośniki zewnętrzne
https://projecthub.arduino.cc/Gabry295/how-to-make-a-remote-controlled-robotic-hand-with-arduino-404101
https://www.viralsciencecreativity.com/post/arduino-flex-sensor-controlled-robot-hand