🤖
ROBOT KODLA
Öğrenmeye Başla →
🚀 Robotik Projeler ve Yapım Rehberleri 📅 16 Ekim 2026

Arduino ile Robot Kol Yapımı ve Servo Motor Kontrolü

Arduino ve 4 adet servo motor ile 4 eksenli robot kol nasıl yapılır? Mekanik montaj, ters kinematik mantığı, joystick kontrolü ve tam kodlar.

Arduino ile Robot Kol Yapımı ve Servo Motor Kontrolü

Endüstriyel robotik dendiğinde zihnimizde canlanan ilk görüntü; otomobil fabrikalarında devasa parçaları milimetrik hassasiyetle kaynaklayan, boyayan veya montajlayan çok eksenli Robot Kollardır (Robotic Arm). İnsan kolunun omuz, dirsek, bilek ve parmak hareketlerini taklit eden bu eklemli mekanizmalar, otomasyon dünyasının omurgasıdır.

Bu kapsamlı rehberde; Arduino Uno, 4 adet servo motor ve akrilik/ahşap parçalar kullanarak masaüstü boyutunda 4 Eksenli (4 DOF) bir Robot Kolun mekanik montajını, harici güç bağlantılarını, joystick ile manuel kontrolünü ve kodlama mimarisini adım adım inceliyoruz.

1. 4 Eksenli Robot Kolun Anatomisi ve Eklemleri

İnşa edeceğimiz robot kol 4 serbestlik derecesine (Degree of Freedom - DOF) sahiptir:

  • Taban Eksen (Base / Gövde Dönüşü): Robot kolu sağa ve sola 180 derece döndüren zemin servosu.
  • Omuz Eksen (Shoulder): Kolun gövdesini ileri ve geri yatıran ana taşıyıcı servo.
  • Dirsek Eksen (Elbow): Ön kolu yukarı ve aşağı hareket ettiren uzanma servosu.
  • Kıskaç Eksen (Gripper / Tutucu Parmak): Nesneleri kavramak ve bırakmak için açılıp kapanan uç eyleyici servo.
  • 2. Gerekli Malzemeler Listesi

    MalzemeAdetAçıklama
    Arduino Uno R31Ana kontrol kartı
    4 Eksenli Pleksi Robot Kol Şasisi (Kit)1Lazer kesim gövde, vidalar ve kıskaç mekanizması
    SG90 veya MG90S Metal Dişli Servo Motor4Eklemleri hareket ettiren motorlar (Omuz için MG90S önerilir)
    2 Eksenli Analog Joystick Modülü2Robot kolu elle kumanda etmek için 2 adet kol
    5V 2A Harici Güç Adaptörü veya Pil1Servoları beslemek için bağımsız güç kaynağı
    Breadboard ve Çoklu Jumper Kablolar1Bağlantılar ve ortak GND için

    3. Donanım Güvenliği: Neden Kesinlikle Harici Güç Kullanılmalı?

    4 adet servo motor aynı anda hareket ettiğinde ve bir nesneyi havaya kaldırdığında çektikleri toplam anlık akım 1.5 ile 2.5 Amper seviyesine ulaşır.

  • Arduino'nun dahili 5V regülatörü maksimum 500 mA verebilir.
  • Eğer 4 servoyu doğrudan Arduino'dan beslemeye çalışırsanız kart saniyeler içinde aşırı ısınıp kendini resetler veya yanar.
  • Altın Kural: 4 servonun kırmızı (+5V) ve kahverengi (GND) kabloları harici 5V 2A adaptöre bağlanmalı; adaptörün eksi kutbu ise Arduino'nun GND pinine bağlanarak referans voltajı eşitlenmelidir!
  • 4. Devre Bağlantı Şeması

    A. Servo Motor Sinyal Pinleri:

  • Taban Servosu (Base): Arduino Dijital Pin 9
  • Omuz Servosu (Shoulder): Arduino Dijital Pin 10
  • Dirsek Servosu (Elbow): Arduino Dijital Pin 11
  • Kıskaç Servosu (Gripper): Arduino Dijital Pin 6
  • B. Joystick Bağlantıları:

  • 1. Joystick (Taban ve Omuz İçin): X Ekseni -> A0, Y Ekseni -> A1
  • 2. Joystick (Dirsek ve Kıskaç İçin): X Ekseni -> A2, Y Ekseni -> A3
  • 5. Tam ve Çalışan Arduino C++ Kodları

    Aşağıdaki kod, joystick kollarını bıraktığınızda servoların en son açıda sabit kalmasını sağlayan kararlı "pozisyon korumalı" yazılımdır:

    /* * RobotKodla.com - Robot Kol Kontrolü * 2 Adet Joystick ile 4 Eksenli Robot Kol */ #include <Servo.h> Servo tabanServo;
    Servo omuzServo;
    Servo dirsekServo;
    Servo kiskacServo; // Başlangıç açıları (Derece)
    int tabanAci = 90;
    int omuzAci = 90;
    int dirsekAci = 90;
    int kiskacAci = 45; void setup() { tabanServo.attach(9); omuzServo.attach(10); dirsekServo.attach(11); kiskacServo.attach(6); // Servoları başlangıç pozisyonuna getir tabanServo.write(tabanAci); omuzServo.write(omuzAci); dirsekServo.write(dirsekAci); kiskacServo.write(kiskacAci); delay(1000);
    } void loop() { // Joystick verilerini oku (0 - 1023 arası) int joy1X = analogRead(A0); int joy1Y = analogRead(A1); int joy2X = analogRead(A2); int joy2Y = analogRead(A3); // Taban Kontrolü (Joy1 X) if (joy1X < 400 && tabanAci > 0) tabanAci -= 2; if (joy1X > 600 && tabanAci < 180) tabanAci += 2; // Omuz Kontrolü (Joy1 Y) if (joy1Y < 400 && omuzAci > 15) omuzAci -= 2; if (joy1Y > 600 && omuzAci < 165) omuzAci += 2; // Dirsek Kontrolü (Joy2 Y) if (joy2Y < 400 && dirsekAci > 15) dirsekAci -= 2; if (joy2Y > 600 && dirsekAci < 165) dirsekAci += 2; // Kıskaç Kontrolü (Joy2 X) if (joy2X < 400 && kiskacAci > 10) kiskacAci -= 3; // Kapat if (joy2X > 600 && kiskacAci < 90) kiskacAci += 3; // Aç // Yeni açıları motorlara uygula tabanServo.write(tabanAci); omuzServo.write(omuzAci); dirsekServo.write(dirsekAci); kiskacServo.write(kiskacAci); delay(25); // Yumuşak ve sinematik hareket hızı
    }

    6. Mekanik Montajda Dikkat Edilecek 3 Hayati Kural

  • Servoları Monte Etmeden Önce Sıfırlayın: Robot kol parçalarını vidalamadan önce servoları Arduino'ya bağlayıp `write(90);` komutuyla tam orta noktaya getirin. Orta noktayı ayarlamadan monte ederseniz kol mekanik sınırlarına çarpıp dişlilerini kırabilir.
  • Kablo Gerilimini Kontrol Edin: Kol en uç noktaya uzandığında kıskaç servosu kablolarının gerilip çıkmayacak kadar payı olmalıdır.
  • Ağırlık Dengesi: Robot kol tabanını ağır bir ahşap plakaya vidalamak, kol uzandığında devrilmesini engeller.
  • 7. Kapsamlı Sıkça Sorulan Sorular (SSS)

    Robot kol bir nesneyi tuttuğunda neden titriyor?

    Taşınan nesne SG90 motorun tork kapasitesinden (yaklaşık 1.6 kg/cm) ağır geldiğinde motor zorlanır. Özellikle taban ve omuz gibi yük taşıyan eklemlerde metal dişlili MG90S kullanmak titremeyi tamamen çözer.

    Kolun hareketlerini kaydedip otomatik tekrarlatabilir miyim?

    Evet! Arduino'nun EEPROM hafızasına belirli aralıklarla açıları kaydeden bir "Öğrenme Butonu" ekleyerek, kolu önce elle hareket ettirip ardından bu hareketleri sonsuz döngüde otomatik tekrarlayan bir endüstriyel robot simülasyonu yapabilirsiniz.

    8. Ters Kinematik (Inverse Kinematics) Mantığına Giriş

    Basit robot kollarda her servonun açısı elle belirlenir (İleri Kinematik). Ancak endüstriyel robotlarda operatör eklemlerin açısıyla uğraşmaz; sadece *"Kıskaç X=15cm, Y=10cm, Z=5cm koordinatına gitsin"* der.

  • Ters Kinematik (IK): Uç noktanın (kıskacın) uzaydaki hedef koordinatına ulaşabilmesi için omuz, dirsek ve taban açılarının kaç derece olması gerektiğini trigonometrik formüllerle (sinüs ve kosinüs teoremleri) geriye doğru hesaplayan matematiksel modeldir.
  • Arduino'da temel trigonometrik fonksiyonlar (`atan2`, `acos`) kullanılarak 2 boyutlu düzlemde basit bir ters kinematik algoritması başarıyla kodlanabilir.
  • 9. Kapsamlı Sıkça Sorulan Sorular (SSS)

    Robot kolun kaldırabileceği maksimum ağırlık nedir?

    SG90 mikro servolarla yapılan standart bir pleksi robot kol yaklaşık 50-80 gram ağırlığındaki hafif nesneleri (ponpon top, küçük pil, silgi) rahatça taşır. Metal dişlili MG90S veya MG996R motorlar kullanıldığında ise taşıma kapasitesi 300-500 grama kadar çıkar.

    Robot kola kamera takarak renk ayırt etme yaptırabilir miyiz?

    Evet! Robot kolun yanına yerleştirilecek bir bilgisayar kamerası veya OpenCV destekli Raspberry Pi ile nesnelerin rengi (örneğin kırmızı ve mavi küpler) algılanıp koordinatları Arduino'ya gönderilerek otomatik nesne ayrıştırma (Pick and Place) sistemi kurulabilir.

    Sonuç

    Arduino ile 4 eksenli robot kol yapmak; kinematik hesaplamaların, mekanik tasarımın ve çoklu aktüatör kontrolünün zirve noktasıdır. Detaylı yapım şablonları ve 3D baskı dosyaları için sitemizin [Robotik Projeler](/projeler) sekmesini ziyaret edebilirsiniz!

    💡

    Arduino ile Robot Kol Yapımı ve Servo Motor Kontrolü Hakkında Sıkça Sorulan Sorular

    Bu yazıyla ilgili en çok merak edilen noktalar ve uzman yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Arduino ile Robot Kol Yapımı ve Servo Motor Kontrolü çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.