Inhaltsverzeichnis:
- Schritt 1: Verfassung
- Schritt 2: Libelle erstellen - Kopf 1 -
- Schritt 3: Libelle erstellen - Kopf 2 -
- Schritt 4: Libelle erstellen - Kopf 3 -
- Schritt 5: Libelle erstellen - Körper 1 -
- Schritt 6: Libelle erstellen - Körper 2 -
- Schritt 7: Libelle erstellen - Körper 3 -
- Schritt 8: Libelle erstellen - Körper 4 -
- Schritt 9: 360-Grad-Kontinuierliche Rotationsservo
- Schritt 10: Arduino-Code
- Schritt 11: Betrieb
Video: Kopfschwingende Libelle - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Ich habe Libelle gemacht. Die Libelle schwingt den Kopf mit einem Gestensensor und einem Servomotor.
Komponenten
- Arduino UNO
- Samenhain - Geste
- FS90R Micro-Servo mit kontinuierlicher Rotation
Schritt 1: Verfassung
Erfassen der Bewegung des Fingers mit dem Gestensensor und Steuern der Drehrichtung des 360°-Endlosrotationsservos mit Arduino.
Schritt 2: Libelle erstellen - Kopf 1 -
Der Kopf wurde mit einer 12 mm langen M8 Schraube hergestellt. Beim Drehen des Kopfes mit dem Servo schneiden Sie den Stick bis zum Anschlag in einem festen Winkel ab, schneiden Sie den Draht auf die entsprechende Länge und löten Sie ihn an die Schraube.
Schritt 3: Libelle erstellen - Kopf 2 -
Augen und Mund wurden mit glitzernden Schmucksiegeln versehen. Ich schreibe den Mund mit einem Stift.
Schritt 4: Libelle erstellen - Kopf 3 -
Die Verbindung zwischen Kopf und Brust (Servo) besteht aus einer Mutter. Befestigen Sie die am Servo befestigten Federn und Muttern mit Sekundenkleber.
Schritt 5: Libelle erstellen - Körper 1 -
Machen Sie den Servomotor zur Brust der Libelle. Angeklebte 60 mm lange M6 Schraube als Bauch.
Schritt 6: Libelle erstellen - Körper 2 -
Schrauben Sie die zuvor erstellten Muttern auf das Servo und kleben Sie die Federn der Platten mit den Füßen des Drahtes.
Schritt 7: Libelle erstellen - Körper 3 -
Befestigen Sie ein dickes Kabel am Servo, so dass es an der Kopfersatzstange einrastet. Ich löte die Füße des dünnen Drahtes an diesen dicken Draht (für Edelstahl).
Schritt 8: Libelle erstellen - Körper 4 -
Schrauben Sie den Kopf in die Mutter und die Libelle ist fertig. Aktivieren Sie das Servo und drehen Sie es.
Schritt 9: 360-Grad-Kontinuierliche Rotationsservo
Dieses Servo arbeitet mit der Servo-Bibliothek, die ursprünglich in der Arduino IDE enthalten war, sich jedoch geringfügig vom normalen Servomotor unterscheidet.
- Servostopp mit 90-Grad-Eingang
- Im Uhrzeigersinn drehen mit Eingabe von 0 bis 89 Grad. Die Rotationsgeschwindigkeit steigt von 90 Grad weiter an.
- Mit Eingabe von 91 bis 180 Grad gegen den Uhrzeigersinn drehen. Die Rotationsgeschwindigkeit steigt von 90 Grad weiter an.
Schritt 10: Arduino-Code
Verbinden Sie Servo- und Gestensensor mit Arduino UNO.
Die Gestensensorbibliothek verwendet Folgendes.https://github.com/Seed-Studio/Gesture_PAJ7620
Ich habe mir das Codebeispiel paj7620_9gestures.ino angesehen.
Die Geste ließ es die Richtung im Uhrzeigersinn und die Richtung des Fingers gegen den Uhrzeigersinn erkennen.
Der digitale 8-Pin von Arduino ist mit GND verbunden, so dass sich das Servo langsam gegen den Uhrzeigersinn dreht, damit die Kopfschraube in die Mutter gedreht werden kann.
Arduinos digitaler 8-Pin-Öffner gibt den normalen Betrieb frei und die Gestensensorerkennung beginnt. Erkennt die Drehung der Fingerbewegung und bewegt sich entsprechend dem Servo.
#include #include "paj7620.h" #include Servo-Myservo; // Servo-Objekt erstellen, um ein Servo zu steuern
Void setup () { uint8_t error = 0; Serial.begin (9600); myservo.attach(A0); // verbindet das Servo an Pin 9 mit dem Servo-Objekt pinMode (8, INPUT_PULLUP); Fehler = paj7620Init(); // Paj7620-Register initialisieren if (Fehler) { Serial.print ("INIT ERROR, CODE:"); Serial.println (Fehler); } sonst { Serial.println ("INIT OK"); } Serial.println("Bitte geben Sie Ihre Gesten ein:\n"); }
Void Schleife () { uint8_t Daten = 0, Daten1 = 0, Fehler; if (digitalRead (8) == LOW) {myservo.write (90 + 15); }sonst{ Fehler = paj7620ReadReg(0x43, 1, &data); // Lesen Sie Bank_0_Reg_0x43/0x44 für das Gestenergebnis. if (! error) { switch (data) { case GES_CLOCKWISE_FLAG: Serial.println ("im Uhrzeigersinn"); myservo.write(90 - 20); Verzögerung (800); brechen; Fall GES_COUNT_CLOCKWISE_FLAG: Serial.println ("gegen den Uhrzeigersinn"); myservo.write (90 + 20); Verzögerung (800); brechen; Vorgabe: myservo.write(90); brechen; } } } }
Schritt 11: Betrieb
Ich habe eine hübsche Kopfschwingenlibelle!