Obsah:

Robotické rameno s moduly Zio Část 2: 11 kroků
Robotické rameno s moduly Zio Část 2: 11 kroků

Video: Robotické rameno s moduly Zio Část 2: 11 kroků

Video: Robotické rameno s moduly Zio Část 2: 11 kroků
Video: Ovládání 32 servomotorů pomocí PCA9685 a Arduino: V3 2024, Červenec
Anonim
Robotické rameno s moduly Zio, část 2
Robotické rameno s moduly Zio, část 2

V dnešním tutoriálu využijeme k ovládání robotické paže všechna 4 serva a bezdrátový ovladač PS2.

Tento blogový příspěvek je součástí Zio Robotics Series.

Úvod

V našem předchozím blogu jsme zveřejnili část 1 návod, jak ovládat robotické rameno pomocí modulů Zio. Část 1 se většinou soustředila na automatické ovládání otevírání a zavírání drápu vaší robotické paže.

V dnešním tutoriálu to trochu pořešíme zahrnutím bezdrátového ovladače PS2 k ovládání robotické paže. Pro tento projekt použijeme 4 serva.

Krok 1: Přehled projektu

Stupeň obtížnosti:

Zio Padawan

Užitečné zdroje:

Měli byste mít základní znalosti o tom, jak nainstalovat vývojové desky Zio. V tomto kurzu předpokládáme, že vaše vývojová deska je již nakonfigurována a je připravena k nastavení. Pokud jste desku ještě nenakonfigurovali, podívejte se do našeho níže uvedeného tutoriálu Zio Qwiic Start Guide:

Zio Zuino M UNO Qwiic Průvodce spuštěním

Krok 2: Schémata

Schémata
Schémata

Zde je schéma zapojení projektu Robotic Arm Part 2 Project a schéma ovladače PS2 potřebné k pochopení vaší kódovací části.

Krok 3: Schéma ovladače PS2

Schéma ovladače PS2
Schéma ovladače PS2

Krok 4: Nastavení připojení modulů Zio

Níže je připojení našich modulů Zio, které mají být nastaveny pomocí robotického ramene. Propojení všech modulů dohromady je velmi snadné a nastavení nezabere více než 10 minut.

Krok 5: Připojte servo s robotickým ramenem k servo ovladači Zio 16

Připojte servo s robotickým ramenem k servo ovladači Zio 16
Připojte servo s robotickým ramenem k servo ovladači Zio 16

Krok 6: Připojte 16 servo k posilovači DC/DC a nastavte jej na 6,0 V

Připojte 16 servo k DC/DC posilovači a nastavte jej na 6,0 V
Připojte 16 servo k DC/DC posilovači a nastavte jej na 6,0 V

K posílení a úpravě napájecího napětí baterie na 6,0 používáme DC/DC Booster.

Pomocí potenciometru na DC Booster upravte napětí, dokud nezískáte 6,0. Stiskněte tlačítko In/Out, dokud se na displeji nezobrazí 6.0. Abyste mohli upravit napětí, musíte nejprve napájet (3,7 V baterii) posilovač DC/DC.

Krok 7: Připojte Zuino M Uno k servopohonu Zio 16

Připojte Zuino M Uno k servopohonu Zio 16
Připojte Zuino M Uno k servopohonu Zio 16

Qwiic připojte Zuino M Uno k ovladači Zio Servo pomocí kabelu qwiic.

Krok 8: Připojení Uno k přijímači PS2

Připojení Uno k přijímači PS2
Připojení Uno k přijímači PS2

Zde je pinový diagram připojení. Pro tuto část potřebujete 5 propojovacích kabelů mezi mužem a ženou.

Krok 9: Kód pro robotické rameno

Budeme používat knihovnu PS2 Arduino pro kódování našeho bezdrátového ovladače PS2, aby fungoval s naším robotickým ramenem. Zdrojový kód tohoto projektu Robotic Arm Part 2 můžete najít a stáhnout na naší stránce Github.

Stáhněte a nainstalujte následující knihovny a uložte je do své místní složky knihoven Arduino IDE:

  • Knihovna servo ovladačů Adafruit PWM
  • Knihovna PS2 Arduino

Chcete -li nainstalovat knihovny, otevřete Arduino IDE, přejděte na kartu Sketch, vyberte Include Library -> Add. Zip Library. Vyberte výše uvedené knihovny, které mají být zahrnuty do vašeho IDE.

Arduino má praktický průvodce instalací knihoven do vašeho Arduino IDE. Podívejte se na ně zde!

Krok 10: Spusťte kód

Spusťte svůj kód
Spusťte svůj kód

Otevřete Arduino IDE. V části Soubory> Příklady> PS2_Arduino_Library vyberte PS2X_Servo

Poznámka: Než budete moci ovládat svou robotickou ruku ovladačem PS2, zkontrolujte následující kroky: Zapněte ovladač PS2. Zkontrolujte, zda se rozsvítí kontrolka LED režimu. Pokud tomu tak není, stiskněte tlačítko Mode na ovladači. Poté, co provedete výše uvedené kroky, musíte na svém Zuino M Uno stisknout resetovací tlačítko, aby si přečetlo nastavení vašeho ovladače. Chcete -li pohybovat robotickou paží, musíte stisknout L1 a joystick.

  • Levý joystick ovládá ohýbání paže nahoru nebo dolů
  • Pravý joystick ovládá dráp buď k otevření nebo zavření a otáčení drápu doleva nebo doprava.

Krok 11: Vysvětlení kódu

Použití knihovny PS2X Arduino je jednoduché, vyžaduje pouze inicializaci, nastavení a poté příkaz ke čtení.

Chcete -li nastavit spojení pro váš ovladač PS2 s vaším Uno, níže jsou piny, které musíte definovat ve svém kódu:

/******************************************************* ****************nastavit piny připojené k řadiči PS2:* - 1e sloupec: původní* - 2e colmun: Stef? *nahraďte čísla pinů těmi, která používáte ********************************** **********************/#definovat PS2_DAT 13 // 14#definovat PS2_CMD 11 // 15#definovat PS2_SEL 10 // 16#definovat PS2_CLK 12 // 17

Vyměnili jsme piny za ty, které používáme k připojení k našemu Uno, jak je uvedeno na Pin Diagram výše.

/******************************************************* **************** vyberte režimy ovladače PS2:* - tlaky = analogové čtení tlačítek* - rachot = rachot motoru*odkomentujte 1 řádek pro každý výběr režimu ** ******************************************************** ************///#definovat tlaky true#definovat tlaky false //#definovat rachot true#definovat rachot nepravdy

Zde jsme definovali režim PS2 pro tlaky a rachot jako falešný. Komentovali jsme ty, které nepoužíváme.

K ovládání pohybu naší robotické paže budeme používat pouze příkaz Joystick ovladače a L1.

void loop () {/* Musíte si přečíst Gamepad, abyste získali nové hodnoty a nastavili hodnoty vibrací ps2x.read_gamepad (malý motor zapnuto/vypnuto, větší síla motoru od 0 do 255), pokud nepovolíte rachot, použijte ps2x.read_gamepad (); bez hodnot Měli byste to zavolat alespoň jednou za sekundu*/if (chyba == 1) // přeskočit smyčku, pokud nebyl nalezen žádný ovladač; else {// DualShock Controller ps2x.read_gamepad (false, vibrace); // přečtěte ovladač a nastavte velký motor, aby se točil rychlostí 'vibrace', pokud (ps2x. Button (PSB_START)) // bude PRAVDA, dokud bude stisknuto tlačítko Serial.println ("Start je držen"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Výběr je držen"); vibrovat = ps2x. Analog (PSAB_CROSS); // tím se nastaví rychlost vibrací velkého motoru podle toho, jak silně stisknete modré tlačítko (X), pokud (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// vytiskne hodnoty stick, pokud je některá z TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Hodnoty Stick:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Níže uvedený kód je místo, kde kódujeme naše serva, která ovládají naše robotické rameno, které zahrnujeme do volání funkce pod ps2x.button (PSB_L1) || tlačítko ps2x. (PSB_R1).

Chcete -li ovládat robotickou paži, musíte společně s joystickem stisknout tlačítko L1 nebo R1.

Levý joystick ovládá serva 2 a 3 pro část paže - ovládá ohýbání paže nahoru a dolů, zatímco pravý joystick ovládá serva 0 a 1 drápu robotického ramene otevírání nebo zavírání a otáčení doleva nebo doprava.

SERVO 0, 1 - Dráp SERVO 2, 3 - Arm

V této části můžete provádět změny hodnot a ovládat tak stupeň úhlu své robotické paže:

pulselen0 = mapa (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = mapa (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = mapa (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = mapa (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Doporučuje: