Inhaltsverzeichnis:

Roboterarm mit Zio-Modulen Teil 2: 11 Schritte
Roboterarm mit Zio-Modulen Teil 2: 11 Schritte

Video: Roboterarm mit Zio-Modulen Teil 2: 11 Schritte

Video: Roboterarm mit Zio-Modulen Teil 2: 11 Schritte
Video: Lesson 2: Getting Arduino Software and using Documentation for SunFounder Arduino Kit | SunFounder 2024, Juli
Anonim
Roboterarm mit Zio-Modulen Teil 2
Roboterarm mit Zio-Modulen Teil 2

Im heutigen Tutorial werden wir alle 4 Servos und einen PS2-Wireless-Controller verwenden, um den Roboterarm zu steuern.

Dieser Blogbeitrag ist Teil der Zio Robotics Series.

Einführung

In unserem vorherigen Blog haben wir Teil 1-Tutorial zur Steuerung eines Roboterarms mit Zio-Modulen veröffentlicht. Teil 1 konzentrierte sich hauptsächlich darauf, die Klaue Ihres Roboterarms automatisch zum Öffnen und Schließen zu steuern.

Im heutigen Tutorial werden wir es ein wenig verbessern, indem wir einen PS2-Wireless-Controller zur Steuerung des Roboterarms hinzufügen. Für dieses Projekt werden wir 4 Servos verwenden.

Schritt 1: Projektübersicht

Schwierigkeitsgrad:

Zio Padawan

Hilfreiche Ressourcen:

Sie sollten über ein grundlegendes Verständnis der Installation von Zio-Entwicklungsboards verfügen. In diesem Tutorial gehen wir davon aus, dass Ihr Entwicklungsboard bereits konfiguriert ist und eingerichtet werden kann. Wenn Sie Ihr Board noch nicht konfiguriert haben, sehen Sie sich unser Tutorial zur Zio Qwiic-Startanleitung unten an, um loszulegen:

Zio Zuino M UNO Qwiic-Startanleitung

Schritt 2: Schaltpläne

Schema
Schema

Hier ist der Schaltplan des Roboterarm-Teil-2-Projekts sowie das PS2-Controller-Diagramm, das zum Verständnis Ihres Codierungsteils benötigt wird.

Schritt 3: PS2-Controller-Diagramm

PS2-Controller-Diagramm
PS2-Controller-Diagramm

Schritt 4: Zio-Module-Verbindung einrichten

Unten sehen Sie die Verbindung unserer Zio-Module, die mit dem Roboterarm eingerichtet werden sollen. Das Verbinden aller Module ist ziemlich einfach und dauert nicht länger als 10 Minuten.

Schritt 5: Verbinden Sie den Roboterarm-Servo mit dem Zio 16-Servocontroller

Verbinden Sie den Roboterarm-Servo mit dem Zio 16-Servocontroller
Verbinden Sie den Roboterarm-Servo mit dem Zio 16-Servocontroller

Schritt 6: Verbinden Sie Ihren 16-Servo mit dem DC / DC-Booster und stellen Sie ihn auf 6,0 V ein

Verbinden Sie Ihren 16 Servo mit dem DC / DC-Booster und stellen Sie ihn auf 6,0 V ein
Verbinden Sie Ihren 16 Servo mit dem DC / DC-Booster und stellen Sie ihn auf 6,0 V ein

Wir verwenden einen DC/DC-Booster, um die Batterieversorgungsspannung zu erhöhen und auf 6,0 einzustellen.

Verwenden Sie das Potentiometer am DC-Booster, um die Spannung einzustellen, bis Sie 6,0 erhalten. Drücken Sie die In/Out-Taste, bis das Display 6.0 anzeigt. Sie müssen zuerst Ihren DC/DC-Booster mit Strom (3,7 V Batterie) versorgen, um die Spannung anzupassen.

Schritt 7: Verbinden Sie Zuino M Uno mit dem Zio 16 Servo Controller

Verbinden Sie Zuino M Uno mit dem Zio 16 Servo Controller
Verbinden Sie Zuino M Uno mit dem Zio 16 Servo Controller

Qwiic verbinden Zuino M Uno mit dem Zio Servo Controller mit Qwiic Kabel.

Schritt 8: Anschließen von Uno an den PS2-Empfänger

Uno mit dem PS2-Empfänger verbinden
Uno mit dem PS2-Empfänger verbinden

Hier ist ein Pin-Diagramm der Anschlüsse. Sie benötigen 5 Stecker-auf-Buchse-Überbrückungsdrähte für dieses Teil.

Schritt 9: Code für Roboterarm

Wir werden die PS2-Arduino-Bibliothek verwenden, um unseren PS2-Wireless-Controller für die Arbeit mit unserem Roboterarm zu codieren. Sie können den Quellcode für dieses Robotic Arm Part 2-Projekt auf unserer Github-Seite finden und herunterladen.

Laden Sie die folgenden Bibliotheken herunter, installieren Sie sie und speichern Sie sie in Ihrem lokalen Arduino IDE-Bibliotheksordner:

  • Adafruit PWM-Servotreiberbibliothek
  • PS2 Arduino-Bibliothek

Um die Bibliotheken zu installieren, öffnen Sie Ihre Arduino IDE, gehen Sie zur Registerkarte Sketch, wählen Sie Bibliothek einschließen -> Add. Zip Library. Wählen Sie die oben genannten Bibliotheken aus, die in Ihre IDE aufgenommen werden sollen.

Arduino hat eine praktische Anleitung zum Installieren von Bibliotheken in Ihrer Arduino-IDE. Schau sie dir hier an!

Schritt 10: Führen Sie Ihren Code aus

Führen Sie Ihren Code aus
Führen Sie Ihren Code aus

Öffnen Sie die Arduino-IDE. Wählen Sie unter Dateien > Beispiele > PS2_Arduino_Library PS2X_Servo

Hinweis: Bevor Sie Ihren Roboterarm mit dem PS2-Controller steuern können, überprüfen Sie die folgenden Schritte: Schalten Sie Ihren PS2-Controller ein. Prüfen Sie, ob die Modus-LED aufleuchtet. Wenn dies nicht der Fall ist, drücken Sie die Mode-Taste auf Ihrem Controller. Nachdem Sie die obigen Schritte ausgeführt haben, müssen Sie die Reset-Taste Ihres Zuino M Uno drücken, damit Ihre Controller-Einstellungen gelesen werden können. Sie müssen L1 und den Joystick drücken, um Ihren Roboterarm zu bewegen.

  • Der linke Joystick steuert die Beugung des Arms nach oben oder unten
  • Der rechte Joystick steuert die Klaue, um sich entweder zu öffnen oder zu schließen und die Klaue nach links oder rechts zu drehen.

Schritt 11: Code-Erklärung

Die Verwendung der PS2X-Arduino-Bibliothek ist einfach und erfordert nur eine Initialisierung, ein Setup und dann einen Lesebefehl.

Um die Verbindung für Ihren PS2-Controller mit Ihrem Uno einzurichten, sind unten die Pins, die Sie in Ihrem Code definieren müssen:

/************************************************ ************** * Set-Pins, die an PS2-Controller angeschlossen sind: * - 1e Spalte: Original * - 2e Spalte: Stef? * Ersetzen Sie die Pin-Nummern durch die, die Sie verwenden******************************************** **********************/#define PS2_DAT 13 //14 #define PS2_CMD 11 //15#define PS2_SEL 10 //16#define PS2_CLK 12 // 17

Wir haben die Pins durch diejenigen ersetzt, die wir verwenden, um uns mit unserem Uno zu verbinden, wie im obigen Pin-Diagramm beschrieben.

/************************************************ **************** Betriebsarten des PS2-Reglers auswählen: * - Drücke = analoge Anzeige der Drucktasten * - Rumpeln = Motorrumpeln * 1 der Zeilen für jede Modusauswahl auskommentieren** ************************************************* ************/ //#Drücke definieren wahr#Drücke definieren falsch //#Rumble definieren wahr#Rumble definieren falsch

Hier haben wir den PS2-Modus für Druck und Rumpeln als falsch definiert. Wir haben diejenigen kommentiert, die wir nicht verwenden.

Wir werden nur den Joystick-Befehl des Controllers und L1 verwenden, um die Bewegung unseres Roboterarms zu steuern.

void loop() {/* Sie müssen Gamepad lesen, um neue Werte zu erhalten und Vibrationswerte einzustellen ps2x.read_gamepad (kleiner Motor an/aus, größere Motorstärke von 0-255) (); ohne Werte Sie sollten dies mindestens einmal pro Sekunde aufrufen*/ if(error == 1) //Schleife überspringen, wenn kein Controller gefunden wurde return; else {//DualShock Controller ps2x.read_gamepad (falsch, vibrieren); // Controller lesen und großen Motor so einstellen, dass er sich mit "Vibrations"-Geschwindigkeit dreht if (ps2x. Button (PSB_START)) // wird TRUE sein, solange die Taste gedrückt wird Serial.println ("Start wird gehalten"); if(ps2x. Button(PSB_SELECT)) Serial.println("Auswahl wird gehalten"); vibrieren = ps2x. Analog(PSAB_CROSS); // Dadurch wird die Vibrationsgeschwindigkeit des großen Motors basierend darauf eingestellt, wie stark Sie die blaue Taste (X) drücken if (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {//stick-Werte drucken, wenn einer von beiden TRUE ist 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("Stickwerte:"); Serial.print (RX_Value); Serial.print (" "); Serial.print (RY_Value); Serial.print (" "); Serial.print (LY_Value); Serial.print (" "); Serial.println (LX_Value);

Im folgenden Code codieren wir unsere Servos, die unseren Roboterarm steuern, die wir in den Funktionsaufruf unter ps2x.button(PSB_L1)||. aufnehmen ps2x.button(PSB_R1).

Sie müssen die L1- oder R1-Taste zusammen mit dem Joystick drücken, um Ihren Roboterarm zu steuern.

Der linke Joystick steuert die Servos 2 und 3 für den Armteil - steuert das Auf- und Abbeugen des Arms, während der rechte Joystick die Servos 0 und 1 der Greifer des Roboterarms zum Öffnen oder Schließen und zum Drehen nach links oder rechts steuert.

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

Sie können die Werte in diesem Abschnitt ändern, um den Winkel Ihres Roboterarms zu steuern:

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);

Empfohlen: