Përmbajtje:

Krahu robotik i kontrolluar Arduino W/ 6 shkallë lirie: 5 hapa (me fotografi)
Krahu robotik i kontrolluar Arduino W/ 6 shkallë lirie: 5 hapa (me fotografi)

Video: Krahu robotik i kontrolluar Arduino W/ 6 shkallë lirie: 5 hapa (me fotografi)

Video: Krahu robotik i kontrolluar Arduino W/ 6 shkallë lirie: 5 hapa (me fotografi)
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Korrik
Anonim
Arduino kontrollonte krahun robotik me 6 shkallë lirie
Arduino kontrollonte krahun robotik me 6 shkallë lirie
Arduino kontrollonte krahun robotik me 6 shkallë lirie
Arduino kontrollonte krahun robotik me 6 shkallë lirie
Arduino kontrollonte krahun robotik me 6 shkallë lirie
Arduino kontrollonte krahun robotik me 6 shkallë lirie

Unë jam anëtar i një grupi robotikësh dhe çdo vit grupi ynë merr pjesë në një Mini-Maker Faire vjetor. Duke filluar nga viti 2014, vendosa të ndërtoj një projekt të ri për ngjarjen e çdo viti. Në atë kohë, unë kisha rreth një muaj para ngjarjes për të bashkuar diçka dhe nuk e kisha idenë se çfarë doja të bëja.

Një anëtar tjetër postoi një lidhje me "një ndërtim interesant të krahut robotik me burim të hapur" që arriti interesin tim. Planet ishin vetëm një krah pa kontroll ose kontrollues. Duke marrë parasysh kufizimet e mia në kohë, më dukej si një pikënisje vërtet e mirë. Problemi i vetëm ishte se nuk kisha vërtet mjete për të filluar.

Me ndihmën e disa prej anëtarëve të grupit, unë kam qenë në gjendje të marr pjesët akrilike dhe të më dërgohen, si dhe dy pjesët e printuara 3D të paraqitura më poshtë. Kombinuar me disa porosi të pajisjeve brenda natës dhe disa udhëtime në dyqanin lokal të pajisjeve, përfundova një projekt pune një natë para ngjarjes!

Siç ndodh zakonisht, ka më shumë në histori dhe disa mishërime në ndërtimin që është përmbledhur në atë që shihni më poshtë. Nëse keni interes për historinë e pasme, më shumë mund të gjeni këtu:

Hapi 1: Çfarë ju nevojitet - Pajisje dhe Elektronikë

Ajo që ju nevojitet - Hardware & Elektronikë
Ajo që ju nevojitet - Hardware & Elektronikë
Ajo që ju nevojitet - Hardware & Elektronikë
Ajo që ju nevojitet - Hardware & Elektronikë

Projektuesi origjinal i projektit jetoi në Evropë dhe më pas përdori matje metrike dhe materiale të zakonshme atje. Për shembull, bordi i shtypit që ai përdori për trupin ishte një standard prej 5 mm i trashë. Material i ngjashëm këtu në SHBA është 1/8 i cili është rreth 3.7mm i trashë. Kjo la një boshllëk në hapjet që ishin projektuar fillimisht për t'u pajisur me shtyp. Në vend që të korrigjoja vizatimet, unë thjesht përdor zam Gorilla për të siguruar këto nyje.

Ai gjithashtu përdori arra dhe bulona të filetuar M3 të cilat nuk janë standarde në dyqanin tuaj lokal të pajisjeve në SHBA. Në vend që t'i shndërroj ato në opsionet e disponueshme në vend, thjesht porosita pajisjen në internet siç tregohet në listën e pjesëve të mia më poshtë.

  • 22 - M3 x 0.5 x 23mm Ngecje
  • Hapësira 15 - M3 x 15mm
  • 40 - Vida M3
  • M3 Arra gjashtëkëndore
  • M3 Vida 25mm
  • 1 - Pranvera
  • Shirit montimi me anë të dyfishtë 3/4"
  • 5 - SG 5010 TowerPro Servo
  • 1 - mini servo SG92R TowerPro
  • 1 - mini servo SG90 TowerPro
  • Koka me kokë të drejtë 2.54 mm me një rresht të vetëm
  • 1 - Pjatë me gjysmë madhësie
  • 1 - Tela Jumper 'Extension' Femër/Mashkull - 40 x 6"
  • Fletë akrilike blu 1 - 12 "x 24" ose pjesë të prera me lazer nga ofruesi juaj i preferuar i shërbimit
  • 2 - 3mm x 20mm + 4mm x 5mm ndarës të mbajtjes së nyjeve të printuara 3D (shiko më poshtë)
  • 1 - Paneli i kontrollit *Shih Shënimin në Seksionin e Telave
  • 1 - LED i shpërndarë RGB (me tre ngjyra) 10mm
  • 1 - Arduino Uno
  • 1 - LCD standard 16x2 + ekstra - e bardhë në blu
  • Çantë shpine LCD me karakter i2c / SPI
  • 1-Adafruit 16-Channel 12-bit PWM/Servo Driver
  • 1 - MCP3008 - ADC 8 -kanalësh 10 -bitësh me ndërfaqe SPI
  • 3 - Sensori i modulit JoyStick Breakout *Shih Shënimin në Seksionin e Telave
  • Jack fuçi DC
  • Përshtatës AC në DC
  • Kabllot Servo Extension - gjatësi të ndryshme

Pothuajse të gjitha pjesët për këtë krah janë prerë nga 1/8th inç akrilik. Megjithatë, dy ndarëset me mbajtëse të përbashkëta duhet të printohen. Gjithashtu, modeli origjinal bëri thirrje që dy bazat ndarëse të lidhura të jenë 7 mm të larta në boshtin mbajtës. Kur fillova montimin e krahut të sipërm u bë shpejt e qartë se këto ishin shumë të larta për shkak të lartësisë së servos të TowerPro. Më duhej të kisha kushineta të reja të përbashkëta të bëra me një bazë prej vetëm 3 mm të gjatë, e cila, nga rruga, ishte akoma pak shumë e gjatë, por e menaxhueshme. Ju do të dëshironi të merrni parasysh lartësinë relative të servos tuaj dhe të llogaritni distancën midis dy krahëve të poshtëm:

Lartësia e servo + bri servo + mbajtëse e përbashkët + shirit i dyanshëm = 47mm +/- 3mm.

Hapi 2: Kuvendi i krahut

Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut
Kuvendi i krahut

