Talaan ng mga Nilalaman:

Kinokontrol ng Arduino na Robotic Biped: 13 Mga Hakbang (na may Mga Larawan)
Kinokontrol ng Arduino na Robotic Biped: 13 Mga Hakbang (na may Mga Larawan)

Video: Kinokontrol ng Arduino na Robotic Biped: 13 Mga Hakbang (na may Mga Larawan)

Video: Kinokontrol ng Arduino na Robotic Biped: 13 Mga Hakbang (na may Mga Larawan)
Video: Korea International Robot Contest 2014 - Rumble 2024, Disyembre
Anonim
Image
Image
Kinokontrol ni Arduino ang Robotic Biped
Kinokontrol ni Arduino ang Robotic Biped
Kinokontrol ni Arduino ang Robotic Biped
Kinokontrol ni Arduino ang Robotic Biped

Mga Proyekto ng Fusion 360 »

Palagi akong naintriga ng mga robot, lalo na ang uri na nagtatangkang gayahin ang mga pagkilos ng tao. Ang interes na ito ay humantong sa akin upang subukang magdisenyo at bumuo ng isang robotic biped na maaaring gayahin ang paglalakad at pagtakbo ng tao. Sa Instructable na ito, ipapakita ko sa iyo ang disenyo at pagpupulong ng robotic biped.

Ang pangunahing layunin habang itinataguyod ang proyektong ito ay upang gawing mas matibay ang system hangga't maaari na habang nag-eeksperimento sa iba't ibang paglalakad at pagpapatakbo ng mga lakad, hindi ko na kailangang patuloy na mag-alala tungkol sa pagkabigo ng hardware. Pinayagan akong itulak ang hardware sa limitasyon nito. Ang isang pangalawang layunin ay upang gumawa ng biped medyo murang gastos gamit ang madaling magagamit na mga bahagi ng libangan at pag-print ng 3D na nag-iiwan ng silid para sa karagdagang mga pag-upgrade at pagpapalawak. Ang dalawang layunin na pinagsama ay nagbibigay ng isang matatag na pundasyon upang maisagawa ang iba't ibang mga eksperimento, na hinahayaan ang isang bumuo ng naka-bip sa mas tiyak na mga kinakailangan.

Sundin upang lumikha ng iyong sariling kontrol ng Arduino sa Robotic Biped at mag-drop ng isang boto sa "Arduino Contest" kung gusto mo ang proyekto.

Hakbang 1: Proseso ng Disenyo

Proseso ng disenyo
Proseso ng disenyo
Proseso ng disenyo
Proseso ng disenyo
Proseso ng disenyo
Proseso ng disenyo

Ang mga humanoid na binti ay idinisenyo sa Autodesk's libre upang magamit ang Fusion 360 3d modeling software. Nagsimula ako sa pamamagitan ng pag-import ng mga motor na servo sa disenyo at itinayo ang mga binti sa paligid nila. Nagdisenyo ako ng mga braket para sa motor ng servo na nagbibigay ng pangalawang point ng pivot na diametrically kabaligtaran ng baras ng servo motor. Ang pagkakaroon ng dalawahang mga shaft sa magkabilang dulo ng motor ay nagbibigay ng katatagan sa istruktura sa disenyo at tinatanggal ang anumang pag-skewing na maaaring mangyari kapag ang mga binti ay ginawang tumagal. Ang mga link ay idinisenyo upang humawak ng isang tindig habang ang mga braket ay gumamit ng isang bolt para sa baras. Kapag na-mount ang mga link sa mga shaft gamit ang isang nut, ang tindig ay magbibigay ng isang makinis at matatag na pivot point sa kabaligtaran ng servo motor shaft.

Ang isa pang layunin habang ang pagdidisenyo ng biped ay upang mapanatili ang modelo bilang compact hangga't maaari upang magamit ang maximum na metalikang kuwintas na ibinigay ng servo motor. Ang mga sukat ng mga link ay ginawa upang makamit ang isang malaking hanay ng paggalaw habang pinapaliit ang pangkalahatang haba. Ang paggawa ng mga ito masyadong maikli ay gagawa ng mga braket na mabangga, mabawasan ang saklaw ng paggalaw, at gawin itong masyadong mahaba ay magbibigay ng hindi kinakailangang metalikang kuwintas sa mga actuator. Sa wakas, dinisenyo ko ang katawan ng robot kung saan ang Arduino at iba pang mga elektronikong sangkap ay mai-mount.

Tandaan: Ang mga bahagi ay kasama sa isa sa mga sumusunod na hakbang.

Hakbang 2: Ang Papel ng Arduino

Ang Papel ng Arduino
Ang Papel ng Arduino

Isang Arduino Uno ang ginamit sa proyektong ito. May pananagutan ang Arduino na kalkulahin ang mga landas ng paggalaw ng iba't ibang mga lakad na sinubukan at inatasan ang mga actuator na lumipat sa tumpak na mga anggulo sa tumpak na bilis upang lumikha ng isang makinis na galaw ng paglalakad. Ang isang Arduino ay isang mahusay na pagpipilian para sa pagbuo ng mga proyekto dahil sa kanyang kagalingan sa maraming kaalaman. Nagbibigay ito ng isang bungkos ng mga pin ng IO at nagbibigay din ng mga interface tulad ng serial, I2C, at SPI upang makipag-usap sa iba pang mga microcontroller at sensor. Nagbibigay din ang Arduino ng isang mahusay na platform para sa mabilis na prototyping at pagsubok at binibigyan din ng silid ang mga developer para sa mga pagpapabuti at kakayahang mapalawak. Sa proyektong ito, ang mga karagdagang bersyon ay isasama ang isang Unit ng Inertial Pagsukat para sa pagproseso ng paggalaw tulad ng detection ng pagbagsak at pabago-bagong lokomotion sa hindi pantay na lupain at isang distansya na pagsukat ng sensor upang maiwasan ang mga hadlang.

Ang Arduino IDE ay ginamit para sa proyektong ito. (Nagbibigay din ang Arduino ng isang web-based IDE)

Tandaan: Ang mga programa para sa robot ay maaaring ma-download mula sa isa sa mga sumusunod na hakbang.

Hakbang 3: Kailangan ng Mga Materyales

Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan
Mga Materyal na Kailangan

Narito ang listahan ng lahat ng mga bahagi at bahagi na kinakailangan upang makagawa ng iyong sariling robot na pinapatakbo ng Arduino na Bipedal robot. Ang lahat ng mga bahagi ay dapat na karaniwang magagamit at madaling hanapin.

Elektroniko:

Arduino Uno x 1

Towerpro MG995 servo motor x 6

Perfboard (katulad ng laki sa Arduino)

Mga pin ng header ng Lalaki at Babae (mga 20 sa bawat isa)

Jumper Wires (10 piraso)

MPU6050 IMU (opsyonal)

Ultrasonic sensor (opsyonal)

HARDWARE:

Skateboard Bearing (8x19x7mm)

M4 na mani at bolts

3D filament filament (kung sakaling hindi ka nagmamay-ari ng isang 3D printer, dapat mayroong isang 3D printer sa isang lokal na workspace o ang mga kopya ay maaaring gawin sa online para sa medyo murang)

Hindi kasama ang Arduino at 3D printer ang kabuuang halaga ng proyektong ito ay 20 $.

Hakbang 4: Mga Naka-print na Bahaging 3D

Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D
Mga Naka-print na Bahaging 3D

Ang mga bahagi na kinakailangan para sa proyektong ito ay dapat na pasadyang dinisenyo samakatuwid isang 3D printer ang ginamit upang mai-print ang mga ito. Ang mga kopya ay ginawa sa 40% infill, 2 perimeter, 0.4mm nozzle, at isang layer taas na 0.1mm na may PLA, kulay na iyong pinili. Sa ibaba makikita mo ang kumpletong listahan ng mga bahagi at mga STL upang mai-print ang iyong sariling bersyon.

Tandaan: Mula dito sa mga bahagi ay tatukoy sa paggamit ng mga pangalan sa listahan.

  • paa may hawak ng servo x 1
  • salamin ng may hawak ng servo ng paa x 1
  • may hawak ng tuhod na servo x 1
  • salamin ng may hawak ng servo ng tuhod x 1
  • paa may hawak ng servo x 1
  • salamin ng may hawak ng servo ng paa x 1
  • link ng tindig x 2
  • link ng servo sungay x 2
  • link ng paa x 2
  • tulay x 1
  • i-mount ang electronics x 1
  • electronics spacer x 8 (opsyonal)
  • servo horn space x 12 (opsyonal)

Sa kabuuan, hindi kasama ang mga spacer, mayroong 14 na bahagi. Ang kabuuang oras ng pag-print ay tungkol sa 20 oras.

Hakbang 5: Paghahanda ng Mga Servo Bracket

Paghahanda ng Mga Servo Bracket
Paghahanda ng Mga Servo Bracket
Paghahanda ng Mga Servo Bracket
Paghahanda ng Mga Servo Bracket
Paghahanda ng Mga Servo Bracket
Paghahanda ng Mga Servo Bracket

Kapag na-print na ang lahat ng mga bahagi maaari kang magsimula sa pamamagitan ng pagse-set up ng mga servo at mga servo bracket. Una itulak sa isang tindig sa may hawak ng servo ng tuhod. Ang magkasya ay dapat na snug ngunit inirerekumenda ko ang pag-sanding ng panloob na ibabaw ng butas sa halip na pilitin ang tindig na maaaring mapanganib na masira ang bahagi. Pagkatapos ay ipasa ang isang M4 bolt sa butas at higpitan ito gamit ang isang nut. Susunod, kunin ang link ng paa at maglakip ng isang pabilog na servo sungay dito gamit ang mga naibigay na turnilyo. Ikabit ang link ng paa sa may hawak ng servo ng tuhod gamit ang mga tornilyo na gagamitin mo upang maikabit din ang servo motor. Siguraduhin na ihanay ang motor upang ang baras ay nasa parehong bahagi ng bolt na na-attach mo nang mas maaga. Sa wakas ay i-secure ang servo kasama ang natitirang mga nut at bolts.

Gawin ang pareho sa may hawak ng hip servo at may hawak ng servo ng paa. Sa pamamagitan nito, dapat ay mayroon kang tatlong servo motor at ang kanilang kaukulang mga braket.

Tandaan: Nagbibigay ako ng mga tagubilin para sa pagbuo ng isang binti, ang isa pa ay nasasalamin lamang.

Hakbang 6: Paggawa ng Mga Link ng Link

Paggawa ng Mga Link ng Link
Paggawa ng Mga Link ng Link
Paggawa ng Mga Link ng Link
Paggawa ng Mga Link ng Link
Paggawa ng Mga Link ng Link
Paggawa ng Mga Link ng Link

Kapag naipon na ang mga braket, simulang gawin ang mga link. Upang makagawa ng link ng tindig, muling gaanong buhangin ang panloob na ibabaw ng mga butas para sa tindig pagkatapos ay itulak ang tindig sa butas sa magkabilang panig. Siguraduhin na itulak ang tindig hanggang sa ang isang gilid ay mapula. Upang maitayo ang link ng servo sungay, kumuha ng dalawang pabilog na servo sungay at ang mga naibigay na turnilyo. Ilagay ang mga sungay sa 3D print at i-line up ang mga butas, susunod na i-tornilyo ang sungay papunta sa 3D print sa pamamagitan ng paglakip ng tornilyo mula sa panig ng 3D na naka-print. Inirerekumenda ko ang paggamit ng isang 3D na naka-print na servo sungay spacer para sa mga tornilyo na ito. Kapag na-built ang mga link maaari mong simulan ang tipunin ang binti.

Hakbang 7: Pag-iipon ng mga binti

Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti
Pag-iipon ng mga binti

Kapag ang mga link at braket ay tipunin, maaari mong pagsamahin ang mga ito upang maitayo ang binti ng robot. Una, gamitin ang link ng servo sungay upang magkabit ng hip servo bracket at tuhod na servo bracket. Tandaan: Huwag i-tornilyo ang sungay sa servo dahil mayroong isang yugto ng pag-setup sa sumusunod na yugto at magiging isang abala kung ang sungay ay naka-screw sa servo motor.

Sa kabaligtaran na mount ang link ng tindig papunta sa nakausli na mga bolt gamit ang mga mani. Panghuli, ikabit ang bracket ng servo ng paa sa pamamagitan ng pagpasok ng nakausli na bolt sa pamamagitan ng tindig sa may hawak ng servo ng tuhod. At ayusin ang servo shaft sa servo sungay na konektado sa may hawak ng servo ng tuhod sa kabilang panig. Maaari itong maging isang mahirap gawain at inirerekumenda ko ang isang pangalawang pares ng mga kamay para dito.

Ulitin ang mga hakbang para sa iba pang mga binti. Gamitin ang mga larawan na nakakabit sa bawat hakbang bilang sanggunian.

Hakbang 8: Pasadyang PCB at Mga Kable

Pasadyang PCB at Mga Kable
Pasadyang PCB at Mga Kable
Pasadyang PCB at Mga Kable
Pasadyang PCB at Mga Kable
Pasadyang PCB at Mga Kable
Pasadyang PCB at Mga Kable

Ito ay isang opsyonal na hakbang. Upang gawing mas neater ang mga kable nagpasya akong gumawa ng isang pasadyang PCB gamit ang perf board at header pin. Naglalaman ang PCB ng mga port upang direktang ikonekta ang mga wire ng servo motor. Bilang karagdagan, nag-iwan din ako ng labis na mga port kung sakaling nais kong palawakin at magdagdag ng iba pang mga sensor tulad ng Inertial Measurement Units o mga sensor ng distansya ng ultrasonic. Naglalaman din ito ng isang port para sa panlabas na mapagkukunan ng kuryente na kinakailangan upang mapagana ang servo motors. Ginagamit ang isang koneksyon ng lumulukso upang lumipat sa pagitan ng USB at panlabas na lakas para sa Arduino. I-mount ang Arduino at PCB sa magkabilang panig ng mounting electronics gamit ang mga turnilyo at mga naka-print na spacer ng 3D.

Tandaan: Siguraduhing i-unplug ang jumper bago ikonekta ang Arduino sa iyong computer sa pamamagitan ng USB. Ang hindi paggawa nito ay maaaring magresulta sa pinsala sa Arduino.

Kung magpasya kang hindi gamitin ang PCB at sa halip ay gumamit ng isang breadboard narito ang mga koneksyon sa servo:

  • Kaliwang Hip >> pin 9
  • Kanan Hip >> pin 8
  • Kaliwang tuhod >> pin 7
  • Right Knee >> pin 6
  • Kaliwang Paa >> pin 5
  • Kanang Paa >> pin 4

Kung magpasya kang gawin ang PCB na sundin ang parehong pagkakasunud-sunod tulad ng nasa itaas sa pamamagitan ng paggamit ng mga port sa PCB mula kanan hanggang kaliwa na nakaharap ang IMU port. At gumamit ng regular na mga lalaking hanggang babaeng jumper wires upang ikonekta ang PCB sa Arduino gamit ang mga numero ng pin sa itaas. Siguraduhin na ikonekta din ang ground pin at lumikha ng parehong potensyal sa ground at Vin pin para kapag nagpasya kang patakbuhin ito nang walang lakas na USB.

Hakbang 9: Pag-iipon ng Katawan

Pagtitipon sa Katawan
Pagtitipon sa Katawan
Pagtitipon sa Katawan
Pagtitipon sa Katawan
Pagtitipon sa Katawan
Pagtitipon sa Katawan

Kapag ang dalawang paa at ang electronics ay tipunin, pagsamahin ang mga ito upang buuin ang katawan ng robot. Gamitin ang piraso ng tulay upang maiugnay ang dalawang binti. Gumamit ng parehong mga butas ng pag-mount sa may hawak ng hip servo at mga nut at bolts na humahawak sa motor na servo. Panghuli, ikonekta ang electronics mount sa tulay. I-line up ang mga butas sa tulay at i-mount ang electronics at gamitin ang M4 nut at bolts upang gawin ang magkasanib.

Sumangguni sa mga nakakabit na imahe para sa tulong. Sa pamamagitan nito, nakumpleto mo ang pagbuo ng hardware ng robot. Susunod, tumalon tayo sa software at buhayin ang robot.

Hakbang 10: Intial Setup

Intial Setup
Intial Setup
Intial Setup
Intial Setup
Intial Setup
Intial Setup

Ang napansin ko habang itinatayo ang proyektong ito ay ang mga servo motor at ang mga sungay ay hindi kailangang ganap na nakahanay upang manatiling medyo parallel. Ito ang dahilan kung bakit ang "gitnang posisyon" ng bawat servo motor ay dapat na manu-manong naayos upang makahanay sa mga binti. Upang makamit ito alisin ang mga sungay ng servo mula sa bawat servo at patakbuhin ang inisyal na sketch ng_setup.ino. Kapag ang mga motor ay naayos na sa kanilang gitnang posisyon muling ikabit ang mga sungay tulad na ang mga binti ay perpektong tuwid at ang paa ay perpektong parallel sa lupa. Kung ito ang kaso ikaw ay swerte. Kung hindi buksan ang mga Constant.h file na matatagpuan sa katabing tab at baguhin ang mga halaga ng offset ng servo (mga linya 1-6) hanggang sa ganap na nakahanay ang mga binti at ang paa ay patag. Maglaro kasama ang mga halaga at makakakuha ka ng isang ideya tungkol sa kung ano ang kinakailangan sa iyong kaso.

Kapag naitakda ang mga pare-pareho, tandaan ang mga halagang ito dahil kakailanganin ito sa paglaon.

Sumangguni sa mga larawan para sa tulong.

Hakbang 11: Medyo Tungkol sa Kinematics

Medyo Tungkol sa Kinematics
Medyo Tungkol sa Kinematics
Medyo Tungkol sa Kinematics
Medyo Tungkol sa Kinematics
Medyo Tungkol sa Kinematics
Medyo Tungkol sa Kinematics

Upang makagawa ang biped ng mga kapaki-pakinabang na pagkilos tulad ng pagtakbo at paglalakad sa iba't ibang mga lakad na kailangang i-program sa anyo ng mga landas ng paggalaw. Ang mga path ng paggalaw ay mga landas na kasama kung saan ang end effector (ang mga paa sa kasong ito) ay naglalakbay kasama. Mayroong dalawang paraan upang makamit ito:

  1. Ang isang diskarte ay upang pakainin ang magkasanib na mga anggulo ng iba't ibang mga motor sa isang mabangis na paraan ng puwersa. Ang diskarte na ito ay maaaring gumugol ng oras, nakakapagod, at puno din ng mga pagkakamali dahil ang paghuhukom ay pulos visual. Sa halip, mayroong isang mas matalinong paraan ng pagkamit ng nais na mga resulta.
  2. Ang ikalawang diskarte ay umiikot sa pagpapakain ng mga coordinate ng end effector sa halip na lahat ng magkasanib na mga anggulo. Ito ang kilala bilang Inverse Kinematics. Ang mga gumagamit ay nagko-input ng mga coordinate at ang magkasanib na mga anggulo ayusin upang iposisyon ang end effector sa tinukoy na mga coordinate. Ang pamamaraang ito ay maaaring isaalang-alang bilang isang itim na kahon na kumukuha ng mga input ng isang coordinate at naglalabas ng magkasanib na mga anggulo. Para sa mga interesado sa kung paano binuo ang mga equation ng trigonometric ng itim na kahon na ito ay maaaring tingnan ang diagram sa itaas. Para sa mga hindi interesado, ang mga equation ay naka-program na at maaaring magamit gamit ang pos function na tumatagal bilang input x, z at output ng tatlong mga anggulo na naaayon sa mga motor.

Ang program na naglalaman ng mga pagpapaandar na ito ay maaaring matagpuan sa susunod na hakbang.

Hakbang 12: Programming ang Arduino

Programming ang Arduino
Programming ang Arduino
Programming ang Arduino
Programming ang Arduino

Bago i-program ang Arduino, kailangang gawin ang kaunting mga pagbabago sa file. Naaalala mo ang mga pare-pareho na tinanong ko sa iyo na kumuha ng isang tala? Baguhin ang parehong mga pare-pareho sa mga halagang itinakda mo sa Constants.h file.

Tandaan: Kung ginamit mo ang mga disenyo na ibinigay sa Instructable na ito, wala kang dapat baguhin. Kung sakaling may ilan sa iyo na gumawa ng kanilang sariling mga disenyo kakailanganin mong baguhin ang ilan pang mga halaga kasama ang mga offset. Sinusukat ng pare-pareho na l1 ang distansya sa pagitan ng hip pivot at tuhod na pivot. Sinusukat ng pare-pareho na l2 ang distansya sa pagitan ng tuhod na pivot at bukung-bukong pivot. Kaya't kung nagdisenyo ka ng iyong sariling modelo, sukatin ang mga haba na ito, at baguhin ang mga pare-pareho. Ang pangwakas na dalawang mga pare-pareho ay ginagamit sa paglalakad. Patuloy na sinusukat ng stepClearance kung gaano kataas ang aangat ng paa habang pasulong pagkatapos ng isang hakbang at ang hakbang ng Taas ng taas ay sumusukat sa taas mula sa lupa hanggang sa balakang habang kumukuha ito ng mga hakbang.

Kapag ang lahat ng mga pare-pareho ay nabago ayon sa iyong pangangailangan, maaari mong i-upload ang pangunahing programa. Ang pangunahing programa ay nagpapasimuno lamang sa robot sa isang paninindigan sa paglalakad at nagsisimulang gumawa ng mga hakbang pasulong. Ang mga pag-andar ay maaaring mabago ayon sa iyong pangangailangan upang galugarin ang iba't ibang mga lakad, bilis at haba ng hakbang upang makita kung ano ang pinakamahusay na gumagana.

Hakbang 13: Pangwakas na Mga Resulta: Oras sa Eksperimento

Pangwakas na Mga Resulta: Oras sa Eksperimento
Pangwakas na Mga Resulta: Oras sa Eksperimento
Pangwakas na Mga Resulta: Oras sa Eksperimento
Pangwakas na Mga Resulta: Oras sa Eksperimento
Pangwakas na Mga Resulta: Oras sa Eksperimento
Pangwakas na Mga Resulta: Oras sa Eksperimento

Ang biped ay maaaring gumawa ng mga hakbang na nag-iiba mula 10 hanggang 2 cms ang haba nang hindi natatapos. Ang bilis din ay maaaring iba-iba habang pinapanatili ang balanse ng lakad. Ang biped na ito na sinamahan ng lakas ng Arduino ay nagbibigay ng isang matatag na platform upang mag-eksperimento sa iba't ibang mga lakad at iba pang mga layunin tulad ng paglukso o pagbabalanse habang sinisipa ang isang bola. Inirerekumenda ko sa iyo na subukang baguhin ang mga galaw ng galaw ng mga binti upang lumikha ng iyong sariling mga lakad at tuklasin kung paano nakakaapekto ang iba't ibang mga lakad sa pagganap ng robot. Ang mga sensor tulad ng isang IMU at distansya sensor ay maaaring idagdag sa system upang madagdagan ang mga pag-andar nito habang ang mga sensor ng puwersa ay maaaring idagdag sa mga binti upang mag-eksperimento sa pabagu-bagong lokomotion sa hindi pantay na mga ibabaw.

Inaasahan kong nasiyahan ka sa Instructable na ito at sapat na isang inspirasyon upang makabuo ng iyong sarili. Kung nagustuhan mo ang proyekto suportahan ito sa pamamagitan ng pagbagsak ng isang boto sa "Arduino Contest".

Maligayang Paggawa!

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

Unang Gantimpala sa Arduino Contest 2020

Inirerekumendang: