Inhaltsverzeichnis:
- Schritt 1: Was wir brauchen:
- Schritt 2: Gebäude…
- Schritt 3: Einige zusätzliche Informationen, bevor wir fortfahren
- Schritt 4: Code:
- Schritt 5: Test und Schlussfolgerung
Video: Winkelmessung mit Gyro, Beschleunigungsmesser und Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:23
Das Gerät ist ein grober Prototyp dessen, was schließlich ein selbstbalancierender Roboter werden wird, dies ist der zweite Teil der ganzen Sache (Beschleunigungsmesser lesen und einen Motor steuern, um sich selbst auszubalancieren). Der erste Teil mit nur dem Kreisel kann hier gefunden werden. Auf dieser Anleitung werden wir den Winkel mit Kreisel und Beschleunigungsmesser messen und eine Technik verwenden, um beide Sensoren zusammenzuführen, um ein glattes Signal zu erhalten. Die Technik wird "Komplementärfilter" genannt
Schritt 1: Was wir brauchen:
Einige Teile können ersetzt werden, und einige Änderungen am Code müssen vorgenommen werden, um zu Ihrer Hardware zu passen. In diesem Projekt werden wir verwenden: - Breadboard - Microcontroller, ich habe das Arduinoboard - Wire - Jumper Wires - Gyroscope XV-8100 - Nunchuck Wii (für den Beschleunigungsmesser)- Nunchuck Wii-Adapter für Arduino
Schritt 2: Gebäude…
Die Schaltung besteht aus einem Gyroskop, das direkt an Port 0 Ihres Arduino angeschlossen ist, und einem Nunchuck, das am I2C-Port angeschlossen wird. - Stecken Sie den Kreisel an das Steckbrett2. - alles verdrahten: - Vo-Pin vom Gyro mit analogem Port0 bei Arduino verbunden (helloranges Kabel) - G-Pin vom Gyro mit Masse verbunden (weißer Draht) - V+-Pin vom Gyro mit Vdd (3,3 V) verbunden (orangefarbener Draht) Montage der Beschleunigungsmesser: 1. - Stecken Sie den Adapter am Nunchuck2. - Stecken Sie das Nunchuck am Arduino mit dem Adapter3. - Platzieren Sie den Beschleunigungssensor wie auf dem Foto oben
Schritt 3: Einige zusätzliche Informationen, bevor wir fortfahren
Von beiden Sensoren können wir den Winkel messen, aber mit zwei verschiedenen Techniken. Um den Winkel mit dem Kreisel zu messen, müssen wir das Signal integrieren. Aber warum müssen wir das tun? Da der Kreisel uns die Winkelgeschwindigkeit gibt, ist eine einfache Möglichkeit, den Winkel zu erhalten, die Winkelgeschwindigkeit mit der Zeit zu multiplizieren [Winkel = Winkel + w * dt]Um den Winkel mit einem Beschleunigungsmesser zu messen, müssen wir die Schwerkraft in jedem messen Achse des Beschleunigungsmessers, was es bedeutet, die Projektion der Erdbeschleunigung auf jede Richtung des Sensors geben uns eine Vorstellung über den Winkel. [angle_accel = arctg(Ay / sqrt(Ax^2 + Az^2))]Warum werden wir also zwei Sensoren anstelle eines verwenden? Um die Vorteile beider Sensoreigenschaften zu nutzen. Wenn Sie sich die Grafik ansehen, steigen die Kreiseldaten kontinuierlich an, dies wird als Drift bezeichnet und die Beschleunigungsmesserdaten ändern sich in kurzer Zeit stark. Und wie kann man beide Signale zusammenführen? Wir verwenden eine Technik namens Komplementärfilter. Ich kenne die genaue Theorie dahinter nicht, aber es funktioniert gut. Es gibt einige Informationen im Internet, googeln Sie einfach, wenn Sie mehr Informationen benötigen. Dieser Link enthält viele Informationen und kann nützlich sein.filtered_angle = HPF*(filtered_angle + w* dt) + LPF*(angle_accel); wobei HPF + LPF = 1Die Werte von HPF und LPF finden Sie unter diesem Link in der Datei filter.pdf. Danke Jungs von "The DIY Segway". Nur zu Testzwecken werden wir diese Werte so einstellen, HPF = 0,98 und LPF = 0,02.
Schritt 4: Code:
Der Code ist eine Adaption eines Codes, den ich in einem anderen Projekt verwendet habe. Wahrscheinlich werden einige Variablen nicht verwendet. Ich habe eine Bibliothek verwendet, um die Nunchuck-Daten von https://todbot.com/blog/ zu lesen. Danke Tod E. Kurt. Die Kommentare zum Code sind auf Portugiesisch, sobald ich Zeit habe, werde ich ihn übersetzen. filter_teta $time:angular_velocity:gyro_angle:accel_angle:filtered_angle$So können Sie diese Werte an einem seriellen Terminal speichern und eine Grafik zeichnen oder den Winkel für andere Dinge verwenden. Wenn Sie eine Erklärung zum Code benötigen, können Sie gerne fragen. Der Code ist gezippt. Einfach entpacken, öffnen und auf Ihr Arduino hochladen.
Schritt 5: Test und Schlussfolgerung
Um das System zu testen, habe ich die Daten mit einem Programm namens Termite gespeichert, dann diese Daten in Excel importiert und die Grafik gezeichnet, um zu sehen, wie gut mein Filter ist. Die Ergebnisse sind erstaunlich. Natürlich können Sie das Signal verwenden, um einen Motor oder andere Dinge anzutreiben. Alle Kommentare, Zweifel, fehlende Informationen, sagen Sie es mir einfach und ich korrigiere es. Bitte, wenn Sie dies mögen, bewerten Sie.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E