Daftar Isi:

Ular Robot Bioinspired: 16 Langkah (dengan Gambar)
Ular Robot Bioinspired: 16 Langkah (dengan Gambar)

Video: Ular Robot Bioinspired: 16 Langkah (dengan Gambar)

Video: Ular Robot Bioinspired: 16 Langkah (dengan Gambar)
Video: Kuliah Robotika Lanjut : BIO-INSPIRED SENSOR KE-1 2024, Juli
Anonim
Image
Image

Saya terinspirasi untuk memulai proyek ini setelah melihat video penelitian ular robot panjat pohon dan robot belut. Ini adalah upaya pertama saya dan membuat robot menggunakan penggerak serpentine, tetapi ini bukan yang terakhir! Berlangganan di YouTube jika Anda ingin melihat perkembangan selanjutnya.

Di bawah ini saya menguraikan konstruksi 2 ular yang berbeda bersama dengan file untuk pencetakan 3D dan diskusi tentang kode dan algoritma untuk mencapai gerakan seperti ular. Jika Anda ingin terus belajar lebih banyak, setelah membaca instruksi ini, saya sarankan membaca tautan di bagian referensi di bagian bawah halaman.

Instruksi ini secara teknis adalah 2-in-1, karena saya menjelaskan cara membuat 2 versi ular robot yang berbeda. Jika Anda hanya tertarik untuk membangun salah satu ular, abaikan instruksi untuk ular lainnya. 2 ular yang berbeda ini dari sini akan dirujuk menggunakan frasa berikut secara bergantian:

  1. Ular sumbu tunggal, ular 1D, atau ular kuning dan hitam
  2. Ular sumbu ganda, ular 2D, atau ular putih

Tentu saja Anda dapat mencetak ular dalam filamen warna apa pun yang Anda inginkan. Satu-satunya perbedaan antara kedua ular adalah bahwa pada ular 2D setiap motor diputar 90 derajat relatif terhadap sebelumnya, sedangkan pada ular 1D semua motor disejajarkan dalam satu sumbu.

Kata pengantar terakhir adalah bahwa sementara masing-masing ular saya hanya memiliki 10 servo, dimungkinkan untuk membuat ular dengan lebih banyak atau lebih sedikit servo. Satu hal yang perlu dipertimbangkan adalah bahwa dengan lebih sedikit servos Anda akan mencapai gerakan yang kurang berhasil, dan dengan lebih banyak servos Anda mungkin akan lebih berhasil dengan gerakan serpentine tetapi Anda perlu mempertimbangkan biaya, penarikan saat ini (lihat komentar selanjutnya) dan jumlah pin tersedia di Arduino. Jangan ragu untuk mengubah panjang ular, namun perlu diingat bahwa Anda juga perlu mengubah kode untuk memperhitungkan perubahan ini.

Langkah 1: Komponen

Ini adalah daftar bagian untuk satu ular, jika Anda ingin membuat kedua ular, Anda perlu menggandakan volume komponen.

  • 10 servo MG996R*
  • Filamen pencetakan 3D 1,75mm
  • 10 bantalan bola, nomor bagian 608 (Saya menyelamatkan milik saya dari tepi luar pemintal gelisah Jitterspin)
  • 20 bantalan bola kecil, nomor bagian r188, untuk roda** (Saya menyelamatkan milik saya dari bagian dalam pemintal gelisah Jitterspin)
  • 40 sekrup kepala philips 6-32 x 1/2" (atau serupa)
  • 8 sekrup yang lebih panjang (saya tidak memiliki nomor bagian tetapi diameternya sama dengan sekrup di atas)
  • Setidaknya 20 buah zipties 4 inci (terserah Anda berapa banyak yang ingin Anda gunakan)
  • 5m masing-masing kabel 20 gauge merah dan hitam atau lebih tebal***
  • Kawat pengukur 22 standar
  • 30 pin header jantan (dibagi menjadi 10 lot 3)
  • Arduino Nano
  • Bagian cetakan 3D (lihat bagian berikutnya)
  • Beberapa bentuk daya (lihat bagian: "Menghidupkan ular" untuk info lebih lanjut), saya pribadi menggunakan catu daya ATX yang dimodifikasi
  • 1000uF 25V kapasitor elektrolitik
  • Tabung panas menyusut dengan berbagai ukuran, solder, lem, dan alat lain-lain lainnya

*Anda dapat menggunakan jenis lain tetapi Anda perlu mendesain ulang file 3D agar sesuai dengan servos Anda. Juga jika Anda mencoba menggunakan servos yang lebih kecil seperti sg90, Anda mungkin menemukan mereka tidak cukup kuat (saya belum menguji ini dan terserah Anda untuk bereksperimen).

