İçindekiler:

Biyoilhamlı Robot Yılan: 16 Adım (Resimlerle)
Biyoilhamlı Robot Yılan: 16 Adım (Resimlerle)

Video: Biyoilhamlı Robot Yılan: 16 Adım (Resimlerle)

Video: Biyoilhamlı Robot Yılan: 16 Adım (Resimlerle)
Video: Kıyıda Deniz Kızı Görüntülendi!!! Deniz Kızlarının Gerçek Olduğunu Söyleyen 10 İnsan ve Görüntüleri 2024, Temmuz
Anonim
Image
Image

Hem ağaca tırmanan robotik yılanların hem de robotik yılan balıklarının araştırma videolarını gördükten sonra bu projeye başlamam için ilham aldım. Bu benim ilk denemem ve serpantin hareketini kullanan robotlar yapıyorum, ama bu benim son olmayacak! Gelecekteki gelişmeleri görmek istiyorsanız YouTube'a abone olun.

Aşağıda, 3D baskı için dosyalarla birlikte 2 farklı yılanın yapısını ve yılan benzeri hareket elde etmek için kod ve algoritmalar hakkında bir tartışmayı özetliyorum. Daha fazla öğrenmeye devam etmek istiyorsanız, bu talimatı okuduktan sonra sayfanın altındaki referanslar bölümündeki bağlantıları okumanızı öneririm.

Bu talimat teknik olarak 2'si 1 arada, çünkü robotik yılanın 2 farklı versiyonunun nasıl yapıldığını açıklıyorum. Yalnızca yılanlardan birini yapmakla ilgileniyorsanız, diğer yılanın talimatlarını dikkate almayın. Bu 2 farklı yılan, bundan böyle aşağıdaki ifadeleri birbirinin yerine kullanarak anılacaktır:

  1. Tek eksenli yılan, 1D yılan veya sarı ve siyah yılan
  2. Çift eksenli yılan, 2D yılan veya beyaz yılan

Tabii ki yılanları istediğiniz renkte filamentte basabilirsiniz. İki yılan arasındaki tek fark, 2B yılanda her motor bir öncekine göre 90 derece döndürülürken, 1B yılanda tüm motorlar tek bir eksende hizalanmıştır.

Son bir önsöz, yılanlarımın her birinin sadece 10 servosu varken, yılanları az ya da çok servo ile yapmak mümkün. Dikkate alınması gereken bir şey, daha az servo ile daha az başarılı hareket elde edeceğiniz ve daha fazla servo ile serpantin hareketinde muhtemelen daha başarılı olacağınızdır, ancak maliyet, akım çekişi (sonraki açıklamalara bakınız) ve pin sayısını göz önünde bulundurmanız gerekecektir. Arduino'da mevcut. Yılanın uzunluğunu değiştirmekten çekinmeyin, ancak bu değişikliği hesaba katmak için kodu da değiştirmeniz gerekeceğini unutmayın.

Adım 1: Bileşenler

Bu, tek bir yılan için bir parça listesidir, eğer her iki yılanı da yapmak istiyorsanız, bileşenlerin hacmini iki katına çıkarmanız gerekecektir.

  • 10 MG996R servo*
  • 1.75mm 3D baskı filamenti
  • 10 bilyalı rulman, parça numarası 608 (Jitterspin stres çarklarının dış kenarından benimkini kurtardım)
  • 20 küçük bilyalı rulman, parça numarası r188, tekerlekler için** (Jitterspin stres çarklarının iç kısmından benimkini kurtardım)
  • 40 philips başlı vida 6-32 x 1/2" (veya benzeri)
  • 8 daha uzun vida (Parça numaram yok ama yukarıdaki vidalarla aynı çaptalar)
  • En az 20 adet 4 inç fermuarlı (kaç tane kullanmak istediğiniz size kalmış)
  • Her biri 5m kırmızı ve siyah 20 gauge tel veya daha kalın***
  • Standart 22 gauge tel
  • 30 erkek başlık pimi (10 lota bölünmüş)
  • Arduino Nano
  • 3D baskılı parçalar (bir sonraki bölüme bakın)
  • Bir tür güç (daha fazla bilgi için "Yılana güç verme" bölümüne bakın), kişisel olarak değiştirilmiş bir ATX güç kaynağı kullandım
  • 1000uF 25V elektrolitik kapasitör
  • Çeşitli ebatlarda ısıyla daralan makaron, lehim, yapıştırıcı ve diğer çeşitli aletler

*diğer türleri de kullanabilirsiniz, ancak 3D dosyaları servolarınıza uyacak şekilde yeniden tasarlamanız gerekecektir. Ayrıca sg90 gibi daha küçük servolar kullanmayı denerseniz, yeterince güçlü olmadıklarını görebilirsiniz (bunu test etmedim ve denemek size kalmış olacak).

**Tekerlekler için küçük bilyalı rulmanlar kullanmanıza gerek yok, sadece etrafta çok şey vardı. Alternatif olarak LEGO tekerlekleri veya diğer oyuncak tekerlekleri kullanabilirsiniz.

***Bu telin içinden 10 ampere kadar geçebilir, çok incedir ve akım onu eritir. Daha fazla bilgi için bu sayfaya bakın.

2. Adım: 3D Baskı Bileşenleri

Yılanların Meclisi
Yılanların Meclisi

1D yılan yapıyorsanız bu parçaları yazdırın.

2D yılan yapıyorsanız bu parçaları yazdırın.

Önemli not: Ölçek yanlış olabilir! Bileşenlerimi Fusion 360'ta (mm birimlerinde) tasarlıyorum, tasarımı bir.stl dosyası olarak MakerBot yazılımına aktardım ve ardından bir Qidi Tech yazıcıda (MakerBot Replicator 2X'in bir klon versiyonu) yazdırdım. Bu iş akışının bir yerinde bir hata var ve tüm baskılarım çok küçük çıkıyor. Hatanın yerini belirleyemedim, ancak MakerBot yazılımında her baskıyı %106 boyuta ölçeklendirme konusunda geçici bir düzeltme yaptım, bu sorunu çözüyor.

Bu göz önüne alındığında, yukarıdaki dosyaları yazdırırsanız yanlış ölçeklenebilecekleri konusunda uyarılırsınız. Hepsini yazdırmadan önce sadece bir parça yazdırmanızı ve MG996R servonuza uyup uymadığını kontrol etmenizi öneririm.

Dosyalardan herhangi birini yazdırırsanız, lütfen sonucun ne olduğunu bana bildirin: baskı çok küçükse, doğruysa, çok büyükse ve yüzde olarak. Topluluk olarak birlikte çalışarak, farklı 3D yazıcılar ve.stl dilimleyiciler kullanarak hatanın konumunu giderebiliriz. Sorun çözüldüğünde bu bölümü ve yukarıdaki bağlantıları güncelleyeceğim.

3. Adım: Yılanların Birleştirilmesi

Yılanların Meclisi
Yılanların Meclisi
Yılanların Meclisi
Yılanların Meclisi
Yılanların Meclisi
Yılanların Meclisi

Montaj işlemi, yılanın her iki versiyonu için de çoğunlukla aynıdır. Tek fark, 2B yılanda her motor bir öncekine göre 90 derece döndürülürken, 1B yılanda tüm motorlar tek bir eksende hizalanmıştır.

Servoyu sökerek başlayın, vidaları saklayın ve siyah plastik çerçevenin üst ve alt parçalarını çıkarın ve dişlilerin hiçbirini kaybetmemeye dikkat edin! Servoyu yukarıdaki resimlerdeki gibi yönlendirilmiş 3D baskılı çerçeveye kaydırın. Servo kasasının üst kısmını değiştirin ve dört adet 6-32 1/2 vida ile yerine vidalayın. Servo çerçevesinin altını kaydedin (daha sonraki projelerde tekrar kullanmak isterseniz) ve 3D ile değiştirin. baskılı kasa, tek fark bilyeli yatağın kayması için ek topuzdur. Servoyu tekrar vidalayın, 10 kez tekrarlayın.

ÖNEMLİ: Devam etmeden önce Arduino'ya kod yüklemeli ve her servoyu 90 derece hareket ettirmelisiniz. Bunu yapmamak, bir veya daha fazla servo ve/veya 3B yazdırılmış çerçeveyi kırmanıza neden olabilir. Bir servoyu 90 dereceye nasıl hareket ettireceğinizden emin değilseniz bu sayfaya bakın. Temel olarak servonun kırmızı kablosunu Arduino'da 5V'a, kahverengi kabloyu GND'ye ve sarı kabloyu dijital pin 9'a bağlayın, ardından kodu bağlantıya yükleyin.

Artık her servo 90 derecede olduğuna göre devam edin:

Bir servo kasasından 3D baskılı düğmeyi ikinci bir segment parçasının deliğine sokarak 10 segmenti bağlayın, ardından servonun aksını biraz kuvvetle deliğine itin (açıklık için yukarıdaki resimlere ve videoya bakın). 1D yılan yapıyorsanız tüm segmentler aynı hizada olmalı, 2D yılan yapıyorsanız her segment bir önceki segmente 90 derece döndürülmelidir. Kuyruk ve kafa çerçevesinin diğer bölümlerin uzunluğunun sadece yarısı olduğuna dikkat edin, bunları bağlayın, ancak kablolamayı bitirene kadar piramit şeklindeki parçalar hakkında yorum yapmayın.

X şeklindeki servo kolu takın ve yerine vidalayın. Bilyalı yatağı 3D baskılı topuzun üzerine kaydırın, bunun için 2 yarım daire direğinin hafifçe sıkılması gerekir. Kullandığınız filamentin markasına ve dolgu yoğunluğuna bağlı olarak direkler çok kırılgan ve çıtçıtlı olabilir, bunun olacağını sanmıyorum ama yine de aşırı güç kullanmayın. Ben şahsen %10 dolgulu PLA filament kullandım. Rulman açıldıktan sonra, topuz üzerindeki çıkıntılar tarafından kilitli kalmalıdır.

Adım 4: Devre

Devre
Devre
Devre
Devre
Devre
Devre

Devre, her iki robot yılan için de aynıdır. Kablolama işlemi sırasında, özellikle 2D yılanda, her segmentin tamamen dönmesi için yeterli kablolama alanı olduğundan emin olun.

Yukarıda sadece 2 servolu kablolama için bir devre şeması verilmiştir. 10 servo ile devre çizimi yapmaya çalıştım ama çok kalabalık oldu. Bu resim ile gerçek hayat arasındaki tek fark, 8 servoyu daha paralel bağlamanız ve PWM sinyal kablolarını Arduino Nano üzerindeki pinlere bağlamanız gerekmesidir.

Güç hatlarını bağlarken, yılanın uzunluğu boyunca uzanan ana 5V hattı olarak tek bir parça 18 gauge tel (10 amper dayanacak kadar kalın) kullandım. Tel sıyırıcılar kullanarak 10 düzenli aralıklarla küçük bir yalıtkan bölümünü çıkardım ve bu aralıkların her birinden bir grup 3 erkek başlık piminden kısa bir tel parçası lehimledim. Siyah 18 gauge GND kablosu ve ikinci bir erkek başlık pimi için bunu ikinci kez tekrarlayın. Son olarak 3. erkek başlık pimine daha uzun bir tel lehimleyin, bu pim yılanın başındaki Arduino Nano'dan servoya PWM sinyalini taşıyacaktır (tel, segmentler büküldüğünde bile ulaşabilecek kadar uzun olmalıdır). Isıyla daralan makaronları gerektiği gibi takın. 3 erkek başlık pimini servo tellerinin 3 dişi başlık pimine bağlayın. 10 servonun her biri için 10 kez tekrarlayın. Sonuçta bu, servoları paralel olarak kablolamak ve PWM sinyal kablolarını Nano'ya çalıştırmaktır. Erkek/dişi başlık pimlerinin nedeni, parçaları kolayca ayırabilmeniz ve her şeyi lehimlemeden kırılırsa servoları değiştirebilmenizdir.

GND ve 5V kablolarını, bir kapasitör ve vidalı terminaller ile kuyrukta 3x7 delikli bir perf kartına lehimleyin. Kondansatörün amacı, Arduino Nano'yu sıfırlayabilen servoları başlatırken ortaya çıkan akım çekme artışlarını ortadan kaldırmaktır (bir kapasitörünüz yoksa muhtemelen onsuz kurtulabilirsiniz, ancak güvende olmak daha iyidir). Elektrolitik kapasitörlerin uzun ucunun 5V hattına ve daha kısa ucunun GND hattına bağlanması gerektiğini unutmayın. GND kablosunu Nano'nun GND pinine ve 5V kablosunu 5V pinine lehimleyin. Farklı bir voltaj kullanıyorsanız dikkat edin (bir sonraki bölüme bakın), 7.4V'lik bir Lipo pil deyin, ardından kırmızı kabloyu 5V pimine DEĞİL Vin pimine bağlayın, aksi takdirde pim bozulur.

10 PWM sinyal kablosunu Arduino Nano üzerindeki pinlere lehimleyin. Benimkini aşağıdaki sırayla bağladım, sizinkini farklı şekilde bağlamayı seçebilirsiniz, ancak daha sonra koddaki servo.attach() satırlarını değiştirmeniz gerekeceğini unutmayın. Ne hakkında konuştuğumdan emin değilseniz, benim yaptığım gibi kablolayın ve sorun yaşamayacaksınız. Yılanın kuyruğundaki servodan yılanın başına kadar olan sırayla her iki yılanımı da aşağıdaki sırayla bağladım. Sinyal pinlerinin bağlanması: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Kabloları temizlemek için fermuarları kullanın. Devam etmeden önce, tüm bölümlerin, kabloların ayrılmadan hareket edebilmesi için yeterli boşlukla hareket edip edemediğini kontrol edin. Artık kablolama yapıldıktan sonra baş ve kuyruk piramit şeklindeki kapakları vidalayabiliriz. Kuyruğun ipin çıkması için bir deliğe sahip olduğunu ve kafanın Arduino programlama kablosu için bir deliğe sahip olduğunu unutmayın.

Adım 5: Yılana Güç Verme

Yılana Güç Vermek
Yılana Güç Vermek
Yılana Güç Vermek
Yılana Güç Vermek
Yılana Güç Vermek
Yılana Güç Vermek

Servolar paralel bağlandığından, hepsi aynı voltajı alır, ancak akımın eklenmesi gerekir. MG996r servolarının veri sayfasına bakıldığında, çalışırken her biri 900mA'ya kadar çekebilirler (durma olmadığı varsayılarak). Bu nedenle, 10 servonun tümü aynı anda hareket ederse toplam akım çekişi 0.9A*10=9A'dır. Normal bir 5v, 2A duvar priz adaptörü çalışmayacaktır. 20A'da 5v kapasiteli bir ATX güç kaynağını değiştirmeye karar verdim. Instructables ve YouTube'da çokça tartışıldığı için bunun nasıl yapıldığını açıklamayacağım. Çevrimiçi hızlı bir arama, bu güç kaynaklarından birinin nasıl değiştirileceğini size gösterecektir.

Güç kaynağını değiştirdiğinizi varsayarsak, bu sadece güç kaynağı ile yılan üzerindeki vidalı terminaller arasında uzun bir ip bağlama durumudur.

Başka bir seçenek, yerleşik bir lipo pil takımı kullanmaktır. Bunu denemedim, bu yüzden piller için bir yuva tasarlamak ve bunları bağlamak size kalmış olacak. Çalışma voltajlarını, servoların ve Arduino'nun akım çekişini aklınızda bulundurun (5v'den başka bir şeyi lehimlemeyin. Arduino'daki 5v pin, daha yüksek bir voltajınız varsa Vin pinine gidin).

Adım 6: Her Şeyin Çalıştığını Test Edin

Devam etmeden önce her şeyin çalıştığını test edelim. Bu kodu yükleyin. Yılanınız her servoyu ayrı ayrı 0-180 arasında hareket ettirmeli ve ardından düz bir çizgide uzanarak bitirmelidir. Olmazsa, bir şeyler yanlıştır, büyük olasılıkla kablolama yanlıştır veya servolar, "Yılanların montajı" bölümünde belirtildiği gibi başlangıçta 90 derecede ortalanmamıştır.

7. Adım: Kod

Şu anda yılan için uzaktan kumanda yok, tüm hareketler önceden programlanmış ve istediğinizi seçebilirsiniz. Sürüm 2'de bir uzaktan kumanda geliştireceğim, ancak uzaktan kontrol etmek istiyorsanız Instructables hakkındaki diğer eğiticilere bakmanızı ve yılanı bluetooth uyumlu olacak şekilde uyarlamanızı öneririm.

1D yılan yapıyorsanız bu kodu yükleyin.

2D yılan yapıyorsanız bu kodu yükleyin.

Kodla oynamanızı, kendi değişikliklerinizi yapmanızı ve yeni algoritmalar oluşturmanızı tavsiye ederim. Her hareket türünün ayrıntılı açıklaması ve kodunun nasıl çalıştığı hakkında sonraki birkaç bölümü okuyun.

Adım 8: Tekerleklere Karşı Ölçekler

Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler
Teraziler ve Tekerlekler

Yılanların ilerleyebilmesinin ana yollarından biri pullarının şeklidir. Ölçekler daha kolay ileri hareket sağlar. Daha fazla açıklama için, pulların yılanın ilerlemesine nasıl yardımcı olduğunu görmek için bu videoyu 3:04'ten itibaren izleyin. Aynı videoda 3:14'e bakıldığında yılanlar bir koldayken pulların sürtünmesini ortadan kaldıran etkiyi gösteriyor. YouTube videomda gösterildiği gibi, robotik 1D yılan çimlerin üzerinde terazi olmadan kaymaya çalıştığında, kuvvetler toplamı net sıfır olduğu için ne ileri ne de geri hareket eder. Bu nedenle robotun göbeğine bazı yapay ölçekler eklememiz gerekiyor.

Harvard Üniversitesi'nde teraziler aracılığıyla lokomosyonu yeniden yaratma araştırması yapıldı ve bu videoda gösterildi. Terazileri robotumda yukarı ve aşağı hareket ettirmek için benzer bir yöntem tasarlayamadım ve bunun yerine göbeğine pasif 3D baskılı teraziler takmaya karar verdim.

Ne yazık ki, pullar liflere takılmak ve sürtünmeyi artırmak yerine halının yüzeyinde kaymaya devam ettiği için bu etkisiz oldu (bkz. 3:38'deki YouTube videom).

Yaptığım ölçekleri denemek isterseniz, dosyaları GitHub'dan 3D yazdırabilirsiniz. Kendinizi başarılı bir şekilde yaparsanız, aşağıdaki yorumlarda bana bildirin!

Farklı bir yaklaşım kullanarak, dış tarafı ısıyla daralan makaronlu r188 bilyalı rulmanlardan yapılmış tekerlekleri 'lastik' olarak kullanmayı denedim. GitHub'ımdaki.stl dosyalarından plastik tekerlek akslarını 3D olarak yazdırabilirsiniz. Tekerlekler biyolojik olarak doğru olmasa da, ileri dönüşün kolay olduğu ancak yan yana hareketin önemli ölçüde daha zor olduğu ölçeklere benzerler. Tekerleklerin başarılı sonucunu YouTube videomda görebilirsiniz.

Adım 9: Kayma Hareketi (tek Eksenli Yılan)

Make it Move Yarışmasında Birincilik Ödülü

Önerilen: