İçindekiler:
- Adım 1: Projenin Arkasındaki Teori
- Adım 2: PCB Tasarlama
- Adım 3: PCB Yapımı
- Adım 4: Kolun Tasarlanması
- Adım 5: Parçaları Yazdırma
- Adım 6: Hepsini Bir Araya Getirmek
- Adım 7: Arduino'yu Programlama
- Adım 8: Python'da Programlama
- 9. Adım: Parça Listesi
- Adım 10: Son Düşünceler
Video: Arduino ve PC Tarafından Kontrol Edilen Robotik Kol: 10 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Robotik kollar endüstride yaygın olarak kullanılmaktadır. İster montaj işlemleri için olsun, kaynak veya hatta bir tanesi ISS'ye (Uluslararası Uzay İstasyonu) yanaşmak için kullanılır, insanlara işlerinde yardımcı olurlar veya tamamen insanın yerini alırlar. Yaptığım kol, hareketli nesneler için kullanılması gereken robotik kolun daha küçük bir temsilidir. Servoları kontrol etmek için zaten yerleşik bir kütüphaneye sahip olan arduino pro mini tarafından kontrol edilir. Servolar, programlaması zor olmayan PWM (Pulse Width Modulation) ile kontrol edilir, ancak bu kütüphane bunu kolaylaştırır. Kullanıcı, servo motorları kontrol etmek için 4 kaydırıcı kullanan PC'deki programdan veya voltaj bölücü olarak işlev görecek şekilde tasarlanmış potansiyometreler ile bu servoları kontrol edebilir.
Bu proje için özel PCB'mi tasarlamam ve yapmam, 3D kol modelleri oluşturmam ve hepsini kontrol eden kod yazmam gerekiyordu. Bunun üzerine python'da, arduino'ya sinyaller gönderen, bu sinyali çözmeyi ve servoları o kullanıcının ayarladığı konuma taşımayı başaran ek bir program kodladım.
Adım 1: Projenin Arkasındaki Teori
Arduino, çalışmak için ücretsiz kütüphane sunması açısından harika. Bu proje için servoları kontrol etmeyi çok daha kolay hale getiren Servo.h kütüphanesini kullandım.
Servo motor, PWM -Pulse Width Modulation- ile kontrol edilir, yani servoyu kontrol etmek için kısa voltaj darbeleri yapmanız gerekir. Servo bu sinyalin uzunluğunu çözebilir ve verilen konuma dönebilir. Ve burası daha önce bahsettiğim kütüphaneyi kullandığım yer. Sinyalin uzunluğunu kendim hesaplamak zorunda kalmadım ama sadece derece cinsinden parametre ilettiğim kütüphanenin fonksiyonlarını kullandım ve sinyal veriyor.
Servoları kontrol etmek için voltaj bölücü görevi gören potansiyometreler kullandım. Arduino kartlarında proje için kullandığım birkaç analog/dijital dönüştürücü var. Temel olarak arduino, potansiyometre üzerinde orta pindeki voltajı izliyor ve bir tarafa dönüyorsa voltaj 0 Volt (değer = 0) ve diğer tarafta 5 Volt (değer = 1023). Bu değer daha sonra 0 - 1023 aralığından 0 - 180'e ölçeklendirilir ve daha sonra daha önce bahsedilen fonksiyona geçirilir.
Bir diğer konu ise kısaca değineceğim arduino ile seri iletişim. Temel olarak PC'de yazılan program, kullanıcı tarafından seçilen değeri gönderir, arduino bunu çözebilir ve servoyu verilen pozisyona hareket ettirebilir.
Adım 2: PCB Tasarlama
2 adet PCB tasarladım - biri ana kontrol için, burada arduino ve servolar için pinler, ikincisi ise potansiyometreler. 2 adet PCB kullanmamın sebebi robotik kolu güvenli bir mesafeden kontrol etmek istememdir. Her iki devre de belirli uzunlukta bir kablo ile bağlanır - benim durumumda 80 cm.
Güç kaynağı için harici adaptörü seçtim çünkü kullandığım servolar arduino'nun sağlayabileceğinden çok daha fazla güç tüketiyor. Gördüğünüz gibi henüz bahsetmediğim bazı kapasitörler var. Filtrasyon için kullanılan kapasitörlerdir. Bildiğiniz gibi servo motor kısa darbelerle kontrol edilir. Bu darbeler, besleme voltajı düşüşlerini ve daha önce 0-5 volt aralığında olan potansiyometrelerin artık daha küçük aralığa sahip olmasını sağlayabilir. Yani orta pin üzerindeki voltaj değişir ve arduino bu değeri alır ve servo motorun bulunduğu konumu değiştirir. Bu sonsuza kadar devam edebilir ve beslemeye paralel bazı kapasitörler tarafından giderilebilecek istenmeyen salınımlara neden olur.
Adım 3: PCB Yapımı
PCB yapmak için bunu okumanızı öneririm.
Demir on Parlak kağıt yöntemini kullandım ve harika sonuç verdi.
Sonra PCB'deki parçaları lehimledim. İleride ihtiyaç duyarsam diye arduino soketi kullandığımı görebilirsiniz.
Adım 4: Kolun Tasarlanması
Bu projeyi yapmanın en zor kısmı bu değildi.
Tüm kurulum, 4'ü hareketli olmayan parçalar - potansiyometreler için kutu ve arduino'nun bulunduğu taban - ve diğer dördü kolun kendisi olmak üzere 8 parçadan yapılmıştır. Tasarımın oldukça sezgisel ve bir şekilde basit olması dışında fazla ayrıntıya girmeyeceğim. Parça listesine ekleyeceğim özel PCB ve servolarıma uyacak şekilde tasarlanmıştır.
Adım 5: Parçaları Yazdırma
Parçalar Prusa yazıcıda basıldı. Bazı yüzlerin biraz taşlanması ve çukurların delinmesi gerekiyordu. Ayrıca destek direklerinin de çıkarılması gerekiyordu.
Adım 6: Hepsini Bir Araya Getirmek
Bu adımda başlığın dediği gibi hepsini bir araya getirdim.
İlk önce potansiyometre üzerindeki telleri ve ardından PCB üzerindeki telleri lehimledim. Potansiyometreler deliklere güzel bir şekilde uyuyor ve PCB'yi kutunun altına basılmış sütunlara sıcak yapıştırdım. Tahtaya ve kutuya delikler açabilirsiniz ama yapıştırmanın fazlasıyla yeterli olduğunu öğrendim. Daha sonra kutunun her iki parçasını da kapatarak tasarladığım deliklere 4 adet vida ile sabitledim.
Bir sonraki adım olarak, her iki kartı birbirine bağlamak için düz şerit kablo yaptım.
Ana kutuda kabloları VCC konnektör pininden switch'e ve ardından Vcc kartına ve kartın GND'sinden konnektörün GND'sine lehimledim. Sonra konektörü yerine sıcak yapıştırdım ve sütunlara tahta geçirdim. Konektör, deliğe tam oturur, böylece sıcak tutkal gerekmez.
Ardından vidaları kullanarak alttaki servoyu kutunun altına tutturdum.
Daha sonra kutunun üst kısmını alt kısma yerleştirdim ve potansiyometre kutusunda olduğu gibi 4 adet vida ile sabitledim.
Sonraki kısım biraz zor oldu ama kolun geri kalanını çeşitli somun ve pedlerle birleştirmeyi başardım ve beklediğim kadar sıkı değildi çünkü parçalar arasında bazı toleranslar tasarladım, bu yüzden onlarla çalışmak daha kolay.
Ve son adım olarak kutuların altına biraz bant koydum çünkü aksi halde kayarlardı.
Adım 7: Arduino'yu Programlama
Programın teoride projenin arkasında nasıl çalıştığından zaten bahsetmiştim, ama onu daha da parçalayacağım.
Bu yüzden başlangıçta bazı değişkenleri tanımlamamız gerekiyor. Çoğunlukla 4 kez kopyalanıyor çünkü 4 servomuz var ve bence programı biraz daha kısaltmak için daha karmaşık mantık yapmak gereksiz.
Ardından, servo pinlerinin tanımlandığı boşluk kurulumu var.
Sonra void döngüsü var - programın sonsuz döngüye giren kısmı. Bu parçada program potansiyometreden aldığı değeri ölçekler ve çıkışa koyar. Ancak potansiyometreden gelen değerin biraz sıçraması gibi bir sorun var, bu yüzden son 5 değerin ortalamasını yapan ve ardından çıktıyı veren filtre eklemem gerekiyordu. Bu istenmeyen yalpalamayı önler.
Programın son kısmı seri porttan veri okur ve gönderilen veriye göre ne yapılacağına karar verir.
Kodu tam olarak anlamak için resmi arduino web sitelerini ziyaret etmenizi öneririm.
Adım 8: Python'da Programlama
Bu projenin bu kısmı gerekli değil ama bence sadece bu projeye daha fazla değer veriyor.
Python, kullanımı ücretsiz tonlarca kitaplık sunuyor ama bu projede sadece tkinter ve serial kullanıyorum. Tkinter, GUI (Grafik Kullanıcı Arayüzü) için kullanılır ve seri, adından da anlaşılacağı gibi seri iletişim için kullanılır.
Bu kod, minimum 0 ve maksimum 180 değerinde 4 kaydırıcılı GUI oluşturur. Derece cinsinden olduğu ve her kaydırıcının bir servoyu kontrol etmek için programlandığı size bir ipucu olabilir. Bu program oldukça basittir - değeri alır ve arduino'ya gönderir. Ama gönderme şekli ilginç. İlk servonun değerini 123 dereceye değiştirmeyi seçerseniz arduino değeri 1123'e gönderir. Gönderilen her sayının ilk sayısı hangi servonun kontrol edilmek üzere olduğunu söyler. Arduino, bunu çözebilen ve doğru servoyu hareket ettirebilen bir koda sahiptir.
9. Adım: Parça Listesi
- Arduino Pro Mini 1 adet
- Servo FS5106B 1 adet
- Servo Futaba S3003 2 adet
- Pin başlığı 2x5 1 adet
- Pin başlığı 1x3 6 adet
- Kapasitör 220uF 3 adet
- Mikro Servo FS90 1 adet
- Konnektör AWP-10 2 adet
- Konektör FC681492 1 adet
- Anahtar P-B100G1 1 adet
- Soket 2x14 1 adet
- TTL-232R-5v - dönüştürücü 1 adet
- Potansiyometre B200K 4 adet
- ve daha birçok vida, ped ve somun
Adım 10: Son Düşünceler
Bunu okuduğunuz için teşekkür ederim ve umarım en azından sizi motive etmişimdir. Bu, internetten bir şeyler kopyalamadan ve ilk talimatlar gönderisinden tamamen kendi başıma yaptığım ilk büyük projem. Kolun yükseltilebileceğini biliyorum ama şimdilik memnunum. Tüm parçalar ve kaynak kodları ücretsizdir, dilediğiniz gibi kullanabilir ve değiştirebilirsiniz. Herhangi bir sorunuz varsa, yorum bölümünde onlara sormaktan çekinmeyin. Videolara da bakabilirsin, çok kaliteli değiller ama projenin işlevselliğini gösteriyorlar.
Önerilen:
Kendin yap - Arduino Tarafından Kontrol Edilen RGB LED Gölgeler: 5 Adım (Resimli)
Kendin yap | Arduino Tarafından Kontrol Edilen RGB LED Gölgeler: Bugün size kendi RGB LED Gözlüklerinizi nasıl çok kolay ve ucuza yapabileceğinizi öğreteceğim. bu proje. Onlar bir PCB üreticisidir,
Arduino Tarafından Kontrol Edilen 4 DOF Mekanik Kol Robotu: 6 Adım
Arduino Tarafından Kontrol Edilen 4 DOF Mekanik Kol Robotu: Geçenlerde bu seti aliexpress'ten aldım ama bu modele uygun bir talimat bulamadım. Böylece, neredeyse iki kez inşa etmek ve doğru servo montaj açılarını bulmak için birçok deney yapmakla sonuçlanır. Makul bir belgeleme o
[WIP] Myo Kol Bandı Tarafından Kontrol Edilen Bir Drawbot Oluşturma: 11 Adım
[WIP] Myo Kol Bandı Tarafından Kontrol Edilen Bir Drawbot Oluşturma: Herkese merhaba! Birkaç ay önce, onu kontrol etmek için yalnızca bir Myo bandı kullanan açık çerçeveli bir çekme robotu yapma fikrini denemeye karar verdik. Projeye ilk başladığımızda, birkaç farklı parçaya bölünmesi gerektiğini biliyorduk
Android Telefon/tablet tarafından kontrol edilen Arduino 4WD Rover Bluetooth: 5 Adım
Arduino 4WD Rover Bluetooth Android Telefon/tablet ile kontrol edilir: Arduino 4WD bluetooth kontrollü geziciBu Arduino ile yaptığım basit bir 4WD gezicidir. Gezici bluetooth üzerinden android telefon veya tablet ile kontrol edilir. Bu uygulama ile hızı kontrol edebilirsiniz (Arduino'nun pwm'sini kullanarak),
Arduino Tarafından Kontrol Edilen LED Kabak Işığı: 5 Adım
Arduino Tarafından Kontrol Edilen LED Kabak Işığı: Projenin ilk vizyonu, ortam ışığına bağlı olarak kendi kendine açılıp kapanacak ve bir mum simüle etmek için titreyip yoğunluğu değiştirecek bir LED kurmaktı. Gerekli parçalar: 1 x Arduino1 x LED (tercihen gerçekçilik için parlak bir kehribar rengi) 1 x LDR