Innehållsförteckning:

Robotarm med Zio -moduler del 2: 11 steg
Robotarm med Zio -moduler del 2: 11 steg

Video: Robotarm med Zio -moduler del 2: 11 steg

Video: Robotarm med Zio -moduler del 2: 11 steg
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Robotarm med Zio -moduler del 2
Robotarm med Zio -moduler del 2

I dagens handledning kommer vi att använda alla fyra servon och en trådlös PS2 -kontroller för att styra robotarmen.

Det här blogginlägget är en del av Zio Robotics Series.

Introduktion

I vår tidigare blogg publicerade vi del 1 -handledning om hur du styr en robotarm med Zio -moduler. Del 1 koncentrerades mestadels på att automatiskt styra din robotarms klo för att öppna och stänga.

I dagens handledning kommer vi att förstora det lite genom att inkludera en PS2 trådlös handkontroll för att styra robotarmen. För detta projekt kommer vi att använda 4 servon.

Steg 1: Projektöversikt

Svårighetsgrad:

Zio Padawan

Användbara resurser:

Du bör ha en grundläggande förståelse för hur du installerar Zio -utvecklingsbrädor. I den här självstudien antar vi att ditt utvecklingskort redan är konfigurerat och är redo att konfigureras. Om du inte har konfigurerat ditt kort ännu, kolla in vår Zio Qwiic Startguide nedan för att komma igång:

Zio Zuino M UNO Qwiic Startguide

Steg 2: Scheman

Scheman
Scheman

Här är kopplingsschemat för Robotic Arm Part 2 -projektet samt PS2 -controller -diagrammet som behövs för att förstå din kodningsdel.

Steg 3: PS2 Controller Diagram

PS2 Controller Diagram
PS2 Controller Diagram

Steg 4: Inställning för anslutning av Zio -moduler

Nedan visas anslutningen av våra Zio -moduler som ska installeras med robotarmen. Det är ganska enkelt att ansluta alla moduler och det tar inte mer än 10 minuter att installera.

Steg 5: Anslut Robotic Arm Servo till Zio 16 Servo Controller

Anslut Robotic Arm Servo till Zio 16 Servo Controller
Anslut Robotic Arm Servo till Zio 16 Servo Controller

Steg 6: Anslut din 16 -servo till DC/DC Booster och ställ in den på 6,0V

Anslut din 16 Servo till DC/DC Booster och ställ in den på 6,0V
Anslut din 16 Servo till DC/DC Booster och ställ in den på 6,0V

Vi använder en DC/DC Booster för att öka och justera batteriets matningsspänning till 6,0.

Använd potentiometern på DC Booster för att justera spänningen tills du får 6,0. Tryck på In/Out -knappen tills displayen visar 6.0. Du måste först mata (3,7V batteri) till din DC/DC Booster för att justera spänningen.

Steg 7: Anslut Zuino M Uno till Zio 16 Servo Controller

Anslut Zuino M Uno till Zio 16 Servo Controller
Anslut Zuino M Uno till Zio 16 Servo Controller

Qwiic ansluter Zuino M Uno till Zio Servo -kontrollen med qwiic -kabel.

Steg 8: Anslut Uno till PS2 -mottagaren

Ansluter Uno till PS2 -mottagaren
Ansluter Uno till PS2 -mottagaren

Här är ett stiftdiagram över anslutningarna. Du behöver 5 bygelkablar av man till kvinna för den här delen.

Steg 9: Kod för robotarm

Vi kommer att använda PS2 Arduino -biblioteket för att koda vår PS2 trådlösa handkontroll för att arbeta med vår robotarm. Du kan hitta och ladda ner källkoden för detta Robotic Arm Part 2 -projekt på vår Github -sida.

Ladda ner och installera följande bibliotek och spara det i din lokala mapp för Arduino IDE -bibliotek:

  • Adafruit PWM Servo Driver Library
  • PS2 Arduino -bibliotek

För att installera biblioteken öppnar du din Arduino IDE, går till fliken Skiss, väljer Inkludera bibliotek -> Lägg till. Zip -bibliotek. Välj ovanstående bibliotek som ska ingå i din IDE.

Arduino har en praktisk guide om hur du installerar bibliotek till din Arduino IDE. Kolla in dem här!

Steg 10: Kör din kod

Kör din kod
Kör din kod

Öppna Arduino IDE. Under Filer> Exempel> PS2_Arduino_Library, välj PS2X_Servo

Obs! Innan du kan styra din robotarm med PS2 -kontrollen, kontrollera följande steg: Slå på din PS2 -kontroller. Kontrollera att LED -läget lyser. Om det inte gör det, tryck på Mode -knappen på din handkontroll. Efter att ha gjort ovanstående måste du trycka på återställningsknappen på din Zuino M Uno för att den ska kunna läsa dina kontrollerinställningar. Du måste trycka på L1 och joysticken för att flytta din robotarm.

  • Vänster joystick styr böjningen av armen uppåt eller nedåt
  • Höger joystick styr klaven att antingen öppna eller stänga och rotera klon åt vänster eller höger.

Steg 11: Kodförklaring

Användningen av PS2X Arduino -biblioteket är enkelt, kräver bara en initialisering, en installation och sedan ett läskommando.

För att ställa in anslutningen för din PS2 -controller med din Uno, nedan är stiften du behöver definiera i din kod:

/************************************************* ****************set -pins anslutna till PS2 -controller:* - 1e kolumn: original* - 2e colmun: Stef? *ersätt stiftnumren med de du använder ****************************************** **********************/#definiera PS2_DAT 13 // 14 #define PS2_CMD 11 // 15#definiera PS2_SEL 10 // 16#definiera PS2_CLK 12 // 17

Vi har ersatt stiften med de som vi använder för att ansluta till vår Uno enligt beskrivningen på stiftdiagrammet ovan.

/************************************************* ***************** välj lägen för PS2 -styrenheten:* - tryck = analog avläsning av tryckknappar* - mullrande = motorrullning*avdelning 1 av raderna för varje lägesval ** ************************************************** ************///#definiera tryck sant#definiera tryck falska //#definiera mullra sant#definiera mullra falskt

Här definierade vi PS2 -läge för tryck och mullrande som falskt. Vi kommenterade de vi inte använder.

Vi kommer bara att använda styrenhetens joystick -kommando och L1 för att styra rörelsen av vår robotarm.

void loop () {/* Du måste läsa Gamepad för att få nya värden och ställa in vibrationsvärden ps2x.read_gamepad (liten motor på/av, större motorstyrka från 0-255) om du inte aktiverar mullret, använd ps2x.read_gamepad (); utan värden Du bör kalla detta minst en gång i sekunden*/if (fel == 1) // hoppa över slinga om ingen regulator hittade retur; annars {// DualShock Controller ps2x.read_gamepad (falskt, vibrera); // läs styrenheten och ställ in stor motor för att snurra med "vibrera" -hastighet om (ps2x. Button (PSB_START)) // kommer att vara SANT så länge knappen trycks in Serial.println ("Start hålls kvar"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Select is holded"); vibrera = ps2x. Analog (PSAB_CROSS); // detta kommer att ställa in den stora motorns vibrationshastighet baserat på hur hårt du trycker på den blå (X) -knappen om (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// skriv ut pinne -värden om någon av dem är 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 nedan är där vi kodar våra servon som styr vår robotarm som vi inkluderar i funktionsanropet under ps2x.knapp (PSB_L1) || ps2x.knapp (PSB_R1).

Du måste trycka på L1 eller R1 -knappen tillsammans med joysticken för att styra din robotarm.

Vänster joystick -styrservos 2 och 3 för armdelen - styr böjningen upp och ner på armen respektive, medan höger joystick styrservos 0 och 1 i robotarmens klo för att öppna eller stänga, och för att rotera vänster eller höger.

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

Du kan göra värden i det här avsnittet för att styra graden av din robotarmsvinkel:

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

Rekommenderad: