Hareket Ettirilebilir Robot Kol: Kendi Elinizi İnşa Edin 🦾

Yazar: Melda Aslan | Tarih: 4 Eylül 2025

Robot kollar, endüstriyel otomasyondan hobi projelerine kadar pek çok alanda kullanılan, çok yönlü robotik sistemlerdir. Bu projede, bir joystick kullanarak robot kolunuzu nasıl hareket ettireceğinizi, servo motorların nasıl çalıştığını ve Arduino ile nasıl programlayacağınızı adım adım öğreneceksiniz.

1. Gerekli Malzemeler

Bu proje için ihtiyacınız olan temel malzemeler şunlardır:

  • Arduino Uno veya Nano: Robot kolun beyni ve kontrol merkezi.
  • 2-4 adet Servo Motor (SG90 veya MG996R): Robot kolun eklemlerini hareket ettirmek için kullanılır. SG90 küçük kollar için, MG996R daha büyük ve güçlü kollar için idealdir.
  • Joystick Modülü: Robot kolun hareketlerini analog olarak kontrol etmek için. Genellikle iki eksenli (X ve Y) ve bir basma düğmesine sahiptir.
  • Robot Kol Şasisi Kiti: Robot kolun fiziksel yapısını oluşturan parçalar.
  • Güç Kaynağı: 5V 2A adaptör veya 9V pil. Servo motorlar Arduino'dan daha fazla akım çekeceğinden, harici bir güç kaynağı önerilir.
  • Breadboard ve Jumper Kabloları: Bileşenleri kolayca birbirine bağlamak için.

2. Montaj ve Elektronik Bağlantılar

Öncelikle robot kol kitinizi talimatlarına göre monte edin. Ardından, elektronik bileşenleri bağlayın. Bu projenin en önemli kısmı, servo motorların ve joystick'in doğru şekilde Arduino'ya bağlanmasıdır.

Robot Kol Bağlantı Şeması

Bağlantı Adımları:

  • Servo Motor Bağlantıları: Her bir servo motorun kahverengi kablosunu Arduino'nun veya harici güç kaynağının GND pinine, kırmızı kablosunu 5V'ye bağlayın. Turuncu (sinyal) kablosunu ise Arduino'nun PWM özellikli dijital pinlerine (örneğin, D3, D5, D6, D9) bağlayın.
  • Joystick Modülü Bağlantıları: Joystick'in GND pinini Arduino'nun GND'sine, +5V pinini ise Arduino'nun 5V'sine bağlayın. VRx ve VRy analog çıkış pinlerini Arduino'nun analog giriş pinlerine (A0 ve A1) bağlayın.

3. Kodlama Mantığı

Robot kolun hareketini kontrol eden kodun temel mantığı, joystick'ten gelen analog veriyi okumak ve bu veriyi servo motorların algılayabileceği açı değerlerine dönüştürmektir. Joystick'in hareketine göre, kolun hangi ekleminin ne kadar hareket edeceğini belirleriz.

  • Arduino sürekli olarak joystick'in X ve Y eksenlerindeki konumunu okur. Bu değerler 0 ile 1023 arasında değişen analog değerlerdir.
  • Servo motorlar 0 ile 180 derece arasında dönebilir. Arduino'nun map() fonksiyonunu kullanarak joystick'ten gelen 0-1023 aralığını servo'nun 0-180 derece aralığına dönüştürürüz.
  • Dönüştürülen açı değerleri, robot kolun eklemlerine bağlı servo motorlara gönderilir.
  • Örneğin, joystick'in X eksenini sağa doğru itmek, robot kolun tabanını sağa döndürecek şekilde ayarlanabilir.

Bu basit mantık, robot kolunuzu sezgisel bir şekilde kontrol etmenizi sağlar.

4. Arduino Kod Yapısı

Aşağıdaki kod, iki adet servo motorun joystick ile kontrol edilmesini sağlar. Kodu Arduino IDE'ye yükleyerek projenizi hemen başlatabilirsiniz.

#include <Servo.h>

// Joystick pinleri tanımlanıyor
const int joyXpin = A0;
const int joyYpin = A1;

// Servo motor pinleri tanımlanıyor
const int servo1pin = 9;  // Taban servosu
const int servo2pin = 10; // Kol servosu

Servo servo1;
Servo servo2;

void setup() {
  // Servo motorları pinlere atıyoruz
  servo1.attach(servo1pin);
  servo2.attach(servo2pin);

  // Seri haberleşmeyi başlat (debug için)
  Serial.begin(9600);
}

void loop() {
  // Joystick'ten analog değerleri oku
  int joyXvalue = analogRead(joyXpin);
  int joyYvalue = analogRead(joyYpin);

  // Okunan analog değeri servo açısına dönüştür
  // joyXvalue (0-1023) -> servo1Angle (0-180)
  int servo1Angle = map(joyXvalue, 0, 1023, 0, 180);
  
  // joyYvalue (0-1023) -> servo2Angle (0-180)
  int servo2Angle = map(joyYvalue, 0, 1023, 0, 180);

  // Servoları hesaplanan açıya hareket ettir
  servo1.write(servo1Angle);
  servo2.write(servo2Angle);

  // Seri ekrana değerleri yazdır
  Serial.print("Joystick X: ");
  Serial.print(joyXvalue);
  Serial.print(" -> Servo1 Açısı: ");
  Serial.print(servo1Angle);
  Serial.print(" | Joystick Y: ");
  Serial.print(joyYvalue);
  Serial.print(" -> Servo2 Açısı: ");
  Serial.println(servo2Angle);

  delay(15); // Titremeyi önlemek için kısa bir bekleme
}
                        

Bu proje, robotik sistemleri kontrol etmek için analog girişlerin nasıl kullanıldığını anlamanıza yardımcı olacak harika bir başlangıç noktasıdır. Kodunuzu geliştirebilir, daha fazla servo ekleyebilir veya bir joystick yerine farklı sensörler kullanarak robot kolunuzu kontrol edebilirsiniz.

Robotik Dünyasına Adım Atmak İçin İlk Adımı Atın!

Eğitim materyallerimizi ve projelerimizi keşfederek hemen öğrenmeye başlayın.

Eğitimleri Keşfet