Projekte

Erstellen Sie ein Objekt-Tracking-System Teil 2: Steuern eines Servos

Albert Einstein's Big Idea HD Documentary (With 17 Subtitles) (November 2018).

Anonim

Erstellen Sie ein Objekt-Tracking-System Teil 2: Steuern eines Servos


Erlernen Sie die grundlegende Funktionsweise von Servomotoren und wie Sie diese mit einem Arduino Uno verbinden können.

Der zweite Teil dieser Projektreihe befasst sich mit Servos und wird Code implementieren, um ein Servo jede Sekunde in zufällige Positionen zu bewegen, um die Integration mit den Ultraschallsensoren aus der nächsten Phase dieser Projektserie vorzubereiten.

Teil 1 dieses Projekts finden Sie hier: Erstellen Sie ein Objekt-Tracking-System: Verwenden Sie integrierte Arduino-Bibliotheken

Benötigte Teile:

  • Arduino Uno
  • 5V tolerantes 180 ° Servo

Der Schaltplan ist unten und ist ziemlich einfach: nur 3 Verbindungen. In dem Diagramm ist Rot 5 V, Schwarz ist GND und Gelb ist die Steuerleitung.

Abbildung 1: Arduino / Servo-Schaltplan

Ein Servo wird durch Senden eines PWM-Signals (Pulsweitenmodulation) an den Steuerstift gesteuert. Die Pulsbreite des PWM-Signals steuert die Position des Servos. Unten ist ein Beispiel für ein Impulsbreitensteuerungsschema eines Servos. Wie Sie sehen können, befindet sich das Servo bei einer minimalen Impulsbreite (0.5ms) am äußersten linken Ende seiner Artikulation und bei einer maximalen Impulsbreite (2.5ms) befindet sich das Servo am äußersten rechten Ende seiner Artikulation.

Abbildung 2: Servosteuerungssystem

Die Arduino IDE wird mit einer Bibliothek (Servo.h) für die Anbindung von Servos geliefert. Durch die Implementierung dieser Bibliothek wird der für den Antrieb von Servo erforderliche Code erheblich vereinfacht. Die Bibliothek behandelt die Erstellung von PWM-Frequenzen und gibt einen einfachen Befehl zur Steuerung der Position: ServoName.write (X) wobei "ServoName" ein benutzerdefinierter, eindeutiger Name für diesen Ausgang ist, "(X)" ist die gewünschte Position in Grad und " .write "ist die erforderliche Syntax. Das folgende Code-Snippet ist ein Beispiel, das jede Sekunde eine zufällige Position generiert und das Servo an diese Position bewegt. Während der Integrationsphase wird die Zufallszahlengenerierung durch eine Ausgabe des Verfolgungsalgorithmus ersetzt.

Es wird empfohlen, dass Sie, wenn Sie Ihren Arduino nur über den USB-Anschluss mit Strom versorgen, die Gleichstromversorgung anschließen sollten, bevor Sie das Servo einschalten. Die Stromaufnahme vom Servo kann dazu führen, dass die 5V-Schiene abfällt und die Platine zurückgesetzt und instabil werden kann.

 #include "Servo.h" // Implements easy to use servo controls Servo ServoOne; // Generates an instance of a servo object int ServoPosition = 0; // Variable to be used to assign position of servo void setup() // Initialize { ServoOne.attach(9); // Assigns pin 9 as a servo } void loop() // Main loop { ServoPosition = random(0, 180); // Generates a random number and stores it in ServoPosition ServoOne.write(ServoPosition); // Commands servo to spin to position delay(1000); // Delays for 1000 ms } 

Dieses Projekt nutzt eine native Bibliothek, um die Anbindung an ein Peripheriegerät zu vereinfachen. Im nächsten Projekt werden wir unsere eigenen Funktionen schreiben, um den Objektverfolgungsalgorithmus zu erstellen.

Nächster Artikel in der Serie: Integration von Servo Control mit Object Detect

Gib diesem Projekt einen Versuch für dich selbst! Holen Sie sich die Stückliste.