** Anda tidak perlu menggunakan bantalan bola kecil untuk roda, saya hanya punya banyak peletakan. Atau Anda bisa menggunakan roda LEGO atau roda mainan lainnya.

***Kawat ini dapat memiliki hingga 10 amp yang melewatinya, terlalu tipis dan arus akan melelehkannya. Lihat halaman ini untuk info lebih lanjut.

Langkah 2: Komponen Pencetakan 3D

Perakitan Ular
Perakitan Ular

Jika Anda membuat ular 1D, cetak potongan-potongan ini.

Jika Anda membuat ular 2D, cetak potongan-potongan ini.

Catatan penting: Skalanya mungkin salah! Saya mendesain komponen saya dalam Fusion 360 (dalam satuan mm), mengekspor desain sebagai file.stl ke dalam perangkat lunak MakerBot dan kemudian mencetaknya pada printer Qidi Tech (versi tiruan dari MakerBot Replicator 2X). Di suatu tempat di sepanjang alur kerja ini ada bug dan semua cetakan saya terlalu kecil. Saya tidak dapat mengidentifikasi lokasi bug tetapi memiliki perbaikan sementara untuk menskalakan setiap cetakan ke ukuran 106% di perangkat lunak MakerBot, ini memperbaiki masalah.

Mengingat hal ini, berhati-hatilah bahwa jika Anda mencetak file di atas, skalanya mungkin salah. Saya sarankan mencetak hanya satu bagian dan memeriksa apakah cocok dengan servo MG996R Anda sebelum mencetak semuanya.

Jika Anda mencetak salah satu file, beri tahu saya apa hasilnya: jika cetakannya terlalu kecil, tepat, terlalu besar dan berapa persen. Dengan bekerja sama sebagai komunitas, kami dapat memecahkan masalah lokasi bug menggunakan printer 3D dan pemotong.stl yang berbeda. Setelah masalah teratasi, saya akan memperbarui bagian ini dan tautan di atas.

Langkah 3: Perakitan Ular

Perakitan Ular
Perakitan Ular
Perakitan Ular
Perakitan Ular
Perakitan Ular
Perakitan Ular

Proses perakitan sebagian besar sama untuk kedua versi ular. Satu-satunya perbedaan adalah pada ular 2D setiap motor diputar 90 derajat relatif terhadap sebelumnya, sedangkan pada ular 1D semua motor disejajarkan dalam satu sumbu.

Mulailah dengan membuka servo, simpan sekrup dan lepaskan bagian atas dan bawah bingkai plastik hitam, dan berhati-hatilah agar tidak kehilangan roda gigi! Geser servo ke dalam bingkai cetak 3D, dengan orientasi seperti pada gambar di atas. Pasang kembali bagian atas kotak servo, dan kencangkan pada tempatnya dengan empat sekrup 6-32 1/2 . Simpan bagian bawah bingkai servo (jika Anda ingin menggunakannya lagi di proyek selanjutnya) dan ganti dengan 3D dicetak, satu-satunya perbedaan adalah kenop tambahan untuk bantalan bola tergelincir. Pasang kembali servo, ulangi 10 kali.

PENTING: Sebelum melanjutkan, Anda harus mengunggah kode ke Arduino dan memindahkan setiap servo ke 90 derajat. Kegagalan melakukan ini dapat mengakibatkan Anda merusak satu atau lebih servo dan/atau bingkai cetak 3D. Jika Anda tidak yakin bagaimana cara memindahkan servo ke 90 derajat, lihat halaman ini. Pada dasarnya sambungkan kabel merah servo ke 5V di Arduino, kabel coklat ke GND dan kabel kuning ke pin digital 9, lalu unggah kode di tautan.

Sekarang setiap servo berada pada 90 derajat, lanjutkan:

Hubungkan 10 segmen dengan memasukkan tombol cetak 3D dari satu kotak servo ke dalam lubang potongan segmen kedua, kemudian dengan sedikit tenaga dorong poros servo ke dalam lubangnya (lihat gambar di atas dan video untuk kejelasan). Jika Anda membuat ular 1D, semua segmen harus sejajar, jika Anda membuat ular 2D, setiap segmen harus diputar 90 derajat ke segmen sebelumnya. Perhatikan bahwa bingkai ekor dan kepala hanya setengah panjang segmen lainnya, sambungkan mereka tetapi jangan mengomentari potongan berbentuk piramida sampai setelah kita menyelesaikan pemasangan kabel.

Pasang lengan servo berbentuk x dan kencangkan ke posisinya. Selipkan bantalan bola di atas kenop cetak 3D, ini akan membutuhkan meremas 2 tiang setengah lingkaran dengan lembut. Bergantung pada merek filamen apa yang Anda gunakan dan kepadatan pengisi, tiang mungkin terlalu rapuh dan patah, saya rasa ini tidak akan terjadi tetapi tetap saja jangan menggunakan kekuatan yang berlebihan. Saya pribadi menggunakan filamen PLA dengan 10% pengisi. Setelah bantalan bola menyala, itu harus tetap terkunci oleh overhang pada kenop.

Langkah 4: Sirkuit

sirkuit
sirkuit
sirkuit
sirkuit
sirkuit
sirkuit

Sirkuitnya sama untuk kedua robot ular. Selama proses pengkabelan, pastikan ada cukup ruang pengkabelan untuk setiap segmen untuk berputar sepenuhnya, terutama pada ular 2D.

Di atas adalah diagram sirkuit untuk pengkabelan dengan hanya 2 servos. Saya mencoba menggambar sirkuit dengan 10 servo tetapi terlalu penuh sesak. Satu-satunya perbedaan antara gambar ini dan kehidupan nyata adalah Anda perlu menyambungkan 8 servo lebih banyak secara paralel dan menghubungkan kabel sinyal PWM ke pin pada Arduino Nano.

Saat memasang kabel saluran listrik, saya menggunakan sepotong kawat pengukur 18 (cukup tebal untuk menahan 10 amp) sebagai saluran 5V utama yang mengalir di sepanjang ular. Dengan menggunakan penari telanjang kawat saya melepas sebagian kecil isolator pada 10 interval reguler, dan menyolder sepotong kawat pendek dari masing-masing interval ini sekelompok 3 pin header laki-laki. Ulangi ini untuk kedua kalinya untuk kabel GND 18 gauge hitam dan pin header pria kedua. Terakhir, solder kabel yang lebih panjang ke pin header male ke-3, pin ini akan membawa sinyal PWM ke servo dari Arduino Nano di kepala ular (kawat harus cukup panjang untuk dijangkau, bahkan ketika segmennya bengkok). Pasang tabung heat shrink sesuai kebutuhan. Hubungkan 3 pin header pria dengan 3 pin header wanita dari kabel servo. Ulangi 10 kali untuk masing-masing dari 10 servos. Pada akhirnya apa yang dicapai adalah menghubungkan servo secara paralel dan menjalankan kabel sinyal PWM ke Nano. Alasan untuk pin header pria/wanita adalah agar Anda dapat dengan mudah memisahkan segmen dan mengganti servo jika rusak tanpa melepas solder semuanya.

Solder kabel GND dan 5V ke papan berlubang 3x7 di bagian ekor dengan kapasitor dan terminal sekrup. Tujuan kapasitor adalah untuk menghilangkan lonjakan arus yang disebabkan saat memulai servos, yang dapat mengatur ulang Arduino Nano (jika Anda tidak memiliki kapasitor, Anda mungkin dapat pergi tanpanya, tetapi lebih baik aman). Ingatlah bahwa cabang panjang kapasitor elektrolit harus dihubungkan ke saluran 5V dan cabang yang lebih pendek ke saluran GND. Solder kabel GND ke pin GND Nano dan kabel 5V ke pin 5V. Perhatikan jika Anda menggunakan voltase yang berbeda, (lihat bagian berikutnya), katakanlah baterai Lipo dengan 7.4V, lalu sambungkan kabel merah ke pin Vin, BUKAN pin 5V, hal itu akan merusak pin.

Solder 10 kabel sinyal PWM ke pin pada Arduino Nano. Saya menyambungkan milik saya dengan urutan berikut, Anda dapat memilih untuk menyambungkan milik Anda secara berbeda, tetapi ingatlah bahwa Anda kemudian perlu mengubah baris servo.attach() dalam kode. Jika Anda tidak yakin apa yang saya bicarakan, kirimkan saja dengan cara yang sama seperti yang saya lakukan dan Anda tidak akan mengalami masalah. Secara berurutan dari servo di ekor ular ke kepala ular, saya menghubungkan kedua ular saya dengan urutan sebagai berikut. Menghubungkan pin sinyal ke: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Gunakan zipties untuk membersihkan kabel. Sebelum melanjutkan, periksa apakah semua segmen dapat bergerak dengan ruang yang cukup untuk kabel bergerak tanpa ditarik terpisah. Sekarang setelah pengkabelan selesai, kita dapat memasang tutup berbentuk piramida di kepala dan ekor. Perhatikan bahwa ekor memiliki lubang untuk tambatan untuk keluar dan kepala memiliki lubang untuk kabel pemrograman Arduino.

Langkah 5: Memberi Kekuatan pada Ular

Memberdayakan Ular
Memberdayakan Ular
Memberdayakan Ular
Memberdayakan Ular
Memberdayakan Ular
Memberdayakan Ular

Karena servos disambungkan secara paralel, mereka semua mendapatkan tegangan yang sama, tetapi arus harus ditambahkan. Melihat lembar data untuk servos MG996r, masing-masing dapat menarik hingga 900mA saat berjalan (dengan asumsi tidak ada jeda). Jadi total penarikan arus jika semua 10 servos bergerak pada saat yang sama adalah 0,9A*10=9A. Karena itu, adaptor soket dinding 5v, 2A yang normal tidak akan berfungsi. Saya memutuskan untuk memodifikasi catu daya ATX, yang mampu 5v pada 20A. Saya tidak akan menjelaskan bagaimana melakukan ini, karena sudah banyak dibahas di Instructables dan YouTube. Pencarian cepat online akan menunjukkan cara memodifikasi salah satu catu daya ini.

Dengan asumsi Anda telah memodifikasi catu daya, ini hanyalah kasus menghubungkan tambatan panjang antara catu daya dan terminal sekrup pada ular.

Pilihan lain adalah dengan menggunakan baterai lipo onboard. Saya belum mencoba ini sehingga terserah Anda untuk merancang dudukan untuk baterai dan menyambungkannya. Ingatlah voltase operasi, penarikan arus servo dan Arduino (jangan menyolder apa pun selain 5v ke pin 5v pada Arduino, pergi ke pin Vin jika Anda memiliki tegangan yang lebih tinggi).

Langkah 6: Uji Semuanya Berfungsi

Sebelum melanjutkan, mari kita uji semuanya berfungsi. Unggah kode ini. Ular Anda harus menggerakkan setiap servo satu per satu antara 0-180 dan kemudian menyelesaikannya dengan berbaring dalam garis lurus. Jika tidak maka ada sesuatu yang salah, kemungkinan besar kabelnya salah atau servos awalnya tidak berpusat pada 90 derajat seperti yang disebutkan di bagian "Perakitan ular".

Langkah 7: Kode

Saat ini tidak ada pengontrol jarak jauh untuk ular, semua gerakan sudah diprogram sebelumnya dan Anda dapat memilih apa yang Anda inginkan. Saya akan mengembangkan remote control di versi 2, tetapi jika Anda ingin mengontrolnya dari jarak jauh, saya sarankan untuk melihat tutorial lain tentang Instructables dan mengadaptasi ular agar kompatibel dengan bluetooth.

Jika Anda membuat ular 1D, unggah kode ini.

Jika Anda membuat ular 2D, unggah kode ini.

Saya mendorong Anda untuk bermain-main dengan kode, membuat perubahan Anda sendiri, dan membuat algoritme baru. Baca beberapa bagian berikutnya untuk penjelasan rinci tentang setiap jenis penggerak dan bagaimana kode untuk itu bekerja.

Langkah 8: Timbangan Vs Roda

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 dapat bergerak maju adalah melalui bentuk sisiknya. Timbangan memungkinkan gerakan maju yang lebih mudah. Untuk penjelasan lebih lanjut tonton video ini dari 3:04 dan seterusnya untuk melihat bagaimana timbangan membantu ular bergerak maju. Melihat 3:14 di video yang sama menunjukkan efek ketika ular berada di lengan baju, menghilangkan gesekan sisik. Seperti yang ditunjukkan dalam video YouTube saya ketika robot ular 1D mencoba merayap di rumput tanpa sisik, ia tidak bergerak maju atau mundur karena jumlah gaya menjadi nol bersih. Karena itu kita perlu menambahkan beberapa sisik buatan ke perut robot.

Penelitian dalam menciptakan kembali penggerak melalui timbangan dilakukan di Universitas Harvard dan ditunjukkan dalam video ini. Saya tidak dapat merancang metode serupa untuk memindahkan timbangan ke atas dan ke bawah pada robot saya dan malah memutuskan untuk memasang timbangan cetak 3D pasif ke perut bagian bawah.

Sayangnya ini terbukti tidak efektif (lihat di video YouTube saya di 3:38) karena timbangan masih meluncur di atas permukaan karpet alih-alih menangkap serat dan meningkatkan gesekan.

Jika Anda ingin bereksperimen dengan timbangan yang saya buat, Anda dapat mencetak file 3D dari GitHub saya. Jika Anda berhasil membuat sendiri, beri tahu saya di komentar di bawah!

Menggunakan pendekatan yang berbeda saya mencoba menggunakan roda yang terbuat dari bantalan bola r188 dengan tabung panas menyusut di luar sebagai 'ban'. Anda dapat mencetak 3D as roda plastik dari file.stl di GitHub saya. Meskipun roda tidak akurat secara biologis, mereka analog dengan timbangan di mana rotasi ke depan itu mudah tetapi gerakan sisi ke sisi secara signifikan lebih sulit. Anda dapat melihat hasil roda yang sukses di video YouTube saya.

Langkah 9: Gerak Merayap (Ular Sumbu tunggal)

Hadiah Pertama dalam Kontes Make it Move

Direkomendasikan: