Sisukord:

Arduino juhitav robotkäsi W/ 6 vabadusastmega: 5 sammu (piltidega)
Arduino juhitav robotkäsi W/ 6 vabadusastmega: 5 sammu (piltidega)

Video: Arduino juhitav robotkäsi W/ 6 vabadusastmega: 5 sammu (piltidega)

Video: Arduino juhitav robotkäsi W/ 6 vabadusastmega: 5 sammu (piltidega)
Video: GATE OPENING DRIVE from a conventional tube and a wiper motor! 2024, Juuli
Anonim
Arduino juhitav robotkäsi W/ 6 vabadusastet
Arduino juhitav robotkäsi W/ 6 vabadusastet
Arduino juhitav robotkäsi W/ 6 vabadusastet
Arduino juhitav robotkäsi W/ 6 vabadusastet
Arduino juhitav robotkäsi W/ 6 vabadusastet
Arduino juhitav robotkäsi W/ 6 vabadusastet

Olen robootikarühma liige ja igal aastal osaleb meie rühm iga-aastasel Mini-Maker Faire'il. Alates 2014. aastast otsustasin ehitada iga aasta sündmuse jaoks uue projekti. Tol ajal oli mul umbes kuu aega enne üritust midagi kokku panna ja mul polnud aimugi, mida ma teha tahan.

Kaasliige postitas lingi "huvitavale avatud lähtekoodiga robotkäe ehitusele", mis pakkus mulle huvi. Plaanid olid lihtsalt käed ilma juhtimisseadmeteta või kontroller. Arvestades minu ajalisi piiranguid, tundus see tõesti hea lähtepunkt. Ainus probleem oli see, et mul polnud tõesti tööriistu alustamiseks.

Mõne rühma liikme abiga suutsin akrüülosad lõigata ja mulle saata, samuti kaks allpool näidatud 3D -prinditud osa. Koos mõningate üleöö riistvara tellimuste ja mitmete reisidega kohalikku ehituspoodi jõudsin õhtul enne üritust tööprojekti lõpule!

Nagu tavaliselt, on loos rohkem ja ehitises mitu kehastust, mis on koondatud sellele, mida näete allpool. Kui teil on huvi tagaloo vastu, leiate siit rohkem:

Samm: mida vajate - riistvara ja elektroonika

Mida vajate - riistvara ja elektroonika
Mida vajate - riistvara ja elektroonika
Mida vajate - riistvara ja elektroonika
Mida vajate - riistvara ja elektroonika

Esialgne projekti kavandaja elas Euroopas ja kasutas seejärel meetrilisi mõõtmisi ja seal levinud materjale. Näiteks pressplaat, mida ta kere jaoks kasutas, oli 5 mm paksune standard. Sarnane materjal siin USA -s on 1/8 , mis on umbes 3,7 mm paksune. See jättis tühimiku avadesse, mis olid algselt ette nähtud pressimiseks. Jooniste parandamise asemel kasutasin nende vuukide kinnitamiseks lihtsalt Gorilla liimi.

Ta kasutas ka M3 keermestatud mutreid ja polte, mis ei ole USA kohaliku ehituspoe standardvarustuses. Selle asemel, et neid kohapeal saadaolevateks valikuteks teisendada, tellisin ma lihtsalt riistvara veebist, nagu on näidatud minu osade loendis.

  • 22 - M3 x 0,5 x 23 mm
  • 15 - M3 x 15 mm vahekaugused
  • 40 - M3 kruvid
  • M3 kuuskantmutrid
  • M3 25 mm kruvid
  • 1 - kevad
  • 3/4 "kahepoolne kinnituslint
  • 5 - SG 5010 TowerPro Servo
  • 1 - SG92R TowerPro mini servo
  • 1 - SG90 TowerPro mini servo
  • 2,54 mm üherealine sirge tihvtiga päis
  • 1 - Poole suurusega leivaplaat
  • 1 - naissoost/isaspikendusjuhtmed - 40 x 6"
  • 1 - 12 "x 24" sinine akrüülleht või teie lemmikteenuse pakkujalt laserlõigatud tükid
  • 2 - 3mm x 20mm + 4mm x 5mm vuugilaagrite vahekaugused 3D trükitud (vt allpool)
  • 1 - Juhtpaneel *Vt Märkus juhtmestiku osas
  • 1 - Hajutatud RGB (kolmevärviline) 10 mm LED
  • 1 - Arduino Uno
  • 1 - tavaline LCD 16x2 + lisad - valge sinisel
  • 1 - i2c / SPI sümboliga LCD -seljakott
  • 1-Adafruit 16-kanaliline 12-bitine PWM/servo draiver
  • 1 - MCP3008 - 8 -kanaliline 10 -bitine ADC SPI -liidesega
  • 3 - JoySticki katkestusmooduli andur *Vt Märkus juhtmestiku osas
  • DC Barrel Jack
  • Vahelduvvoolu -alalisvoolu adapter
  • Servo pikenduskaablid - erineva pikkusega

Peaaegu kõik selle käe osad lõigati 1/8 tolli akrüülist. Kaks liigendlaagri vahekaugust tuleb siiski trükkida. Samuti eeldas originaal, et kaks liigendivahetalust peavad olema laagrivõlli suhtes 7 mm kõrgused. Kui alustasin õlavarre kokkupanekut, selgus kiiresti, et need on TowerPro servode kõrguse tõttu liiga kõrged. Pidin laskma teha uued liigendlaagrid, mille põhi oli ainult 3 mm, mis muide oli ikka natuke liiga kõrge, kuid juhitav. Peate teadma oma servode suhtelist kõrgust ja arvestama kahe õlavarre vahekaugusega:

Servokõrgus + servosarv + liigendlaager + kahepoolne teip = 47mm +/- 3mm.

2. samm: käe kokkupanek

Kätekomplekt
Kätekomplekt
Kätekomplekt
Kätekomplekt
Kätekomplekt
Kätekomplekt
Kätekomplekt
Kätekomplekt

Enne alustamist tsentreerige kindlasti kõik oma servod! Kui te ehituse ajal igal ajal servo asendit käsitsi liigutate, peate selle enne raami külge kinnitamist uuesti sisestama. See on eriti oluline õla servade puhul, mis peavad alati koos liikuma.

  1. Kinnitage alusservo ülemise alusplaadi külge, kasutades M3 25 mm kruvisid ja kuuskantmutreid. Ärge pingutage liiga palju!
  2. Kui kasutate ülaltoodud varuosade loendit, soovite järgnevalt kokku panna 5 alusvahet, keermestades 2 iga M3 x 0,5 x 23 mm vaheseina ja kinnitades need kuuskantmutritega ülemisele alusplaadile.
  3. Kinnitage alumine alusplaat 5 M3 kruviga tugipostide külge.
  4. Kinnitage õlaplaat akrüülist ohutu liimi abil kahe servopaigaldusplaadi külge. Kasutasin siin Gorilla liimi. MÄRKUS. Mõlema servoplaadi tagaküljel on auk, mis võimaldab nende ühendamiseks sisestada armatuuri. Veenduge, et augud oleksid ühel joonel!* Kui liim on käepärast, jätkake ja ühendage randme kinnitusplaat haaratsi põhiplaadiga.* Soovi korral saate ka randme servoplaadi liimida kahe randmeühendusplaadi külge. Ma ei teinud seda valimist, vaid kinnitasin need koos takistustega, nagu allpool kirjeldatud.
  5. Kinnitage nüüd kõvenenud õlaosa alusservole. Kasutasin servoga kõige laiemat sarve, mis oli kuue varrega kinnitussarv.
  6. Alumise käeraami lisamine õla servadele võib olla keeruline. Enne jätkamist soovitan sarved kinnitada õlavarre raamide külge. MÄRKUS: Enne servade raami külge kinnitamist tsentreerige oma servod õlaosa jaoks. Need kaks servot peavad liikuma ühekorraga ja kui need on valesti joondatud, põhjustavad need servo värisemist ja kui need on piisavalt valesti paigutatud, võivad raami või servosid kahjustada. * Kõik õla servod on paigaldatud klambritega kinnitusplaatide tagaküljele, selle asemel, et servod plaate läbi lasta - see võimaldab teil sarve servovõlli külge nurga all suruda ja kruvi kinnitada. Ärge kinnitage servot veel kinnitusplaadi külge. * Seejärel lisage sisemine servo ja kinnitage õlg

  7. Pange õlavarre raam ja servod kokku, surudes servod läbi õlgade ruumide ja seejärel sisestades vaheseinad mõlema õlavarreplaadi vahele ja kinnitades M3 kruvidega.
  8. Lisage kahepoolne kleeplint küünarnuki liigendivahe tagaküljele ja lõigake üleliigne.
  9. Kinnitage vahekaugus servo põhja, mis toimib küünarnuki täiturmehhanismina.
  10. Libistage õlavarre komplekt õlavarre raami külge ja kinnitage servosarve kruvid.
  11. Lisage tugevdustõkked kahe alumise õlaplaadi vahele. Kaalu langetamiseks kasutasin kõigi nelja asemel kahte.
  12. Lisage kahepoolne kleeplint randme ülemise liigendivahe tagaküljele ja lõigake üleliigne osa ära.
  13. Kinnitage vahetükk servo põhjale, mis toimib randmeajamina.
  14. Kinnitage välimine randmeplaat randmeservo sarve külge ja kinnitage sarvkruviga.
  15. Pange randme servoplaat kokku kahe randmeühendusplaadi ja eraldusjoontega.
  16. Kinnitage randmeservo servoplaadi külge servoklambriplaadiga.
  17. Peate kinnitama randmesarve servo külge, enne kui haaratsikomplekti selle sarve külge kinnitate, kuna sarvkruvi ava on blokeeritud.
  18. Enne haaratsi servoserva servole kinnitamist pange haaratsitükid lõdvalt kokku. See võimaldab teil eelmises etapis sarve maha keerata.
  19. Kinnitage haaratsi sarv oma servo külge ja keerake veel kinni haardeühendusi hoidvad kruvid. MÄRKUS: ärge pingutage neid mutreid ja polte täielikult, kuna need peavad olema lahti, et haarats saaks liikuda.

Samm: juhtmestik ja juhtpaneel

Juhtmed ja juhtpaneel
Juhtmed ja juhtpaneel
Juhtmed ja juhtpaneel
Juhtmed ja juhtpaneel
Juhtmed ja juhtpaneel
Juhtmed ja juhtpaneel

Ehitasin selle projekti arendusplatvormiks mõnele ideele, mis mul hilisema haridusprojekti jaoks on. Niisiis, enamik minu ühendusi on lihtsad dupont -pistikud. Ainus jootmine, mille tegin, oli MCP3008. Kui leiate selle komponendi jaoks purunemisplaadi, peaksite saama selle käejootmisvaba konstrueerida.

Komponente on 3 rühma:

  1. Sisendid - need üksused võtavad kasutajalt teavet ja koosnevad juhtkangidest ja mcp3008 ADC -st.
  2. Väljundid - need üksused edastavad andmeid maailmale, näidates kasutajale olekut või uuendades servosid asukohaandmetega. Need esemed on LCD -ekraan, LCD -seljakott, RGB -LED, servo draiveriplaat ja lõpuks servod.
  3. Töötlemine - Arduino lõpetab viimase rühma, mis võtab sisendite andmed sisse ja lükkab andmed koodi juhiste kohaselt väljunditesse.

Ülaltoodud Fritzingi skeem kirjeldab üksikasjalikult kõigi komponentide tihvtühendusi.

Sisendid

Alustame sisenditega. Juhtkangid on analoogseadmed - see tähendab, et need esitavad Arduino sisendiks muutuva pinge. Igal kolmel juhtkangil on kaks analoogväljundit X ja Y jaoks (üles, alla, vasakule paremale), mis teeb Arduinole kokku 6 sisendit. Kuigi Arduino Unol on saadaval 6 analoogsisendit, peame ekraani ja servokontrolleri I2C -side jaoks kasutama kahte neist tihvtidest.

Seetõttu lisasin MCP3008 analoog -digitaalmuunduri (ADC). See kiip võtab vastu kuni 8 analoogsisendit ja teisendab need digitaalseks signaaliks üle Arduino SPI sidepistikute järgmiselt:

  • MCP tihvtid 1-6> Pöidla juhtkangi muutuvad väljundid
  • MCP tihvtid 7 ja 8> Ühendust pole
  • MCP Pin 9 (DGND)> Maandus
  • MCP pin 10 (CS/SHDN)> Uno Pin 12 lahti
  • MCP pin 11 (DIN)> Uno Pin 11 lahti
  • MCP pin 12 (DOUT)> Uno Pin 10 lahti
  • MCP tihvt 13 (CLK)> Vabastage tihvt 9
  • MCP tihvt 14 (AGND)> Maandus
  • MCP Pin 15 & 16> +5V

Skeemil olevad juhtkangi ühendused on lihtsalt näitena toodud. Sõltuvalt sellest, milliseid juhtkange ostetakse ja kuidas need on paigaldatud, võivad teie ühendused minu omast erineda. Erinevatel juhtkangi kaubamärkidel võib olla erinev pistikupesa ning ka X ja Y suunad võivad olla erinevad. Oluline on mõista, mida iga sisend ADC -s esindab. Iga tihvt tähistab minu koodis järgmisi suhteid:

  • Tihvt 1 - alus - selle tihvti analoogandmed pööravad roboti madalaimat servot
  • Tihvt 2 - õlg - selle tihvti analoogandmed pööravad kahte servot baasservo kohal
  • Tihvt 3 - küünarnukk - selle tihvti analoogandmed pööravad järgmise servo õla servadest üles
  • Tihvt 4 - UP/DN randmeosa - selle tihvti analoogandmed pööravad randme servot, tõstes ja langetades haaratsikoost
  • Tihvt 5 - haarats - selle tihvti analoogandmed avavad ja sulgevad haaratsi
  • Tihvt 6 - pööra randmeosa - selle tihvti analoogandmed pööravad haaratsit

MÄRKUS. Osade loendis viidatud pöidla juhtkangide ostmisel ja paigaldamisel pidage meeles, et moodulite suund võib minu omast erineda, seega katsetage x- ja y -väljundeid ADC -ga nõuetekohaseks ühendamiseks. Samuti, kui kasutate minu 3D -prinditud juhtpaneeli, võivad kinnitusavad olla minu omast nihutatud.

Väljundid

Adafruit PWM/servokontroller muudab selle projekti ülilihtsaks. Lihtsalt ühendage servod servo päistega ja kõik toite- ja signaaliühendused on hallatud. Kui te ei leia eriti pikkade juhtmetega servosid, soovite hankida erineva pikkusega servokaablipikenduste komplekti, nii et kõik teie servokaablid jõuaksid teie kontrollerplaadini.

Servod on ühendatud järgmiselt:

  • Positsioon 0 - alusservo
  • Positsioon 1 - õla servo (servo Y kaabel)
  • Asend 2 - küünarnuki servo
  • Positsioon 3 - randme 1 servo
  • Positsioon 4 - Gripper Servo
  • Positsioon 5 - randme 2 servo

Lisaks on VCC ja V + mõlemad ühendatud +5 voltiga ja GND on ühendatud maandusega.

MÄRKUS 1: Üks suur märkus siin: kogu projekti toitepinge tuleb sisse servo juhtpaneeli toite klemmliistust. Servokontrolleri V+ tihvt annab tegelikult voolu klemmiplokist ülejäänud vooluahelasse. Kui teil on vaja Uno programmeerida, soovitan tungivalt enne Uno ühendamist arvutiga V+ pin lahti ühendada, kuna servode voolutugevus võib teie USB -porti kahjustada.

MÄRKUS 2: Ma kasutan projekti toiteks 6V vahelduvvoolu -alalisvoolu seinaadapterit. Soovitan adapterit, mis suudab toita vähemalt 4A voolu, nii et kui üks või mitu servot seotakse, ei hakka ootamatu voolutugevus teie süsteemi pruuniks muutuma ja Arduino lähtestama.

16X2 LCD -ekraan on ühendatud Adafruit LCD -seljakotiga, et kasutada ära I2C -liidest, mida servokontroller juba kasutab. Servokontrolleri SCL ja seljakoti CLK ühendavad mõlemad Uno tihvtiga A5. Samamoodi ühendatakse servojuhtimispuldi SDA ja seljakoti DAT mõlemad Uno tihvtiga A4. Lisaks on 5V ühendatud +5 voltiga ja GND on ühendatud maandusega. LAT seljakotis pole millegagi ühendatud.

Lõpuks on RGB LED ühendatud Uno kontaktidega 7 (PUNANE), 6 (roheline) ja 5 (sinine). LED -i maandusjalg on ühendatud maandusega läbi 330Ohm takisti.

Töötlemine

Viimane, kuid mitte vähem tähtis, ülejäänud Arduino ühendused, mida pole eespool loetletud, on järgmised: pin 5V on ühendatud +5 voltiga ja GND on ühendatud maandusega.

Seadistamisel kasutasin leivaplaadi külgrööpe, et siduda kõik toite- ja maandusliinid, samuti kõigi seadmete I2C -tihvtid.

4. samm: kood

Kood
Kood

Nagu varem öeldud, ehitasin selle projekti algselt oma kohaliku Maker Faire'i demonstratsiooniks. Ma tahtsin, et see oleks midagi, mida lapsed ja täiskasvanud saaksid meie boksis olles mängida. Nagu selgub, oli see palju populaarsem, kui ma ette kujutasin - nii palju, et lapsed tülitsesid selle pärast. Niisiis, kui saabus aeg uuesti kirjutamiseks, lisasin "Demorežiimi", mis rakendab ajapiirangut.

Käsi istub seal ja ootab, et keegi liigutaks juhtkangi ja kui ta seda teeb, käivitab see 60 -sekundilise taimer. 60 sekundi lõpus lõpetab see kasutaja sisendi võtmise ja "puhkab" 15 sekundiks. Lühike tähelepanu on see, mis nad on, see puhkeperiood vähendas oluliselt väidet kinni jääda.

Põhitoimingud

Allpool olevas viiteosas loetletud kood on üsna lihtne. Massiiv jälgib 6 liigendit minimaalse, maksimaalse ulatuse, koduasendi ja hetkeasendiga. Kui õlg on sisse lülitatud, määratleb käivitusfunktsioon MCP3008 -ga rääkimiseks vajalikud teegid, LCD -seljakoti (ja seejärel ekraaniga) ning LED -tihvtid. Sealt kontrollib ta põhisüsteeme ja suundub käe koju. Kodune funktsioon algab haaratsist ja ulatub aluse poole nii, et see minimeeriks sidumist tavalistes tingimustes. Kui käsi on täielikult välja sirutatud, võib olla parem enne käsivarre sisselülitamist käsitsi koju lülitada. Kuna üldised servod ei anna oma positsiooni kohta tagasisidet, peame igaüks paigutama etteantud punkti ja jälgima, kui kaugele igaüks liikus.

Peamine silmus algab kõigepealt ooterežiimis - otsitakse juhtnuppe, et oma keskasendist eemale liikuda. Kui see juhtub, muudab põhiahel olekuid loendusolekuks. Kui kasutaja liigutab igat juhtkangi, lisab juhthoova suhteline asend keskelt praegusele teadaolevale positsioonile või lahutab selle ning värskendab sobivat servot. Kui servo on jõudnud ühes suunas määratud piirini, peatub juhtkang. Kasutaja peab juhtnuppu uuesti liigutamiseks teises suunas liigutama. See on tarkvarapiirang servodele, olenemata nende riistvara peatustest. See funktsioon võimaldab vajadusel hoida käe liigutusi kindlaksmääratud tööpiirkonnas. Kui juhtkangi vabastatakse keskele, peatub liikumine.

See kood on lihtsalt üldine lähtepunkt. Saate oma režiime lisada vastavalt soovile. Üks näide võib olla taimerita pideva töörežiim või võib-olla lisada juhtkangi surunupud sisenditeks ja kirjutada salvestus-/taasesitusrežiimi.

Samm: lingid ja ressursid

Arm Viited

  • Postitus, mis inspireeris seda projekti
  • Original Designers blog posts
  • Thingiverse Arm
  • Thingiverse mini servohaarats

Tarkvara Libries

  • Adafruit PWM/servokontrolleri ressursid
  • MCP3008 raamatukogu
  • MCP3008 andmeleht

Juhtpaneel ja kood

  • Tinkercadi joonis minu tehtud paneelist
  • Praegune koodide hoidla

Soovitan: