- Gerekli Bileşenler
- Robotik Kol Yapısı
- Devre Şeması ve Çalışma Açıklaması:
- Robotik Kol Nasıl Çalıştırılır:
Bu eğitimde, bazı kartonlardan ve servo motorlardan Arduino Uno tabanlı bir Robotik Kol tasarlayacağız. Tüm inşaat süreci aşağıda ayrıntılı olarak açıklanmıştır. İşte bu projede Arduino Uno, Robotik kolun eklemleri olarak görev yapan servo motorları kontrol etmek için programlanmıştır. Bu kurulum aynı zamanda bir Robotik Vinç gibi görünüyor veya bazı kolay ayarlamalar yaparak onu bir Vinç'e dönüştürebiliriz. Bu proje, düşük maliyetli bir Basit Robot geliştirmeyi öğrenmek isteyen veya sadece Arduino ve servo motorlarla çalışmayı öğrenmek isteyen yeni başlayanlar için faydalı olacaktır.
Bu Arduino Robotik Kol, kendisine bağlı dört Potansiyometre ile kontrol edilebilir, her potansiyometre her bir servoyu kontrol etmek için kullanılır. Bir nesneyi seçmek için saksıları döndürerek bu servoları hareket ettirebilirsiniz, biraz alıştırma yaparak nesneyi bir yerden diğerine kolayca seçip taşıyabilirsiniz. Burada düşük torklu servolar kullandık, ancak ağır nesneleri toplamak için daha güçlü servolar kullanabilirsiniz. Tüm süreç de gösterilmiştir video sonunda. Ayrıca diğer Robotik Projelerimize buradan göz atın.
Gerekli Bileşenler
- Arduino Uno
- 1000uF Kapasitör (4 adet)
- 100nF Kapasitör (4 adet)
- Servo Motor (SG 90- dört adet)
- 10K pot - Değişken Direnç (4 adet)
- Güç Kaynağı (5v - tercihen iki)
Servo Motor
Önce biraz Servo Motorlardan bahsedelim. Servo Motorlar genellikle doğru şaft hareketine veya konumuna ihtiyaç duyulduğunda kullanılır. Bunlar yüksek hızlı uygulamalar için önerilmemektedir. Servo motorlar, düşük hız, orta tork ve doğru konum uygulaması için önerilmiştir. Dolayısıyla bu motorlar, robotik kol tasarlamak için en iyisidir.
Servo motorlar farklı şekil ve boyutlarda mevcuttur. Küçük servo motorlar kullanacağız, burada dört SG90 servo kullanıyoruz. Bir servo motorda esas olarak orada teller olacaktır, biri pozitif voltaj için, diğeri toprak içindir ve sonuncusu konum ayarı içindir. KIRMIZI kablo güce bağlanır, Siyah kablo toprağa bağlanır ve SARI tel sinyale bağlanır. Daha fazla bilgi edinmek için Arduino kullanarak Servo Motor Kontrolü hakkındaki bu öğreticiyi inceleyin. Arduino'da Servo'yu kontrol etmek için önceden tanımlanmış kitaplıklarımız vardır, bu nedenle bu eğitimle birlikte öğreneceğiniz servoyu kontrol etmek çok kolaydır.
Robotik Kol Yapısı
Masa veya sert karton gibi düz ve sabit bir yüzey alın. Daha sonra ortaya bir servo motor yerleştirin ve yerine yapıştırın. Dönüş derecesinin şekilde gösterilen alanda olduğundan emin olun. Bu servo, kol tabanı görevi görür.
İlk servonun üzerine küçük bir karton parçası yerleştirin ve ardından ikinci servoyu bu tahta parçasına yerleştirin ve yerine yapıştırın. Servo dönüşü diyagrama uymalıdır.
Birkaç karton alın ve 3cm x 11cm parçalar halinde kesin. Parçanın yumuşamadığından emin olun. Bir ucunda dikdörtgen bir delik açın (alttan 0,8 cm bırakın), başka bir servoya sığacak kadar ve diğer ucunda servo dişlisini vidalarla veya tutkalla sıkıca takın. Ardından üçüncü servoyu ilk deliğe yerleştirin.
Şimdi, aşağıdaki şekilde gösterilen uzunluklarda başka bir karton parçayı kesin ve bu parçanın altına başka bir dişli yapıştırın.
Şimdi dördüncü ve son servoyu şekilde gösterildiği gibi ikinci parçanın kenarına yapıştırın.
Bununla birlikte iki parça birbirine benziyor.
Bu kurulumu üsse bağladığımızda şöyle görünmeli,
Neredeyse bitti. Sadece nesneyi robotik bir el gibi tutup seçmek için kancayı yapmamız gerekiyor. Kanca için, 1cmx7cm ve 4cmx5cm uzunluklarında iki parça karton daha kesin. Bunları şekilde gösterildiği gibi birbirine yapıştırın ve son dişliyi en kenara yapıştırın.
Bu parçayı üstüne monte edin ve bununla Robotik Kolumuzu inşa ettik .
Bununla temel robotik kol tasarımımız tamamlandı ve bu şekilde düşük maliyetli robotik kolumuzu yaptık. Şimdi devreyi devre şemasına göre devre tahtasına bağlayın.
Devre Şeması ve Çalışma Açıklaması:
Arduino Uno Robotic Arm için devre bağlantısı aşağıda gösterilmiştir.
Değişken dirençlerdeki voltaj tamamen doğrusal değildir; gürültülü olacak. Bu nedenle, bu gürültüyü filtrelemek için, kondansatörler şekilde gösterildiği gibi her bir direncin üzerine yerleştirilir.
Şimdi bu değişken dirençlerin (konum kontrolünü temsil eden voltaj) sağladığı voltajı Arduino'nun ADC kanallarına besleyeceğiz. Bunun için A0'dan A3'e dört ADC UNO kanalını kullanacağız. ADC'nin başlatılmasından sonra, kullanıcı tarafından ihtiyaç duyulan konumu temsil eden dijital pot değerine sahip olacağız. Bu değeri alıp servo pozisyonu ile eşleştireceğiz.
Arduino'nun altı ADC kanalı vardır. Robot Kolumuz için dört tane kullandık. UNO ADC, 10 bit çözünürlüktedir, bu nedenle tam sayı değerleri 0-1023 (2 ^ 10 = 1024 değer) arasında değişir. Bu, 0 ile 5 volt arasındaki giriş voltajlarını 0 ile 1023 arasındaki tam sayı değerlerine eşleyeceği anlamına gelir. Yani birim başına her (5/1024 = 4.9mV) için. Arduino'da ADC kanallarını kullanarak voltaj seviyelerini haritalama hakkında daha fazla bilgi edinin.
Şimdi, UNO'nun analog sinyali dijital sinyale dönüştürmesi için, aşağıdaki fonksiyonların yardımıyla Arduino Uno'nun ADC Kanalını kullanmamız gerekiyor:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bitler);
Arduino ADC kanallarının varsayılan referans değeri 5V'tur. Bu, herhangi bir giriş kanalında ADC dönüşümü için maksimum 5V giriş voltajı verebileceğimiz anlamına gelir. Bazı sensörler 0-2.5V arasında voltaj sağladığından, 5V referans ile daha az doğruluk elde ederiz, bu nedenle bu referans değerini değiştirmemizi sağlayan bir talimatımız var. Dolayısıyla referans değerini değiştirmek için "analogReference ()" var ;
Varsayılan olarak, 10 bit olan maksimum kart ADC çözünürlüğünü elde ederiz, bu çözünürlük komut kullanılarak değiştirilebilir ("analogReadResolution (bit);").
Robotik el devremizde , bu referans voltajını varsayılana bıraktık, böylece doğrudan "analogRead (pin)" fonksiyonunu çağırarak ADC kanalından değeri okuyabiliriz ; burada "pin" analog sinyali bağladığımız pini temsil eder, diyelim ki "A0" okumak istiyoruz. ADC'den gelen değer int SENSORVALUE0 = analogRead (A0) olarak bir tamsayı olarak saklanabilir ; .
Şimdi SERVO'dan bahsedelim, Arduino Uno'nun sadece derece değeri vererek servo konumunu kontrol etmemizi sağlayan bir özelliği var. Diyelim ki servonun 30'da olmasını istiyorsak, değeri doğrudan programda temsil edebiliriz. SERVO başlık ( Servo.h ) dosyası tüm görev oranı hesaplamalarını dahili olarak halleder.
#Dahil etmek
Buradaki ilk ifade, SERVO MOTOR'u kontrol etmek için başlık dosyasını temsil eder. İkinci ifade servoyu adlandırmaktır; 4'ü kullanacağımız için onu servo0 olarak bırakıyoruz. Üçüncü ifade, servo sinyal pininin bağlandığı yeri belirtir; bu bir PWM pini olmalıdır. Burada ilk servo için PIN3 kullanıyoruz. Dördüncü ifade, servo motorun derece cinsinden konumlandırılması için komutlar verir. 30 verilirse servo motor 30 derece dönmektedir.
Şimdi, 0'dan 180'e kadar SG90 servo pozisyonumuz var ve ADC değerleri 0-1023 arasındadır. Her iki değeri de otomatik olarak eşleştiren özel bir işlev kullanacağız.
sensorvalue0 = map (sensorvalue0, 0, 1023, 0, 180);
Bu ifade her iki değeri de otomatik olarak eşler ve sonucu 'servovalue0' tamsayısında depolar.
Arduino kullanarak Robotik Kol projemizdeki Servoları bu şekilde kontrol ettik. Aşağıdaki kodun tamamını kontrol edin.
Robotik Kol Nasıl Çalıştırılır:
Kullanıcıya sağlanan dört tencere vardır. Ve bu dört potu döndürerek UNO'nun ADC kanallarında değişken voltaj sağlıyoruz. Yani Arduino'nun dijital değerleri kullanıcının kontrolü altındadır. Bu dijital değerler servo motor pozisyonunu ayarlamak için haritalanmıştır, dolayısıyla servo pozisyonu kullanıcının kontrolündedir ve bu Potları döndürerek kullanıcı Robotik kolun eklemlerini hareket ettirebilir ve herhangi bir nesneyi alabilir veya tutabilir.