
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38



V této instrukci budu dělat jednoduchou robotickou ruku. To bude ovládáno pomocí hlavního ramene. Rameno si bude pamatovat pohyby a hrát postupně. Koncept není nový. Dostal jsem myšlenku od „mini robotic arm -by Stoerpeak“, kterou jsem chtěl dělat už dlouho, ale tehdy jsem byl úplně noob a neměl žádné znalosti o programování. Nyní konečně jeden stavím, udržuji jej jednoduchý, levný a sdílím ho s vámi všemi.
Pojďme tedy začít….
Krok 1: Věci, které budete potřebovat:-


Zde je seznam věcí, které budete potřebovat:-
1. Servomotory x 5 Odkaz pro USA:- https://amzn.to/2OxbSH7Link pro Evropu:-
2. Potenciometry x 5 (použil jsem 100 tis.) Odkaz pro USA:- https://amzn.to/2ROjhDMLink pro Evropu:-
3. Arduino UNO. (Můžete také použít Arduino Nano) Odkaz pro USA:- https://amzn.to/2DBbENWLink pro Evropu:-
4. Breadboard. (Navrhuji tuto sadu) Odkaz pro USA:- https://amzn.to/2Dy86w4Link pro Evropu:-
5. Baterie. (volitelně, používám adaptér 5 V)
6. Karton/dřevo/sluneční deska/akryl, co je k dispozici nebo lze snadno najít.
A také budete potřebovat nainstalované Arduino IDE.
Krok 2: Vytvoření paže:-


Zde jsem použil nanukové tyčinky k výrobě paže. Můžete použít jakýkoli materiál, který máte k dispozici. A můžete vyzkoušet různé mechanické konstrukce, abyste vytvořili ještě lepší rameno. můj design není příliš stabilní.
Právě jsem použil oboustrannou pásku k přilepení serva k tyči Popsicle a upevnění pomocí šroubů.
Pro rameno Master jsem nalepil potenciometry na nanuky a vyrobil rameno.
Odkaz na obrázky vám poskytne lepší představu.
Všechno jsem namontoval na plátěnou desku velikosti A4 použitou jako základ.
Krok 3: Vytváření připojení:-



V tomto kroku provedeme všechna potřebná připojení, viz obrázky výše.
- Nejprve připojte všechna serva paralelně k napájecímu zdroji (červený vodič na +ve a černý nebo hnědý vodič na GND)
- Dále připojte signální vodiče, tj. Žlutý nebo oranžový vodič k PWM pinu arduina.
- Nyní připojte potenciometry paralelně k +5v a Gnd z arduina.
- Připojte střední terminál k analogovému kolíku Ardunio.
Zde se k ovládání serv používají digitální piny 3, 5, 6, 9 a 10
Pro vstup z potenciometrů se používají analogové piny A0 až A4.
Servo připojené na pin 3 bude ovládáno potenciometrem připojeným k A0
Servo připojené na pin 5 bude ovládáno potem na A1 atd.…
Poznámka:- Přestože serva nejsou napájena arduinem, nezapomeňte připojit GND serva k arduinu, jinak nebude rameno fungovat.
Krok 4: Kódování:-

Logika tohoto kódu je poměrně jednoduchá, hodnoty potenciometrů jsou uloženy v poli, záznamy jsou poté procházeny pomocí smyčky for a serva provádějí kroky podle hodnot. Můžete se podívat na tento tutoriál, který jsem použil jako referenci „Ovládání a paměť potenciometru Arduino potenciometru“
Kód:- (Soubor ke stažení níže připojený.)
Nejprve globálně deklarujeme všechny potřebné proměnné, abychom je mohli používat v celém programu. K tomu není třeba žádné zvláštní vysvětlení
#zahrnout
// Objekty serva Servo Servo_0; Servo Servo_1; Servo Servo_2; Servo Servo_3; Servo Servo_4; // Objekty potenciometru int Pot_0; int Pot_1; int Pot_2; int Pot_3; int Pot_4; // Proměnná pro uložení pozice servo Servo_0_Pos; int Servo_1_Pos; int Servo_2_Pos; int Servo_3_Pos; int Servo_4_Pos; // Proměnná pro uložení hodnot předchozích pozic int Prev_0_Pos; int Prev_1_Pos; int Prev_2_Pos; int Předchozí_3_Pos; int Předchozí_4_Pos; // Proměnná pro uložení hodnot aktuální polohy int Current_0_Pos; int Current_1_Pos; int Aktuální_2_Pos; int Aktuální_3_Pos; int Aktuální_4_Pos; int Servo_Position; // Uloží úhel int Servo_Number; // Stores no of servo int Storage [600]; // Pole pro ukládání dat (Zvětšení pole zabere více paměti) int Index = 0; // Index pole začíná od 0. pozice char data = 0; // proměnná pro ukládání dat ze sériového vstupu.
Nyní napíšeme funkci nastavení, kde nastavíme piny a jejich funkce. Toto je hlavní funkce, která se spouští jako první
neplatné nastavení ()
{Serial.begin (9600); // Pro sériovou komunikaci mezi arduino a IDE. // Servo objekty jsou připojeny k pinům PWM. Servo_0.attach (3); Servo_1.attach (5); Servo_2.attach (6); Servo_3.attach (9); Servo_4.attach (10); // Serva jsou při inicializaci nastavena na pozici 100. Servo_0.write (100); Servo_1.write (100); Servo_2.write (100); Servo_3.write (100); Servo_4.write (100); Serial.println ( Stiskněte 'R' pro záznam a 'P' pro přehrávání); }
Nyní musíme přečíst hodnoty potenciometrů pomocí pinů analogového vstupu a namapovat je pro ovládání serv. Za tímto účelem definujeme funkci a pojmenujeme ji Map_Pot ();, můžete jej pojmenovat jakkoli chcete, je to funkce definovaná uživatelem
zrušit Map_Pot ()
{ / * Serva se otáčejí o 180 stupňů, ale použít je na limity není dobrý nápad, protože serva bzučí nepřetržitě, což je nepříjemné, takže omezujeme pohyb serva mezi: 1-179 * / Pot_0 = analogRead (A0); // Přečíst vstup z potu a uložit jej do Variable Pot_0. Servo_0_Pos = mapa (Pot_0, 0, 1023, 1, 179); // Mapování serv podle hodnoty mezi 0 až 1023 Servo_0.write (Servo_0_Pos); // Posuňte servo do této polohy. Pot_1 = analogRead (A1); Servo_1_Pos = mapa (Pot_1, 0, 1023, 1, 179); Servo_1.write (Servo_1_Pos); Pot_2 = analogRead (A2); Servo_2_Pos = mapa (Pot_2, 0, 1023, 1, 179); Servo_2.write (Servo_2_Pos); Pot_3 = analogRead (A3); Servo_3_Pos = mapa (Pot_3, 0, 1023, 1, 179); Servo_3.write (Servo_3_Pos); Pot_4 = analogRead (A4); Servo_4_Pos = mapa (Pot_4, 0, 1023, 1, 179); Servo_4.write (Servo_4_Pos); }
Nyní napíšeme funkci smyčky:
prázdná smyčka ()
{Map_Pot (); // Volání funkce pro čtení hodnot potu while (Serial.available ()> 0) {data = Serial.read (); if (data == 'R') Serial.println ("Nahrávání se pohybuje …"); if (data == 'P') Serial.println ("Přehrávání zaznamenaných tahů …"); } if (data == 'R') // Pokud je zadáno 'R', spusťte nahrávání. {// Uložte hodnoty do proměnné Prev_0_Pos = Servo_0_Pos; Prev_1_Pos = Servo_1_Pos; Prev_2_Pos = Servo_2_Pos; Prev_3_Pos = Servo_3_Pos; Prev_4_Pos = Servo_4_Pos; Map_Pot (); // Mapová funkce vyvolaná pro porovnání if (abs (Prev_0_Pos == Servo_0_Pos)) // absolutní hodnota se získá porovnáním {Servo_0.write (Servo_0_Pos); // Pokud se hodnoty shodují, servo se přemístí, pokud (Current_0_Pos! = Servo_0_Pos) // Pokud se hodnoty neshodují {Storage [Index] = Servo_0_Pos + 0; // Hodnota je přidána do pole Index ++; // Hodnota indexu zvýšena o 1} Current_0_Pos = Servo_0_Pos; } /* Podobně se porovnávání hodnot provádí pro všechna serva, +100 se přidá ke každému záznamu jako diferenciální hodnota. */ if (abs (Prev_1_Pos == Servo_1_Pos)) {Servo_1.write (Servo_1_Pos); if (Current_1_Pos! = Servo_1_Pos) {Storage [Index] = Servo_1_Pos + 100; Index ++; } Current_1_Pos = Servo_1_Pos; } if (abs (Prev_2_Pos == Servo_2_Pos)) {Servo_2.write (Servo_2_Pos); if (Current_2_Pos! = Servo_2_Pos) {Storage [Index] = Servo_2_Pos + 200; Index ++; } Current_2_Pos = Servo_2_Pos; } if (abs (Prev_3_Pos == Servo_3_Pos)) {Servo_3.write (Servo_3_Pos); if (Current_3_Pos! = Servo_3_Pos) {Storage [Index] = Servo_3_Pos + 300; Index ++; } Current_3_Pos = Servo_3_Pos; } if (abs (Prev_4_Pos == Servo_4_Pos)) {Servo_4.write (Servo_4_Pos); if (Current_4_Pos! = Servo_4_Pos) {Storage [Index] = Servo_4_Pos + 400; Index ++; } Current_4_Pos = Servo_4_Pos; } / * Hodnoty jsou vytištěny na sériovém monitoru, '\ t' slouží k zobrazení hodnot v tabulkovém formátu * / Serial.print (Servo_0_Pos); Serial.print ("\ t"); Serial.print (Servo_1_Pos); Serial.print ("\ t"); Serial.print (Servo_2_Pos); Serial.print ("\ t"); Serial.print (Servo_3_Pos); Serial.print ("\ t"); Serial.println (Servo_4_Pos); Serial.print ("Index ="); Serial.println (Index); zpoždění (50); } if (data == 'P') // IF 'P' is entered, Start playing zaznamenané pohyby. {for (int i = 0; i <Index; i ++) // Procházení pole pomocí for for {Servo_Number = Storage /100; // Zjistí počet serv Servo_Position = Úložiště % 100; // Vyhledá polohu přepínače serva (Servo_Number) {případ 0: Servo_0.write (Servo_Position); přestávka; případ 1: Servo_1.write (Servo_Position); přestávka; případ 2: Servo_2.write (Servo_Position); přestávka; případ 3: Servo_3.write (Servo_Position); přestávka; případ 4: Servo_4.write (Servo_Position); přestávka; } zpoždění (50); }}}
Jakmile je kód připraven, nahrajte jej na desku arduino
Inteligentní rameno je připraveno k práci. Funkce ještě není tak hladká jako ta, kterou vytvořil Stoerpeak.
Pokud můžete kód vylepšit nebo pro mě máte nějaké návrhy, dejte mi prosím vědět v sekci komentáře.
S tím, co bylo řečeno, přejděme k testování….
Krok 5: Testování:-
Po úspěšném nahrání kódu na desku otevřete „Sériový monitor“, který najdete v možnosti Nástroje. Když se spustí sériový monitor, arduino se resetuje. Nyní můžete robotické rameno ovládat pomocí hlavního ramene. Nic se ale nezaznamenává.
Chcete -li zahájit nahrávání, zadejte na monitoru „R“, nyní můžete provádět pohyby, které chcete zaznamenat.
Po dokončení tahů musíte zadat „P“, abyste mohli zaznamenané tahy přehrát. Serva budou i nadále provádět tahy, dokud nebude deska resetována.
Doporučuje:
Chytré stolní LED světlo - Chytré osvětlení W/ Arduino - Pracovní prostor Neopixels: 10 kroků (s obrázky)

Chytré stolní LED světlo | Chytré osvětlení W/ Arduino | Neopixels Workspace: Nyní dny trávíme spoustu času doma, studujeme a pracujeme virtuálně, tak proč nezvětšit náš pracovní prostor pomocí vlastního a chytrého systému osvětlení založeného na LED Arduino a Ws2812b LED. Zde vám ukážu, jak vybudovat Smart Stolní LED světlo, které
Jak vyrobit bezdrátové robotické rameno pomocí airsoftových střel: 9 kroků

Jak vyrobit bezdrátovou robotickou ruku pomocí airsoftových střel: Ahoj přátelé, v tomto instruktážním návodu vám ukážu, jak vyrobit bezdrátové robotické rameno, které se může houpat, pohybovat směrem nahoru a dolů a střílet airsoftové střely pomocí ovládání bezdrátového dálkového ovladače
Jednoduché robotické rameno Arduino: 5 kroků

Jednoduché robotické rameno Arduino: Zde vám ukážu, jak vytvořit základní robotické rameno Arduino ovládané potenciometrem. Tento projekt je ideální pro učení se základům arduina, pokud jste zahlceni množstvím možností na instruktážních programech a nevíte, kde
Jednoduché robotické rameno ovládané skutečným pohybem ruky: 7 kroků (s obrázky)

Jednoduché robotické rameno ovládané skutečným pohybem ruky: Jedná se o velmi jednoduché robotické rameno DOF pro začátečníky. Rameno je ovládáno Arduino. Je spojen se snímačem, který je připevněn na ruce operátora. Operátor proto může ovládat loket paže ohnutím vlastního pohybu loktů
Ovládejte robotické rameno pomocí Zio pomocí ovladače PS2: 4 kroky

Ovládejte robotickou ruku pomocí Zio pomocí ovladače PS2: Tento blogový příspěvek je součástí série Zio Robotics. Úvod Toto je závěrečná instalace příspěvku „Ovládejte robotickou ruku pomocí Zio“. V tomto tutoriálu přidáme další část do naší robotické paže. Předchozí výukové programy neobsahují základ pro