Obsah:

Arduino ovládané robotické rameno W/ 6 stupňů svobody: 5 kroků (s obrázky)
Arduino ovládané robotické rameno W/ 6 stupňů svobody: 5 kroků (s obrázky)

Video: Arduino ovládané robotické rameno W/ 6 stupňů svobody: 5 kroků (s obrázky)

Video: Arduino ovládané robotické rameno W/ 6 stupňů svobody: 5 kroků (s obrázky)
Video: Lesson 18: Using Servo Motor with Arduino | SunFounder Robojax 2024, Listopad
Anonim
Arduino ovládané robotické rameno W/ 6 stupňů svobody
Arduino ovládané robotické rameno W/ 6 stupňů svobody
Arduino ovládané robotické rameno W/ 6 stupňů svobody
Arduino ovládané robotické rameno W/ 6 stupňů svobody
Arduino ovládané robotické rameno W/ 6 stupňů svobody
Arduino ovládané robotické rameno W/ 6 stupňů svobody

Jsem členem robotické skupiny a každý rok se naše skupina účastní každoročního Faire Mini-Maker. Počínaje rokem 2014 jsem se rozhodl postavit nový projekt pro každý rok. V té době jsem měl asi měsíc před akcí něco dohromady a vůbec jsem netušil, co chci dělat.

Jeden kolega zveřejnil odkaz na „zajímavou open source konstrukci robotické paže“, která vyvrcholila mým zájmem. Plány byly jen paží bez ovládání nebo ovladačem. Vzhledem k mému časovému omezení to vypadalo jako opravdu dobrý výchozí bod. Jediným problémem bylo, že jsem opravdu neměl žádné nástroje, abych mohl začít.

S pomocí některých členů skupiny se mi podařilo nechat vystřihnout a poslat akrylové díly a také dva 3D tištěné díly zobrazené níže. V kombinaci s několika objednávkami hardwaru přes noc a několika výlety do místního železářství jsem dokončil pracovní projekt noc před akcí!

Jak už to tak bývá, příběh obsahuje více a několik inkarnací stavby, která byla zhuštěna tím, co vidíte níže. Pokud vás zajímá zadní příběh, více najdete zde:

Krok 1: Co potřebujete - Hardware a elektronika

Co potřebujete - Hardware a elektronika
Co potřebujete - Hardware a elektronika
Co potřebujete - Hardware a elektronika
Co potřebujete - Hardware a elektronika

Původní projektant žil v Evropě a následně použil metrická měření a tam běžné materiály. Například lisovací deska, kterou použil na tělo, měla standard 5 mm. Podobný materiál zde v USA je 1/8 , což je asi 3,7 mm tlustý. To zanechalo mezeru v otvorech, které byly původně navrženy pro lisování. Spíše než opravovat výkresy jsem jednoduše použil Gorilla Glue k zajištění těchto spojů.

Použil také matice a šrouby se závitem M3, které nejsou ve vašem místním železářství v USA standardní. Spíše než je převést na místně dostupné možnosti, jednoduše jsem si objednal hardware online, jak je uvedeno v seznamu mých dílů níže.

  • 22 - Distanční sloupky M3 x 0,5 x 23 mm
  • 15 - distanční podložky M3 x 15 mm
  • 40 - Šrouby M3
  • Šestihranné matice M3
  • Šrouby M3 25 mm
  • 1 - jaro
  • Oboustranná montážní páska 3/4"
  • 5 - Servo SG 5010 TowerPro
  • 1 - Mini servo SG92R TowerPro
  • 1 - Mini servo SG90 TowerPro
  • Jednořadý přímý kolíkový kolík 2,54 mm
  • 1 - Poloviční prkénko
  • 1 - Propojovací dráty propojovacích kabelů pro ženy a muže - 40 x 6 palců
  • 1 - 12 "x 24" modrý akrylový list nebo laserem řezané kousky od vašeho oblíbeného poskytovatele služeb
  • 2 - 3 mm x 20 mm + 4 mm x 5 mm distanční vložky kloubových ložisek 3D tištěné (viz níže)
  • 1 - Ovládací panel *Viz poznámka v části zapojení
  • 1 - Difúzní RGB (tříbarevná) 10mm LED
  • 1 - Arduino Uno
  • 1 - Standardní LCD 16x2 + doplňky - bílá na modrou
  • 1 - i2c / SPI znakový batoh LCD
  • 1-Adafruit 16kanálový 12bitový ovladač PWM/servo
  • 1 - MCP3008 - 8kanálový 10bitový ADC s rozhraním SPI
  • 3 - Senzor modulu Breakout modulu JoyStick *Viz poznámka v části zapojení
  • DC Barrel Jack
  • Adaptér AC na DC
  • Servo prodlužovací kabely - různé délky

Téměř všechny části tohoto ramene byly vyřezány z akrylu o 1/8 palce. Dva distanční prvky ložisek kloubů je však třeba vytisknout. Původní návrh také požadoval, aby byly dvě distanční základny kloubů 7 mm vysoké od ložiskového hřídele. Když jsem začal s montáží horní části paže, bylo rychle jasné, že jsou vzhledem k výšce serva TowerPro příliš vysoké. Musel jsem nechat vyrobit nová kloubová ložiska se základnou vysokou pouze 3 mm, což bylo mimochodem stále příliš vysoké, ale zvládnutelné. Budete chtít vzít na vědomí relativní výšku vašich serv a zohlednit vzdálenost mezi dvěma spodními rameny:

Výška serva + klakson + ložisko kloubu + oboustranná páska = 47 mm +/- 3 mm.

Krok 2: Sestava ramene

Sestava ramene
Sestava ramene
Sestava ramene
Sestava ramene
Sestava ramene
Sestava ramene
Sestava ramene
Sestava ramene

Než začnete, vycentrujte všechna svá serva! Pokud kdykoli během stavby ručně přesunete polohu serva, budete jej muset před zajištěním k rámu znovu vycentrovat. To je zvláště důležité u ramenních serv, která se musí vždy pohybovat společně.

  1. Upevněte základní servo k horní základní desce pomocí šroubů M3 25 mm a šestihranných matic. Neutahujte nadměrně! POZNÁMKA: Možná budete chtít na závity použít těsné spojení, aby se minimalizovalo uvolňování matic během používání.

  2. Pokud používáte seznam dílů, který mám výše, budete příště chtít sestavit 5 podložkových podložek tak, že po 2 navlečete distanční sloupky M3 x 0,5 x 23 mm dohromady a poté je připevníte k horní základní desce pomocí šestihranných matic.
  3. Připevněte spodní základovou desku k podpěrám pomocí 5 šroubů M3.
  4. Připevněte ramenní desku ke dvěma montážním deskám serv pomocí akrylátového bezpečného lepidla. Zde jsem použil Gorilla Glue. POZNÁMKA: Každá ze dvou servoplatek má v zadní části otvor, který umožňuje vložení výztužné vložky, která je spojuje. Ujistěte se, že jsou otvory zarovnány!* Zatímco máte po ruce lepidlo, pokračujte a spojte montážní desku zápěstí s hlavní deskou chapadla.* Volitelně můžete také přilepit servo desku zápěstí na dvě desky kloubů zápěstí. Neudělal jsem to místo toho, abych je spojil s mezerami, jak je popsáno níže.
  5. Připojte nyní vytvrzené rameno k základně serva. Použil jsem nejširší roh, který byl součástí serva, což byl roh pro montáž na stonek.

  6. Přidání rámu dolní části paže k ramenním servům může být obtížné. Než budete pokračovat, navrhuji zajistit rohy k rámům spodní části paže. POZNÁMKA: Dříve, než je připevníte k rámu, nezapomeňte vycentrovat serva pro sestavu ramen. Tato dvě serva se musí pohybovat souběžně a pokud jsou špatně zarovnána, způsobí to minimálně chvění serva a pokud je dostatečně špatně zarovnáno, může dojít k poškození rámu nebo serva. * Každé z ramenních serv je namontováno pomocí držáků na zadní straně montážních desek místo toho, aby se serva protáhla deskami - to vám umožní šikmo zatlačit houkačku na hřídel serva a zajistit šroub. Ještě nezajistěte servo k montážní desce. * Dále přidejte vnitřní servo a namontujte rameno
  7. Sestavte rám horní části paže a serva tak, že zatlačíte serva mezerami v pažích a poté vložíte mezikusy mezi obě desky horních ramen a zajistíte šrouby M3.
  8. Přidejte oboustrannou lepicí pásku na zadní část distanční vložky loketního kloubu a ořízněte přebytek.
  9. Připojte distanční vložku ke spodní části serva, které bude fungovat jako loketní pohon.
  10. Zasuňte sestavu horního ramene do rámu sestavy dolního ramene a zajistěte šrouby servo houkačky.
  11. Přidejte výztuhy mezi dvě desky dolního ramene. Ke snížení hmotnosti jsem použil dva místo všech čtyř.
  12. Přidejte oboustrannou lepicí pásku na zadní část distanční vložky kloubu zápěstí a ořízněte přebytek.
  13. Na spodní stranu serva připevněte rozpěrku, která bude fungovat jako pohon zápěstí.
  14. Připojte vnější zápěstní desku k servo houkačce zápěstí a zajistěte šroubem houkačky.
  15. Sestavte servo desku zápěstí se dvěma deskami kloubů zápěstí a podpěrami.
  16. Zajistěte servo na zápěstí na desce serva pomocí upínací desky servo.
  17. Před připojením sestavy chapadla k této houkačce budete muset zajistit zápěstní houkačku k servu, protože je zablokován otvor pro šroub houkačky.
  18. Před nasazením servo houkačky chapače na servo volně sestavte kusy chapadla tak, aby pasovaly. To vám poskytne prostor pro sešroubování klaksonu v předchozím kroku.
  19. Připevněte rohovinu chapače k jejímu servu a dále utáhněte šrouby držící klouby chapadla. POZNÁMKA: Tyto matice a šrouby neutahujte úplně, protože musí být uvolněné, aby se chapadlo mohlo pohybovat.

Krok 3: Zapojení a ovládací panel

Zapojení a ovládací panel
Zapojení a ovládací panel
Zapojení a ovládací panel
Zapojení a ovládací panel
Zapojení a ovládací panel
Zapojení a ovládací panel

Tento projekt jsem postavil jako vývojovou platformu pro některé nápady, které mám pro pozdější vzdělávací projekt. Většina mých připojení je tedy jednoduchá dupontní spojka. Jediné pájení, které jsem provedl, bylo pro MCP3008. Pokud pro tuto součástku najdete odlamovací desku, měli byste být schopni sestrojit tuto páječku na paži zdarma.

Existují 3 skupiny komponent:

  1. Vstupy - Tyto položky přijímají informace od uživatele a skládají se z joysticků a mcp3008 ADC.
  2. Výstupy - Tyto položky přenášejí data do světa buď zobrazením stavu uživateli, nebo aktualizací serva o údaje o poloze. Těmito položkami jsou LCD obrazovka, batoh LCD, RGB LED, deska ovladače serva a nakonec serva.
  3. Zpracování - Arduino zabalí poslední skupinu, která přijímá data ze vstupů a vysílá data na výstupy podle instrukcí kódu.

Schéma Fritzingu výše podrobně popisuje připojení kolíků pro všechny součásti.

Vstupy

Začneme vstupy. Joysticky jsou analogová zařízení - to znamená, že představují proměnné napětí jako vstup pro Arduino. Každý ze tří joysticků má dva analogové výstupy pro X a Y (nahoru, dolů, vlevo vpravo), což představuje celkem 6 vstupů do Arduina. Zatímco Arduino Uno má k dispozici 6 analogových vstupů, pro komunikaci I2C s obrazovkou a servopohonem musíme použít dva z těchto pinů.

Z tohoto důvodu jsem začlenil převodník analogového signálu na digitální (ADC) MCP3008. Tento čip přijímá až 8 analogových vstupů a převádí je na digitální signál přes komunikační piny Arduino SPI následujícím způsobem:

  • Piny MCP 1-6> Variabilní výstupy palcových joysticků
  • Piny MCP 7 a 8> Žádné připojení
  • MCP Pin 9 (DGND)> Zem
  • Pin MCP 10 (CS/SHDN)> Pin Uno 12
  • MCP Pin 11 (DIN)> Uno Pin 11
  • Pin MCP 12 (DOUT)> Uno Pin 10
  • Pin MCP 13 (CLK)> Pin Uno 9
  • Pin MCP 14 (AGND)> Zem
  • Pin MCP 15 a 16> +5V

Propojení joysticku ve schématu jsou pouze příkladem. V závislosti na tom, jaké joysticky kupujete a jak jsou namontovány, se vaše připojení mohou lišit od mého. Různé značky joysticku mohou mít jiný vývod a také mohou odlišně orientovat X a Y. Důležité je porozumět tomu, co každý vstup na ADC představuje. Každý pin představuje v mém kódu následující vztahy:

  • Pin 1 - Základna - Analogová data na tomto pinu otočí nejnižší servo na robotu
  • Pin 2 - The Shoulder - Analogová data na tomto pinu otočí dvě serva nad základním servem
  • Pin 3 - The Elbow - Analogová data na tomto pinu otočí další servo nahoru z ramenních serva
  • Kolík 4 - zápěstí UP/DN - analogová data na tomto kolíku budou otáčet servem zápěstí, zvedat a spouštět sestavu chapadla
  • Pin 5 - Gripper - Analogová data na tomto pinu otevírají a zavírají chapadlo
  • Kolík 6 - Otočit zápěstím - Analogová data na tomto kolíku otočí chapadlo

POZNÁMKA: Při nákupu a montáži pákových ovladačů uvedených v seznamu dílů mějte na paměti, že orientace modulů se může lišit od té mé, proto otestujte výstupy x a y na správné připojení k ADC. Také pokud používáte můj 3D vytištěný ovládací panel, mohou být montážní otvory odsazeny od mého.

Výstupy

Adafruit PWM/Servo Controller dělá tento projekt velmi jednoduchým. Stačí připojit serva k hlavičce serva a všechna připojení napájení a signálu jsou zpracována. Pokud nenajdete serva s extra dlouhými vývody, budete chtít získat sadu prodlužovacích kabelů servo v různých délkách, aby se všechny vaše servo kabely dostaly na desku řadiče.

Serva jsou připojena následovně:

  • Poloha 0 - servo základny
  • Pozice 1 - servo na rameni (kabel Y servo)
  • Pozice 2 - Loketní servo
  • Pozice 3 - Servo na zápěstí 1
  • Pozice 4 - Servo chapadla
  • Pozice 5 - Servo na zápěstí 2

Kromě toho jsou VCC a V + připojeny k +5 V a GND je připojeno k zemi.

POZNÁMKA 1: Jedna VELKÁ poznámka zde: Napájecí napětí pro celý projekt přichází skrz napájecí svorkovnici na řídicí desce serva. Kolík V+ na servopohonu ve skutečnosti dodává energii ze svorkovnice do zbytku obvodu. Pokud potřebujete naprogramovat své Uno, vřele doporučuji odpojit pin V+ před připojením Uno k počítači, protože aktuální odběr ze serva by mohl poškodit váš USB port.

POZNÁMKA 2: K napájení projektu používám nástěnný adaptér 6 V AC na DC. Doporučuji adaptér, který může dodávat alespoň 4A proudu, takže když se jedno nebo více serv zapojí, náhlý nárůst proudu nezhnědne váš systém a resetuje Arduino.

Obrazovka LCD 16X2 je připojena k batohu Adafruit LCD, aby bylo možné využít rozhraní I2C, které již používá servo ovladač. SCL na servopohonu a CLK na batohu se připojují ke kolíku A5 na Uno. Podobně se SDA na servopohonu a DAT na batohu připojují ke kolíku A4 na Uno. Navíc je 5V připojeno k +5 voltům a GND je připojeno k zemi. LAT na batohu není k ničemu připojen.

Nakonec je LED RGB připojena k pinům 7 (ČERVENÁ), 6 (zelená) a 5 (modrá) na Uno. Uzemňovací část LED je připojena k zemi pomocí odporu 330 Ohmů.

zpracovává se

V neposlední řadě zbývající připojení Arduino, která nejsou uvedena výše, jsou následující: Pin 5V je připojen k +5 voltů a GND je připojen k zemi.

V mém nastavení jsem použil boční lišty prkénka k propojení všech napájecích a uzemňovacích vedení dohromady a také kolíků I2C pro všechna zařízení.

Krok 4: Kód

Kód
Kód

Jak již bylo řečeno, původně jsem tento projekt stavěl jako ukázku pro svůj místní Maker Faire. Chtěl jsem, aby to bylo něco pro děti i dospělé, s nimiž si budeme hrát v našem stánku. Jak se ukázalo, bylo to mnohem populárnější, než jsem si představoval - natolik, že se o to děti rvaly. Když tedy přišel čas na přepsání, začlenil jsem „demo režim“, který implementuje časový limit.

Rameno tam sedí a čeká, až někdo pohne joystickem, a když to udělá, spustí 60sekundový časovač. Na konci 60 sekund přestane přijímat vstup od uživatele a na 15 sekund „Odpočine“. Krátká doba pozornosti, která je tím, čím jsou, toto období odpočinku výrazně omezilo hádku o čas na hokejku.

Základní operace

Kód uvedený v níže uvedené referenční části je velmi jednoduchý. Pole sleduje 6 kloubů s minimálním, maximálním rozsahem, výchozí polohou a aktuální polohou. Když je rameno zapnuto, spouštěcí funkce definuje knihovny potřebné k rozhovoru s MCP3008, LCD batohem (a následně obrazovkou) a definuje LED piny. Odtud provede základní kontrolu systému a pokračuje domů. Funkce Home začíná chápadlem a postupuje až k základně, takže za normálních podmínek minimalizuje šanci na vázání. Pokud je paže plně natažená, může být nejlepší paži před zapnutím ručně nastavit. Protože generická serva neposkytují zpětnou vazbu o své poloze, musíme každé z nich umístit na předem definovaný bod a sledovat, jak daleko se každé z nich posunulo.

Hlavní smyčka nejprve začíná v režimu čekání - hledá joysticky, aby se vzdálily od své střední polohy. Jakmile k tomu dojde, hlavní smyčka změní stavy na stav odpočítávání. Když uživatel pohybuje každým joystickem, relativní poloha joysticku od středu se přičte k aktuální známé pozici nebo ji odečte a aktualizuje příslušné servo. Jakmile servo dosáhne svého definovaného limitu v jednom směru, joystick se zastaví. Uživatel bude muset znovu pohnout joystickem v opačném směru. Toto je softwarový limit uložený servům bez ohledu na jejich zastavení hardwaru. Tato funkce vám umožňuje v případě potřeby udržovat pohyby paže v určené operační oblasti. Po uvolnění joysticku do středu se pohyb zastaví.

Tento kód je pouze obecným výchozím bodem. Můžete si přidat vlastní režimy, jak chcete. Jedním příkladem může být režim nepřetržitého běhu bez časovače nebo přidat tlačítka jako joysticky jako vstupy a zapsat režim záznamu/přehrávání.

Krok 5: Odkazy a zdroje

Arm Reference

  • Příspěvek, který inspiroval tento projekt
  • Originální příspěvky designérů na blogu Moje vlastní robotická ruka Moje mini servo chapadla a dokončené robotické rameno Znásobte robotické rameno a elektroniku
  • Thingiverse Arm
  • Thingiverse Mini Servo Gripper

Softwarové knihovny

  • Zdroje Adafruit PWM/Servo Controller
  • Knihovna MCP3008
  • Datový list MCP3008

Ovládací panely a kód

  • Tinkercad, kresba panelu, který jsem vytvořil
  • Aktuální úložiště kódů

Doporučuje: