Table des matières:
- Étape 1: Constitution
- Étape 2: Créer une libellule - Tête 1 -
- Étape 3: Créer une libellule - Tête 2 -
- Étape 4: Créer une libellule - Tête 3 -
- Étape 5: Créer Libellule - Corps 1 -
- Étape 6: Créer Libellule - Corps 2 -
- Étape 7: Créer une libellule - Corps 3 -
- Étape 8: Créer une libellule - Corps 4 -
- Étape 9: Servomoteur à rotation continue à 360 degrés
- Étape 10: Code Arduino
- Étape 11: Opération
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
J'ai fait la libellule. La libellule balance la tête avec un capteur de gestes et un servomoteur.
Composants
- Arduino UNO
- Graine Grove - Geste
- Servomoteur à rotation continue micro FS90R
Étape 1: Constitution
Détecter le mouvement du doigt avec le capteur de geste et contrôler le sens de rotation du servo à rotation continue à 360 ° avec Arduino.
Étape 2: Créer une libellule - Tête 1 -
La tête a été réalisée avec une vis M8 de 12 mm de long. Lors de la rotation de la tête avec le servo, coupez le bâton pour l'arrêter à un angle fixe, coupez le fil à la longueur appropriée et soudez-le à la vis.
Étape 3: Créer une libellule - Tête 2 -
Les yeux et la bouche étaient faits de sceaux de bijoux scintillants. J'écris la bouche avec un stylo.
Étape 4: Créer une libellule - Tête 3 -
La connexion entre la tête et la poitrine (servo) est constituée d'un écrou. Fixez les plumes et les écrous fixés au servo avec un adhésif instantané.
Étape 5: Créer Libellule - Corps 1 -
Faire le servomoteur à la poitrine de la libellule. Vis M6 de 60 mm de long collée comme ventre.
Étape 6: Créer Libellule - Corps 2 -
Vissez les écrous créés précédemment au servo et collez les plumes des plaques avec les pieds du fil.
Étape 7: Créer une libellule - Corps 3 -
Attachez un fil épais au servo pour qu'il s'accroche à la barre de remplacement de la tête. Je soude les pieds du fil fin à ce fil épais (pour l'inox).
Étape 8: Créer une libellule - Corps 4 -
Vissez la tête dans l'écrou et la libellule est terminée. Activez le servo et tournez-le.
Étape 9: Servomoteur à rotation continue à 360 degrés
Ce servo fonctionne avec la bibliothèque Servo qui était à l'origine incluse dans Arduino IDE, mais légèrement différente du servomoteur normal.
- Arrêt servo avec entrée à 90 degrés
- Tournez dans le sens des aiguilles d'une montre avec une entrée de 0 à 89 degrés. La vitesse de rotation augmente plus loin de 90 degrés.
- Tournez dans le sens inverse des aiguilles d'une montre avec une entrée de 91 à 180 degrés. La vitesse de rotation augmente plus loin de 90 degrés.
Étape 10: Code Arduino
Connectez le servo et le capteur de gestes à Arduino UNO.
La bibliothèque de capteurs de gestes utilise ce qui suit.https://github.com/Seed-Studio/Gesture_PAJ7620
J'ai regardé l'exemple de code paj7620_9gestures.ino.
Le geste lui fit reconnaître le sens horaire et le sens antihoraire du doigt.
La broche numérique 8 d'Arduino est connectée à GND afin que le servo tourne lentement dans le sens inverse des aiguilles d'une montre afin que la vis à tête puisse être tournée dans l'écrou.
L'ouverture numérique à 8 broches d'Arduino libère le fonctionnement normal et la détection du capteur de geste commence. Détecte la rotation du mouvement des doigts et se déplace en fonction du servo.
#include #include "paj7620.h" #include Servo myservo; // créer un objet servo pour contrôler un servo
void setup() { uint8_t error = 0; Serial.begin(9600); monservo.attache(A0); // attache le servo sur la broche 9 à l'objet servo pinMode(8, INPUT_PULLUP); erreur = paj7620Init(); // initialiser les registres Paj7620 if (error) { Serial.print("INIT ERROR, CODE:"); Serial.println(erreur); }else { Serial.println("INIT OK"); } Serial.println("Veuillez saisir vos gestes:\n"); }
void loop() { uint8_t data = 0, data1 = 0, error; if(digitalRead(8) == LOW){ myservo.write(90 + 15); }autre{ erreur = paj7620ReadReg(0x43, 1, &data); // Lire Bank_0_Reg_0x43/0x44 pour le résultat du geste. if (!error) { switch (data) { case GES_CLOCKWISE_FLAG: Serial.println("Clockwise"); monservo.write(90 - 20); retard (800); Pause; case GES_COUNT_CLOCKWISE_FLAG: Serial.println("anti-horaire"); monservo.write(90 + 20); retard (800); Pause; par défaut: monservo.write(90); Pause; } } } }
Étape 11: Opération
J'ai une jolie libellule qui balance la tête !