Para se të filloni, sigurohuni që të përqendroni të gjithë shërbimet tuaja! Nëse në çdo kohë gjatë ndërtimit, nëse lëvizni me dorë pozicionin e servo -së, do t'ju duhet ta përditësoni para se ta siguroni në kornizë. Kjo është veçanërisht e rëndësishme me servotat e shpatullave të cilat gjithmonë duhet të lëvizin në unison.

  1. Bashkojeni servonin bazë në pllakën e sipërme të bazës duke përdorur vida M3 25mm dhe arra gjashtëkëndore. Mos e shtrëngoni tej mase!
  2. Nëse jeni duke përdorur listën e pjesëve që kam më lart, më pas do të doni të mblidhni 5 ndarëset bazë duke i filetuar së bashku secilën nga Ndarjet M3 x 0.5 x 23mm dhe pastaj t'i bashkoni ato në pllakën bazë të sipërme me arra gjashtëkëndore.
  3. Bashkangjitni pllakën e poshtme të bazës në ngërçet me 5 vida M3.
  4. Bashkangjitni pllakën e shpatullave në dy pllakat servo të montimit duke përdorur një ngjitës akrilik të sigurt. Kam përdorur Zam Gorilla këtu. SH NOTNIM: Secila nga dy pllakat servo ka një vrimë në pjesën e pasme e cila lejon që të futet një ndarës përforcues që i lidh ato. Sigurohuni që vrimat të rreshtohen!* Ndërsa e keni zamin të përdorshëm, vazhdoni dhe bashkojeni pllakën e montimit të dorës me pllakën kryesore të kapëses.* Opsionale, ju gjithashtu mund të ngjitni pllakën e servo të dorës në dy pllakat e kyçit të dorës. Unë nuk e bëra këtë zgjedhje në vend që t'i bashkoj ato së bashku me ngërçet siç përshkruhet më poshtë.

  5. Bashkangjiteni kuvendin e shpatullave të shëruar tani në servo -në bazë. Kam përdorur bririn më të gjerë të përfshirë me servo, i cili ishte briri i montimit me gjashtë rrjedha.
  6. Shtimi i kornizës së krahut të poshtëm në servoset e shpatullave mund të jetë i ndërlikuar. Unë sugjeroj të siguroni brirët në kornizat e krahut të poshtëm para se të vazhdoni. SH NOTNIM: Sigurohuni që të qendroni servot tuaj për montimin e shpatullave PARA se t'i bashkoni ato në kornizë. Këta dy servos duhet të lëvizin njëzëri dhe nëse nuk janë të rregulluar së paku do të shkaktojnë servo jitter dhe, nëse janë të keqorganizuar sa duhet, mund të dëmtojnë kornizën ose servot. * Secila nga servotat e shpatullave janë montuar me kllapat e tyre në pjesën e pasme të pllakave të montimit në vend që të kaloni servot nëpër pllaka - kjo do t'ju lejojë të shtyni bririn mbi boshtin e servo në një kënd dhe të siguroni vidën. Mos e siguroni ende servo në pllakën e montimit. * Tjetra, shtoni servo -n e brendshme dhe montoni krahun

  7. Mblidhni kornizën e krahut të sipërm dhe servot duke i shtyrë servot nëpër hapësirat në krahë dhe pastaj duke futur ndarëset midis të dy pllakave të krahut të sipërm dhe sigurojini me vida M3.
  8. Shtoni shirit ngjitës të dyanshëm në pjesën e pasme të ndarësit të bërrylit dhe shkurtojeni tepricën.
  9. Bashkangjiteni ndarësin në pjesën e poshtme të servo -së që do të veprojë si aktivizues i bërrylit.
  10. Futeni montimin e krahut të sipërm në kornizën e montimit të krahut të poshtëm dhe sigurojini vidhat e servisit.
  11. Shtoni pengesa përforcimi midis dy pllakave të krahut të poshtëm. Kam përdorur dy në vend të katër për të ulur peshën.
  12. Shtoni shirit ngjitës të dyanshëm në pjesën e prapme të ndarësit të sipërm të kyçit të dorës dhe shkurtojeni tepricën.
  13. Bashkangjiteni ndarësin në pjesën e poshtme të servos që do të veprojë si aktivizues i kyçit të dorës.
  14. Bashkangjiteni pllakën e jashtme të kyçit të dorës në brizin e dorës dhe sigurojeni me një vidë bri.
  15. Mblidhni pllakën servo të dorës me dy pllaka dhe ngecje të kyçit të dorës.
  16. Sigurojeni servo dore në pllakën e servo me pllakën e kapëses servo.
  17. Ju do të duhet të siguroni bririn e kyçit të dorës në servo para se të lidhni montuesin e kapëses në atë brirë për shkak të bllokimit të vidës për bri.
  18. Mblidhni lirshëm pjesët e kapëses për tu përshtatur para se të lidhni bririn e servo të gripper në servo. Kjo do t'ju lejojë hapësirë për të rrëzuar bririn në hapin e mëparshëm.
  19. Bashkangjiteni bririn e kapëses në servo -n e tij dhe shtrëngoni më tej vidhat që mbajnë nyjet e kapëses. SH NOTNIM: mos i shtrëngoni plotësisht këto arra dhe bulona pasi ato duhet të jenë të lirshme për të lejuar kapësen të lëvizë.

Hapi 3: Instalimet dhe Paneli i Kontrollit

Instalimet dhe Paneli i Kontrollit
Instalimet dhe Paneli i Kontrollit
Instalimet dhe Paneli i Kontrollit
Instalimet dhe Paneli i Kontrollit
Instalimet dhe Paneli i Kontrollit
Instalimet dhe Paneli i Kontrollit

Unë e ndërtova këtë projekt si një platformë zhvillimi për disa ide që kam për një projekt arsimor të mëvonshëm. Pra, shumica e lidhjeve të mia janë lidhje të thjeshta dupont. Saldimi i vetëm që bëra ishte për MCP3008. Nëse mund të gjeni një tabelë shpërthimi për këtë përbërës, atëherë duhet të jeni në gjendje ta ndërtoni këtë saldim krahu pa pagesë.

Ekzistojnë 3 grupe përbërësish:

  1. Inputet - Këto artikuj marrin informacion nga përdoruesi dhe përbëhet nga levë dhe mcp3008 ADC.
  2. Rezultatet - Këto artikuj përcjellin të dhëna në botë ose duke i treguar statusin përdoruesit ose duke azhurnuar servos me të dhënat e pozicionit. Këta artikuj janë Ekrani LCD, Çanta shpine LCD, RGB LED, bordi i shoferit Servo dhe së fundmi servos.
  3. Përpunimi - Arduino përfundon grupin e fundit i cili merr të dhënat nga hyrjet dhe i shtyn të dhënat jashtë në dalje sipas udhëzimeve të kodit.

Skema Fritzing e mësipërme detajon lidhjet e kunjave për të gjithë përbërësit.

Hyrjet

Do të fillojmë me hyrjet. Joystics janë pajisje analoge - që do të thotë se ato paraqesin një tension të ndryshueshëm si një hyrje në Arduino. Secili nga tre levë ka dy dalje analoge për X dhe Y (lart, poshtë, majtas djathtas) duke bërë gjithsej 6 hyrje në Arduino. Ndërsa Arduino Uno ka 6 hyrje analoge në dispozicion, ne duhet të përdorim dy nga këto kunja për komunikimin I2C me ekranin dhe servo kontrolluesin.

Për shkak të kësaj, unë inkorporova konvertuesin analog në dixhital MCP3008 (ADC). Ky çip merr deri në 8 hyrje analoge dhe i konverton ato në një sinjal dixhital mbi kunjat e komunikimit SPI të Arduino si më poshtë:

  • MCP Kunjat 1-6> Rezultatet e ndryshueshme të levave të gishtit të madh
  • MCP Kunjat 7 & 8> Pa lidhje
  • MCP Pin 9 (DGND)> Ground
  • MCP Pin 10 (CS/SHDN)> Uno Pin 12
  • MCP Pin 11 (DIN)> Uno Pin 11
  • MCP Pin 12 (DOUT)> Uno Pin 10
  • MCP Pin 13 (CLK)> Uno Pin 9
  • MCP Pin 14 (AGND)> Ground
  • MCP Pin 15 & 16> +5V

Lidhjet e levës në skemë janë treguar vetëm për shembull. Në varësi të asaj që blejnë levë dhe si janë montuar, lidhjet tuaja mund të ndryshojnë nga ato të miat. Marka të ndryshme të levës mund të kenë një shtrirje të ndryshme dhe gjithashtu mund të orientojnë X dhe Y ndryshe. Ajo që është e rëndësishme është të kuptosh se çfarë përfaqësojnë secili input në ADC. Çdo pin përfaqëson marrëdhëniet e mëposhtme në kodin tim:

  • Pin 1 - Baza - Të dhënat analoge në këtë kunj do të rrotullojnë servo -n më të ulët në robot
  • Pin 2 - The Shoulder - Të dhënat analoge në këtë pin do të rrotullojnë dy servot mbi servo bazë
  • Pin 3 - Bërryla - Të dhënat analoge në këtë kunj do të rrotullojnë servo -n tjetër nga servoset e shpatullave
  • Pin 4 - Dore UP/DN - Të dhënat analoge në këtë kunj do të rrotullojnë servo dore, duke ngritur dhe ulur montimin e kapëses
  • Pin 5 - Gripper - Të dhënat analoge në këtë kunj do të hapin dhe mbyllin kapësen
  • Pin 6 - Rotate Wrist - Të dhënat analoge në këtë kunj do të rrotullojnë kapësen

SHENIM: Kur blini dhe montoni shkopinjtë e gishtit të madh të referuar në listën e pjesëve, mbani në mend se orientimi i moduleve mund të ndryshojë nga ai im, kështu që provoni daljet x dhe y për lidhjen e duhur me ADC. Gjithashtu, nëse përdorni panelin tim të kontrollit të printuar 3D, vrimat e montimit mund të kompensohen nga e imja.

Daljet

Adafruit PWM/Servo Controller e bën këtë projekt super të thjeshtë. Thjesht lidhni Servos me titujt e servo dhe të gjitha lidhjet e energjisë dhe sinjalit trajtohen. Nëse nuk gjeni servos me priza shtesë të gjata, do të dëshironi të merrni një sërë shtesash servo kabllosh në gjatësi të ndryshme, në mënyrë që të gjithë kabllot e servo tuaj të arrijnë në bordin tuaj të kontrolluesit.

Shërbimet janë të lidhura si më poshtë:

  • Pozicioni 0 - Servo bazë
  • Pozicioni 1 - Servo supe (kabllo Servo Y)
  • Pozicioni 2 - Servo e bërrylit
  • Pozicioni 3 - Dore 1 Servo
  • Pozicioni 4 - Gripper Servo
  • Pozicioni 5 - Dore 2 Servo

Për më tepër, VCC dhe V + janë të dy të lidhur me +5 Volt dhe GND është i lidhur me Ground.

SH NOTNIM 1: Një shënim i madh këtu: Tensioni i furnizimit për të gjithë projektin po vjen përmes bllokut të terminalit të energjisë në Bordin e Kontrollit Servo. Kunja V+ në Servo Controller në të vërtetë furnizon energji nga blloku i terminalit në pjesën tjetër të qarkut. Nëse keni nevojë të programoni Uno -në tuaj, unë rekomandoj shkëputjen e pinit V+ para se të lidhni Uno me kompjuterin tuaj pasi tërheqja aktuale nga servos mund të dëmtojë portën tuaj USB.

SH NOTNIM 2: Unë jam duke përdorur një përshtatës muri 6V AC në DC për të fuqizuar projektin. Unë rekomandoj një përshtatës që mund të furnizojë të paktën 4A rrymë në mënyrë që kur një ose më shumë servos të lidhen, rritja e papritur e rrymës të mos e skuqë sistemin tuaj dhe të rivendosë Arduino-n tuaj.

Ekrani LCD 16X2 është i lidhur me Adapruit LCD Backpack në mënyrë që të përfitoni nga ndërfaqja I2C që tashmë është duke u përdorur nga Servo Controller. SCL në Servo Controller dhe CLK në Backpack të dy lidhen me Pin A5 në Uno. Po kështu, SDA në Servo Controller dhe DAT në Backpack lidhen të dy me Pin A4 në Uno. Për më tepër, 5V është i lidhur me +5 Volt dhe GND është i lidhur me Ground. LAT në Çantën e shpinës nuk lidhet me asgjë.

Së fundmi, LED RGB është i lidhur me kunjat 7 (KUQ), 6 (E gjelbër) dhe 5 (Blu) në Uno. Këmba tokësore e LED është e lidhur me Ground përmes një rezistence 330Ohm.

Përpunimi

E fundit por jo më pak e rëndësishme, pjesa e mbetur e lidhjeve Arduino që nuk janë të listuara më sipër janë si më poshtë: Pin 5V është i lidhur me +5 Volt dhe GND është i lidhur me Ground.

Në konfigurimin tim, unë përdorja shinat anësore të bordit të bukës për të lidhur të gjitha linjat e energjisë dhe tokëzimit së bashku, si dhe kunjat I2C për të gjitha pajisjet.

Hapi 4: Kodi

Kodi
Kodi

Siç u tha më parë, unë fillimisht e ndërtova këtë projekt si një demonstrim për Maker Faire tim lokal. Kam menduar që të jetë diçka për fëmijët dhe të rriturit për të luajtur me të në stendën tonë. Siç doli, ishte shumë më popullor nga sa e kisha imagjinuar - aq shumë, saqë fëmijët po grindeshin për të. Pra, kur erdhi koha për një rishkrim, unë përfshiva një "Modaliteti Demo" që zbaton një afat kohor.

Krahu ulet atje duke pritur që dikush të lëvizë një levë dhe kur e bëjnë këtë, fillon një kohëmatës 60 sekondash. Në fund të 60 sekondave, ai ndalon marrjen e informacionit nga përdoruesi dhe "Pushon" për 15 sekonda. Hapësira e shkurtër e vëmendjes duke qenë ato që janë, kjo periudhë pushimi e zvogëloi shumë grindjen për kohën e shkopit.

Operacioni bazë

Kodi i listuar në seksionin e referencës më poshtë është mjaft i thjeshtë. Një grup mban gjurmët e 6 nyjeve me min, maksimumin, pozicionin në shtëpi dhe pozicionin aktual. Kur krahu fuqizohet, funksioni i nisjes përcakton bibliotekat që kërkohen për të folur me MCP3008, çantën LCD (dhe më pas ekranin) dhe përcakton kunjat LED. Nga atje ai bën një kontroll bazë të sistemeve dhe vazhdon për në shtëpi krahun. Funksioni i shtëpisë fillon me kapësen dhe funksionon deri në bazën në mënyrë që të minimizojë mundësinë e lidhjes në kushte normale. Nëse krahu është zgjatur plotësisht, atëherë mund të jetë mirë që ta vendosni manualisht krahun para se ta vini në lëvizje. Meqenëse servot e përgjithshëm nuk japin reagime për pozicionin e tij, ne duhet të vendosim secilën në një pikë të paracaktuar dhe të mbajmë shënime se sa larg janë zhvendosur secili.

Rrethi kryesor fillon së pari në një mënyrë pritjeje - duke kërkuar levë për të lëvizur larg nga pozicioni i tyre qendror. Pasi të ndodhë kjo, laku kryesor i ndryshon gjendjet në gjendjen e numërimit mbrapsht. Ndërsa përdoruesi lëviz çdo levë, pozicioni relativ i levës nga qendra do të shtojë ose zbres nga pozicioni aktual i njohur dhe përditëson servo -n e përshtatshme. Pasi një servo të ketë arritur kufirin e tij të përcaktuar në një drejtim, levë ndalet. Përdoruesi do të duhet të lëvizë levën në drejtimin tjetër për ta lëvizur përsëri. Ky është një kufi softuerik i imponuar në servos pavarësisht nga ndalesat e tyre të harduerit. Kjo veçori ju lejon të mbani lëvizjet e krahut brenda një zone të caktuar operacionale nëse është e nevojshme. Nëse levë lëshohet në qendër, lëvizja do të ndalet.

Ky kod është vetëm një pikënisje e përgjithshme. Ju mund të shtoni mënyrat tuaja sipas dëshirës. Një shembull mund të jetë një regjim i vazhdueshëm pa kohëmatës ose mund të shtoni butona shtytës në levë si hyrje dhe të shkruani një mënyrë regjistrimi/luajtjeje.

Hapi 5: Lidhjet dhe Burimet

Referencat e krahut

  • Postim që frymëzoi këtë projekt
  • Postimet në blog të Dizajnerëve Origjinalë Krahu im robotik Mini kapëset e mi servo dhe krahu robotik i kompletuar Shumëzoni krahun robotik dhe pajisjet elektronike
  • Krahu i Thingiverse
  • Thingiverse Mini Servo Gripper

Bibliotekat e Softuerëve

  • Burimet e Adafruit PWM/Servo Controller
  • Biblioteka MCP3008
  • Fleta e të dhënave MCP3008

Paneli i Kontrollit dhe Kodi

  • Vizatim Tinkercad i Panelit që kam bërë
  • Depoja aktuale e kodeve

Recommended: