İçindekiler:

1KG Sumobot Yapısı: 6 Adım
1KG Sumobot Yapısı: 6 Adım

Video: 1KG Sumobot Yapısı: 6 Adım

Video: 1KG Sumobot Yapısı: 6 Adım
Video: Try a Mini Sumo Robot with High Torque! 2024, Haziran
Anonim
1KG Sumobot Yapısı
1KG Sumobot Yapısı

Bu Eğitilebilir Tablo, 1 kilogramlık bir sumobot tasarlama ve inşa etme sürecinde size rehberlik edecektir.

Ama önce, neden bunu yazmaya karar verdiğime dair biraz arka plan. Eski sumobotumu bir yarışma için onarmak üzereydim ki, nasıl sumobot yapılacağına dair bir Eğitim Tablosu yapmadığımı fark ettim. Geçen yıl Instructables'ta sessiz kaldım, bu yüzden 1KG sumobotun nasıl inşa edileceğine dair bu Instructable ile geri dönmeye karar verdim.

Öncelikle, birçoğunuz sumobot nedir diye merak edeceksiniz

Temel olarak sumobot, sumobot veya robot-sumo yarışmalarında kullanılan bir robot türüdür. Adından da anlaşılacağı gibi amaç sumo güreşinde olduğu gibi birbirinizi ringin dışına itmektir. Sumobotun kendisi, yalnızca başka bir sumobotu halkadan dışarı itmek amacıyla tasarlanmıştır. Bu Eğitilebilir Tablodaki sumobot 1 kilogramdır. Bununla birlikte, 500 gram ve 3 kilogram gibi başka ağırlık sınıfları da vardır.

Gerekli beceriler:

  • CAD (Bilgisayar Destekli Tasarım) ile aşinalık
  • Lehimleme
  • Arduino'da Programlama

Bu proje için çok fazla beceriye gerek yok. Sadece CAD, lehimleme ve programlama konusunda rahat olmak uzun bir yol kat ediyor. Bilgisayar destekli tasarımın kulağa ne kadar karmaşık geldiğini görünce gözünüz korkmasın. Autodesk, kendi yazılımları hakkında ücretsiz kapsamlı eğitimler sağlar (Ben Fusion 360'ı kendim kullanıyorum) ve ipleri öğrenmeye yeni başlayanlar için son derece yararlıdır. Benim için daha önemli olan öğrenmeye istekli ve hazır olmak ve tabii ki bu süreçte eğlenmek.

Bununla başlayalım.

not Ayrıca Make it Move yarışmasına bu Eğitilebilir Yazıya giriyorum. Bu Eğitilebilirliği harika bulursanız, lütfen bana da oy verin. (T-shirt'ü istiyorum; gerçekten harika görünüyor:))

Adım 1: Parça Listesi

Parça listesi:

0.090” 6061 Alüminyum Levha - 12” x 12” (veya CNC'de yapılabilen herhangi bir 0.090”/2.2mm alüminyum levha. Ana gövde için bu kullanılacağı için 6061'i seçtim ve 6061'in makul bir mukavemeti var)

0,5 mm Alüminyum Levha - 12” x 12” (Herhangi bir alaşım işe yarar, bu sadece üst kapak ve bıçak içindir. Yedek alüminyum hurda kullandım)

5mm Alüminyum Levha (Yine, herhangi bir alaşım işe yarar. Benimki 7075 alüminyum hurdaydı.)

2 x 12V DC yüksek torklu motor (Amazon'dan gelen herhangi bir yüksek torklu motor çalışacaktır.)

2 x jant (Yine, motorunuza bağlı olarak herhangi bir jant işe yarar. 5 mm motor şaftınız varsa, bu jantlar iyi çalışır. Benimkiler aslında sahip olduğum eski silikon jantlar)

4 IR mesafe sensörü (Pololu'dan ve Sparkfun'dan bu gibi birden fazla mağazadan satın alınabilen Sharp IR mesafe sensörlerini kullanıyorum.)

2 IR sensörü (Sparkfun'dan yine biraz aldım.)

1 Mikrodenetleyici kartı (Sadece gerekli olduğu için bir ATX2 kullanıyorum. Normal bir Arduino Uno, kullanım kolaylığı açısından aslında daha iyi olurdu).

1 3S Lityum polimer pil (LiPo. 3S LiPos 12 volttur. Kapasite 800 ile 1400 mah arasında herhangi bir yerde çalışabilir.)

1 Motor sürücüsü (Yine, bu, motorunuzun ne kadar güç çekebileceğine bağlıdır. Bu, doğrudan bir Arduino Uno'nun üzerine gider ve 5A'e kadar akım sağlayabilir.)

Teller, kablolar ve konektörler (Sensörleri karta bağlamak ve bir dizüstü bilgisayarla arayüz oluşturmak için.)

M3 vidalar ve somunlar

Epoksi

Karton

Dizüstü bilgisayar (kartı programlamak için)

Makas, tel sıyırıcılar ve havya gibi aletler.

Adım 2: Kasanın Montajı

Şasinin Montajı
Şasinin Montajı
Şasinin Montajı
Şasinin Montajı
Şasinin Montajı
Şasinin Montajı
Şasinin Montajı
Şasinin Montajı

Kasayı tasarlamak için hepsi bir arada bulutla çalışan 3D CAD/CAM yazılımı olan Fusion 360'ı kullandım. Autodesk burada güzel öğreticiler sunar. Çoğunlukla videoları izleyerek ve sonra kendim yapmaya çalışarak öğrendim. Size Fusion 360'ı nasıl kullanacağınızı öğretmeye çalışmayacağım; Profesyonellerin işlerini yapmasına izin vereceğim.

Tasarımın kendisi bir ana taban, bir bıçak, bir üst kapak, iki motor braketi ve iki (veya dört) 3D baskılı braketten oluşur. Ana taban 2,2 mm alüminyumdur, motor braketleri 5 mm alüminyumdur, bıçak 0,5 mm alüminyumdur, üst kapak ise 0,5 mm alüminyum veya normal karton olabilir. Alüminyum birkaç gram daha ağır olduğu için karton kullandım ve 1 kilogram sınırını 10 gram aştım. 3D baskılı diş telleri ise %50 dolgu üzerine ABS ile basılmıştır.

Alüminyum gerektiren tasarımlar.dxf dosyalarına aktarıldı ve Filipinler'deki yerel bir lazer kesim şirketine gönderildi. Bu arada 3D baskılı parçalar STL'ye ihraç edildi ve tekrar yerel bir 3D baskı şirketine gönderildi.

Yasal Uyarı: Artık çalışmayan ancak bu tasarımı kullanan eski bir sumobotumu yeniden kullandım, bu nedenle bazı parçalar fotoğraflarda zaten bir araya getirilmiş. Bununla birlikte, tüm parçaları bir araya getirme sürecinde size yol göstereceğim.

Parçalar kesildikten sonra, üst kapak, destek ve bıçak veya motor braketi ile başlayabilirsiniz.

Tasarımdaki üst kapak alüminyumdan yapılmıştır, ancak ağırlık kısıtlamaları nedeniyle karton kullandım. Tasarımdakiyle aynı özelliklerde karton kestim.

3D baskılı destek, vidalar kullanılarak öne sabitlenir ve bıçağı tam anlamıyla desteklemek için kullanılır. Bıçak, epoksi kullanılarak tabana yapıştırılır. Bıçağın ve ana tabandaki vida delikleri, konumlandırmayı yönlendirmek ve doğru bir şekilde birleştirildiğinden emin olmak için kullanılır. Ana kaide üzerinde bıçağı ana kaideye yapıştırmak için epoksi ile doldurabileceğiniz dairesel delikler bulunmaktadır. Deliklerin geniş yüzey alanı, epoksinin bıçağı daha iyi kavramasını ve tabandan yırtılmasını önlemesini sağlar. Kızılötesi sensörü de tıpkı fotoğraflardaki gibi epoksi kullanılarak bıçağın altına yapıştırılabilir. Sensörün alt kısmının zemine dik olduğundan emin olun.

Motoru tabana monte etmek için önce motoru motor braketine vidalayın. Bununla birlikte, kablolar motorun arkasında olduğundan ve tabana bağlandıktan sonra bunlara ulaşmak zor olacağından önce motora tel lehimlemeniz gerekir. Motor, motor braketi ile hizalanır ve vidalarla tutulur. Yani parça listesine eklediğim motoru aldıysanız. Değilse, tasarımı motorunuza uyacak şekilde değiştirebilirsiniz. Bu noktada, jantı motora da takabilirsiniz. Motor braketi daha sonra ana tabanın arka deliklerine vidalanır.

Arduino'nun üstüne çıkamayan bir motor sürücüsü kullanıyorsanız veya herhangi bir nedenle motor sürücüsünün kendi alanına sahip olması gerekiyorsa, motorlar ile blade arasında bunun için boşluk vardır. Bu alan, ekstra alana ihtiyaç duymanız durumunda lipo pil ve bir motor sürücüsü için ayrılmıştır. Zaten robotun alt kısmında da çalıştığımız için ve üst kapak takıldığında daha sonra ulaşmak zor olacağından, motor sürücüsünü tıpkı fotoğraflardaki gibi bıçak ve motorlar arasına yerleştirebilirsiniz. Çift taraflı bant, tabana tutturmada yardımcı olabilir.

Adım 3: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Sırada sensörler, motor sürücüsü ve kart gibi elektronikler var.

Yine, bir Arduino'nun üstüne gitmeyen bir motor sürücüsü kullanıyorsanız, onu mikrodenetleyici ile arayüzlemek için gereken kabloları bağlamaya başlayın. Motor sürücüm için tek ihtiyacım olan bir sinyal (mavi) ve topraklama (siyah) kablosu. Sürücünün kendisine bağlıdır. Tüm sürücülerin ihtiyaç duyduğu şey, aküye veya güç kaynağına bağlanacak kablolardır. XT-60'ıma bağlı kablolar (çoğu lipo pilde aynı fiş) çok kalındı, bu yüzden dar bağlantı bloklarına uyacak şekilde kısaltmak zorunda kaldım.

Mikrodenetleyicim ayrıca motor sürücüleriyle aynı güç kaynağını paylaşıyor, bu yüzden kabloları doğrudan motor sürücülerindeki XT-60 konektörünün uçlarına lehimlemek zorunda kaldım.

Aldığınız sensöre bağlı olarak, IR mesafe sensörlerinin kendilerine lehimlenmiş başlık pimleri olması gerekebilir. Satın alırsanız genellikle pakete bir miktar eklerler, bu yüzden bunları gerektiği gibi lehimleyin.

Mikrodenetleyiciyi sensörlere bağlamak için de benim gibi kabloları birbirine lehimlemeniz gerekebilir. Sensörün kendi konektörü vardır; bazıları JST, bazıları ise servo başlıkları kullanır. Normal bir Arduino ile Arduino'ya jumper kablolar yapıştırabilir ve ardından kablonun diğer ucunu sensörden çıkan kabloya lehimleyebilirsiniz. İşlem, diğer mikrodenetleyicilerle aynı şekilde çalışır. Mikrodenetleyiciden gelen teller sensörden gelen tellere lehimlenir.

Adım 4: Tüm Parçaları Bir Araya Getirmek

Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek
Tüm Parçaları Bir Araya Getirmek

Sensörler ve mikrodenetleyici üst plakaya gider. Sensörün arkasındaki teller mikrodenetleyici ile çarpıştığı için IR mesafe sensörlerini mikrodenetleyicinin üzerine çıkarmak için bir grup karton üzerine monte ettim. Fotoğrafta nasıl sadece üç sensör olduğuna dikkat edin. Robotun arkasına dördüncü bir mesafe sensörü eklemeye ancak son dakikada karar verdim. Ne yazık ki, daha fazla yer yoktu, bu yüzden onu ana kaidenin üzerine, motorların hemen arkasına monte etmek zorunda kaldım.

Mikrodenetleyici daha sonra üst plakaya bağlanır. Hiçbir şey çok zor değil; Kartonda birkaç delik açtım ve tüm tahtayı üst plakaya vidaladım. Alüminyum kullanıyorsanız, bir el matkabı şart olacaktır.

Her şey üst plakaya sabitlendikten sonra, motorların üst kısmına yapıştırmak için çift taraflı bant kullanın.

Bu noktada sensörlerin ve motor sürücüsünün mikrodenetleyiciye bağlanması gibi tüm elektronik aksamları birbirine bağlamaya başlayabilirsiniz. Arduino'nun sadece üstüne yapışan motor sürücüsünü kullanıyorsanız, o zaman sizin için sorun değil. Değilse, tıpkı benim yaptığım gibi, sürücünün özelliklerine göre tahtaya bağlamanız gerekecek.

Her şey bağlandıktan sonra, lipo'yu motorlar ve bıçak arasındaki alt boşluğa yerleştirin, ardından mikrodenetleyicinizi ve sürücülerinizi ilk kez yandığını görmek için çalıştırın.

Adım 5: Programlama

Her şey bir araya getirildikten sonra yapılacak son bir şey var: robotunuzu programlayın.

Robotunuzu programlamak, istediğiniz stratejiye bağlıdır. Motor sürücüm seri (UART) iletişim kullandığı için programlama konusunda yetkin olduğunuzu varsayıyorum ve bu nedenle programım diğer motor sürücüleri için çalışmayacaktır. Sonuçta, programlamada herkese uyan tek bir boyut yoktur.

Size yardımcı olmak için, işte programımın temel bir akış şeması.

eğer önde çok yakın biri varsa, sol veya sağ renk sensörü beyaz bir çizgi algılarsa tam güçte gidin, geri dönün ve sol veya sağ mesafe sensörü bir şey algılarsa o yöne dönün, arka sensör bir şey algılarsa o yöne dönün, biri varsa o yöne dönün çok önde, ileri git, ilerlemeye devam et

Merak ediyorsanız işte programın tamamı:

#Dahil etmek

// A5 - sol renk sensörü // A4 - sağ renk sensörü // A6 - arka mesafe sensörü // A2 - sol mesafe sensörü // A3 - sağ mesafe sensörü // A1 - ön mesafe sensörü // motor 1 - sağ // motor 2 - sol boşluk ayarı() { uart1_set_baud(9600); Seri1.write(64);Seri1.write(192); TAMAM(); bip(2); setTextColor(GLCD_BLUE); glcd(1, 0, "Başlatıldı"); gecikme (4900); }

boşluk döngüsü () {

int frontDistanceValue = analogRead (A1); int leftDistanceValue = analogRead (A2); int rightDistanceValue = analogRead (A3); int arkaDistanceValue = analogRead (A6); int leftColorValue = digitalRead (A5); int rightColorValue = digitalRead (A4); if (frontDistanceValue > 250) { // hemen önde biri, maksimum güç Serial1.write(127); Seri1.write(128); } else if (leftColorValue == 0) { // dokunulan kenara // ters Serial1.write(1); Seri1.write(255); gecikme(400); Seri1.write(1); Seri1.write(128); gecikme(300); } else if (rightColorValue == 0) { // dokunulan kenara // ters Serial1.write(1); Seri1.write(255); gecikme(400); Seri1.write(127); Seri1.write(255); gecikme(300); } else if (frontDistanceValue > 230) { // biraz uzak Serial1.write(127); Seri1.write(128); } else if (leftDistanceValue > 250) { // sola dön Serial1.write(127); Seri1.write(255); gecikme(450); } else if (rightDistanceValue > 250) { // sağa dön Serial1.write(1); Seri1.write(128); gecikme(450); } else if (rearDistanceValue > 150) { // arkaya yakın Serial1.write(1); Seri1.write(128); gecikme (1050); } else if (frontDistanceValue > 180) { // en önde Serial1.write(127); Seri1.write(128); } başka { Serial1.write(100); Seri1.write(155); } }

6. Adım: Fotoğraflar

Fotoğraflar
Fotoğraflar
Fotoğraflar
Fotoğraflar
Fotoğraflar
Fotoğraflar
Fotoğraflar
Fotoğraflar

Gösterilen, bitmiş sumobotun bazı fotoğrafları.

Umarım bu talimattan bir şeyler öğrenmişsinizdir. Bu kılavuzu beğendiyseniz, lütfen Make it Move yarışmasında bana oy verin. Değilse, bu kılavuzu daha iyi hale getirebilecek her şeyi düzeltmekten memnuniyet duyarım.

Mutlu öğrenme!

Önerilen: