Isi kandungan:

ICBob - Robot Biped Berinspirasi Bob: 10 Langkah (dengan Gambar)
ICBob - Robot Biped Berinspirasi Bob: 10 Langkah (dengan Gambar)

Video: ICBob - Robot Biped Berinspirasi Bob: 10 Langkah (dengan Gambar)

Video: ICBob - Robot Biped Berinspirasi Bob: 10 Langkah (dengan Gambar)
Video: Ai robots taking over ping pong 👀 #shorts 2024, November
Anonim
Image
Image
ICBob - Robot Biped Berinspirasi Bob
ICBob - Robot Biped Berinspirasi Bob

Kami adalah Kelab Teen Imagineering dari Perpustakaan Awam Bridgeville Delaware. Kami membuat projek yang menarik sambil belajar mengenai elektronik, pengkodan komputer, reka bentuk 3D dan percetakan 3D.

Projek ini adalah penyesuaian kami dari BoB the BiPed sebuah robot berasaskan Arduino. Kami merancang semula badan untuk memanfaatkan sumber kuasa Arduino kegemaran kami, bank kuasa telefon Powerbot. Sumber kuasa 5 volt yang boleh dicas semula yang murah ini sangat bagus untuk menggerakkan projek Arduino kami dan mengecas semula dengan pengecas dinding USB apa pun. Kami juga mengadaptasikan kaki 3 jari kaki dari robot Arduped biped hanya kerana mereka kelihatan AWESOME. Kami akan menunjukkan kepada anda di mana untuk mendapatkan bahagian yang anda perlukan, cara memasang robot dan bahkan memberi anda beberapa kod Arduino yang mudah untuk membuatnya berjalan. Kami bersenang-senang membuat sebelas robot ICBob kami. Teruskan membaca jika anda ingin belajar bagaimana membuatnya untuk diri sendiri.

Langkah 1: Bahagian dan Alat yang Anda Perlu

Bahagian dan Alat yang Anda Perlu
Bahagian dan Alat yang Anda Perlu
Bahagian dan Alat yang Anda Perlu
Bahagian dan Alat yang Anda Perlu

ICBob direka untuk set bahagian berikut. Walaupun penggantian mungkin dilakukan, anda mungkin perlu mengubah suai badan untuk menjadikannya berfungsi. Pembekal kegemaran kami adalah Yourduino.com tetapi untuk beberapa item anda perlu pergi ke Amazon atau Ebay.

Kemas kini Ketersediaan Produk - Yourduino tidak lagi membawa Penyihir Mikro dan mengatakan bahawa mereka dihentikan oleh Dagu. Laman web Dagu masih menyediakannya https://www.dagurobot.com/goods.php?id=137 dan jika tidak tersedia, pengawal S4A EDU adalah penurunan penggantian dan beroperasi pada 5 volt.

Bahagian

  • Pengawal 1x- MICRO Magician
  • Servo 4x- SG 90
  • Sensor ultrasonik 1x- HC-SR04
  • 1x- Powerbot power bank 2600mAh (3000mAh Powerbot berdiameter lebih besar dan tidak akan muat)
  • 1x- MICRO USB ke DIP 5-Pin Pinboard Wanita
  • Kabel rata rata 1x- 20cm 40 pin wanita
  • Perintang 1x- 10k
  • Skru pengetuk sendiri 4x- 2-56 x 3/8 (gam panas alternatif)

Cetakan 3D - Fail stl boleh didapati di Thingiverse: 1313344

  • 1x- badan
  • 1x- tempurung
  • 2x- lutut
  • 1x- kaki kiri
  • 1x- kaki kanan

Alat

  • komputer dengan Arduino IDE
  • Arduino menambah perpustakaan VarSpeedServo
  • Pemandu Magic MICRO (diperlukan untuk beberapa sistem operasi)
  • Pencetak 3D (atau bahagian yang dibuat)
  • Alat pembersih bahagian 3D
  • Kit pematerian (hanya untuk pin pada penyesuai USB)
  • Pistol gam panas
  • Pemutar skru Philips kecil
  • pengecas usb

Instructable ini menganggap anda mempunyai pengetahuan asas mengenai penggunaan Arduino. Sekiranya anda baru menggunakan Arduino, anda boleh mengetahui lebih lanjut di

Untuk MICRO Magician pilih Board - Arduino Pro atau Pro Mini (3.3V, 8MHz) w / ATmega328

Anda memerlukan perpustakaan VarSpeedServo Korman untuk menggunakan lakaran kami. Anda boleh mengetahui lebih lanjut mengenai perpustakaannya di sini tetapi gunakan muat turun kami di bawah yang sesuai dengan IDE yang lebih baru. Muat turun fail VarSpeedServo.zip di bawah dan unzip ke folder arduino / perpustakaan anda.

Anda mungkin perlu memasang pemacu MICRO Magician CP210x jika sistem anda tidak mengenali pengawal. Laman web ini dapat membantu pemacu memasang

Langkah 2: Mari Mula Membangun - Pasangkan Kaki

Mari Mula Membangun - Pasangkan Kaki
Mari Mula Membangun - Pasangkan Kaki
Mari Mula Membangun - Pasangkan Kaki
Mari Mula Membangun - Pasangkan Kaki
Mari Mula Membangun - Pasangkan Kaki
Mari Mula Membangun - Pasangkan Kaki

Untuk langkah ini, anda memerlukan 2 - lutut dicetak 3D dan 4 pakej servo.

Mulakan dengan membersihkan lutut. Lubang 2 servo tanduk mesti sesuai dengan tanduk servo satu sisi. Kami membersihkannya dengan bit gerudi huruf L (.290). Lubang pivot satu mesti sesuai dengan pivot di kaki. Kami membersihkannya dengan gerudi bersaiz # 2 (.220).

Pasangkan 4 tanduk servo ke lutut. Pasang tanduk menggunakan salah satu skru yang lebih besar yang disertakan dengan pakej servo. Pasang skru dari sisi lutut dan ketatkan ke salah satu lubang kecil pada tanduk servo. Untuk satu skru, anda harus mengetatkan dengan pemutar skru pada sudut tetapi ia boleh dilakukan. Anda boleh memotong titik skru yang melekat dengan tang pemotong sisi jika anda mahu.

4 gelendong servo harus berpusat sebelum dilekatkan pada lutut. Anda boleh melakukan ini secara manual dengan menggerakkan gelendong secara perlahan melalui putarannya untuk mencari titik separuh jalan. Cara yang lebih baik adalah melampirkan servo ke pin 12. Muat turun fail icbob_servo_center.zip di bawah. Nyahzip ke direktori Arduino anda. Kemudian jalankan lakaran Arduino ini untuk setiap servo.

Mulakan dengan memasang servo pinggul (atas) ke lutut. Tanpa menggerakkan gelendong pasangkan servo pinggul selari dengan lutut dengan wayar menghadap servo tanduk yang lain (depan). Kunci dengan satu skru kecil dari pakej servo. Ulangi untuk lutut yang lain.

Sekarang untuk servos pergelangan kaki. INGAT anda akan mempunyai pergelangan kaki kanan dan kiri sehingga kaki akan menjadi gambar cermin antara satu sama lain. Anda perlu meregangkan lutut sedikit untuk memasang servo pergelangan kaki sehingga mengarahkan servo seperti dalam foto sebelum memerahnya. Ingat jangan putar gelendong. Amankan dengan skru kecil. Ulangi dengan lutut yang lain sehingga anda selesai dengan kaki kanan dan kiri.

Langkah 3: Membangun - Pasangkan Kaki ke Badan

Bangunan - Pasangkan Kaki ke Badan
Bangunan - Pasangkan Kaki ke Badan
Bangunan - Pasangkan Kaki ke Badan
Bangunan - Pasangkan Kaki ke Badan
Bangunan - Pasangkan Kaki ke Badan
Bangunan - Pasangkan Kaki ke Badan

Anda memerlukan pemasangan 2 kaki dan asas dicetak 3D untuk langkah ini. Anda juga memerlukan (4) skru penoreh sendiri atau lem panas.

Pemasangan kaki melekat pada pangkal melalui servo pinggul. Laluan pertama 2 servo wayar ke bahagian bawah pangkalan. Fikirkan hak dan kiri. Seperti gambar menunjukkan wayar pergelangan kaki berakhir pada potongan bulan setengah tetapi anda mesti memasukkan wayar pergelangan kaki sebelum servo dipasang. Anda mesti memiringkan servo supaya wayar pinggul (di mana ia memasuki servo) melalui lubang segiempat terlebih dahulu (ke depan). Ia sangat ketat tetapi bahagian belakangnya hanya boleh masuk. Sekarang pusingkan pangkal dan pasangkan servo dengan 2 skru atau sebagai ganti panas boleh berfungsi. Ulangi proses untuk kaki yang lain.

Langkah 4: Membangun - Pasangkan Kaki

Bangunan - Pasangkan Kaki
Bangunan - Pasangkan Kaki
Bangunan - Pasangkan Kaki
Bangunan - Pasangkan Kaki

Untuk langkah ini, anda memerlukan kaki kiri dan kaki kanan untuk ditambahkan pada pemasangan anda. Mereka panas terpaku sehingga api pistol gam.

Pastikan anda membersihkan slot di kaki dengan baik. Uji perlahan-lahan pasangkan servo ke kaki selepas membersihkan. Pastikan lubang pangsi di lutut masuk ke pin pangsi di kaki. Sebaiknya gunakan pemutar skru nipis di antara servo dan kaki untuk melepaskan kaki dari belakang jika ketat. Setelah anda mendapat ujian yang sesuai, letakkan gam panas berukuran kecil di kaki kemudian tekan servo ke kaki. Elakkan terkena gam berhampiran kawasan pangsi. Ulangi untuk sisi yang lain sehingga bot anda dapat berdiri dengan dua kakinya sendiri.

Langkah 5: Pendawaian - Servos dan Kuasa

Pendawaian - Servos dan Kuasa
Pendawaian - Servos dan Kuasa
Pendawaian - Servos dan Kuasa
Pendawaian - Servos dan Kuasa
Pendawaian - Servos dan Kuasa
Pendawaian - Servos dan Kuasa

Pada langkah ini, anda memerlukan pengawal MICRO Magician, papan penyesuai mikro USB dengan pin header, kabel rata dan bot berdiri anda. Anda akan terpaku dan terpaku panas dalam langkah ini jadi siapkan alat-alat tersebut.

Powerbot power bank dilengkapi dengan kabel USB pendek ke USB mikro. Untuk mengecas bateri, mikro USB disambungkan ke slot pengecasan pada bateri dan USB masuk ke pengecas dinding. Anda akan menggunakan semula kabel ini untuk menghidupkan ICBob. Output bateri melalui USB jadi kami menyambung melalui papan penyesuai USB mikro untuk mendapatkan kuasa ke bot.

Pertama, pasangkan penyesuai. Rujuk foto untuk langkah seterusnya. Anda hanya akan menggunakan 2 pin luar (gnd dan V +) untuk menghidupkan bot. Geser 2 pin luar dengan berhati-hati di bahagian kepala sehingga sisi pendek menonjol sekitar 3/16 inci. Dengan tang bengkokkan 2 pin panjang 60 darjah atau lebih. Bengkokkan sebelum memateri kerana papannya rapuh. Masukkan header seperti yang ditunjukkan dan pateri semua pin di belakang untuk kekuatan. Klipkan semua pin yang tidak digunakan sesingkat mungkin di depan dan belakang. Sebelum kita melekatkan penyesuai ke tong, pasangkan kabel USB mikro sehingga anda mendapat pelepasan yang mencukupi. Letakkan gumpalan gam panas di bahagian belakang penyesuai kemudian letakkan pada kedudukan yang ditunjukkan pada tong. Tahan sehingga mengeras.

Seterusnya pasangkan 4 penyambung servo ke pengawal. Kami menyukai MICRO Magician kerana mempunyai penyambung 3 pin di atas kapal untuk pendawaian servo yang mudah. Kawat warna yang lebih gelap (coklat?) Menuju ke tepi papan. Lakaran Arduino yang disertakan menggunakan pin berikut.

  • Pinggul Kanan (RH) - pin 9
  • Pergelangan Kanan (RA) - pin 10
  • Pinggul Kiri (LH) - pin 11
  • Pergelangan Kiri (LA) - pin 12

Untuk sambungan kuasa ke papan tarik sepasang wayar dari kabel rata. Anda akan menggunakan lebih banyak kabel rata ini untuk pendawaian sonar. Sambungkan satu hujung pasangan ke penyesuai USB mikro. Pin yang lebih dekat dengan bahagian depan bot adalah tanah dan V + yang lain. Hujung yang lain melekat pada pengawal berhampiran suis. Kawat V + menghubungkan ke pin berlabel 'Battery IN' dalam dokumentasi. Sambungkan wayar arde ke pin 'gnd' sedikit di atas pin 'Battery IN'.

PENTING! - Terdapat pelompat 'V + select' tepat di atas set pin D1. Pelompat ini mesti berada pada set pin INSIDE atau servo tidak akan berfungsi.

Akhirnya bersihkan slot pengawal di pangkal supaya pengawalnya sesuai. Anda boleh memasang bateri dan menghidupkan 'pengawal' untuk memastikan bateri dihidupkan.

Langkah 6: Pengaturcaraan - Kod Penentukuran Rumah

Beberapa perkataan mengenai pilihan pengaturcaraan kami

Semasa kami membina prototaip untuk projek ini, kami menggunakan Cara mengajar BoB Biped anda untuk memindahkan tutorial di Let's Make Robots. Perisian Bob Poser memang hebat dan kami seronok bermain dengannya. Masalahnya ialah 600+ baris kod dalam lakaran Navigasi berada jauh di atas tahap pengetahuan remaja. Untuk menjadikan projek ini sebagai pengalaman pembelajaran bagi mereka, kami memutuskan untuk mengumpulkan beberapa idea dari kod Poser dan kemudian mulakan dengan halaman kosong. Para remaja sudah menggunakan perpustakaan VarSpeedServo semasa belajar tentang servos di makmal Arduino kami. Kami memutuskan untuk melihat apakah VarSpeedServo dapat menangani tugas masa dan kelajuan untuk servo sehingga kami hanya dapat menumpukan perhatian pada posisi. Kod yang dihasilkan berfungsi dengan baik dan lakaran walk_avoid_turn penuh mempunyai kurang daripada 100 baris kod. Satu-satunya konsep baru yang perlu dipelajari oleh remaja adalah susunan 2 dimensi dan bagaimana mengakses data tersebut dengan kod. Selamat mencuba!

Penentukuran Rumah

Anda memusatkan gelendong servo ketika anda memasangnya. Sekarang anda akan melihat seberapa dekat anda dan memperbaiki kedudukan rumah mereka. Pastikan anda mempunyai perpustakaan VarSpeedServo dari langkah 1 yang terpasang. Muat turun fail icbob_home_calibration.zip di bawah dan unzip ke direktori Arduino anda. Buka lakaran di Arduino IDE. Hidupkan MICRO Magician dengan bateri. Sambungkan komputer ke papan dan muat naik kod. Kemungkinan kedudukan rumah servo tidak akan sempurna. Cari bahagian berikut dalam kod. Terus menyesuaikan dan memuat naik sehingga anda betul.

//…………………………………………………….

// Mulakan dengan memmbers array 4 hm yang ditetapkan hingga 90 darjah. kemudian sesuaikan // tetapan ini sehingga lutut lurus ke depan dan kaki rata rata hm [4] = {90, 90, 90, 90}; // array untuk memegang kedudukan rumah untuk setiap servo RH, RA, LH, LA // …………………………………………………….

Sekiranya mana-mana nombor anda kurang dari 50 atau lebih besar dari 130, anda perlu mengundurkan dan membongkar kaki dan mendekatkan gelendong ke tengah.

Sebaik sahaja anda mempunyai kedudukan rumah yang baik, tuliskan nombornya. Anda memerlukan nombor ini untuk keseluruhan lakaran.

Langkah 7: Pengaturcaraan - Pindahkan Generator Code

Pengaturcaraan - Pindahkan Generator Code
Pengaturcaraan - Pindahkan Generator Code

Sekarang untuk bot anda bergerak. Muat turun fail icbob_move_generator.zip di bawah dan unzip ke direktori Arduino anda. Buka lakaran di Arduino IDE. Cari bahagian kod berikut. Masukkan kedudukan rumah yang anda rakam untuk bot anda dalam lakaran.

// tetapkan anggota untuk array hm ke kedudukan rumah untuk robot anda

// mereka boleh didapati dengan menggunakan lakaran icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // array untuk menahan kedudukan rumah untuk setiap servo RH, RA, LH, LA

Bahagian kod berikut adalah tempat urutan bergerak dimasukkan. Setiap baris mempunyai kedudukan untuk 4 servo (RH, RA, LH, LA) berbanding dengan kedudukan rumah.

// data array mv. Setiap baris adalah 'bingkai' atau kedudukan yang ditetapkan untuk 4 servos

// Pelbagai garis membuat sekumpulan pergerakan yang dapat dilingkarkan untuk // membuat pergerakan berjalan, berpusing, menari atau pergerakan lain yang berterusan int mvct = 6; // Jadikan nombor ini sama dengan bilangan baris dalam array const int mv [mvct] [4] = {{0, -40, 0, -20}, // Nombor yang dimuatkan ini harus memberi jalan maju {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},};

Ini adalah kod yang mengubah data array mv menjadi servo slowmoves

gelung kosong () // gelung berulang selama-lamanya

{// Lakukan urutan bergerak untuk (int x = 0; x <mvct; x ++) {// kitarkan bilangan RH.slowmove (hm [0] + mv [x] [0], svsp); // baris 'bingkai' dalam array RA.slowmove (hm [1] + mv [x] [1], svsp); LH.slowmove (hm [2] + mv [x] [2], svsp); LA.slowmove (hm [3] + mv [x] [3], svsp); kelewatan (framedelay); }}

Muat naik ke bot. Bot akan pergi ke kedudukan rumah selama 2 saat kemudian memulakan loop maju. Ia berfungsi paling baik jika meja tidak terlalu licin.

Setelah anda bosan melihatnya berjalan, anda boleh mencuba gerakan anda sendiri. Gunakan 'save as' untuk menamakan semula lakaran. Kemudian bermain dengan nombor dan lihat apa yang boleh anda lakukan. Simpan nombor antara +50 dan -50 atau anda mungkin membebani servo. Ingatlah jika anda menambah atau mengurangkan garis anda harus menukar nilai mvct untuk mencerminkan perubahan tersebut. Berseronok!

Langkah 8: Pendawaian - Sensor Sonar HC-SR04 (Mata)

Pendawaian - Sensor Sonar HC-SR04 (Mata)
Pendawaian - Sensor Sonar HC-SR04 (Mata)
Pendawaian - Sensor Sonar HC-SR04 (Mata)
Pendawaian - Sensor Sonar HC-SR04 (Mata)

Untuk langkah ini, anda memerlukan cetakan 3D icbob_shell, sensor ultrasonik HC-SR04, kabel rata wanita dan satu perintang 10k ohm. Ini mesti menyelesaikan bahagian-bahagian dalam senarai kami. Yeah!

Bersihkan terlebih dahulu lubang sensor di cangkang untuk kemas yang sederhana. Jangan terlalu menekan sensor semasa melakukan ujian. Tanggalkan dari shell untuk pendawaian.

Seterusnya tarik 4 helai dari kabel rata. Pasang 4 wayar ke pin sensor HC-SR04.

Penyihir MICRO berfungsi secara dalaman pada 3,3 volt dan pin hanya dapat mengambil isyarat 3,3 volt. Masalahnya ialah HC-SR04 beroperasi pada 5 volt. Ia boleh menggunakan input 3.3 volt sebagai isyarat 'pemicu' tetapi ketika menghantar isyarat 'echo' ia adalah 5 volt dan ia akan merosakkan input pengawal jika disambungkan secara langsung. Kita perlu meletakkan perintang had 10k ohm pada wayar 'echo' untuk melindungi input.

KEMASKINI: Walaupun kami tidak menghadapi masalah hanya dengan resistor 10K sebaris, ini ditunjukkan dalam komen bahawa amalan terbaik menunjukkan litar pembahagi voltan harus digunakan di sini. Sebagai tambahan kepada perintang 10K, perintang 15K harus diletakkan di antara 'echo' dan 'ground'.

Potong perintang ke 0,5 inci. Perintang masuk ke wayar 'echo' pada kabel rata anda. Kami meletakkan setetes gam super pada sambungan untuk membantunya.

Lakaran menggunakan pin 13 untuk pencetus dan pin 3 untuk gema. Gunakan kumpulan pin 13 pada pengawal untuk 'gnd', 'vcc', 'trig' dalam urutan yang berfungsi dari tepi ke arah tengah. Anda perlu merentas beberapa wayar di sini untuk mendapatkannya dengan betul. Kawat 'echo' dengan perintang dipasang ke soket pin 3 wanita.

Sekiranya anda ingin memeriksa sensor sebelum melangkah ke langkah seterusnya, anda boleh menggunakan lakaran pertama di halaman ini https://arduino-info.wikispaces.com/UltraSonicDistance untuk mengujinya. Anda memerlukan bateri yang disambungkan. Anda dapat melihat bacaan jarak jauh pada monitor bersiri. Pastikan anda menetapkan 'trigger_pin' ke 13 dan 'echo_pin' ke 3 dalam lakaran.

Cara terbaik untuk memasang sensor di shell adalah dengan pin yang menunjuk ke arah atas dan wayar dilipat dan diarahkan antara 'mata' sensor dan shell.

Langkah 9: Pengaturcaraan - Walk_Avoid_Turn Code

Menggabungkan semuanya. Semua bahagian dipasang. Kami sudah siap memuatkan kod penuh, memasang cengkerang dan melihatnya melakukan perkara itu.

Anda tahu rutinnya. Muat turun fail icbob_walk_avoid_turn.zip di bawah dan hapus zip ke direktori Arduino anda. Buka lakaran di Arduino IDE. Cari bahagian kod berikut. Masukkan kedudukan rumah yang anda rakam untuk bot anda dalam lakaran.

// tetapkan anggota untuk susunan hm ke kedudukan rumah untuk robot anda

// mereka boleh didapati dengan menggunakan lakaran icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // array untuk menahan kedudukan rumah untuk setiap servo RH, RA, LH, LA

Sketsa ini menambah susunan pergerakan kedua dan set kedua kod bergerak perlahan untuk gerakan 'giliran'.

// data array ke hadapan

const int fwdmvct = 6; // Jadikan nombor ini sama dengan bilangan baris dalam array const int fwdmv [fwdmvct] [4] = {{0, -40, 0, -20}, // bingkai bergerak maju ke hadapan {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},}; // putar data susunan int int trnmvct = 5; // Jadikan nombor ini sama dengan bilangan baris dalam array const int trnmv [trnmvct] [4] = {{-40, 0, -20, 0}, // putar bingkai bergerak {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0},};

Kami menambahkan kod pengesanan halangan sonar serta pernyataan 'jika' 'lain' untuk memutuskan sama ada kami akan lurus atau membelok.

Perhimpunan Akhir dan permulaan

Biarkan bateri tidak terpasang dan muat naik lakaran. Putuskan kabel pengaturcaraan. Pastikan suis kuasa pada pengawal berada di posisi 'on' bawah. Geserkan cengkerang dengan hati-hati ke pangkal dengan kabel kuasa USB melekat di lubang atas. Masukkan bateri. Pasangkannya. ICBob anda harus mula bergerak dan berpusing untuk mengelakkan halangan lebih dekat dari 7 inci.

Langkah 10: Pembungkus

Kami harap anda bersenang-senang membina ICBob anda seperti yang kami buat semasa membina. Beritahu kami jika anda mempunyai pertanyaan atau komen. Sekiranya anda membina, beritahu kami di Thingiverse atau di sini.

Disyorkan: