Inhoudsopgave:
- Stap 1: Grondwet
- Stap 2: Maak Libelle - Kop 1 -
- Stap 3: Maak Libelle - Kop 2 -
- Stap 4: Maak Libelle - Kop 3 -
- Stap 5: Maak Dragonfly - Lichaam 1 -
- Stap 6: Maak Dragonfly - Lichaam 2 -
- Stap 7: Maak Dragonfly - Lichaam 3 -
- Stap 8: Maak Dragonfly - Lichaam 4 -
- Stap 9: 360-graden continue rotatieservo
- Stap 10: Arduino-code
- Stap 11: Bediening
Video: Hoofdzwaaiende libel - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Ik heb libelle gemaakt. De libel zwaait met zijn kop met een bewegingssensor en een servomotor.
componenten
- Arduino UNO
- Seeed Grove - Gebaar
- FS90R Micro continue rotatieservo
Stap 1: Grondwet
De beweging van de vinger detecteren met de bewegingssensor en de rotatierichting van de 360 ° continue rotatieservo regelen met Arduino.
Stap 2: Maak Libelle - Kop 1 -
De kop is gemaakt met een 12 mm lange M8-schroef. Bij het draaien van de kop met de servo knipt u de stok om te stoppen in een vaste hoek, knipt u de draad op de juiste lengte en soldeert u deze aan de schroef.
Stap 3: Maak Libelle - Kop 2 -
Ogen en mond werden gemaakt met glinsterende sieradenzegels. Ik schrijf de mond met een pen.
Stap 4: Maak Libelle - Kop 3 -
De verbinding tussen het hoofd en de borst (servo) bestaat uit een moer. Bevestig de veren en moeren die aan de servo zijn bevestigd met snellijm.
Stap 5: Maak Dragonfly - Lichaam 1 -
Breng de servomotor naar de borst van de libel. Aangelijmde 60 mm lange M6 schroef als buik.
Stap 6: Maak Dragonfly - Lichaam 2 -
Schroef de eerder gemaakte moeren op de servo en verbind de veren van de platen met de voetjes van de draad.
Stap 7: Maak Dragonfly - Lichaam 3 -
Bevestig een dikke draad aan de servo zodat deze op de vervangingsbalk van de kop grijpt. Ik soldeer de voetjes van de dunne draad aan deze dikke draad (voor roestvrij staal).
Stap 8: Maak Dragonfly - Lichaam 4 -
Schroef de kop in de moer en de libel is voltooid. Activeer de servo en draai hem.
Stap 9: 360-graden continue rotatieservo
Deze servo werkt met de Servo-bibliotheek die oorspronkelijk was opgenomen in Arduino IDE, maar iets anders is dan de normale servomotor.
- Servostop met 90 graden ingang
- Draai met de klok mee met 0 tot 89 graden invoer. De rotatiesnelheid neemt verder toe vanaf 90 graden.
- Draai tegen de klok in met invoer van 91 tot 180 graden. De rotatiesnelheid neemt verder toe vanaf 90 graden.
Stap 10: Arduino-code
Sluit servo- en bewegingssensor aan op Arduino UNO.
De gebarensensorbibliotheek gebruikt het volgende.https://github.com/Seed-Studio/Gesture_PAJ7620
Ik keek naar het codevoorbeeld paj7620_9gestures.ino.
Door het gebaar herkende hij de richting van de vinger met de klok mee en de richting tegen de klok in.
Arduino's digitale 8-pins is verbonden met GND, zodat de servo langzaam tegen de klok in draait, zodat de kopschroef in de moer kan worden gedraaid.
Arduino's digitale 8-pins open geeft de normale werking vrij en de bewegingssensordetectie begint. Detecteert de rotatie van vingerbewegingen en beweegt volgens de servo.
#include #include "paj7620.h" #include Servo myservo; // maak een servo-object om een servo te besturen
void setup () { uint8_t fout = 0; Serieel.begin(9600); mijnservo.attach(A0); // hecht de servo op pin 9 aan het servo-object pinMode (8, INPUT_PULLUP); fout = paj7620Init(); // initialiseer Paj7620-registers als (fout) { Serial.print ("INIT ERROR, CODE:"); Serial.println(fout); }else { Serial.println("INIT OK"); } Serial.println("Voer uw gebaren in:\n"); }
void loop() {uint8_t data = 0, data1 = 0, fout; if(digitalRead(8) == LAAG){ myservo.write(90 + 15); }else{ error = paj7620ReadReg(0x43, 1, &data); // Lees Bank_0_Reg_0x43/0x44 voor het resultaat van een gebaar. if (! Error) { switch (data) { case GES_CLOCKWISE_FLAG: Serial.println ("Met de klok mee"); mijnservo.write(90 - 20); vertraging (800); pauze; case GES_COUNT_CLOCKWISE_FLAG: Serial.println ("tegen de klok in"); mijnservo.write(90 + 20); vertraging (800); pauze; standaard: myservo.write(90); pauze; } } } }
Stap 11: Bediening
Ik heb een mooie libel met hoofdzwaai!