Arduino ile robot kol yapmak için genellikle 4-6 servo motor, bir gövde (kit, akrilik ya da 3D baskı), bir servo sürücü kartı ve servolar için ayrı, yüksek akımlı bir 5-6V güç kaynağı gerekir. Taban ve omuz gibi yük taşıyan eklemlerde MG996R gibi yüksek torklu servolar, bilek ve tutucuda MG90S gibi küçük servolar kullanılır. Servolar Arduino'nun 5V pininden değil, ayrı bir kaynaktan beslenir ve tüm GND'ler ortak yapılır.
Bir nesneyi alıp başka bir yere bırakan, çizim yapan ya da satranç oynayan bir robot kol, servo motorları ve Arduino'yu öğrenmenin en eğlenceli yollarından biridir. Bu rehberde robot kolun parçalarını, servo seçimini, güç beslemesini ve kontrol yöntemlerini anlatıyoruz.
Robot kol nasıl çalışır?
Robot kolun her eklemi bir servo motorla döndürülür; mikrodenetleyici her servoya istenen açıyı gönderir ve servolar birlikte hareket ederek kolun ucunu (tutucuyu) istenen konuma götürür. Tipik bir masaüstü robot kolda taban (dönme), omuz, dirsek, bilek ve tutucu (gripper) eklemleri bulunur; bu da 4-6 servo demektir. Servo motorların çalışmasını servo motor rehberimizde anlattık.
Gerekli parçalar
| Parça | Görevi | Örnek |
|---|---|---|
| Yüksek torklu servo | Taban, omuz, dirsek | MG996R metal dişli servo |
| Küçük servo | Bilek ve tutucu | MG90S servo |
| Servo sürücü | Çok sayıda servoyu kararlı PWM ile sürer | 16 kanal I2C servo sürücü kartı (PCA9685) |
| Güç kartı / kaynak | Servolara yüksek akımlı 5-6V | SY8205 5V 5A servo güç kartı |
| Gövde | Kolun mekanik yapısı | Arduino robot kol kiti, akrilik ya da 3D baskı |
Servo nasıl seçilir? Tork hesabı
Bir eklemdeki servonun taşıması gereken tork, o eklemden sonraki tüm kol parçalarının ve taşınan yükün ağırlığının eklem eksenine olan uzaklıkla çarpımıdır. Örneğin omuz ekseninden 15 cm uzakta toplam 200 g'lık bir kütle (kol + yük) varsa gereken tork yaklaşık 0,2 kg × 15 cm = 3 kg·cm olur. Servonun etiket torku bunun en az 2 katı olmalıdır, çünkü etiket değeri en yüksek gerilimde ve durma (stall) koşulunda verilir. Bu yüzden omuz ve taban gibi en çok yük taşıyan eklemlerde yüksek torklu servolar kullanılır. Tork birimlerini redüktörlü motor rehberimizde anlattık.
Servolar nasıl beslenir?
Servolar hareket ederken ve özellikle zorlandıklarında yüksek akım çeker; birden fazla servo Arduino'nun 5V pininden beslenirse gerilim düşer, Arduino yeniden başlar ve servolar titrer.
- Servoları ayrı bir 5-6V kaynaktan besleyin; her büyük servo için en az 1-2A hesaplayın (ör. 4 MG996R için 5V 5A ve üzeri).
- Kaynağın GND'sini Arduino GND'siyle birleştirin (ortak toprak).
- Servo sürücü kartının besleme klemensine (V+) servo kaynağını bağlayın; kartın lojik beslemesi (VCC) Arduino'dan gelir.
- Besleme girişine büyük bir elektrolitik kondansatör (ör. 470-1000 µF) eklemek ani akım dalgalanmalarını yumuşatır.
Robot kol adım adım nasıl kurulur?
- Servoları ortalayın: Montajdan önce tüm servoları kodla 90 dereceye getirin, kolları bu konumda takın; böylece her eklemin iki yönde hareket payı olur.
- Mekaniği kurun: Taban servosundan başlayarak kolu monte edin; vidaları sıkın ama eklemleri sıkıştırmayın.
- Bağlantı: Servoları PCA9685 kartının kanallarına takın; kartın SDA ve SCL'sini Arduino'ya bağlayın (Uno'da A4 ve A5); bkz. I2C rehberi.
- Sınırları belirleyin: Her eklem için mekanik olarak çarpmadan gidebileceği en küçük ve en büyük açıyı bulup kodda sınır koyun; servoyu mekanik sınıra zorlamak dişlileri bozar ve aşırı akım çeker.
- Yumuşak hareket: Servoları bir açıdan diğerine aniden değil, küçük adımlarla ve kısa beklemelerle hareket ettirin.
- Kontrol yöntemi: Başlangıç için her eklemi bir potansiyometreyle kontrol edebilir, ardından hareketleri kaydedip tekrar eden bir program yazabilirsiniz.
Robot kol kontrol yöntemleri
- Potansiyometreyle: Her eklem için bir potansiyometre; kodsuz kontrol için 6 kanal potansiyometreli servo kontrol kartı. Potansiyometreleri potansiyometre rehberimizde anlattık.
- Kayıt ve oynatma: Açı dizileri kaydedilip sırayla oynatılır; al-bırak gibi tekrarlayan işler için.
- Bluetooth ya da Wi-Fi: Telefondan kaydırıcılarla kontrol; bkz. Bluetooth rehberi.
- Ters kinematik: Kolun ucunun gideceği X-Y-Z noktasından eklem açılarının hesaplanması; ileri seviye projeler için.
Sık sorulan sorular
Robot kol için kaç servo gerekir?
Basit bir kol 3-4 servoyla yapılabilir. Taban, omuz, dirsek, bilek dönüşü, bilek eğimi ve tutucudan oluşan daha esnek kollar 6 servo kullanır.
Servolar neden titriyor?
En sık neden yetersiz güç kaynağıdır. Ayrıca ortak toprak eksikliği, uzun ve ince besleme kabloları ve servonun kapasitesinin üzerinde yük taşıması da titremeye yol açar.
MG996R ile SG90 farkı nedir?
MG996R metal dişli ve yüksek torklu, büyük bir servodur; yük taşıyan eklemlerde kullanılır. SG90 plastik dişli, hafif ve düşük torklu bir mikro servodur; tutucu ve hafif eklemler için uygundur.
PCA9685 servo sürücü şart mı?
Birkaç servo Arduino'nun pinlerinden doğrudan kontrol edilebilir. Ancak PCA9685, 16 servoyu yalnızca iki I2C pini ile kararlı şekilde sürer ve Arduino'nun zamanlayıcılarını meşgul etmez; çok servolu projelerde işi kolaylaştırır.
Robot kol ne kadar ağırlık kaldırır?
Kaldırma kapasitesi servo torkuna, kol uzunluğuna ve kolun kendi ağırlığına bağlıdır. Hobi kollarında genellikle birkaç yüz grama kadar yük taşınabilir; kol uzadıkça kapasite düşer.
Özet
- Robot kolun her eklemi bir servo ile döndürülür.
- Yük taşıyan eklemlerde yüksek torklu servo, tutucuda küçük servo kullanılır.
- Tork = kütle × eklem eksenine uzaklık; servo etiket torkunun en az yarısı hedeflenir.
- Servolar ayrı, yüksek akımlı 5-6V kaynaktan beslenir; GND ortak yapılır.
- PCA9685 ile çok sayıda servo iki pinle kontrol edilir.
