Isi kandungan:

Ular Robotik Bioinspirasi: 16 Langkah (dengan Gambar)
Ular Robotik Bioinspirasi: 16 Langkah (dengan Gambar)

Video: Ular Robotik Bioinspirasi: 16 Langkah (dengan Gambar)

Video: Ular Robotik Bioinspirasi: 16 Langkah (dengan Gambar)
Video: Чэнь Ли, Джонс Хопкинс: К пониманию передвижения животных и роботов в сложной трехмерной местности 2024, Julai
Anonim
Image
Image

Saya mendapat inspirasi untuk memulakan projek ini setelah melihat video penyelidikan mengenai ular robot memanjat pokok dan belut robot. Ini adalah percubaan pertama saya dan membuat robot menggunakan pergerakan serpentine, tetapi ini bukan yang terakhir saya! Langgan di YouTube jika anda ingin melihat perkembangan masa depan.

Di bawah ini saya menggariskan pembinaan 2 ular yang berbeza beserta fail untuk percetakan 3D dan perbincangan mengenai kod dan algoritma untuk mencapai gerakan seperti ular. Sekiranya anda ingin terus belajar lebih banyak, setelah membaca arahan ini, saya cadangkan membaca pautan di bahagian rujukan di bahagian bawah halaman.

Instruksional ini secara teknikal adalah 2-in-1, kerana saya menerangkan bagaimana membuat 2 versi robot ular yang berbeza. Sekiranya anda hanya berminat membina salah satu ular abaikan arahan untuk ular yang lain. Kedua-dua ular yang berbeza ini akan datang dari sini dan disebut menggunakan frasa berikut secara bergantian:

  1. Ular paksi tunggal, ular 1D, atau ular kuning dan hitam
  2. Ular paksi dua, ular 2D, atau ular putih

Sudah tentu anda boleh mencetak ular dalam filamen warna yang anda mahukan. Satu-satunya perbezaan antara kedua ular adalah bahawa dalam ular 2D setiap motor diputar 90 derajat berbanding sebelumnya, sedangkan pada ular 1D semua motor diselaraskan dalam satu paksi.

Kata pengantar terakhir adalah bahawa walaupun setiap ular saya hanya mempunyai 10 servo, adalah mungkin untuk membuat ular dengan lebih kurang servo. Satu perkara yang perlu dipertimbangkan adalah bahawa dengan servo yang kurang, anda akan mencapai gerakan yang kurang berjaya, dan dengan lebih banyak servo anda mungkin akan lebih berjaya dengan gerakan serpentin tetapi anda perlu mempertimbangkan kos, cabutan semasa (lihat komen kemudian) dan jumlah pin terdapat di Arduino. Jangan ragu untuk mengubah panjang ular, namun perlu diingat bahawa anda juga perlu mengubah kod tersebut untuk menjelaskan perubahan ini.

Langkah 1: Komponen

Ini adalah senarai bahagian untuk satu ular, jika anda ingin membuat kedua ular, anda perlu menggandakan isi padu komponen.

  • 10 servo MG996R *
  • Filamen percetakan 3D 1.75mm
  • 10 galas bebola, nombor bahagian 608 (saya menyelamatkan lombong dari rim luar Jitterspin fidget spinner)
  • 20 galas bebola kecil, nombor bahagian r188, untuk roda ** (Saya menyelamatkan tambang dari bahagian dalam pemintal Jitterspin fidget)
  • 40 skru kepala philips 6-32 x 1/2 "(atau serupa)
  • 8 skru lebih panjang (saya tidak mempunyai nombor bahagian tetapi diameternya sama dengan skru di atas)
  • Sekurang-kurangnya 20 keping zipties 4 inci (terpulang kepada anda berapa banyak yang anda mahu gunakan)
  • 5m setiap wayar 20 dan merah tebal hitam dan hitam ***
  • Kawat tolok standard 22
  • 30 pin header lelaki (dibahagi kepada 10 lot 3)
  • Arduino Nano
  • Bahagian bercetak 3D (lihat bahagian seterusnya)
  • Sebilangan bentuk kuasa (lihat bahagian: "Menghidupkan ular" untuk maklumat lebih lanjut), saya secara peribadi menggunakan bekalan kuasa ATX yang diubah suai
  • Kapasitor elektrolit 1000uF 25V
  • Tiub pengecutan panas dengan pelbagai saiz, pateri, gam dan pelbagai alat lain

* anda boleh menggunakan jenis lain tetapi anda perlu merancang semula fail 3D agar sesuai dengan servo anda. Juga jika anda mencuba menggunakan servo yang lebih kecil seperti sg90, anda mungkin mendapati mereka tidak cukup kuat (saya belum menguji ini dan bergantung kepada anda untuk bereksperimen).

** Anda tidak perlu menggunakan bantalan bola kecil untuk roda, saya hanya banyak berbaring. Sebagai alternatif anda boleh menggunakan roda LEGO atau roda mainan lain.

*** Kawat ini boleh mempunyai sehingga 10 amp melaluinya, terlalu nipis dan arus akan mencairkannya. Lihat halaman ini untuk maklumat lebih lanjut.

Langkah 2: Komponen Percetakan 3D

Perhimpunan Ular
Perhimpunan Ular

Sekiranya anda membuat ular 1D cetak kepingan ini.

Sekiranya anda membuat ular 2D cetak kepingan ini.

Nota penting: Skala mungkin salah! Saya merancang komponen saya dalam Fusion 360 (dalam unit mm), mengeksport reka bentuk sebagai fail.stl ke dalam perisian MakerBot dan kemudian mencetaknya pada pencetak Qidi Tech (versi klon dari MakerBot Replicator 2X). Di suatu tempat di sepanjang aliran kerja ini terdapat pepijat dan semua cetakan saya keluar terlalu kecil. Saya tidak dapat mengenal pasti lokasi bug tetapi memperbaiki sementara skala setiap cetakan hingga 106% dalam perisian MakerBot, ini menyelesaikan masalah.

Oleh itu, berhati-hatilah bahawa jika anda mencetak fail di atas, fail tersebut mungkin tidak betul. Saya cadangkan mencetak hanya satu bahagian dan periksa sama ada ia sesuai dengan servo MG996R anda sebelum mencetak semuanya.

Sekiranya anda mencetak salah satu fail, beritahu saya apa hasilnya: jika cetakannya terlalu kecil, tepat, terlalu besar dan berapa peratus. Dengan bekerjasama sebagai komuniti, kami dapat menyelesaikan masalah bug menggunakan pencetak 3D dan pemotong.stl yang berbeza. Setelah masalah diselesaikan, saya akan mengemas kini bahagian ini dan pautan di atas.

Langkah 3: Perhimpunan Ular

Perhimpunan Ular
Perhimpunan Ular
Perhimpunan Ular
Perhimpunan Ular
Perhimpunan Ular
Perhimpunan Ular

Proses pemasangan hampir sama untuk kedua-dua versi ular itu. Satu-satunya perbezaan adalah pada ular 2D setiap motor diputar 90 darjah berbanding sebelumnya, sedangkan pada ular 1D semua motor diselaraskan dalam satu paksi.

Mulailah dengan melepaskan servo, simpan skru dan lepaskan bahagian atas dan bawah bingkai plastik hitam, dan berhati-hati agar tidak kehilangan gear! Luncurkan servo ke dalam bingkai cetak 3D, berorientasikan seperti pada gambar di atas. Ganti bahagian atas casing servo, dan pasangkannya dengan empat skru 6-32 1/2 . Simpan bahagian bawah rangka servo (sekiranya anda ingin menggunakannya lagi dalam projek kemudian) dan ganti dengan 3D sarung bercetak, satu-satunya perbezaan ialah tombol tambahan agar bantalan bola tergelincir. Skru servo kembali bersama-sama, ulangi 10 kali.

PENTING: Sebelum meneruskan, anda mesti memuat naik kod ke Arduino dan memindahkan setiap servo hingga 90 darjah. Kegagalan melakukan ini boleh menyebabkan anda melanggar satu atau lebih servo dan / atau bingkai cetak 3D. Sekiranya anda tidak pasti cara memindahkan servo hingga 90 darjah, lihat halaman ini. Pada dasarnya sambungkan wayar merah servo ke 5V pada Arduino, wayar coklat ke GND dan wayar kuning ke pin digital 9, kemudian muat naik kod di pautan.

Sekarang setiap servo berada pada 90 darjah, teruskan:

Sambungkan 10 segmen dengan memasukkan kenop bercetak 3D dari satu casing servo ke dalam lubang sekeping kedua, kemudian dengan sedikit daya tekan gandar servo ke dalam lubang (lihat gambar di atas dan video untuk kejelasan). Sekiranya anda membuat ular 1D, semua segmen harus sejajar, jika anda membuat ular 2D, setiap segmen harus diputar 90 darjah ke segmen sebelumnya. Perhatikan bahawa bingkai ekor dan kepala hanya setengah panjang segmen lain, sambungkannya tetapi jangan mengulas kepingan berbentuk piramid sehingga setelah kami menyelesaikan pendawaian.

Pasang lengan servo berbentuk x dan pasangkannya ke kedudukannya. Selipkan bebola bola di atas kenop bercetak 3D, ini memerlukan perlahan-lahan menekan 2 tiang separuh bulatan bersama-sama. Bergantung pada jenama filamen apa yang anda gunakan dan ketumpatan pengisian, tulisan mungkin terlalu rapuh dan rapuh, saya rasa ini tidak akan berlaku tetapi tetap tidak menggunakan kekuatan yang berlebihan. Saya secara peribadi menggunakan filamen PLA dengan pengisian 10%. Setelah galas bebola dihidupkan, ia harus terus terkunci oleh overhang pada kenop.

Langkah 4: Litar

Litar
Litar
Litar
Litar
Litar
Litar

Litarnya sama untuk kedua-dua ular robot. Semasa proses pendawaian pastikan terdapat ruang pendawaian yang cukup untuk setiap segmen berputar sepenuhnya, terutama pada ular 2D.

Di atas adalah gambarajah litar untuk pendawaian dengan hanya 2 servo. Saya cuba membuat lukisan litar dengan 10 servo tetapi terlalu sesak. Satu-satunya perbezaan antara gambar ini dan kehidupan sebenar ialah anda perlu menyambungkan 8 servo lebih selari dan menyambungkan wayar isyarat PWM ke pin pada Arduino Nano.

Semasa memasang kabel kuasa, saya menggunakan sekeping wayar 18 tolok (cukup tebal untuk menahan 10amps) sebagai garis utama 5V yang mengalir sepanjang ular. Dengan menggunakan pelucut wayar, saya melepaskan bahagian penebat kecil pada 10 selang waktu yang tetap, dan menyolder sekeping wayar pendek dari setiap selang ini sekumpulan 3 pin header lelaki. Ulangi kali kedua untuk wayar GND hitam 18 gauge dan pin header lelaki kedua. Akhirnya pasangkan wayar yang lebih panjang ke pin header lelaki ke-3, pin ini akan membawa isyarat PWM ke servo dari Arduino Nano di kepala ular (wayar mesti cukup panjang untuk dijangkau, walaupun segmen membengkok). Pasangkan tiub pengecutan haba seperti yang diperlukan. Sambungkan 3 pin header lelaki dan 3 pin header wanita dari wayar servo. Ulangi 10 kali untuk setiap 10 servo. Akhirnya yang dicapai ini adalah dengan memasang kabel servo secara selari dan menjalankan wayar isyarat PWM ke Nano. Sebab pin header lelaki / wanita adalah kerana anda dapat dengan mudah membelah segmen dan mengganti servo jika pecah tanpa menyelesaikan semuanya.

Pateri wayar GND dan 5V ke papan perf lubang 3x7 di ekor dengan kapasitor dan terminal skru. Tujuan kapasitor adalah untuk menghilangkan sebarang lonjakan arus yang disebabkan semasa memulakan servo, yang dapat menetapkan semula Arduino Nano (jika anda tidak mempunyai kapasitor, anda mungkin boleh melarikan diri tanpanya, tetapi lebih baik selamat). Ingat bahawa serong panjang kapasitor elektrolitik perlu disambungkan ke saluran 5V dan cabang pendek ke garis GND. Pateri wayar GND ke pin GND Nano dan wayar 5V ke pin 5V. Perhatikan jika anda menggunakan voltan yang berbeza, (lihat bahagian seterusnya), katakan bateri Lipo dengan 7.4V, kemudian kawat wayar merah ke pin Vin, BUKAN pin 5V, dengan berbuat demikian akan merosakkan pin.

Selesaikan wayar isyarat 10 PWM ke pin pada Arduino Nano. Saya memasang kabel dengan urutan berikut, anda boleh memilih untuk memasang wayar anda secara berbeza tetapi ingat bahawa anda perlu menukar baris servo.attach () dalam kod. Sekiranya anda tidak pasti apa yang saya bicarakan hanya kawat dengan cara yang sama seperti yang saya lakukan dan anda tidak akan menghadapi masalah. Untuk membuat pesanan dari servo di ekor ular hingga ke kepala ular, saya menyambung kedua-dua ular saya mengikut urutan berikut. Menyambungkan pin isyarat ke: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Gunakan zipties untuk membersihkan pendawaian. Sebelum meneruskan periksa bahawa semua segmen dapat bergerak dengan ruang yang cukup untuk wayar bergerak tanpa terlepas. Setelah pendawaian selesai, kita boleh memasang penutup berbentuk piramid kepala dan ekor. Perhatikan bahawa ekor memiliki lubang untuk penambat keluar dan kepala memiliki lubang untuk kabel pengaturcaraan Arduino.

Langkah 5: Menghidupkan Ular

Menghidupkan Ular
Menghidupkan Ular
Menghidupkan Ular
Menghidupkan Ular
Menghidupkan Ular
Menghidupkan Ular

Kerana servo disambungkan secara selari, semuanya mendapat voltan yang sama, tetapi arus mesti ditambah. Melihat lembaran data untuk servo MG996r mereka dapat mencapai 900mA setiap satu ketika berjalan (dengan anggapan tidak berhenti). Oleh itu, jumlah arus tarikan jika semua 10 servo bergerak pada masa yang sama adalah 0.9A * 10 = 9A. Oleh itu, penyesuai soket dinding 5A, 2A biasa tidak akan berfungsi. Saya memutuskan untuk mengubah suai kuasa ATX, mampu 5v pada 20A. Saya tidak akan menjelaskan bagaimana melakukan ini, kerana sudah banyak dibincangkan mengenai Instructables dan YouTube. Pencarian dalam talian yang pantas akan menunjukkan kepada anda cara mengubah salah satu bekalan kuasa ini.

Dengan mengandaikan bahawa anda telah mengubah suai kuasa, itu adalah masalah untuk menghubungkan tali tetek panjang antara bekalan kuasa dan terminal skru pada ular.

Pilihan lain adalah menggunakan pek bateri lipo onboard. Saya belum mencuba ini jadi terserah anda untuk merancang pemasangan bateri dan memasangnya. Perlu diingat voltan operasi, tarikan semasa servo dan Arduino (jangan menyolder apa pun selain 5v hingga pin 5v di Arduino, pergi ke pin Vin jika anda mempunyai voltan yang lebih tinggi).

Langkah 6: Uji Semua Berjalan

Sebelum meneruskan mari kita menguji semuanya berjalan lancar. Muat naik kod ini. Ular anda harus menggerakkan setiap servo secara berasingan antara 0-180 dan kemudian menyelesaikannya dengan meletakkan pada garis lurus. Jika tidak, ada yang tidak beres, kemungkinan pendawaian tidak betul atau servos pada mulanya tidak berpusat pada 90 darjah seperti yang disebutkan di bahagian "Perhimpunan ular".

Langkah 7: Kod

Pada masa ini tidak ada alat kawalan jauh untuk ular, semua gerakan sudah diprogramkan dan anda boleh memilih yang anda mahukan. Saya akan mengembangkan alat kawalan jauh dalam versi 2, tetapi jika anda ingin mengendalikannya dari jauh, saya sarankan untuk melihat tutorial lain mengenai Instructables dan menyesuaikan ular agar sesuai dengan bluetooth.

Sekiranya anda membuat ular 1D muat naik kod ini.

Sekiranya anda membuat ular 2D muat naik kod ini.

Saya mendorong anda untuk bermain dengan kod, membuat perubahan anda sendiri, dan membuat algoritma baru. Baca beberapa bahagian seterusnya untuk penjelasan terperinci mengenai setiap jenis pergerakan dan bagaimana kodnya berfungsi.

Langkah 8: Skala Vs Wheels

Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda
Timbangan Vs Roda

Salah satu cara utama ular bergerak maju adalah melalui bentuk sisiknya. Timbangan memungkinkan pergerakan ke hadapan lebih mudah. Untuk penjelasan lebih lanjut tonton video ini dari jam 3:04 dan seterusnya untuk melihat bagaimana timbangan membantu ular bergerak maju. Melihat 3:14 dalam video yang sama menunjukkan kesan ketika ular berada di lengan, menghilangkan geseran timbangan. Seperti yang ditunjukkan dalam video YouTube saya ketika ular robot 1D cuba meluncur di rumput tanpa timbangan, ia tidak bergerak maju atau mundur kerana kekuatannya menjadi sifar bersih. Oleh itu, kita perlu menambahkan sebilangan sisik tiruan ke bahagian bawah robot.

Penyelidikan dalam mencipta pergerakan melalui skala dilakukan di Universiti Harvard dan ditunjukkan dalam video ini. Saya tidak dapat merancang kaedah yang serupa untuk memindahkan timbangan ke atas dan ke bawah pada robot saya dan sebaliknya memilih untuk memasang sisik cetak 3D pasif ke bahagian bawah perut.

Sayangnya ini terbukti tidak berkesan (lihat dalam video YouTube saya pada jam 3:38) kerana timbangan masih menyelinap di permukaan permaidani daripada menangkap serat dan meningkatkan geseran.

Sekiranya anda ingin bereksperimen dengan timbangan yang saya buat, anda boleh mencetak 3D fail dari GitHub saya. Sekiranya anda berjaya membuat sendiri, beritahu saya dalam komen di bawah!

Dengan menggunakan pendekatan yang berbeza saya mencuba menggunakan roda yang diperbuat daripada galas bebola r188 dengan tiub pengecutan panas di luar sebagai 'tayar'. Anda boleh mencetak 3D roda roda plastik dari fail.stl di GitHub saya. Walaupun roda tidak tepat secara biologi, roda ini serupa dengan skala kerana putaran ke depan mudah tetapi pergerakan sisi ke sisi jauh lebih sukar. Anda dapat melihat hasil roda yang berjaya dalam video YouTube saya.

Langkah 9: Slithering Motion (Ular Paksi tunggal)

Hadiah Pertama dalam Peraduan Make it Move

Disyorkan: