Inhaltsverzeichnis:

Tims PCA9685-Controller - Gunook
Tims PCA9685-Controller - Gunook

Video: Tims PCA9685-Controller - Gunook

Video: Tims PCA9685-Controller - Gunook
Video: Tim's PCA9685 Controller (Servo) 2024, Juli
Anonim
Tims PCA9685-Controller
Tims PCA9685-Controller

Viele Projekte, die mit dem Arduino durchgeführt wurden, beinhalten die Verwendung eines Servos.

Wenn nur ein oder zwei Servos verwendet werden, können diese direkt von einem Arduino aus gesteuert werden, indem eine Bibliothek verwendet und dazu Pins zugewiesen werden.

Aber für Projekte, bei denen viele Servos gesteuert werden müssen, ist der PCA9685 16-Kanal, 12-Bit PWM Fm+ I2C-Bus LED Controller (geben wir seinen vollen Namen) möglicherweise die bessere Wahl.

Der LED-Controller PCA9685 wurde zwar für die Steuerung von LEDs entwickelt, kann jedoch zur Steuerung von Servo konfiguriert werden. (Datenblatt)

Der PCA9685 kommuniziert über I2C und hat 64 mögliche Adressen, d.h. 64 dieser Geräte können hintereinander mit jeweils 16 Servos oder LEDs hintereinander verkettet werden. Das sind 1024 Nummern, die von einem Arduino gesteuert werden können.

Jetzt haben wir ein Projekt, das viele Servos zu steuern hat, sagen wir einen vierbeinigen Roboter. Jedes Bein hat zwei Servos, um es zu steuern. (wir fangen einfach an, theoretisch kann meine App 1024)

Acht Servos einrichten, für jedes die Trimmeinstellung finden, dort max. und mind. Positionen, kann sehr zeitaufwendig sein.

Code zu schreiben und neu zu schreiben, um zu sehen, was passiert, kann ziemlich mühsam sein.

Also beschließe ich, eine Anwendung zu erstellen, um die Dinge zu vereinfachen und jede erforderliche Servoeinstellung zu finden und Sequenzen (Skript) auszuführen, um die an den Servo gesendeten Befehle zu testen.

Schritt 1: Verbindungen

"loading="faul"

Der Script-Bereich ist der lustige Teil, hier können Sie Sequenzen von Servo-Positionen erstellen.

Bringen Sie Ihr Projekt dazu, das zu tun, was Sie wollen.

  • Die Schaltfläche Wert hinzufügen fügt die aktuellen Schiebereglereinstellungen hinzu.
  • Die Schaltfläche Verzögerung hinzufügen fügt eine Verzögerung in Millisekunden hinzu, die im Feld neben der Schaltfläche festgelegt ist.
  • Die Schaltfläche Adresse hinzufügen fügt einem anderen PCA9685 einen Befehlsschalter hinzu (Adresse oben links ändern), der auch zum Ändern des Modus, des Servomodus oder des LED-Modus verwendet wird.
  • Die Schaltfläche Run Script F führt das aktuelle Skript vorwärts aus.
  • Die Schaltfläche Run Script R führt das aktuelle Skript rückwärts aus.
  • Das Kontrollkästchen „Schleife“lässt das aktuelle Skript immer wieder laufen, wenn eine der Schaltflächen „Skript ausführen“gedrückt wird. Um die Schleife zu stoppen, deaktivieren Sie das Kontrollkästchen.
  • Die Schaltfläche Skript löschen macht genau das, sie löscht alle Skriptbefehle.
  • Die Schaltfläche Laden lädt ein zuvor gespeichertes Skript.
  • Die Schaltfläche Speichern speichert das aktuelle Skript.

Notiz!

Ich habe kein Skript geschrieben, das in die Anwendung eincheckt, das Skript muss die folgenden Regeln befolgen:

Eine Zeile pro Befehl, Werte durch ein Leerzeichen getrennt.

  • Servobefehl beginnt mit "S", gefolgt von sechzehn Werten, jeder Wert zwischen 0 und 600
  • LED-Befehl beginnt mit "L", gefolgt von sechzehn Werten, jeder Wert zwischen 0 und 4095
  • Der Dely-Befehl beginnt mit "D", gefolgt von einem Wert zwischen 0 und 10.000
  • Der Adressbefehl beginnt mit "A", gefolgt von einem Wert und einem Wort. Der Wert zwischen 0 und 64. Das Wort ist "Servo" oder "LED".

Die Anwendung kann Servo oder LED steuern. Setzen Sie LED und Servo nicht auf das gleiche Breakout-Board, Servo und LED benötigen unterschiedliche Frequenzen, um richtig zu laufen.

Wenn Sie versuchen, Servos mit den LED-Einstellungen zu steuern, können sie ausflippen, es schadet ihnen nicht, aber wenn sie in einem Projekt installiert sind, möchten Sie möglicherweise nicht, dass sie sich in eine Position bewegen.

Ich habe ein Video von einem einfachen Skript gemacht.

Schritt 5: Epilog

Während Anweisungen auf Instructables gehen, erwarten die meisten Leute, am Ende einer Anweisung mit einem physischen Gegenstand zu enden.

Ich finde, es gibt keine realistische Kategorie für Software.

Ich nehme an, Sie könnten es als Werkzeug klassifizieren, aber die Anleitung lautet nicht, wie man das Werkzeug herstellt, sondern wie man es benutzt.

Hoffentlich können die Leute mit einem solchen Tool bessere Projekte mit dem Arduino mit Servos oder LED-Arrays machen.

Bitte entschuldigen Sie das In-Video des Projekts in Aktion. Ich habe ein ESP32-CAM-Breakout-Board mit einer anderen Anwendung verwendet, die ich erstellt habe, um Bilder von ESP32-CAM anzuzeigen.

BEARBEITEN

Ich habe es verbessert.

Updates finden Sie hier: Tims_PCA_9685_Controller