İçindekiler:

Arduino Robotik Kol: 5 Adım
Arduino Robotik Kol: 5 Adım

Video: Arduino Robotik Kol: 5 Adım

Video: Arduino Robotik Kol: 5 Adım
Video: Robotic arm v2 - Robot kol #2 2024, Temmuz
Anonim
Image
Image
Arduino Robotik Kol
Arduino Robotik Kol
Arduino Robotik Kol
Arduino Robotik Kol

Arduino başlangıç setimin 15 öğreticisinden sonraki ilk projem olduğu için, asıl amacı benden daha iyi bilen herkesten bazı eleştiriler, ipuçları, öneriler, fikirler almaktır.

Bu proje, 4 dof'lu ve kavramalı bir robotik kolla ilgilidir. Oldukça düşük bir bütçeyle: yapı bir arkadaş tarafından kesildi, 4 servo 30 €, 2 joystick 4 €, cıvata vidası vb. 10 € 'dan az ve geri kalan her şey (Arduino, teller, kavrama servosu vb.) zaten başlangıç setime dahil edilmişti. Toplamda 40-45€, yani yaklaşık 45-50 ABD Doları (me-arm kitiyle aynı fiyat, ama hey, onu kendi başıma yapmak (ve arada bir bir şeyleri mahvetmek) eğlenceliydi. ve bir makine gibi talimatları takip etmemek).

Bu benim ilk projem ve Eğitilebilirliğim olduğundan, ''İlk Kez Yazar'' ve birkaç yarışmaya daha katıldım, bu yüzden beğendiyseniz oy verin:)

Adım 1: TASARIM VE MONTAJ:

Öncelikle bir yapıya ihtiyacım vardı: Bu kesinlikle en uzun kısımdı. Projeyi başkasından kopyalayıp yapıştırmak istemediğim için bir projeyi referans aldım ve ben (ve beni gerçekten kurtaran birkaç yetenekli sınıf arkadaşım daha) ihtiyaçlarımıza göre modifiye etmeye başladık (farklı tork, ağırlık ve boyutlara sahip farklı servolar vb.). Birkaç kez inşa etmek zorunda kaldım, her birinde yanlış bir şey buldum ve bazı parçaları yeniden kesip yeniden denemek zorunda kaldık. Kullanmak isterseniz diye.dxf dosyasını ekledim. Sonra elektronikleri satın almak zorunda kaldım.: Parçaların çoğu standarttı, zor olan servoları seçmekti. Gerekli torku temel kuralla hesapladım, daha sonra daha doğru bir hesaplama denedim ve biraz fazla abartmış olabileceğimi fark ettim. Görünüşe göre 2. servo için (tabandan) 6 kg/cm yeterli olurdu ve benimki 9-11 kg/cm sağlıyor. Bu bana biraz güvenlik ve 2 kg'a kadar yük yükleme şansı veriyor (ki bu imkansız, ancak teknik olarak yapabilmeyi seviyorum). Tabandan uzaklaşırken torku azaltan farklı servolar da alabilirdim, ancak aynı satıcıdan aynı servoları satın almak açık ara en ucuz seçenekti. 350mA ve mikroservo 9g, toplam 350*4 +100 = 1500mA için 100mA çeker. Bu yüzden bir şarj cihazı (6V 1.5A) kurtardım ve ona iki atlama kablosu lehimledim. (bazılarınızın gerçek talimatlara ihtiyacı varsa, sadece yorumlarda sorun, adım adım oluşturmak için elimden gelenin en iyisini yapacağım.) kılavuz)Malzeme listesi:- Yapı- M5x7cm vida x5, m5 cıvata x15 (taban)- M3x16mm vida x18*- M3x20mm vida x13*- M3 cıvata x40*- M3x8cm vida x3 - Kelepçe (aksi takdirde düşecektir)- 3 dübel- Arduino (veya kontrol edecek başka bir şey, en az 5 PWM'ye sahip olmalı) - 5-6V ve en az 1.5A besleyecek bir şey - 3x ps2 benzeri joystick - 4x TowerPro mg995 servo - 1x TowerPro 9g mikroservo (tutuş için)- Çok sayıda jumper kablosu - Breadboard*(Hızlı bir şekilde takıp demonte edebilmek için cıvata ve vida kullandım, yoksa hemen hemen hepsini ahşap vidalarıyla değiştirebilirsiniz)

2. Adım: KOD:

Buradaki fikir, her servoyu ps2 benzeri bir joystick'in iki ekseninden biriyle kontrol etmektir. Her joystick, hem y hem de x ekseni için farklı “dinlenme değerlerine” (hareketsizken 0-1023 arasındaki değer) sahip görünüyordu. bir sorundu, çünkü fark neredeyse küçüktü (biri 623'te y üzerinde sıfıra sahipti) ve 0-1023'ten dereceye dönüştürmek için harita işlevini kullanmak istedim. Ancak harita işlevi, kalan değerin 1023/2 olduğunu düşünüyor. Arduino'yu açar açmaz hareket eden her servoya getirdiğim, iyi değil. Okuma değeri ile her farklı dinlenme değeri arasındaki farkı (her joystick için ayrı ayrı hesapladım) manuel olarak bularak bunu aşmayı başardım, ardından kodu daha kısa ve daha akıllı hale getirin, kurulum fonksiyonunda kalan değerleri okumasını ve bazı değişkenlere kaydetmesini sağladım. Bir sabit için bölmek zorunda kaldım: Son 200'ü bulana kadar birçok değer denedim (bu değeri manuel olarak istenen değere değiştirmek için bir potansiyometre ekleyebilirim). Kodun geri kalanı oldukça standart sanırım, artım hesaplamasını ayrı bir fonksiyon içine koymak daha şık olsa da.

Adım 3: ELEKTRONİK:

ELEKTRONİK
ELEKTRONİK

Kablolama, resimde veya fritzing dosyasında gösterilenle aynıdır: pinlere servo sinyali: 5-6-9-10-11 ve joystick ekseninden analog pinlere: A0-A1-A2-A3-A4Karşılaştığım en büyük sorun joysticklerin, servolar için kullandığım şarj cihazı tarafından DEĞİL, Arduino tarafından tedarik edilmesi ZORUNLUydu. Aksi takdirde servo rastgele ileri geri hareket ederek çıldırırdı. Bunun nedeni, eğer onlara şarj cihazı verirsem, Arduino'nun onları hareket ettirdiğimde potansiyel farkı tam olarak söyleyemeyeceğinden olabilir, ama sonra tekrar: Elektronikte çok yeniyim, bu yüzden bu sadece bir tahmin. Arduino toprağını ve şarj cihazını breadboard üzerinden bağlamak, sanırım joystick beslemesine benzer bir nedenden dolayı rastgele ve beklenmedik hareketlerin önlenmesine yardımcı oldu.

Adım 4: ŞU ANDA İYİLEŞTİRME DEVAM ETMEKTEDİR:

ŞU ANDA İYİLEŞTİRME DEVAM ETMEKTEDİR
ŞU ANDA İYİLEŞTİRME DEVAM ETMEKTEDİR

Her joystick 2 servoyu (eksen başına 1) kontrol edebildiği için, tüm kolu kontrol etmek için 3 servoya ihtiyacım var, ama ne yazık ki sadece 2 baş parmağım var. toplam 4 eksen, 2 joystick ve 2 başparmak için tutamağı tut ve aç-kapa! lineer olmayan) denklemler, son konum verilen her efektörün durumunu (servo açıları) bulmak için. Denklemleri içeren elle yazılmış bir kağıt yükledim ve şu anda bunları kullanmak için yeni bir kod üzerinde çalışıyorum. Çok zor olmamalı, temelde joystickleri okumalı, okumalarını kavramanın xyz koordinatlarını değiştirmek için kullanmalı ve sonra bunları denklemlerime vermeli, servo açılarını hesaplamalı ve yazmalıyım.

Adım 5: GELECEKTE İYİLEŞTİRMELER:

Sonuç olarak, sonuçtan oldukça memnunum ve elektronikte tamamen yeni olduğumu düşünürsek, bir şeyi ya da kendimi havaya uçurmamak zaten büyük bir zaferdi. Başta da söylediğim gibi, hem yazılım hem de gelecekteki iyileştirmeler için herhangi bir fikir. donanım, memnuniyetle karşılanır! Şimdiye kadar şunu düşündüm: 1. Joysticklerin “duyarlılığını” değiştirmek için potansiyometre.2. Bazı hareketleri “kaydetmesini” ve tekrar yapmasını sağlayan yeni kod (belki insan girdisinden daha hızlı ve daha kısa)3. Bir tür görsel/mesafe/ses girişi ve birisi joystickleri kullanmadan nesneleri alabilmek4. Geometrik şekiller çizebilmek Başka bir fikriniz var mı? Lütfen herhangi bir öneriniz için yorum yapmaktan çekinmeyin. Teşekkürler

Önerilen: