Obsah:

Arduino ovládané robotické rameno so 6 stupňami slobody: 5 krokov (s obrázkami)
Arduino ovládané robotické rameno so 6 stupňami slobody: 5 krokov (s obrázkami)

Video: Arduino ovládané robotické rameno so 6 stupňami slobody: 5 krokov (s obrázkami)

Video: Arduino ovládané robotické rameno so 6 stupňami slobody: 5 krokov (s obrázkami)
Video: DIY | Smartphone (Bluetooth) controlled Robot Arm using Arduino | HC-05 2024, Júl
Anonim
Arduino ovládané robotické rameno so 6 stupňami slobody
Arduino ovládané robotické rameno so 6 stupňami slobody
Arduino ovládané robotické rameno so 6 stupňami slobody
Arduino ovládané robotické rameno so 6 stupňami slobody
Arduino ovládané robotické rameno so 6 stupňami slobody
Arduino ovládané robotické rameno so 6 stupňami slobody

Som členom robotickej skupiny a každý rok sa naša skupina zúčastňuje každoročného faire Mini-Maker. Začínajúc rokom 2014 som sa rozhodol vybudovať nový projekt pre každé ročné podujatie. V tom čase som mal asi mesiac pred akciou niečo dať dohromady a vôbec som netušil, čo chcem robiť.

Jeden kolega zverejnil odkaz na „zaujímavú open source stavbu robotického ramena“, ktorá vyvrcholila v mojom záujme. Plány boli len rameno bez ovládačov alebo ovládača. Vzhľadom na moje časové obmedzenia to vyzeralo ako skutočne dobré východisko. Jediným problémom bolo, že som skutočne nemal žiadne nástroje na začiatok.

S pomocou niektorých členov skupiny sa mi podarilo vyrezať a odoslať akrylové diely a tiež dve nižšie vytlačené časti 3D. V kombinácii s niekoľkými objednávkami hardvéru na noc a niekoľkými výletmi do miestneho železiarstva som večer pred udalosťou dokončil pracovný projekt!

Ako to už obvykle býva, v príbehu je toho viac a vtelenie do stavby, ktoré bolo zhustené z toho, čo vidíte nižšie. Ak vás zaujíma zadný príbeh, viac nájdete tu:

Krok 1: Čo potrebujete - hardvér a elektronika

Čo potrebujete - hardvér a elektronika
Čo potrebujete - hardvér a elektronika
Čo potrebujete - hardvér a elektronika
Čo potrebujete - hardvér a elektronika

Pôvodný projektant žil v Európe a následne použil metrické merania a tam bežné materiály. Napríklad tlačová doska, ktorú použil na telo, mala štandardnú hrúbku 5 mm. Podobný materiál tu v USA je 1/8 , čo je hrúbka asi 3,7 mm. To zanechalo medzeru v otvoroch, ktoré boli pôvodne určené na lisované osadenie. Na opravu týchto spojov som namiesto opravy výkresov jednoducho použil lepidlo Gorilla Glue.

Tiež použil závitové matice a skrutky M3, ktoré nie sú štandardné vo vašom miestnom železiarstve v USA. Namiesto toho, aby som ich prevádzal na miestne dostupné možnosti, som si jednoducho objednal hardvér online, ako je uvedené v zozname mojich náhradných dielov nižšie.

  • 22 - Vzpery M3 x 0,5 x 23 mm
  • Rozpery 15 - M3 x 15 mm
  • 40 - Skrutky M3
  • Šesťhranné matice M3
  • Skrutky M3 25 mm
  • 1 - jar
  • 3/4 "obojstranná montážna páska
  • 5 - Servo SG 5010 TowerPro
  • 1 - Mini servo SG92R TowerPro
  • 1 - Mini servo SG90 TowerPro
  • 2,54 mm jednoradový priamy kolíkový záhlavie
  • 1 - Breadboard polovičnej veľkosti
  • 1 - Prepojovacie drôty „predlžovací“žena/muž - 40 x 6"
  • 1 - 12 "x 24" modrý akrylový list alebo kusy rezané laserom od vášho obľúbeného poskytovateľa služieb
  • 2 - 3 mm x 20 mm + 4 mm x 5 mm rozpery kĺbových ložísk 3D vytlačené (pozri nižšie)
  • 1 - Ovládací panel *Pozri poznámku v časti Zapojenie
  • 1 - Difúzne RGB (trojfarebné) 10 mm LED
  • 1 - Arduino Uno
  • 1 - Štandardný LCD 16x2 + doplnky - biela na modrej
  • 1 - i2c / SPI znakový batoh LCD
  • 1-Adafruit 16-kanálový 12-bitový ovládač PWM/servo
  • 1 - MCP3008 - 8 -kanálový 10 -bitový ADC s rozhraním SPI
  • 3 - Snímač Breakout modulu JoyStick *Pozri poznámku v časti Zapojenie
  • DC Barrel Jack
  • Adaptér AC na DC
  • Servo predlžovacie káble - rôzne dĺžky

Takmer všetky diely tohto ramena boli vyrezané z akrylu o 1/8 palca. Dve dištančné vložky kĺbového ložiska je však potrebné vytlačiť. Pôvodný projekt tiež požadoval, aby boli dve dištančné podložky kĺbov vysoké 7 mm od ložiskového hriadeľa. Keď som začal s montážou nadlaktia, rýchlo mi bolo jasné, že sú príliš vysoké kvôli výške serva TowerPro. Musel som dať vyrobiť nové kĺbové ložiská so základňou vysokou iba 3 mm, ktorá bola mimochodom stále príliš vysoká, ale dala sa zvládnuť. Budete chcieť vziať na vedomie relatívnu výšku vašich serv a zohľadniť vzdialenosť medzi dvoma dolnými ramenami:

Výška serva + klaksón + ložisko kĺbu + obojstranná páska = 47 mm +/- 3 mm.

Krok 2: Zostava ramena

Zostava ramena
Zostava ramena
Zostava ramena
Zostava ramena
Zostava ramena
Zostava ramena
Zostava ramena
Zostava ramena

Predtým, ako začnete, vycentrujte všetky svoje servá! Ak kedykoľvek počas stavby manuálne presuniete polohu serva, budete ho musieť pred pripevnením k rámu predediť. Toto je obzvlášť dôležité pri ramenných servách, ktoré sa musia vždy pohybovať súčasne.

  1. Pripevnite servo základne k hornej základovej doske pomocou 25 mm skrutiek M3 a šesťhranných matíc. Neuťahujte nadmerne! POZNÁMKA: Možno budete chcieť na závity použiť zaistenie, aby sa minimalizovalo uvoľnenie matíc počas používania.

  2. Ak používate zoznam dielov, ktorý mám vyššie, budete ďalej chcieť zostaviť 5 rozperiek podstavcov prevlečením 2 z každého stojana M3 x 0,5 x 23 mm dohromady a potom ich pripevniť k hornej základovej doske šesťhrannými maticami.
  3. Spodnú základovú dosku pripevnite k stojanom pomocou 5 skrutiek M3.
  4. Pripojte ramennú dosku k dvom montážnym doskám servo pomocou akrylového bezpečného lepidla. Tu som použil Gorilla Glue. POZNÁMKA: Každá z dvoch servopohonov má v zadnej časti otvor, ktorý umožňuje vloženie výstužnej vložky, ktorá ich spojí. Dbajte na to, aby boli otvory zarovnané!* Kým máte poruke lepidlo, pokračujte a spojte montážnu dosku zápästia s hlavnou doskou uchopovača.* Voliteľne môžete na dve platničky kĺbového spoja prilepiť aj dosku na zápästie. Neurobil som to namiesto toho, aby som ich spojil s medzerami, ako je popísané nižšie.
  5. Teraz pripevnenú zostavu ramien pripevnite k základnému servu. Použil som najširší roh dodávaný so servom, ktorým bol roh na upevnenie šiestich stoniek.

  6. Pridanie rámu spodnej časti ramena k ramenným servám môže byť náročné. Predtým ako budete pokračovať, navrhujem zaistiť rohy k rámom dolných ramien. POZNÁMKA: Pred pripevnením serv k zostave ramien ich vycentrujte. Tieto dve serva sa musia pohybovať súčasne a ak sú nesprávne zarovnané, prinajmenšom to spôsobí chvenie serva a ak je dostatočne nesprávne zarovnané, môže dôjsť k poškodeniu rámu alebo serva. * Každé z ramenných servomotorov je namontované pomocou konzol na zadnej strane montážnych dosiek namiesto toho, aby sa servá prešli cez platne - to vám umožní šikmo zatlačiť klaksón na hriadeľ serva a zaistiť skrutku. Ešte nezaistite servo k montážnej doske. * Ďalej pridajte vnútorné servo a namontujte rameno
  7. Zostavte rám horného ramena a serva tak, že zatlačíte serva cez medzery v ramenách a potom vložíte rozpery medzi obe platne horného ramena a zaistite skrutkami M3.
  8. Na zadnú stranu rozpery lakťového kĺbu pridajte obojstrannú lepiacu pásku a nadbytočné množstvo orežte.
  9. Upevnite rozperu na spodok serva, ktoré bude fungovať ako kolenový pohon.
  10. Zasuňte zostavu horného ramena do rámu zostavy dolného ramena a zaistite skrutky klaksónu servo.
  11. Medzi dve platne dolného ramena pridajte výstužné vzpery. Na zníženie hmotnosti som použil dve namiesto všetkých štyroch.
  12. Pridajte obojstrannú lepiacu pásku na zadnú stranu rozpery horného zápästia a orežte prebytok.
  13. Upevnite rozperu na spodok serva, ktoré bude fungovať ako pohon zápästia.
  14. Pripojte vonkajšiu dosku zápästia k servo klaksónu a zaistite skrutkou.
  15. Zložte servopohon zápästia s dvoma platničkami kĺbového spoja a podperami.
  16. Zaistite servo zápästia na doske servopohonu.
  17. Pred pripevnením zostavy chápadla k tomuto klaksónu budete musieť zaistiť zápästný roh k servu, pretože je zablokovaný otvor pre skrutku klaksónu.
  18. Pred pripevnením servo klaksónu uchopovača k servu voľne zostavte diely uchopovača tak, aby pasovali. To vám umožní priestor na zaskrutkovanie klaksónu v predchádzajúcom kroku.
  19. Pripojte hriadeľ chápadla k servu a ďalej utiahnite skrutky, ktoré držia kĺby chápadla. POZNÁMKA: Tieto matice a skrutky úplne neutiahnite, pretože musia byť uvoľnené, aby sa chápadlo mohlo pohybovať.

Krok 3: Zapojenie a ovládací panel

Elektroinštalácia a ovládací panel
Elektroinštalácia a ovládací panel
Elektroinštalácia a ovládací panel
Elektroinštalácia a ovládací panel
Elektroinštalácia a ovládací panel
Elektroinštalácia a ovládací panel

Tento projekt som postavil ako vývojovú platformu pre niektoré nápady, ktoré mám pre neskorší vzdelávací projekt. Takže väčšina mojich pripojení sú jednoduché dupontové konektory. Jediné spájkovanie, ktoré som urobil, bolo pre MCP3008. Ak pre tento komponent nájdete odlamovaciu dosku, mali by ste byť schopní zostrojiť túto spájkovačku bez ramena.

Existujú 3 skupiny komponentov:

  1. Vstupy - Tieto položky preberajú informácie od používateľa a pozostávajú z joystickov a mcp3008 ADC.
  2. Výstupy - Tieto položky prenášajú údaje do sveta buď zobrazením stavu používateľovi, alebo aktualizáciou serva o údaje o polohe. Tieto položky sú LCD obrazovka, batoh LCD, RGB LED, doska ovládača serva a nakoniec servá.
  3. Spracovanie - Arduino zabalí poslednú skupinu, ktorá prijíma údaje zo vstupov a podľa pokynov kódu odosiela údaje na výstupy.

Schéma Fritzingu vyššie podrobne popisuje kolíkové spojenia všetkých komponentov.

Vstupy

Začneme vstupmi. Joysticky sú analógové zariadenia - to znamená, že ako vstup do Arduina predstavujú premenlivé napätie. Každý z troch joystickov má dva analógové výstupy pre X a Y (hore, dole, vľavo vpravo), čo predstavuje celkom 6 vstupov pre Arduino. Aj keď má Arduino Uno k dispozícii 6 analógových vstupov, na komunikáciu I2C s obrazovkou a servopohonom musíme použiť dva z týchto pinov.

Z tohto dôvodu som začlenil analógovo -digitálny prevodník MCP3008 (ADC). Tento čip prijíma až 8 analógových vstupov a prevádza ich na digitálny signál cez komunikačné piny Arduino SPI nasledovne:

  • Kolíky MCP 1-6> Variabilné výstupy palcových joystickov
  • Piny MCP 7 a 8> Žiadne pripojenie
  • Pin MCP 9 (DGND)> uzemnenie
  • Pin MCP 10 (CS/SHDN)> Uno pin 12
  • Kolík MCP 11 (DIN)> Uno kolík 11
  • Kolík MCP 12 (DOUT)> Uno kolík 10
  • Pin MCP 13 (CLK)> Uno pin 9
  • Kolík MCP 14 (AGND)> Uzemnenie
  • Pin MCP 15 a 16> +5V

Pripojenia joysticku v schéme sú len príkladom. V závislosti od toho, ktoré joysticky kupujete a ako sú namontované, sa vaše pripojenia môžu líšiť od mojich. Rôzne značky joysticku môžu mať odlišný vývod a tiež môžu orientovať X a Y odlišne. Dôležité je porozumieť tomu, čo každý vstup v ADC predstavuje. Každý pin predstavuje v mojom kóde nasledujúce vzťahy:

  • Pin 1 - Základňa - Analógové údaje na tomto pine otáčajú najnižšie servo na robote
  • Kolík 2 - Rameno - Analógové údaje na tomto kolíku otáčajú dve serva nad základným servom
  • Kolík 3 - Koleno - Analógové údaje na tomto kolíku otočia ďalšie servo smerom nahor od ramenných serv
  • Kolík 4 - zápästie UP/DN - analógové údaje na tomto kolíku budú otáčať servom zápästia, zdvíhať a spúšťať zostavu chápadla
  • Kolík 5 - Gripper - Analógové údaje na tomto kolíku otvoria a zatvoria chápadlo
  • Kolík 6 - Otočiť zápästím - Analógové údaje na tomto kolíku otáčajú chápadlo

POZNÁMKA: Pri nákupe a montáži pákových ovládačov uvedených v zozname súčiastok majte na pamäti, že orientácia modulov sa môže líšiť od tej mojej, preto vyskúšajte výstupy x a y na správne pripojenie k ADC. Tiež, ak používate môj 3D tlačený ovládací panel, montážne otvory môžu byť odsadené od môjho.

Výstupy

Adafruit PWM/Servo Controller robí tento projekt veľmi jednoduchým. Stačí pripojiť serva k hlavičke serva a všetky napájacie a signálové spoje budú zvládnuté. Pokiaľ nenájdete servá s extra dlhými káblami, budete chcieť dostať sadu predlžovacích káblov servo rôznych dĺžok, aby sa všetky vaše servo káble dostali na dosku ovládača.

Servá sú pripojené nasledovne:

  • Poloha 0 - servo základne
  • Pozícia 1 - servo na ramene (kábel servo Y)
  • Pozícia 2 - lakťové servo
  • Pozícia 3 - servo na zápästí 1
  • Pozícia 4 - Servo uchopovača
  • Pozícia 5 - Servo na zápästí 2

VCC a V + sú navyše pripojené k +5 V a GND je pripojené k zemi.

POZNÁMKA 1: Jedna VEĽKÁ poznámka tu: Napájacie napätie pre celý projekt vstupuje cez svorkovnicu napájania na doske riadenia. Kolík V+ na servo ovládači v skutočnosti dodáva energiu zo svorkovnice do zvyšku obvodu. Ak potrebujete naprogramovať svoje Uno, dôrazne odporúčam odpojiť kolík V+ pred pripojením Uno k počítaču, pretože súčasný odber zo serva by mohol poškodiť váš port USB.

POZNÁMKA 2: Na napájanie projektu používam nástenný adaptér 6 V AC na DC. Odporúčam adaptér, ktorý môže dodávať prúd najmenej 4A, aby keď sa jedno alebo viac servo zapojí, náhly nárast prúdu neznečistí váš systém a resetuje Arduino.

Obrazovka LCD 16X2 je pripojená k batohu LCD Adafruit, aby využila výhody rozhrania I2C, ktoré už používa servopohon. SCL na servo ovládači a CLK na batohu sa pripájajú na pin A5 na Uno. Podobne sa SDA na servo ovládači a DAT na batohu pripájajú na pin A4 na Uno. Okrem toho je 5 V pripojených k +5 V a GND je pripojený k zemi. LAT na batohu nie je k ničomu pripojený.

Nakoniec je LED RGB pripojená k pinom 7 (ČERVENÁ), 6 (zelená) a 5 (modrá) na jednotke Uno. Uzemňovacia časť diódy LED je k uzemneniu pripojená pomocou odporu 330 ohmov.

Spracovanie

V neposlednom rade zvyšné pripojenia Arduino, ktoré nie sú uvedené vyššie, sú nasledujúce: Pin 5V je pripojený k +5 voltom a GND je pripojený k zemi.

V mojom nastavení som použil bočné koľajnice nepájivého poľa na prepojenie všetkých napájacích a uzemňovacích vedení, ako aj kolíkov I2C pre všetky zariadenia.

Krok 4: Kód

Kód
Kód

Ako už bolo uvedené, pôvodne som tento projekt staval ako ukážku pre svoj miestny Maker Faire. Zamýšľal som, aby to bolo niečo pre deti i dospelých, s ktorými sa budeme hrať v našom stánku. Ako sa ukázalo, bolo to oveľa populárnejšie, ako som si predstavoval - natoľko, že sa o to deti bili. Akonáhle teda nadišiel čas na prepísanie, začlenil som „demo režim“, ktorý implementuje časové obmedzenie.

Rameno sedí a čaká, kým niekto pohne joystickom, a keď to urobí, spustí sa 60 -sekundový časovač. Na konci 60 sekúnd prestane prijímať informácie od používateľa a na 15 sekúnd „Odpočíva“. Vďaka krátkej pozornosti tým, čím sú, toto obdobie odpočinku výrazne znížilo hádku o čas na palicu.

Základná obsluha

Kód uvedený v nižšie uvedenej referenčnej časti je veľmi jednoduchý. Pole sleduje 6 kĺbov s minimálnym, maximálnym rozsahom, domácou polohou a aktuálnou polohou. Keď je rameno zapnuté, funkcia spustenia definuje knižnice potrebné na komunikáciu s MCP3008, batohom LCD (a následne obrazovkou) a definuje LED kolíky. Odtiaľ vykoná základnú kontrolu systému a pokračuje do domácej ruky. Domáca funkcia začína chápadlom a postupuje až na základňu, aby za normálnych podmienok minimalizovala možnosť uviazania. Ak je rameno úplne natiahnuté, môže byť najvhodnejšie ručné držanie ramena pred zapnutím. Pretože generické servá neposkytujú spätnú väzbu o svojej polohe, musíme každé z nich umiestniť na vopred definovaný bod a sledovať, ako ďaleko sa každé z nich pohybovalo.

Hlavná slučka sa najskôr spustí v režime čakania - hľadá joysticky, aby sa vzdialili od strednej polohy. Akonáhle sa to stane, hlavná slučka zmení stavy na stav odpočítavania. Keď používateľ pohybuje každým joystickom, relatívna poloha joysticku od stredu sa bude pridávať k aktuálnej známej polohe alebo od nej odoberať a aktualizuje príslušné servo. Hneď ako servo dosiahne definovaný limit v jednom smere, joystick sa zastaví. Užívateľ bude musieť znova pohnúť joystickom v opačnom smere. Toto je softvérový limit uložený na servách bez ohľadu na ich hardvérové zastávky. Táto funkcia vám umožňuje udržať pohyby ramena v rámci špecifikovanej operačnej oblasti, ak je to potrebné. Ak joystick uvoľníte do stredu, pohyb sa zastaví.

Tento kód je len všeobecným východiskovým bodom. Môžete si pridať svoje vlastné režimy, ako chcete. Jedným z príkladov môže byť režim nepretržitého behu bez časovača alebo možno ako vstupy pridať tlačidlá na joysticku a napísať režim záznamu/prehrávania.

Krok 5: Odkazy a zdroje

Ramenné referencie

  • Príspevok, ktorý inšpiroval tento projekt
  • Príspevky do blogu originálnych dizajnérov Moje vlastné robotické rameno Moje mini servopohony a dokončené robotické rameno Znásobte robotické rameno a elektroniku
  • Thingiverse Arm
  • Thingiverse Mini Servo Gripper

Softvérové knižnice

  • Zdroje Adafruit PWM/servopohon
  • Knižnica MCP3008
  • Dátový list MCP3008

Ovládací panel a kód

  • Tinkercadový výkres panelu, ktorý som urobil
  • Aktuálne úložisko kódov

Odporúča: