İçindekiler:
- Adım 1: Tasarım Süreci
- Adım 2: Arduino'nun Rolü
- Adım 3: Gerekli Malzemeler
- Adım 4: 3D Basılı Parçalar
- Adım 5: Servo Braketlerin Hazırlanması
- Adım 6: Bağlantı Parçalarının Yapılması
- Adım 7: Bacakların Birleştirilmesi
- Adım 8: Özel PCB ve Kablolama
- Adım 9: Gövdenin Montajı
- Adım 10: İlk Kurulum
- Adım 11: Kinematik Hakkında Biraz
- Adım 12: Arduino'yu Programlama
- Adım 13: Nihai Sonuçlar: Deneme Süresi
Video: Arduino Kontrollü Robotik Biped: 13 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Fusion 360 Projeleri »
Robotlar, özellikle de insan hareketlerini taklit etmeye çalışan türler her zaman ilgimi çekmiştir. Bu ilgi beni insan yürümesini ve koşmasını taklit edebilecek bir robotik iki ayaklı tasarlamaya ve geliştirmeye yöneltti. Bu Eğitilebilir Kitapta size robotik bipedin tasarımını ve montajını göstereceğim.
Bu projeyi oluştururken birincil hedef, sistemi mümkün olduğunca sağlam hale getirmekti, öyle ki çeşitli yürüyüş ve koşu yürüyüşlerini denerken, sürekli donanım arızası konusunda endişelenmeme gerek kalmayacaktı. Bu, donanımı sınırına kadar zorlamama izin verdi. İkincil bir hedef, biped'i, mevcut hobi parçalarını ve 3D baskıyı kullanarak daha fazla yükseltme ve genişletme için yer bırakarak nispeten düşük maliyetli hale getirmekti. Bu iki hedef bir araya geldiğinde, çeşitli deneyler yapmak için sağlam bir temel sağlar ve kişinin iki ayaklıyı daha özel gereksinimlere göre geliştirmesini sağlar.
Kendi Arduino kontrollü Robotik Biped'inizi oluşturmak için devam edin ve projeyi beğendiyseniz "Arduino Yarışması" na bir oy verin.
Adım 1: Tasarım Süreci
İnsansı bacaklar, Autodesk'in ücretsiz Fusion 360 3d modelleme yazılımında tasarlandı. Servo motorları tasarıma aktararak başladım ve etraflarına bacakları oluşturdum. Servo motor miline taban tabana zıt ikinci bir pivot noktası sağlayan servo motor için braketler tasarladım. Motorun her iki ucunda çift şaft olması, tasarıma yapısal stabilite kazandırır ve bacaklar biraz yük alacak şekilde yapıldığında oluşabilecek eğrilikleri ortadan kaldırır. Bağlantılar, mil için bir cıvata kullanırken braketler bir yatağı tutacak şekilde tasarlanmıştır. Bağlantılar bir somun kullanılarak millere monte edildiğinde, yatak servo motor milinin karşı tarafında düzgün ve sağlam bir pivot noktası sağlayacaktır.
İki ayaklıyı tasarlarken bir diğer amaç, servo motorlar tarafından sağlanan torktan maksimum düzeyde yararlanmak için modeli olabildiğince kompakt tutmaktı. Bağlantıların boyutları, toplam uzunluğu en aza indirirken geniş bir hareket aralığı elde etmek için yapılmıştır. Bunları çok kısa yapmak braketlerin çarpışmasına, hareket aralığının azalmasına ve çok uzun yapılması aktüatörlere gereksiz tork uygulanmasına neden olur. Son olarak Arduino ve diğer elektronik bileşenlerin üzerine monte edileceği robotun gövdesini tasarladım.
Not: Parçalar aşağıdaki adımlardan birine dahil edilmiştir.
Adım 2: Arduino'nun Rolü
Bu projede Arduino Uno kullanılmıştır. Arduino, test edilen çeşitli yürüyüşlerin hareket yollarını hesaplamaktan sorumluydu ve aktüatörlere düzgün bir yürüyüş hareketi oluşturmak için hassas açılarda hassas hızlarda hareket etme talimatı verdi. Arduino, çok yönlülüğü nedeniyle proje geliştirmek için mükemmel bir seçimdir. Bir grup IO pini sağlar ve ayrıca diğer mikrodenetleyiciler ve sensörler ile iletişim kurmak için seri, I2C ve SPI gibi arayüzler sağlar. Arduino ayrıca hızlı prototipleme ve test için harika bir platform sağlar ve geliştiricilere iyileştirmeler ve genişletilebilirlik için alan sağlar. Bu projede, diğer sürümler, engebeli arazide düşme algılama ve dinamik hareket gibi hareket işleme için bir Atalet Ölçüm Birimi ve engellerden kaçınmak için bir mesafe ölçüm sensörü içerecektir.
Bu proje için Arduino IDE kullanıldı. (Arduino ayrıca web tabanlı bir IDE sağlar)
Not: Robot için programlar aşağıdaki adımlardan birinden indirilebilir.
Adım 3: Gerekli Malzemeler
Kendi Arduino destekli Bipedal robotunuzu yapmak için gereken tüm bileşenlerin ve parçaların listesi. Tüm parçalar yaygın olarak bulunmalı ve bulunması kolay olmalıdır.
ELEKTRONİK:
Arduino Uno x 1
Towerpro MG995 servo motor x 6
Perfboard (Arduino ile benzer boyutta)
Erkek ve Dişi başlık pimleri (her birinden yaklaşık 20 adet)
Jumper Telleri (10 adet)
MPU6050 IMU (isteğe bağlı)
Ultrasonik sensör (isteğe bağlı)
DONANIM:
Kaykay Rulman (8x19x7mm)
M4 somun ve cıvatalar
3D yazıcı filamenti (3D yazıcınız yoksa, yerel bir çalışma alanında bir 3D yazıcı olmalıdır veya baskılar oldukça ucuza online olarak yapılabilir)
Arduino ve 3D yazıcı hariç bu projenin toplam maliyeti 20$'dır.
Adım 4: 3D Basılı Parçalar
Bu proje için gereken parçaların özel olarak tasarlanması gerekiyordu, bu nedenle bunları basmak için bir 3D yazıcı kullanıldı. Baskılar, seçtiğiniz renk PLA ile %40 dolgu, 2 çevre, 0,4 mm meme ve 0,1 mm katman yüksekliğinde yapılmıştır. Aşağıda, kendi sürümünüzü yazdırmak için parçaların tam listesini ve STL'leri bulabilirsiniz.
Not: Buradan itibaren parçalara listedeki isimler kullanılarak atıfta bulunulacaktır.
- ayak servo tutucu x 1
- ayak servo tutucu ayna x 1
- diz servo tutucu x 1
- diz servo tutucu ayna x 1
- ayak servo tutucu x 1
- ayak servo tutucu ayna x 1
- rulman bağlantısı x 2
- servo korna bağlantısı x 2
- ayak bağlantısı x 2
- köprü x 1
- elektronik montaj x 1
- elektronik ara parçası x 8 (isteğe bağlı)
- servo korna alanı x 12 (isteğe bağlı)
Ara parçalar hariç toplamda 14 parça vardır. Toplam baskı süresi yaklaşık 20 saattir.
Adım 5: Servo Braketlerin Hazırlanması
Tüm parçalar yazdırıldıktan sonra servoları ve servo braketlerini ayarlayarak başlayabilirsiniz. İlk önce bir yatağı diz servo tutucusuna itin. Yerleşim rahat olmalı, ancak parçayı kırma riskine neden olabilecek yatağı zorlamak yerine deliğin iç yüzeyini biraz zımparalamanızı tavsiye ederim. Ardından delikten bir M4 cıvata geçirin ve bir somun kullanarak sıkın. Ardından, ayak bağlantısını tutun ve verilen vidaları kullanarak dairesel bir servo korna takın. Servo motoru da takmak için kullanacağınız vidaları kullanarak ayak bağlantısını diz servo tutucusuna takın. Mil daha önce taktığınız cıvatanın aynı tarafında olacak şekilde motoru hizaladığınızdan emin olun. Son olarak servoyu kalan somun ve cıvatalarla sabitleyin.
Aynısını kalça servosu tutucusu ve ayak servosu tutucusu ile yapın. Bununla, üç servo motorunuz ve bunlara karşılık gelen braketleriniz olmalıdır.
Not: Bir ayağı oluşturmak için talimatlar veriyorum, diğeri basitçe yansıtılmış.
Adım 6: Bağlantı Parçalarının Yapılması
Braketler monte edildikten sonra bağlantıları yapmaya başlayın. Yatak bağlantısını yapmak için, yatağın deliklerinin iç yüzeyini bir kez daha hafifçe zımparalayın ve ardından yatağı her iki taraftaki deliğe itin. Yatağı bir taraf aynı hizada olana kadar içeri ittiğinizden emin olun. Servo korna bağlantısını oluşturmak için iki dairesel servo boynuzu ve verilen vidaları alın. Kornaları 3B baskıya yerleştirin ve delikleri hizalayın, ardından vidayı 3B baskı tarafından takarak kornayı 3B baskıya vidalayın. Bu vidalar için 3D baskılı servo korna ara parçası kullanmanızı tavsiye ederim. Bağlantılar oluşturulduktan sonra ayağı birleştirmeye başlayabilirsiniz.
Adım 7: Bacakların Birleştirilmesi
Bağlantılar ve braketler monte edildikten sonra robotun bacağını oluşturmak için bunları birleştirebilirsiniz. İlk olarak, kalça servosu braketini ve diz servo braketini birbirine takmak için servo korna bağlantısını kullanın. Not: Kornayı henüz servoya vidalamayın çünkü sonraki aşamada bir kurulum aşaması vardır ve kornanın servo motora vidalanması sakıncalı olacaktır.
Karşı tarafta, somunları kullanarak yatak bağlantısını çıkıntılı cıvatalara monte edin. Son olarak, çıkıntılı cıvatayı diz servo tutucusundaki yatağın içinden geçirerek ayak servo braketini takın. Ve servo milini diğer taraftaki diz servo tutucuya bağlı servo kornaya sabitleyin. Bu zor bir iş olabilir ve bunun için ikinci bir çift el tavsiye ederim.
Diğer bacak için adımları tekrarlayın. Her adıma ekli resimleri referans olarak kullanın.
Adım 8: Özel PCB ve Kablolama
Bu, isteğe bağlı bir adımdır. Kablolamayı daha düzgün hale getirmek için mükemmel kart ve başlık pinlerini kullanarak özel bir PCB yapmaya karar verdim. PCB, servo motor kablolarını doğrudan bağlamak için portlar içerir. Ayrıca, Atalet Ölçüm Birimleri veya ultrasonik mesafe sensörleri gibi başka sensörleri genişletmek ve eklemek istemem durumunda ekstra portlar da bıraktım. Ayrıca servo motorlara güç sağlamak için gereken harici güç kaynağı için bir bağlantı noktası içerir. Arduino için USB ve harici güç arasında geçiş yapmak için bir jumper bağlantısı kullanılır. Arduino ve PCB'yi, vidaları ve 3D baskılı ayırıcıları kullanarak elektronik montajın her iki tarafına da monte edin.
Not: Arduino'yu USB üzerinden bilgisayarınıza bağlamadan önce jumper'ı çıkardığınızdan emin olun. Bunu yapmamak Arduino'ya zarar verebilir.
PCB'yi kullanmamaya ve bunun yerine bir devre tahtası kullanmaya karar verirseniz, servo bağlantıları şunlardır:
- Sol Kalça >> pim 9
- Sağ Kalça >> pim 8
- Sol Diz >> pim 7
- Sağ Diz >> pim 6
- Sol Ayak >> pim 5
- Sağ Ayak >> pim 4
PCB'yi yapmaya karar verirseniz, PCB üzerindeki bağlantı noktalarını IMU bağlantı noktası yukarı bakacak şekilde sağdan sola kullanarak yukarıdaki sırayı takip edin. Ve yukarıdaki pin numaralarını kullanarak PCB'yi Arduino'ya bağlamak için normal erkek-dişi jumper kabloları kullanın. USB gücü olmadan çalıştırmaya karar verdiğinizde topraklama pinini de bağladığınızdan ve aynı toprak potansiyelini ve Vin pinini yarattığınızdan emin olun.
Adım 9: Gövdenin Montajı
İki bacak ve elektronik parçalar birleştirildiğinde, robot gövdesini oluşturmak için bunları birleştirin. İki ayağı birbirine bağlamak için köprü parçasını kullanın. Kalça servo tutucu ve servo motoru tutan somun ve cıvatalardaki aynı montaj deliklerini kullanın. Son olarak, elektronik montajı köprüye bağlayın. Köprü ve elektronik aksam üzerindeki delikleri hizalayın ve eklemi yapmak için M4 somun ve cıvataları kullanın.
Yardım için ekteki resimlere bakın. Bununla robotun donanım yapısını tamamladınız. Ardından, yazılıma atlayalım ve robotu hayata geçirelim.
Adım 10: İlk Kurulum
Bu projeyi oluştururken fark ettiğim şey, servo motorların ve kornaların nispeten paralel kalmak için mükemmel bir şekilde hizalanması gerekmediğidir. Bu nedenle, her bir servo motorun "merkezi konumu", bacaklarla hizalanacak şekilde manuel olarak ayarlanmalıdır. Bunu başarmak için her bir servodan servo boynuzlarını çıkarın ve initial_setup.ino taslağını çalıştırın. Motorlar merkezi konumlarına yerleştikten sonra, boynuzları, bacaklar tamamen düz ve ayak yere tamamen paralel olacak şekilde yeniden takın. Eğer durum buysa, şanslısınız. Değilse, bitişik sekmede bulunan sabitler.h dosyasını açın ve bacaklar mükemmel bir şekilde hizalanana ve ayak düz olana kadar servo ofset değerlerini (1-6 satırları) değiştirin. Değerlerle oynayın ve sizin durumunuzda neyin gerekli olduğu hakkında bir fikir edineceksiniz.
Sabitler ayarlandıktan sonra, daha sonra ihtiyaç duyulacakları için bu değerleri not edin.
Yardım için resimlere bakın.
Adım 11: Kinematik Hakkında Biraz
İki ayaklıların koşma ve yürüme gibi faydalı eylemleri gerçekleştirmesini sağlamak için çeşitli yürüyüşlerin hareket yolları şeklinde programlanması gerekir. Hareket yolları, uç efektörün (bu durumda ayaklar) boyunca hareket ettiği yollardır. Bunu başarmanın iki yolu vardır:
- Bir yaklaşım, çeşitli motorların eklem açılarını kaba kuvvetle beslemek olacaktır. Bu yaklaşım zaman alıcı, sıkıcı olabilir ve ayrıca yargı tamamen görsel olduğu için hatalarla dolu olabilir. Bunun yerine, istenen sonuçlara ulaşmanın daha akıllı bir yolu var.
- İkinci yaklaşım, tüm eklem açıları yerine uç efektörün koordinatlarını beslemek etrafında döner. Ters Kinematik olarak bilinen şey budur. Kullanıcı, koordinatları girer ve eklem açıları, uç efektörü belirtilen koordinatlarda konumlandırmak için ayarlanır. Bu yöntem, girdi olarak bir koordinat alan ve eklem açılarını veren bir kara kutu olarak düşünülebilir. Bu kara kutunun trigonometrik denklemlerinin nasıl geliştirildiğini merak edenler yukarıdaki diyagrama bakabilirler. İlgilenmeyenler için, denklemler zaten programlanmıştır ve x, z girişini alan ve motorlara karşılık gelen üç açıyı veren pos işlevi kullanılarak kullanılabilir.
Bu işlevleri içeren program bir sonraki adımda bulunabilir.
Adım 12: Arduino'yu Programlama
Arduino'yu programlamadan önce dosyada küçük değişiklikler yapılması gerekir. Senden not almanı istediğim sabitleri hatırlıyor musun? Aynı sabitleri, sabitler.h dosyasında ayarladığınız değerlerle değiştirin.
Not: Bu Talimatta sağlanan tasarımları kullandıysanız, değiştirecek hiçbir şeyiniz yoktur. Aranızda kendi tasarımını yapmış olanlar varsa, ofsetlerle birlikte birkaç değeri daha değiştirmek zorunda kalacaksınız. Sabit l1 kalça pivotu ile diz pivotu arasındaki mesafeyi ölçer. Sabit l2, diz pivotu ile ayak bileği pivotu arasındaki mesafeyi ölçer. Yani kendi modelinizi tasarladıysanız, bu uzunlukları ölçün ve sabitleri değiştirin. Son iki sabit yürüyüş için kullanılır. StepCearance sabiti, bir adımdan sonra öne çıkarken ayağın ne kadar yükseğe kalkacağını ölçer ve stepHeight sabiti, adım atarken yerden kalçaya kadar olan yüksekliği ölçer.
Tüm sabitler ihtiyacınıza göre değiştirildikten sonra ana programı yükleyebilirsiniz. Ana program, robotu bir yürüyüş pozisyonuna başlatır ve ileriye doğru adımlar atmaya başlar. İşlevler, neyin en iyi sonucu verdiğini görmek için çeşitli yürüyüşleri, hızları ve adım uzunluklarını keşfetme ihtiyacınıza göre değiştirilebilir.
Adım 13: Nihai Sonuçlar: Deneme Süresi
Biped, devrilmeden 10 ila 2 cm arasında değişen adımlar atabilir. Yürüyüşü dengeli tutarken hız da değiştirilebilir. Arduino'nun gücüyle birleştirilen bu iki ayaklı, çeşitli diğer yürüyüşleri ve bir topa tekme atarken atlama veya dengeleme gibi diğer hedefleri denemek için sağlam bir platform sağlar. Kendi yürüyüşlerinizi oluşturmak için bacakların hareket yollarını değiştirmeye çalışmanızı ve çeşitli yürüyüşlerin robotun performansını nasıl etkilediğini keşfetmenizi tavsiye ederim. İşlevlerini artırmak için sisteme IMU ve mesafe sensörü gibi sensörler eklenebilirken, düz olmayan yüzeylerde dinamik hareket ile deney yapmak için bacaklara kuvvet sensörleri eklenebilir.
Umarım bu Eğitilebilirliği beğenmişsinizdir ve kendinizinkini oluşturmak için yeterli bir ilham kaynağı olmuştur. Projeyi beğendiyseniz, "Arduino Yarışması"nda bir oy vererek destekleyin.
Mutlu Yapım!
Arduino Yarışması 2020'de Birincilik Ödülü
Önerilen:
Gerçek El Hareketi Üzerinden Kontrollü Basit Bir Robotik Kol: 7 Adım (Resimli)
Gerçek El Hareketi Üzerinden Kontrol Edilen Basit Bir Robotik Kol: Bu, yeni başlayanlar için çok basit bir DOF robotik koldur. Kol Arduino kontrollüdür. Operatörün eline takılan bir sensör ile bağlanır. Böylece operatör kendi dirsek hareketini bükerek kol dirseğini kontrol edebilir.
Arduino Kontrollü Robotik Kol W/6 Serbestlik: 5 Adım (Resimli)
Arduino Kontrollü Robotik Kol W / 6 Serbestlik Derecesi: Bir robotik grubunun üyesiyim ve her yıl grubumuz yıllık Mini-Maker Faire'e katılıyor. 2014'ten başlayarak, her yılki etkinlik için yeni bir proje oluşturmaya karar verdim. O zaman, olaydan önce bir şeyler koymak için yaklaşık bir ay vardı
Nunchuk Kontrollü Robotik Kol (Arduino ile): 14 Adım (Resimli)
Nunchuk Kontrollü Robotik Kol (Arduino ile): Robotik kollar harika! Dünyanın her yerindeki fabrikalarda, eşyaları hassas bir şekilde boyadıkları, lehimledikleri ve taşıdıkları bu ürünler bulunur. Ayrıca uzay araştırmalarında, denizaltı uzaktan kumandalı araçlarda ve hatta tıbbi uygulamalarda da bulunabilirler! Ve şimdi
Eldivenle Kontrollü Robotik Kol: 6 Adım (Resimli)
Eldivenle Kontrol Edilen Robotik Kol: Amaç: Tamamlanacak bir proje yaratarak deneyim ve problem çözme becerileri kazanınAnahat- 3 boyutlu robotik baskılı bir "kolu" kontrol etmek için bir arduino aracılığıyla bağlanmak için bir eldiven kullanın. 3-D baskılı koldaki bağlantıların her biri, birlikte çalışan bir servoya sahiptir
DTMF ve Hareket Kontrollü Robotik Tekerlekli Sandalye: 7 Adım (Resimli)
DTMF ve Hareket Kontrollü Robotik Tekerlekli Sandalye: Bu dünyada birçok insan engellidir. Hayatları tekerlekler etrafında döner. Bu proje, bir akıllı telefonun el hareketi tanıma ve DTMF'sini kullanarak tekerlekli sandalye hareketini kontrol etmek için bir yaklaşım sunar