Innholdsfortegnelse:

Robotarm med Zio -moduler Del 2: 11 trinn
Robotarm med Zio -moduler Del 2: 11 trinn

Video: Robotarm med Zio -moduler Del 2: 11 trinn

Video: Robotarm med Zio -moduler Del 2: 11 trinn
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Juli
Anonim
Robotarm med Zio -moduler del 2
Robotarm med Zio -moduler del 2

I dagens opplæring bruker vi alle 4 servoer og en trådløs PS2 -kontroller for å kontrollere robotarmen.

Dette blogginnlegget er en del av Zio Robotics Series.

Introduksjon

I vår forrige blogg la vi ut del 1 -opplæring om hvordan du kontrollerer en robotarm ved hjelp av Zio -moduler. Del 1 konsentrerte seg for det meste om automatisk å kontrollere robotarmens klo for å åpne og lukke.

I dagens opplæring vil vi kutte litt på det ved å inkludere en PS2 trådløs kontroller for å kontrollere robotarmen. For dette prosjektet bruker vi 4 servoer.

Trinn 1: Prosjektoversikt

Vanskelighetsgrad:

Zio Padawan

Nyttige ressurser:

Du bør ha en grunnleggende forståelse for hvordan du installerer Zio utviklingstavler. I denne opplæringen antar vi at utviklingsbordet ditt allerede er konfigurert og er klart til å bli satt opp. Hvis du ikke har konfigurert brettet ditt ennå, kan du ta en titt på Zio Qwiic startguide nedenfor for å komme i gang:

Zio Zuino M UNO Qwiic Startguide

Trinn 2: Skjemaer

Skjemaer
Skjemaer

Her er kablingsskjemaene for Robotic Arm Part 2 -prosjektet samt PS2 -kontrollerdiagrammet som trengs for å forstå for din kodingsdel.

Trinn 3: PS2 -kontrollerdiagram

PS2 -kontrollerdiagram
PS2 -kontrollerdiagram

Trinn 4: Oppsett av Zio -moduler

Nedenfor er forbindelsen mellom våre Zio -moduler som skal settes opp med Robotic Arm. Det er ganske enkelt å koble alle modulene sammen, og det vil ikke ta mer enn 10 minutter å sette opp.

Trinn 5: Koble Robotic Arm Servo til Zio 16 Servo Controller

Koble Robotic Arm Servo til Zio 16 Servo Controller
Koble Robotic Arm Servo til Zio 16 Servo Controller

Trinn 6: Koble din 16 Servo til DC/DC Booster og sett den til 6,0V

Koble din 16 Servo til DC/DC Booster og sett den til 6,0V
Koble din 16 Servo til DC/DC Booster og sett den til 6,0V

Vi bruker en DC/DC Booster for å øke og justere batteriforsyningsspenningen til 6,0.

Bruk potensiometeret på DC Booster for å justere spenningen til du får 6,0. Trykk på In/Out -knappen til displayet viser 6.0. Du må levere strøm (3,7V batteri) først til DC/DC Booster for å justere spenningen.

Trinn 7: Koble Zuino M Uno til Zio 16 Servo Controller

Koble Zuino M Uno til Zio 16 Servo Controller
Koble Zuino M Uno til Zio 16 Servo Controller

Qwiic koble Zuino M Uno til Zio Servo -kontrolleren med qwiic -kabel.

Trinn 8: Koble Uno til PS2 -mottakeren

Koble Uno til PS2 -mottakeren
Koble Uno til PS2 -mottakeren

Her er et pin -diagram over tilkoblingene. Du trenger 5 stikkontakter fra mann til kvinne for denne delen.

Trinn 9: Kode for robotarm

Vi bruker PS2 Arduino -biblioteket til å kode PS2 trådløs kontroller for å jobbe med vår robotarm. Du kan finne og laste ned kildekoden for dette Robotic Arm Part 2 -prosjektet på vår Github -side.

Last ned og installer følgende biblioteker og lagre det i din lokale Arduino IDE -biblioteksmappe:

  • Adafruit PWM Servo Driver Library
  • PS2 Arduino bibliotek

For å installere bibliotekene, åpne Arduino IDE, gå til Skisse -fanen, velg Inkluder bibliotek -> Legg til. Zip -bibliotek. Velg bibliotekene ovenfor som skal inkluderes i IDE -en din.

Arduino har en praktisk guide til hvordan du installerer biblioteker til Arduino IDE. Sjekk dem ut her!

Trinn 10: Kjør koden din

Kjør koden din
Kjør koden din

Åpne Arduino IDE. Under Filer> Eksempler> PS2_Arduino_Library, velg PS2X_Servo

Merk: Før du kan kontrollere robotarmen din med PS2 -kontrolleren, må du kontrollere følgende trinn: Slå på PS2 -kontrolleren. Kontroller at modus -LED -en lyser. Hvis ikke, trykker du på Mode -knappen på kontrolleren. Etter å ha gjort det ovenfor, må du trykke på tilbakestillingsknappen på Zuino M Uno for at den skal lese kontrollerinnstillingene. Du må trykke på L1 og styrespaken for å flytte robotarmen.

  • Venstre joystick styrer bøyningen av armen oppover eller nedover
  • Høyre joystick styrer kloen til enten å åpne eller lukke og rotere kloen til venstre eller høyre.

Trinn 11: Forklaring av kode

Bruk av PS2X Arduino -biblioteket er enkelt, og krever bare en initialisering, et oppsett og deretter en lesekommando.

For å angi tilkoblingen for PS2 -kontrolleren din til Uno, er pinnene du må definere i koden nedenfor:

/************************************************ ****************sett pins til PS2 -kontrolleren:* - 1e kolonne: original* - 2e colmun: Stef? *bytt ut pin -numre med de du bruker ***************************************** **********************/#definere PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#definere PS2_SEL 10 // 16#definere PS2_CLK 12 // 17

Vi har byttet ut pinnene med de vi bruker til å koble til Uno som beskrevet på pinnediagrammet ovenfor.

/************************************************ ***************** velg moduser for PS2 -kontrolleren:* - trykk = analog avlesning av trykknapper* - rumble = motorbrumling*uncomment 1 av linjene for hvert modusvalg ** ************************************************* ************///#definere trykk true#definere trykk false //#definere rumble true#definere rumble false

Her definerte vi PS2 -modus for trykk og rumling som falskt. Vi kommenterte de vi ikke bruker.

Vi bruker bare kontrollerens joystick -kommando og L1 for å kontrollere bevegelsen av vår robotarm.

void loop () {/* Du må lese Gamepad for å få nye verdier og angi vibrasjonsverdier ps2x.read_gamepad (liten motor på/av, større motorstyrke fra 0-255) hvis du ikke aktiverer rumlen, bruk ps2x.read_gamepad (); uten verdier Du bør kalle dette minst en gang i sekundet*/if (error == 1) // hopp over loop hvis ingen kontroller fant retur; annet {// DualShock Controller ps2x.read_gamepad (usann, vibrer); // les kontrolleren og sett den store motoren til å rotere med 'vibrere' hastighet hvis (ps2x. Button (PSB_START)) // vil være SANN så lenge knappen trykkes på Serial.println ("Start holdes inne"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Velg blir holdt"); vibrere = ps2x. Analog (PSAB_CROSS); // dette vil angi den store motorens vibrasjonshastighet basert på hvor hardt du trykker på den blå (X) -knappen hvis (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// skrive ut pinneverdier hvis enten er 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 ("Stick Values:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

Koden nedenfor er der vi koder servoene våre som styrer vår robotarm som vi inkluderer i funksjonsanropet under ps2x.button (PSB_L1) || ps2x. -knapp (PSB_R1).

Du må trykke på L1 eller R1 -knappen sammen med styrespaken for å kontrollere robotarmen.

Venstre joystick -kontrollservo 2 og 3 for armdelen - kontrollerer bøyningen henholdsvis opp og ned på armen, mens høyre styrespak betjener servo 0 og 1 i robotarmens klo for å åpne eller lukke, og for å rotere til venstre eller høyre.

SERVO 0, 1 - klo SERVO 2, 3 - Arm

Du kan gjøre endringer i verdiene i denne delen for å kontrollere graden av robotarmens vinkel:

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

Anbefalt: