Obsah:

Robotické rameno Arduino: 5 krokov
Robotické rameno Arduino: 5 krokov

Video: Robotické rameno Arduino: 5 krokov

Video: Robotické rameno Arduino: 5 krokov
Video: Roboticke rameno + arduino mega 2024, Júl
Anonim
Image
Image
Robotické rameno Arduino
Robotické rameno Arduino
Robotické rameno Arduino
Robotické rameno Arduino

Pretože je to môj prvý projekt po 15 tutoriáloch mojej štartovacej sady Arduino, skutočným účelom je získať kritikov, tipy, návrhy a nápady od kohokoľvek, kto vie viac ako ja.

Tento projekt je o robotickej ruke so 4 dofs a gripom. So slušne nízkym rozpočtom: štruktúru prerušil priateľ, 4 servá boli 30 €, 2 joysticky 4 €, skrutky skrutiek atď. Za menej ako 10 € a všetko ostatné (Arduino, drôty, servo gripu atď.)) už bol zahrnutý v mojej štartovacej súprave. Za spolu 40-45 €, čo je asi 45-50 amerických dolárov (rovnaká cena súpravy me-arm, ale hej, bola to zábava, postaviť si ju sám (a občas niečo pokaziť) a neriadiť sa pokynmi ako stroj).

Pretože to bol môj prvý projekt a bol inštruovateľný, prihlásil som sa do „Prvého autora“a do niekoľkých ďalších súťaží, takže ak sa vám páči, hlasujte:)

Krok 1: NÁVRH A MONTÁŽ:

Najprv som potreboval štruktúru: Toto bola rozhodne najdlhšia časť. Keďže som nechcel kopírovať a prilepovať projekt od niekoho iného, vzal som projekt ako referenciu a ja (a niekoľko skúsenejších spolužiakov, ktorí ma skutočne zachránili) začal ho upravovať podľa našich potrieb (rôzne servá s rôznym krútiacim momentom, hmotnosťou a rozmermi atď.). Musel som to párkrát postaviť, pri každom z nich som našiel niečo zlé a museli sme niektoré kusy znova vyrezať a skúsiť to znova. Priložil som súbor.dxf pre prípad, že ho chcete použiť. Potom som musel kúpiť elektroniku: Väčšina dielov bola štandardná, ťažkou časťou bolo vybrať servo. Požadovaný krútiaci moment som vypočítal podľa zásady, neskôr som skúsil presnejší výpočet a zistil som, že som to možno trochu prehnal. Na 2. servo (zo základne) by zrejme stačilo 6 kg/cm a moje poskytuje 9-11 kg/cm. To mi dáva istotu a šancu naložiť až 2 kg nákladu (čo je nemožné, ale páči sa mi, že by som to technicky dokázal). Mohol som tiež kúpiť rôzne servá s klesajúcim krútiacim momentom pri vzdialení sa od základne, ale nákup identických serv od rovnakého predajcu bol zďaleka najlacnejšou možnosťou. Napájanie: Arduino na servá rozhodne nestačilo, pretože každé mg995 čerpá 350mA a mikroservo 9g odoberá 100mA, celkovo teda 350*4 +100 = 1500mA. Tak som zachránil nabíjačku (6 V 1,5 A) a spájal som k nej dva prepojovacie vodiče. (Ak by niektorí z vás potrebovali nejaké skutočné pokyny, opýtajte sa ich v komentároch a ja sa budem snažiť vytvoriť krok za krokom sprievodca) Zoznam materiálov:- konštrukcia- skrutka M5x7cm x5, skrutky m5 x15 (základňa)- skrutka M3x16mm x18*- skrutka M3x20mm x13*- skrutky M3 x40*- skrutka M3x8cm x3- svorka (inak spadne)- 3 hmoždinky- Arduino (alebo niečo iné na ovládanie, musí mať najmenej 5 PWM)- Niečo na napájanie 5-6 V a najmenej 1,5 A- 3x joysticky podobné ps2- 4x servo TowerPro mg995- 1x mikro servo TowerPro 9 g (na uchopenie)) - Veľa prepojovacích drôtov - Breadboard*(Použil som skrutky a skrutky, aby som ich mohol rýchlo zložiť a rozobrať, inak by ste takmer všetky mohli nahradiť skrutkami do drevárskeho priemyslu)

Krok 2: KÓD:

Cieľom je ovládať každé servo jednou z dvoch osí joysticku podobného ps2. Zdá sa, že každý joystick má pre os y aj x rôzne „pokojové hodnoty“(hodnota medzi 0-1023, keď je stále). bol problém, pretože rozdiel bol len malý (jedna mala nulu na y pri 623) a chcel som použiť funkciu mapy na prevod z 0-1023 na stupne. Funkcia mapy si však myslí, že zvyšná hodnota je 1023/2. Čo prinieslo každé servo v pohybe, akonáhle zapnem Arduino, nie je dobré. Podarilo sa mi to obísť manuálnym nájdením rozdielu medzi hodnotou čítania a každou inou pokojovou hodnotou (ktorú som vypočítal osobitne pre každý joystick), potom aby bol kód kratší a múdrejší, prinútil som ho, aby prečítal ostatné hodnoty vo funkcii nastavenia a uložil ich do niektorých premenných. Nový algoritmus sa spolieha na prevod prírastku v stupňoch, ale pre svoj prírastok som chcel veľmi nízke množstvo stupňov, takže Musel som to rozdeliť na konštantu: vyskúšal som veľa hodnôt, kým som neprišiel na konečných 200 (môžem pridať potenciometer na manuálne zmenenie tejto hodnoty na požadovanú hodnotu). Zvyšok kódu je myslím celkom štandardný, aj keď by mohlo byť elegantnejšie dať výpočet prírastku do samostatnej funkcie.

Krok 3: ELEKTRONIKA:

ELEKTRONIKA
ELEKTRONIKA

Zapojenie je rovnaké, ako je znázornené na obrázku alebo v sekajúcom súbore: signál serva k pinom: 5-6-9-10-11 a os joysticku k analogickým kolíkom: A0-A1-A2-A3-A4 bolo, že joysticky MUSÍ dodávať Arduino, NIE nabíjačka, ktorú používam na servá. V opačnom prípade by sa servo zbláznilo náhodným pohybom tam a späť. Myslím si, že to môže byť preto, že ak im dodám nabíjačku, Arduino nebude schopné presne rozlíšiť potenciálny rozdiel, keď ich presuniem, ale potom znova: V elektronike som úplne nový, takže je to len odhad. Pripojenie uzemňovača Arduino a uzemňovača nabíjačky cez nepájivé pole pomohlo predchádzať náhodným a neočakávaným pohybom, z podobného dôvodu, ako predpokladám, dodávka joystickov.

Krok 4: V súčasnej dobe POKRAČUJEME ZLEPŠENIE:

AKTUÁLNE POKRAČOVANIE ZLEPŠENIA
AKTUÁLNE POKRAČOVANIE ZLEPŠENIA

Pretože každý joystick môže ovládať 2 serva (1 na os), potrebujem 3 servá na ovládanie celého ramena, ale našťastie mám iba 2 palce. Preto som si myslel, že namiesto ovládania každého serva môžem ovládať iba xyz pozíciu úchop a otvorenie-zatvorenie úchopu, celkovo 4 osi, 2 joysticky a 2 palce! Zistil som, že tento problém je známy ako Inverse Kinematics, zistil som tiež, že je to všetko jednoduché. Cieľom je napísať (nelineárne) rovnice na zistenie stavu každého efektora (uhly pre serva) vzhľadom na konečnú polohu. Odovzdal som ručne napísaný papier s rovnicami a v súčasnosti pracujem na použití nového kódu. Nemalo by to byť príliš ťažké, v zásade musím prečítať joysticky, použiť ich hodnoty na úpravu xyz súradníc úchopu a potom ich priradiť k mojim rovniciam, vypočítať uhly serva a napísať ich.

Krok 5: BUDÚCE ZLEPŠENIA:

Takže som celkom spokojný s výsledkom a vzhľadom na to, že som úplne nový v oblasti elektroniky, ktorá nevyfukuje niečo alebo seba, bolo už obrovské víťazstvo. Ako som povedal na začiatku, akýkoľvek nápad na budúce vylepšenia, softvér aj hardvér, je viac než vítaný! Doteraz som premýšľal o: 1. Potenciometer na úpravu „citlivosti“joystickov.2. Nový kód, ktorý ho prinúti „zaznamenať“niektoré pohyby a vykonať ich znova (možno rýchlejšie a kratšie ako ľudský vklad) 3. Nejaký druh vizuálneho/diaľkového/hlasového vstupu a možnosť získať objekty bez toho, aby niekto používal joysticky4. Vedieť kresliť geometrické obrazce Máte ešte nejaký nápad? Neváhajte sa vyjadriť k akýmkoľvek návrhom. Ďakujem

Odporúča: