Mündəricat:

Bioinsan Robotik İlan: 16 Addım (Şəkillərlə birlikdə)
Bioinsan Robotik İlan: 16 Addım (Şəkillərlə birlikdə)

Video: Bioinsan Robotik İlan: 16 Addım (Şəkillərlə birlikdə)

Video: Bioinsan Robotik İlan: 16 Addım (Şəkillərlə birlikdə)
Video: Dünya 2024, Iyul
Anonim
Image
Image

Həm ağaclara dırmaşan robot ilanların, həm də robot yılan balığının araşdırma videolarını gördükdən sonra bu layihəyə başlamaq üçün ilham aldım. Bu, ilan lokomotivindən istifadə edərək robotlar qurduğum ilk cəhdimdir, amma bu mənim sonuncu olmayacaq! Gələcək inkişafları görmək istəyirsinizsə YouTube -a abunə olun.

Aşağıda 3D çap sənədləri ilə birlikdə 2 fərqli ilanın inşasını və ilana bənzər hərəkətə nail olmaq üçün kod və alqoritmlər haqqında bir müzakirə etdim. Daha çox öyrənməyə davam etmək istəyirsinizsə, bu təlimatı oxuduqdan sonra səhifənin altındakı istinadlar bölməsindəki bağlantıları oxumağı məsləhət görürəm.

Texniki cəhətdən 2-si 1-dir, robot ilanın 2 fərqli versiyasının necə hazırlanacağını izah edirəm. Yalnız ilanlardan birini tikməklə maraqlanırsınızsa, digər ilanın təlimatlarına məhəl qoymayın. Bu 2 fərqli ilan, aşağıdakı ifadələri bir -birinin əvəzinə istifadə etmək üçün buradan alınacaq:

  1. Tək oxlu ilan, 1D ilan və ya sarı və qara ilan
  2. İki oxlu ilan, 2D ilan və ya ağ ilan

Əlbəttə ki, ilanları istədiyiniz rəng filamentində çap edə bilərsiniz. İki ilan arasındakı yeganə fərq, 2D ilanda hər bir mühərrikin əvvəlkisinə nisbətən 90 dərəcə döndərilməsidir, halbuki 1D ilanda bütün mühərriklər bir oxda hizalanmışdır.

Son bir ön söz budur ki, ilanlarımın hər birində yalnız 10 servo olsa da, ilanları az -çox servo ilə düzəltmək mümkündür. Düşünmək lazım olan bir şey, daha az servo ilə daha az müvəffəqiyyətli bir hərəkət əldə etməyiniz və daha çox servo ilə yəqin ki, serpantin hərəkəti ilə daha müvəffəqiyyətli olacağınızdır, ancaq dəyəri, cari çəkilişi (sonrakı şərhlərə baxın) və sancaqlar sayını nəzərə almalı olacaqsınız. Arduino -da mövcuddur. İlanın uzunluğunu dəyişdirməkdən çekinmeyin, ancaq unutmayın ki, bu dəyişikliyi nəzərə almaq üçün kodu da dəyişdirməlisiniz.

Addım 1: Komponentlər

Bu, tək bir ilan üçün bir hissə siyahısıdır, hər iki ilanı da etmək istəyirsinizsə, komponentlərin həcmini iki qat artırmalısınız.

  • 10 MG996R servo*
  • 1.75mm 3D çap filamenti
  • 10 ədəd bilyalı rulman, 608 -ci hissə (mən Jitterspin əyri əyiricilərinin xarici kənarından minanı xilas etdim)
  • Təkərlər üçün parça nömrəsi r188 olan 20 ədəd kiçik rulman ** (Jitterspin çəngəl əyiricilərinin iç hissəsindən özümü xilas etdim)
  • 40 ədəd Philips baş vintləri 6-32 x 1/2 "(və ya bənzəri)
  • 8 daha uzun vida (hissə nömrəm yoxdur, lakin yuxarıdakı vintlər ilə eyni diametrdədir)
  • Ən azı 20 ədəd 4 düymlük ziptilər (neçə ədəd istifadə etmək sizə bağlıdır)
  • Qırmızı və qara 20 ölçülü telin hər biri 5 m və ya daha qalın ***
  • Standart 22 ölçülü tel
  • 30 kişi başlıq sancağı (10 lot 3 -ə bölünmüş)
  • Arduino Nano
  • 3D çaplı hissələr (növbəti hissəyə baxın)
  • Bir növ güc (daha çox məlumat üçün "İlanı gücləndirmək" bölməsinə baxın), şəxsən dəyişdirilmiş bir ATX enerji təchizatı istifadə etdim
  • 1000 uF 25V elektrolitik kondansatör
  • Müxtəlif ölçülü istilik büzücü boru, lehim, yapışqan və digər müxtəlif alətlər

*digər növlərdən istifadə edə bilərsiniz, ancaq servolarınıza uyğun olaraq 3D faylları yenidən dizayn etməlisiniz. Ayrıca sg90 kimi kiçik servolardan istifadə etməyə çalışsanız, onların kifayət qədər güclü olmadığını görə bilərsiniz (bunu sınamamışam və sınamaq sizin ixtiyarınızdadır).

** təkərlər üçün kiçik bilyalı rulmanlardan istifadə etmək lazım deyil, sadəcə ətrafımda çox şey var idi. Alternativ olaraq LEGO təkərlərindən və ya digər oyuncaq təkərlərdən istifadə edə bilərsiniz.

*** Bu teldən 10 amperə qədər keçə bilər, çox incə və cərəyan onu əridir. Daha çox məlumat üçün bu səhifəyə baxın.

Addım 2: 3D Çap Komponentləri

İlanların yığılması
İlanların yığılması

1D ilanı hazırlayırsınızsa, bu parçaları çap edin.

2D ilanı hazırlayırsınızsa, bu parçaları çap edin.

Mühüm qeyd: Ölçü səhv ola bilər! Komponentlərimi Fusion 360 -da (mm ədədlə) dizayn etdim, dizaynı.stl faylı olaraq MakerBot proqramına ixrac etdim və sonra Qidi Tech printerində (MakerBot Replicator 2X -in klon versiyası) çap etdim. Bu iş axını boyunca bir yerdə bir səhv var və bütün izlərim çox kiçik çıxır. Səhvin yerini müəyyən edə bilmədim, lakin MakerBot proqramında hər çapı 106% ölçüsünə qədər müvəqqəti olaraq düzəltdim, bu problemi həll edir.

Bunu nəzərə alaraq xəbərdar olun ki, yuxarıdakı faylları çap etsəniz, səhv ölçeklendirilebilir. Tək bir parça çap etməyi və hamısını çap etməzdən əvvəl MG996R servo ilə uyğun olub olmadığını yoxlamağı təklif edirəm.

Fayllardan hər hansı birini çap edirsinizsə, zəhmət olmasa nəticənin nə olduğunu mənə bildirin: çap çox kiçikdirsə, düzgündür, çox böyükdür və nə qədər faizdir. Bir cəmiyyət olaraq birlikdə çalışaraq fərqli 3D printerlər və.stl dilimləyicilərindən istifadə edərək səhvin yerini müəyyən edə bilərik. Problem həll edildikdən sonra bu bölməni və yuxarıdakı bağlantıları yeniləyəcəyəm.

Addım 3: İlanların yığılması

İlanların yığılması
İlanların yığılması
İlanların yığılması
İlanların yığılması
İlanların yığılması
İlanların yığılması

Montaj prosesi əsasən ilanın hər iki versiyası üçün eynidır. 2D ilandakı tək fərq, hər bir mühərrik əvvəlkisinə nisbətən 90 dərəcə döndüyü halda, 1D ilanda bütün mühərriklər tək bir oxda hizalanmışdır.

Servo açmağa başlayın, vintləri yığın və qara plastik çərçivənin yuxarı və aşağı hissələrini çıxarın və heç bir dişli itirməmək üçün diqqətli olun! Servo yuxarıdakı şəkillərdə olduğu kimi, 3D çaplı çərçivəyə sürüşdürün. Servo korpusunun üst hissəsini dəyişdirin və dörd ədəd 6-32 1/2 vida ilə vidalayın. Servo çərçivənin alt hissəsini (sonrakı layihələrdə yenidən istifadə etmək istəsəniz) saxlayın və 3D ilə əvəz edin. çaplı qutu, tək fərq, bilyalı rulmanın aşması üçün əlavə düymədir. Servonu bir -birinə vidalayın, 10 dəfə təkrarlayın.

ƏHƏMİYYƏTLİ: Davam etməzdən əvvəl kodu Arduinoya yükləməli və hər servoyu 90 dərəcəyə köçürməlisiniz. Bunu etməməyiniz bir və ya daha çox servo və/və ya 3D çaplı çərçivələri sındırmanıza səbəb ola bilər. Bir servonun 90 dərəcəyə necə hərəkət edəcəyindən əmin deyilsinizsə, bu səhifəyə baxın. Əsasən servonun qırmızı telini Arduino üzərindəki 5V -ə, qəhvəyi teli GND -yə və sarı teli rəqəmsal pin 9 -a bağlayın, sonra kodu linkə yükləyin.

İndi hər bir servo 90 dərəcə olduğu üçün davam edin:

3D çaplı düyməni bir servo qutudan ikinci seqment parçasının çuxuruna daxil edərək 10 seqmenti birləşdirin, sonra bir az güclə servonun oxunu çuxuruna itələyin (aydınlıq üçün yuxarıdakı şəkillərə və videoya baxın). 1D ilan edirsinizsə, bütün seqmentlər hizalanmalıdır, 2D ilan edirsinizsə, hər seqment əvvəlki seqmentə 90 dərəcə döndürülməlidir. Diqqət yetirin ki, quyruq və baş çərçivəsi digər seqmentlərin uzunluğunun yalnız yarısıdır, onları birləşdirin, ancaq telləri bitirdikdən sonra piramida şəklindəki parçaları şərh etməyin.

X şəkilli servo qolu bağlayın və yerinə vidalayın. Bilyalı rulmanı 3D çaplı düymənin üzərinə sürüşdürün, bunun üçün 2 yarı dairəvi dirəyi yumşaq bir şəkildə sıxmaq lazımdır. İstifadə etdiyiniz filament markasından və doldurulma sıxlığından asılı olaraq yazılar çox kövrək və çırpıla bilər, belə olacağını düşünmürəm, amma buna baxmayaraq həddindən artıq güc tətbiq etməyin. Şəxsən mən 10% doldurma ilə PLA filamentindən istifadə etdim. Bilyalı rulman açıldıqda, düymənin üzərindəki çıxıntılar tərəfindən kilidli qalmalıdır.

Addım 4: Dövrə

Dövrə
Dövrə
Dövrə
Dövrə
Dövrə
Dövrə

Dövrə hər iki robot ilan üçün eynidir. Kablolama prosesində, hər bir seqmentin, xüsusən də 2D ilanda tamamilə dönməsi üçün kifayət qədər kabel boşluğunun olduğundan əmin olun.

Yuxarıda yalnız 2 servo olan naqillərin bir dövrə diaqramı verilmişdir. 10 servo ilə bir dövrə çəkməyə çalışdım, amma çox sıxıldı. Bu şəkil ilə real həyat arasındakı yeganə fərq, paralel olaraq daha 8 servo bağlamanız və PWM siqnal tellərini Arduino Nano'nun pinlərinə bağlamanızdır.

Elektrik xətlərini çəkərkən, ilanın uzunluğundan keçən 5V əsas xətti olaraq 18 ədəd teldən (10 amperə dözə biləcək qədər qalın) istifadə etdim. Tel ayırıcılardan istifadə edərək 10 müntəzəm aralıqla kiçik bir izolyator hissəsini çıxardım və bu aralıqların hər birindən 3 kişi başlıq sancağından ibarət qısa bir tel parçası lehim etdim. Qara 18 gauge GND teli və ikinci kişi başlıq pimi üçün bunu ikinci dəfə təkrarlayın. Nəhayət, 3 -cü kişi başlıq pininə daha uzun bir tel lehimləyin, bu pin PWM siqnalını ilanın başındakı Arduino Nano'dan servoya daşıyacaq (tel, seqmentlər bükülsə belə çatmaq üçün kifayət qədər uzun olmalıdır). İstilik büzücü borunu lazım olduğu kimi bağlayın. 3 kişi başlıq pinini servo tellərin 3 dişi başlıq pininə bağlayın. 10 servonun hər biri üçün 10 dəfə təkrarlayın. Nəticədə servoları paralel olaraq Nano -ya PWM siqnal telləri ilə bağlamaqdır. Kişi/qadın başlıq sancaqlarının səbəbi, seqmentləri asanlıqla ayıra və hər şeyi lehimləmədən qırılarsa servoları dəyişdirə biləcəyiniz idi.

GND və 5V tellərini bir kondansatör və vintli terminallarla quyruqdakı 3x7 delikli bir lövhəyə lehimləyin. Kondansatörün məqsədi, servoları işə salarkən Arduino Nanonun sıfırlanmasına səbəb ola biləcək cərəyan sıçrayışlarını aradan qaldırmaqdır (kondansatörünüz yoxdursa, yəqin ki, onsuz da qaça bilərsiniz, amma təhlükəsiz olmaq daha yaxşıdır). Unutmayın ki, elektrolitik kondansatörlərin uzun ucunun 5V xəttinə və daha qısa ucunun GND xəttinə bağlanması lazımdır. GND telini Nanonun GND pininə və 5V telini 5V pininə lehimləyin. Fərqli bir gərginlik istifadə edirsinizsə, (növbəti hissəyə baxın), 7.4V gücündə bir Lipo batareyası deyin, sonra qırmızı teli 5V pininə deyil, Vin pininə bağlayın, bu da pimi məhv edəcək.

10 PWM siqnal telini Arduino Nano'ya bağlayın. Mənə aşağıdakı ardıcıllıqla tel bağladım, fərqli bir şəkildə tel seçə bilərsiniz, ancaq unutmayın ki, koddakı servo.attach () sətirlərini dəyişdirməlisiniz. Nə danışdığımdan əmin deyilsinizsə, mənimlə eyni şəkildə əlaqə qurun və heç bir probleminiz olmayacaq. İlanın quyruğundakı servodan ilanın başına qədər hər iki ilanı aşağıdakı ardıcıllıqla bağladım. Siqnal pinlərinin bağlanması: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Kabelləri təmizləmək üçün zipties istifadə edin. Davam etməzdən əvvəl, bütün seqmentlərin tellərin ayrılmadan hərəkət etməsi üçün kifayət qədər yer tuta biləcəyini yoxlayın. Kablolama işləri başa çatdıqdan sonra baş və quyruq piramida şəkilli qapaqları vida edə bilərik. Diqqət yetirin ki, quyruqda bağlayıcıdan çıxmaq üçün bir baş, Arduino proqramlaşdırma kabeli üçün dəlik var.

Addım 5: İlanı Gücləndirin

İlanı Gücləndirir
İlanı Gücləndirir
İlanı Gücləndirir
İlanı Gücləndirir
İlanı Gücləndirir
İlanı Gücləndirir

Servoların paralel bağlandığı üçün hamısı eyni gərginliyi alır, ancaq cərəyanı əlavə etmək lazımdır. MG996r servoları üçün məlumat cədvəlinə baxdıqda, işləyərkən hər biri 900mA -a qədər çəkə bilirlər (heç bir dayanma olmadıqda). Beləliklə, bütün 10 servo eyni anda hərəkət edərsə, cari cərəyan 0,9A*10 = 9A olar. Normal bir 5v olaraq, 2A divar priz adapteri işləməyəcək. 20A -da 5V gücündə olan ATX enerji təchizatını dəyişdirmək qərarına gəldim. Bunun necə ediləcəyini izah etməyəcəyəm, çünki artıq Instructables və YouTube -da çox müzakirə edilmişdir. İnternetdə sürətli bir axtarış, bu enerji təchizatlarından birini necə dəyişdirəcəyinizi göstərəcəkdir.

Enerji təchizatını dəyişdirdiyinizi güman etsəniz, bu, sadəcə olaraq, enerji təchizatı ilə ilanın vida terminalları arasında uzun bir bağlama vəziyyətidir.

Başqa bir seçim, daxili bir lipo batareya paketindən istifadə etməkdir. Bunu sınamamışam, buna görə batareyalar üçün montaj qurmaq və kabel çəkmək sizin ixtiyarınızdadır. İş gərginliklərini, servoların cari çəkilişini və Arduino -nu unutmayın (5v -dən başqa heç bir şey lehimləməyin. Arduino üzərindəki 5v pin, daha yüksək bir gərginliyiniz varsa Vin pininə gedin).

Addım 6: Hər şeyin işlədiyini yoxlayın

Davam etmədən əvvəl, hər şeyin işlədiyini yoxlamağa icazə verin. Bu kodu yükləyin. İlanınız hər servoyu ayrı-ayrılıqda 0-180 arasında hərəkət etdirməli və sonra düz bir xətt çəkərək bitirməlidir. Əks təqdirdə, bir şey səhvdir, çox güman ki, naqillər səhvdir və ya servolar əvvəlcə "İlanların yığılması" bölməsində qeyd edildiyi kimi 90 dərəcə mərkəzləşdirilməmişdir.

Addım 7: Kod

Hal -hazırda ilan üçün heç bir pult yoxdur, bütün hərəkətlər əvvəlcədən proqramlaşdırılıb və istədiyinizi seçə bilərsiniz. 2 -ci versiyada bir pult hazırlayacağam, amma uzaqdan idarə etmək istəyirsinizsə, Instructables mövzusunda digər dərsliklərə baxmağı və ilanı bluetooth -a uyğunlaşdırmağı təklif edərdim.

1D ilan edirsinizsə bu kodu yükləyin.

2D ilan edirsinizsə bu kodu yükləyin.

Kodla oynamağı, öz dəyişikliklərinizi etməyi və yeni alqoritmlər yaratmağı tövsiyə edirəm. Hər bir lokomotiv növünün və bunun kodunun necə işlədiyini ətraflı izah etmək üçün növbəti bir neçə bölməni oxuyun.

Addım 8: Təkərləri Tərəzi

Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər
Tərəzi Vs Təkərlər

İlanların irəliyə doğru irəliləməsinin əsas yollarından biri pulcuqlarının formasıdır. Tərəzi daha asan irəli hərəkət etməyə imkan verir. Əlavə izahat üçün, tərəzinin ilanın irəliləməsinə necə kömək etdiyini görmək üçün bu videoya 3: 04 -dən etibarən baxın. Eyni videoda 3: 14 -ə baxmaq, ilanların bir qol içində olduğu zaman tərəzi sürtünməsini aradan qaldıran təsiri göstərir. YouTube videomda göstərildiyi kimi, robot 1D ilanı tərəzisiz çəmənlikdə sürüşməyə çalışanda qüvvələr xalis sıfıra bərabər olduğu üçün nə irəli, nə də geriyə hərəkət edir. Bu səbəbdən robotun qarnına bir neçə süni tərəzi əlavə etməliyik.

Tərəzi vasitəsi ilə lokomotivin bərpası ilə bağlı tədqiqatlar Harvard Universitetində aparılmış və bu videoda nümayiş etdirilmişdir. Robotumdakı tərəzi yuxarı və aşağı hərəkət etdirmək üçün oxşar bir üsul hazırlaya bilmədim və bunun əvəzinə passiv 3D çaplı tərəzi qarın altına bağlamaq qərarına gəldim.

Tərəzilər hələ də lifləri tutmaq və sürtünməni artırmaq əvəzinə xalçanın səthində sürüşdüyü üçün təəssüf ki, bu təsirsiz oldu (3: 38 -də YouTube videosuma baxın).

Hazırladığım tərəzi sınamaq istəyirsinizsə, GitHub -dan sənədləri 3D çap edə bilərsiniz. Özünüzü uğurla hazırlayırsınızsa, aşağıdakı şərhlərdə mənə bildirin!

Fərqli bir yanaşma istifadə edərək, "şinlər" olaraq xaricdən istilik büzülmə borusu olan r188 rulmanlardan hazırlanmış təkərlər istifadə etməyə çalışdım. GitHub üzərindəki.stl fayllarından plastik təkər oxlarını 3D çap edə bilərsiniz. Təkərlər bioloji cəhətdən dəqiq olmasa da, tərsinə bənzəyirlər ki, irəli fırlanma asandır, lakin yan -yana hərəkət etmək xeyli çətindir. Təkərlərin uğurlu nəticəsini YouTube videosumda görə bilərsiniz.

Addım 9: Sürüşmə Hərəkəti (tək Axis İlanı)

Make it Move Yarışmasında birinci mükafat

Tövsiyə: