Talaan ng mga Nilalaman:

Bioinspired Robotic Snake: 16 Hakbang (na may Mga Larawan)
Bioinspired Robotic Snake: 16 Hakbang (na may Mga Larawan)

Video: Bioinspired Robotic Snake: 16 Hakbang (na may Mga Larawan)

Video: Bioinspired Robotic Snake: 16 Hakbang (na may Mga Larawan)
Video: Locomotion of a modular snake robot using bio-inspired controllers 2024, Hunyo
Anonim
Image
Image

Naging inspirasyon ako upang simulan ang proyektong ito pagkatapos makita ang mga video ng pagsasaliksik ng parehong pag-akyat ng mga puno ng robotic na ahas at mga robotic eel. Ito ang aking unang pagtatangka at pagbuo ng mga robot gamit ang serpentine locomotion, ngunit hindi ito ang magiging huli ko! Mag-subscribe sa YouTube kung nais mong makita ang mga pag-unlad sa hinaharap.

Sa ibaba binabalangkas ko ang pagtatayo ng 2 magkakaibang mga ahas kasama ang mga file para sa pag-print sa 3D at isang talakayan tungkol sa code at mga algorithm upang makamit ang paggalaw na tulad ng ahas. Kung nais mong ipagpatuloy ang karagdagang kaalaman, pagkatapos basahin ang itinuturo na ito ay iminumungkahi ko na basahin ang mga link sa seksyon ng mga sanggunian sa ilalim ng pahina.

Ang itinuturo na ito ay isang teknikal na 2-in-1, na ipinapaliwanag ko kung paano gumawa ng 2 magkakaibang bersyon ng isang robotic na ahas. Kung interesado ka lamang sa pagbuo ng isa sa mga ahas ay huwag pansinin ang mga tagubilin para sa iba pang ahas. Ang 2 magkakaibang mga ahas na ito ay magmumula dito na tinukoy sa paggamit ng mga sumusunod na parirala na mapagpapalit:

  1. Single ahas na axis, 1D ahas, o dilaw at itim na ahas
  2. Dobleng axis ahas, 2D ahas, o puting ahas

Siyempre maaari mong i-print ang mga ahas sa anumang kulay na filament na gusto mo. Ang pagkakaiba lamang sa pagitan ng dalawang ahas ay sa ahas na 2D bawat motor ay paikutin 90 degree na nauugnay sa nauna, samantalang sa ahas na 1D lahat ng mga motor ay nakahanay sa isang solong axis.

Ang isang pangwakas na paunang salita ay habang ang bawat isa sa aking mga ahas ay mayroon lamang 10 servos posible na gawin ang mga ahas na may higit o mas kaunti na mga servo. Ang isang bagay na dapat isaalang-alang ay na sa mas kaunting mga servo makakamit mo ang hindi gaanong matagumpay na paggalaw, at sa maraming mga servo marahil ay mas matagumpay ka sa paggalaw ng ahas ngunit kakailanganin mong isaalang-alang ang gastos, kasalukuyang gumuhit (tingnan ang mga susunod na pangungusap) at ang bilang ng mga pin magagamit sa Arduino. Huwag mag-atubiling baguhin ang haba ng ahas, subalit tandaan na kakailanganin mo ring baguhin ang code sa account para sa pagbabagong ito.

Hakbang 1: Mga Bahagi

Ito ay isang listahan ng mga bahagi para sa isang solong ahas, kung nais mong gumawa ng parehong mga ahas kailangan mong doble ang dami ng mga bahagi.

  • 10 mga servo ng MG996R *
  • 1.75mm 3D filament ng pag-print
  • 10 ball bearings, part number 608 (Iniligtas ko ang minahan mula sa panlabas na gilid ng Jitterspin fidget spinners)
  • 20 maliit na ball bearings, bahagi ng numero r188, para sa mga gulong ** (Iniligtas ko ang minahan mula sa panloob na bahagi ng Jitterspin fidget spinners)
  • 40 philips head screws 6-32 x 1/2 "(o katulad)
  • 8 na mas mahahabang turnilyo (wala akong bahagi na numero ngunit pareho ang lapad ng mga tornilyo sa itaas)
  • Hindi bababa sa 20 piraso ng 4 inch zipties (nasa sa iyo kung ilan ang nais mong gamitin)
  • 5m bawat isa sa pula at itim na 20 gauge wire o mas makapal ***
  • Karaniwang 22 gauge wire
  • 30 male header pin (nahati sa 10 maraming 3)
  • Arduino Nano
  • Mga naka-print na bahagi ng 3D (tingnan ang susunod na seksyon)
  • Ilang uri ng kapangyarihan (tingnan ang seksyon: "Pagpapatakbo ng ahas" para sa karagdagang impormasyon), personal kong gumamit ng binagong ATX power supply
  • 1000uF 25V electrolytic capacitor
  • Init ang pag-urong ng tubo ng iba't ibang laki, panghinang, pandikit at iba pang iba't ibang mga tool

* Maaari kang gumamit ng iba pang mga uri ngunit kakailanganin mong idisenyo muli ang mga 3D file upang magkasya sa iyong mga servos. Gayundin kung susubukan mong gumamit ng mas maliit na mga servo tulad ng sg90, maaari mong makita na hindi sapat ang kanilang lakas (hindi ko ito nasubukan at nasa sa iyo ang mag-eksperimento).

** hindi mo kailangang gumamit ng maliliit na ball bearings para sa mga gulong, marami lang akong inilatag sa paligid. Bilang kahalili maaari mong gamitin ang mga gulong LEGO o iba pang mga gulong ng laruan.

*** Ang wire na ito ay maaaring magkaroon ng hanggang sa 10 amps na dumadaan dito, masyadong manipis at matutunaw ito ng kasalukuyang. Tingnan ang pahinang ito para sa karagdagang impormasyon.

Hakbang 2: Mga Kompanya sa Pag-print ng 3D

Assembly of the Snakes
Assembly of the Snakes

Kung ginagawa mo ang 1D ahas i-print ang mga piraso.

Kung ginagawa mo ang 2D ahas i-print ang mga piraso.

Mahalagang tala: Maaaring mali ang sukat! Dinisenyo ko ang aking mga bahagi sa Fusion 360 (sa mga yunit ng mm), na-export ang disenyo bilang isang.stl file sa MakerBot software at pagkatapos ay nai-print ito sa isang printer ng Qidi Tech (isang bersyon ng clone ng MakerBot Replicator 2X). Sa isang lugar kasama ang daloy ng trabaho na ito ay may isang bug at lahat ng aking mga kopya ay lumabas na masyadong maliit. Hindi ko nakilala ang lokasyon ng bug ngunit may pansamantalang pag-aayos ng pag-scale sa bawat pag-print sa 106% na laki sa MakerBot software, inaayos nito ang problema.

Dahil dito, binigyan ng babala na kung mai-print mo ang mga file sa itaas maaari silang maling na-scale. Iminumungkahi ko na i-print lamang ang isang piraso at suriin kung umaangkop ito sa iyong servo ng MG996R bago i-print ang lahat.

Kung nag-print ka ng anuman sa mga file mangyaring ipaalam sa akin kung ano ang kinalabasan: kung ang pag-print ay masyadong maliit, tamang tama, masyadong malaki at kung magkano ang porsyento. Sa pamamagitan ng pagtutulungan bilang isang komunidad maaari naming i-troubleshoot ang lokasyon ng bug gamit ang iba't ibang mga 3D printer at.stl slicers. Kapag nalutas ang isyu ay ia-update ko ang seksyong ito at ang mga link sa itaas.

Hakbang 3: Assembly of the Snakes

Assembly of the Snakes
Assembly of the Snakes
Assembly of the Snakes
Assembly of the Snakes
Assembly of the Snakes
Assembly of the Snakes

Ang proseso ng pagpupulong ay halos pareho para sa parehong mga bersyon ng ahas. Ang pagkakaiba lamang ay ang nasa 2D ahas bawat motor ay paikutin 90 degree na kaugnay sa nauna, samantalang sa ahas na 1D lahat ng mga motor ay nakahanay sa isang solong axis.

Magsimula sa pamamagitan ng pag-unscrew ng servo, i-save ang mga turnilyo at alisin ang mga tuktok at ilalim na piraso ng itim na plastik na frame, at mag-ingat na hindi mawala ang anuman sa mga gears! I-slide ang servo sa naka-print na frame na 3D, na oriented tulad ng sa mga larawan sa itaas. Palitan ang tuktok ng kaso ng servo, at i-tornilyo ito sa lugar na may apat na 6-32 1/2 na mga tornilyo. I-save ang ilalim ng servo frame (kung nais mong gamitin itong muli sa mga susunod na proyekto) at palitan ito ng 3D naka-print na kaso, ang pagkakaiba lamang ay ang karagdagang knob para sa isang bola na nadulas upang i-slip. I-tornilyo ang servo pabalik nang magkakasama, ulitin ng 10 beses.

MAHALAGA: Bago magpatuloy kailangan mong mag-upload ng code sa Arduino at ilipat ang bawat servo sa 90 degree. Ang kabiguang gawin ito ay maaaring magresulta sa pagbali mo sa isa o higit pang servo at / o mga naka-print na frame sa 3D. Kung hindi ka sigurado kung paano ilipat ang isang servo sa 90 degree tingnan ang pahinang ito. Karaniwang ikonekta ang pulang kawad ng servo sa 5V sa Arduino, ang brown wire sa GND at ang dilaw na kawad sa digital pin 9, pagkatapos ay i-upload ang code sa link.

Ngayon na ang bawat servo ay nasa 90 degree, magpatuloy:

Ikonekta ang 10 mga segment sa pamamagitan ng pagpasok ng 3D naka-print na hawakan ng pinto mula sa isang kaso ng servo sa butas ng isang pangalawang piraso ng segment, pagkatapos ay may kaunting lakas na itulak ang ehe ng servo sa butas nito (tingnan ang mga larawan sa itaas at video para sa kalinawan). Kung ginagawa mo ang ahas na 1D, ang lahat ng mga segment ay dapat na nakahanay, kung ginagawa mo ang ahas na 2D, ang bawat segment ay dapat na paikutin 90 degree sa nakaraang segment. Tandaan na ang buntot at frame ng ulo ay kalahati lamang ng haba ng iba pang mga segment, ikonekta ang mga ito ngunit huwag puna ang mga piraso ng hugis ng pyramid hanggang matapos namin ang mga kable.

Ikabit ang servo arm na braso at i-tornilyo ito sa posisyon. I-slip ang ball bear sa 3D naka-print na hawakan, kakailanganin nito ng dahan-dahang pagpisil ng 2 mga semi-bilog na post na magkasama. Nakasalalay sa kung anong tatak ng filament ang ginagamit mo at ang density ng infill, ang mga post ay maaaring masyadong malutong at mabilis, sa palagay ko hindi ito ang magiging kaso ngunit gayunpaman huwag gumamit ng labis na puwersa. Personal kong ginamit ang PLA filament na may 10% infill. Kapag nakabukas na ang bola, dapat itong manatiling naka-lock ng mga overhang sa knob.

Hakbang 4: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Ang circuit ay pareho para sa parehong robotic ahas. Sa panahon ng proseso ng mga kable siguraduhing may sapat na puwang ng mga kable para sa bawat segment upang paikutin nang kumpleto, lalo na sa 2D ahas.

Sa itaas ay isang circuit diagram para sa mga kable na may lamang 2 servos. Sinubukan kong gawin ang isang pagguhit ng circuit na may 10 servos ngunit napakaraming tao. Ang pagkakaiba lamang sa pagitan ng larawang ito at totoong buhay ay kailangan mong i-wire ang 8 higit pang mga servos nang kahanay at ikonekta ang mga wire ng signal ng PWM sa mga pin sa Arduino Nano.

Kapag ang mga kable ng mga linya ng kuryente ay gumamit ako ng isang solong piraso ng 18 gauge wire (sapat na makapal upang mapaglabanan ang 10amp) bilang pangunahing linya ng 5V na tumatakbo sa haba ng ahas. Gamit ang mga wire striper inalis ko ang isang maliit na seksyon ng insulator sa 10 regular na agwat, at naghinang ng isang maliit na piraso ng kawad mula sa bawat isa sa mga agwat na ito ng isang pangkat ng 3 male header pin. Ulitin ito sa pangalawang pagkakataon para sa itim na 18 gauge GND wire at isang pangalawang male header pin. Sa wakas maghinang ng isang mas mahabang kawad sa ika-3 male header pin, ang pin na ito ay magdadala ng signal ng PWM sa servo mula sa Arduino Nano sa ulo ng ahas (ang kawad ay dapat sapat na mahaba upang maabot, kahit na yumuko ang mga segment). Ikabit ang heat shrink tube kung kinakailangan. Ikonekta ang 3 lalaking pin ng header ng 3 babae na header pin ng servo wires. Ulitin ng 10 beses para sa bawat isa sa 10 servos. Sa huli ang nakamit na ito ay ang mga kable ng servos nang kahanay at nagpapatakbo ng mga wire ng signal ng PWM sa Nano. Ang dahilan para sa mga pin na header ng lalaki / babae ay upang madali mong mapaghiwalay ang mga segment at palitan ang mga servo kung masira sila nang hindi nai-unsold ang lahat.

Paghinang ang GND at 5V wires sa isang 3x7 hole perf board sa buntot na may isang capacitor at screw terminal. Ang layunin ng capacitor ay alisin ang anumang kasalukuyang mga spike ng draw na sanhi ng pagsisimula ng mga servos, na maaaring i-reset ang Arduino Nano (kung wala kang isang kapasitor maaari kang makalayo nang wala ito, ngunit mas mahusay na maging ligtas). Tandaan na ang mahabang prong ng electrolytic capacitors ay kailangang maiugnay sa linya ng 5V at ang mas maikling prong sa linya ng GND. Paghinang ang GND wire sa GND pin ng Nano at ang 5V wire sa 5V pin. Tandaan kung gumagamit ka ng ibang boltahe, (tingnan ang susunod na seksyon), sabihin ang isang baterya ng Lipo na may 7.4V, pagkatapos ay i-wire ang pulang wire sa Vin pin, HINDI ang 5V pin, ang paggawa nito ay sisira sa pin.

Solder ang 10 PWM signal wires sa mga pin sa Arduino Nano. Na-wire ko ang minahan sa sumusunod na pagkakasunud-sunod, maaari kang pumili upang iba ang wire mo ngunit tandaan lamang na kakailanganin mong baguhin ang mga linya ng servo.attach () sa code. Kung hindi ka sigurado kung ano ang sinasabi ko tungkol sa wire lamang ito sa parehong paraan tulad ng ginawa ko at wala kang mga isyu. Sa pagkakasunud-sunod mula sa servo sa buntot ng ahas hanggang sa ulo ng ahas, inilagay ko ang pareho kong mga ahas sa sumusunod na pagkakasunud-sunod. Pagkonekta ng mga signal pin sa: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Gumamit ng mga zipties upang linisin ang mga kable. Bago magpatuloy suriin na ang lahat ng mga segment ay maaaring lumipat na may sapat na silid para sa mga wire na ilipat nang hindi hinihila. Ngayon na tapos na ang mga kable maaari naming i-tornilyo ang mga cap ng hugis ng ulo at buntot na pyramid. Tandaan na ang buntot ay may butas para sa tether na lumabas at ang ulo ay may butas para sa Arduino programming cable.

Hakbang 5: Pagpapatakbo ng Ahas

Pagpapatakbo ng Ahas
Pagpapatakbo ng Ahas
Pagpapatakbo ng Ahas
Pagpapatakbo ng Ahas
Pagpapatakbo ng Ahas
Pagpapatakbo ng Ahas

Dahil ang mga servo ay wired nang kahanay, lahat sila ay nakakakuha ng parehong boltahe, ngunit ang kasalukuyang ay dapat na maidagdag. Sa pagtingin sa datasheet para sa mga servo ng MG996r maaari silang gumuhit ng hanggang sa 900mA bawat isa habang tumatakbo (sa pag-aakalang walang pagtigil). Sa gayon ang kabuuang kasalukuyang gumuhit kung ang lahat ng 10 servos ay gumagalaw nang sabay-sabay ay 0.9A * 10 = 9A. Tulad ng isang normal na 5v, hindi gagana ang 2A wall socket adapter. Napagpasyahan kong baguhin ang isang supply ng kuryente ng ATX, na may kakayahang 5v sa 20A. Hindi ko ipaliwanag kung paano ito gawin, dahil napag-usapan ito nang marami sa Mga Instructable at YouTube. Ipapakita sa iyo ng isang mabilis na paghahanap sa online kung paano baguhin ang isa sa mga power supply na ito.

Ipagpalagay na binago mo ang suplay ng kuryente, ito ay simpleng kaso ng pagkonekta ng isang mahabang tether sa pagitan ng supply ng kuryente at mga terminal ng tornilyo sa ahas.

Ang isa pang pagpipilian ay ang paggamit ng isang onboard lipo na baterya pack. Hindi ko ito nasubukan kaya't nasa sa iyo ang disenyo ng isang mount para sa mga baterya at i-wire ang mga ito. Tandaan ang mga boltahe ng pagpapatakbo, kasalukuyang pagguhit ng mga servo at ng Arduino (huwag maghinang ng anuman maliban sa 5v sa ang 5v pin sa Arduino, pumunta sa Vin pin kung mayroon kang isang mas mataas na boltahe).

Hakbang 6: Subukan ang Lahat Ay Gumagana

Bago magpatuloy hayaan lamang subukan ang lahat ng bagay ay gumagana. I-upload ang code na ito. Dapat ilipat ng iyong ahas ang bawat servo nang paisa-isa sa pagitan ng 0-180 at pagkatapos ay tapusin sa pamamagitan ng pagtula sa isang tuwid na linya. Kung hindi ito may isang bagay na mali, malamang na ang mga kable ay hindi tama o ang mga servos ay hindi pa muna nakasentro sa 90 degree na nabanggit sa seksyong "Assembly of the snakes".

Hakbang 7: Code

Kasalukuyang walang remote control para sa ahas, lahat ng paggalaw ay naka-preprogrammed at maaari mong piliin kung ano ang gusto mo. Bubuo ako ng isang remote control sa bersyon 2, ngunit kung nais mong kontrolin ito nang malayuan iminumungkahi ko na tumingin sa iba pang mga tutorial sa Mga Instructable at iakma ang ahas upang maging katugma ng bluetooth.

Kung ginagawa mo ang 1D ahas i-upload ang code na ito.

Kung ginagawa mo ang 2D ahas i-upload ang code na ito.

Hinihimok kita na maglaro kasama ang code, gumawa ng iyong sariling mga pagbabago, at lumikha ng mga bagong algorithm. Basahin ang susunod na maraming mga seksyon para sa isang hindi detalyadong paliwanag ng bawat uri ng lokomotion at kung paano gumagana ang code para dito.

Hakbang 8: Mga Kaliskis Vs Wheels

Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong
Kaliskis Vs Gulong

Ang isa sa mga pangunahing paraan upang maisulong ang mga ahas ay sa pamamagitan ng hugis ng kanilang mga kaliskis. Pinapayagan ng kaliskis para sa mas madaling paggalaw. Para sa isang karagdagang paliwanag panoorin ang video na ito mula 3:04 pataas upang makita kung paano nakakatulong ang kaliskis sa ahas na sumulong. Ang pagtingin sa 3:14 sa parehong video ay nagpapakita ng epekto kapag ang mga ahas ay nasa isang manggas, inaalis ang alitan ng mga kaliskis. Tulad ng ipinakita sa aking video sa YouTube kapag ang robotic na 1D na ahas ay sumusubok na dumulas sa damo nang walang kaliskis, hindi ito gumagalaw o paatras dahil ang mga puwersa ay umabot sa isang net zero. Tulad ng kailangan namin upang magdagdag ng ilang mga artipisyal na kaliskis sa ilalim ng ilalim ng robot.

Ang pananaliksik sa muling paggawa ng lokomotion sa pamamagitan ng kaliskis ay ginawa sa Harvard University at ipinakita sa video na ito. Hindi ko naisip ang isang katulad na pamamaraan upang ilipat ang mga kaliskis pataas at pababa sa aking robot at sa halip ay tumira para sa paglakip ng passive 3D naka-print na kaliskis sa ilalim.

Sa kasamaang palad napatunayan na hindi ito epektibo (tingnan sa aking video sa YouTube sa 3:38) habang ang mga kaliskis ay nakalusot pa sa ibabaw ng karpet sa halip na mahuli ang mga hibla at dagdagan ang alitan.

Kung nais mong mag-eksperimento sa mga kaliskis na ginawa ko maaari mong i-print ang 3D ng mga file mula sa aking GitHub. Kung gumawa ka ng iyong sariling tagumpay ipaalam sa akin sa mga komento sa ibaba!

Gamit ang ibang diskarte sinubukan ko ang paggamit ng mga gulong gawa sa r188 ball bearings na may heat shrink tubing sa labas bilang isang 'gulong'. Maaari mong i-print ang 3D ang mga axle ng plastik na gulong mula sa.stl na mga file sa aking GitHub. Habang ang mga gulong ay hindi tumpak na biologically, ang mga ito ay magkatulad sa kaliskis na ang pag-ikot ng pasulong ay madali ngunit ang galaw ng gilid sa gilid ay mas mahirap. Maaari mong makita ang matagumpay na resulta ng mga gulong sa aking video sa YouTube.

Hakbang 9: Slithering Motion (solong Axis Snake)

Unang Gantimpala sa Paligsahan na Make it Mov

Inirerekumendang: