Cuprins:

Head Swinging Dragonfly: 11 pași
Head Swinging Dragonfly: 11 pași

Video: Head Swinging Dragonfly: 11 pași

Video: Head Swinging Dragonfly: 11 pași
Video: Vlad and Nikita have a bubble foam party 2024, Noiembrie
Anonim
Head Swinging Dragonfly
Head Swinging Dragonfly

Am făcut libelulă. Libelula se leagănă cu un senzor de gest și un servomotor.

componente

  • Arduino UNO
  • Seeed Grove - Gest
  • Servo cu rotire continuă FS90R

Pasul 1: Constituție

Constituţie
Constituţie

Detectarea mișcării degetului cu senzorul de gest și controlul direcției de rotație a servo-ului de rotație continuă la 360 ° cu Arduino.

Pasul 2: Creați Dragonfly - Capul 1 -

Creați Libelula - Capul 1
Creați Libelula - Capul 1

Capul a fost realizat cu șurub M8 de 12 mm lungime. Când rotiți capul cu servo, tăiați bastonul pentru a se opri la un unghi fix, tăiați firul la lungimea corespunzătoare și lipiți-l la șurub.

Pasul 3: Creați Dragonfly - Capul 2 -

Creează Dragonfly - Capul 2
Creează Dragonfly - Capul 2

Ochii și gura erau realizate cu sigilii de bijuterii sclipitoare. Scriu gura cu pixul.

Pasul 4: Creați Dragonfly - Cap 3 -

Creează Dragonfly - Cap 3
Creează Dragonfly - Cap 3

Conexiunea dintre cap și piept (servo) este formată dintr-o piuliță. Atașați penele și piulițele atașate la servo cu adeziv instant.

Pasul 5: Creați Dragonfly - Corpul 1 -

Creați Dragonfly - Corpul 1
Creați Dragonfly - Corpul 1

Faceți servomotorul la pieptul libelulei. Șurub M6 lung de 60 mm aderent ca burta.

Pasul 6: Creați Dragonfly - Corpul 2 -

Creează Dragonfly - Corpul 2
Creează Dragonfly - Corpul 2

Înșurubați piulițele create mai devreme de servo și legați penele plăcilor cu picioarele firului.

Pasul 7: Creați Dragonfly - Corpul 3 -

Creează Dragonfly - Corpul 3
Creează Dragonfly - Corpul 3

Atașați un fir gros la servo, astfel încât să se prindă pe bara de înlocuire a capului. Am lipit picioarele firului subțire pe acest fir gros (pentru oțel inoxidabil).

Pasul 8: Creați Dragonfly - Corpul 4 -

Creați Libelula - Corpul 4
Creați Libelula - Corpul 4

Înșurubați capul în piuliță și libelulă este finalizată. Activați servo-ul și rotiți-l.

Pasul 9: Servo de rotație continuă la 360 de grade

Acest servo funcționează cu biblioteca Servo care a fost inițial inclusă în Arduino IDE, dar ușor diferită de servomotorul normal.

  • Oprire servo cu intrare de 90 de grade
  • Rotiți în sensul acelor de ceasornic cu 0 la 89 de grade de intrare. Viteza de rotație crește mai mult de la 90 de grade.
  • Rotiți în sens invers acelor de ceasornic cu intrarea de la 91 la 180 de grade. Viteza de rotație crește mai mult de la 90 de grade.

Pasul 10: Cod Arduino

Conectați servo și senzor de gesturi la Arduino UNO.

Biblioteca senzorului de gesturi folosește următoarele:

M-am uitat la exemplul de cod paj7620_9gestures.ino.

Gestul l-a făcut să recunoască direcția în sensul acelor de ceasornic și în sens invers acelor de ceasornic al degetului.

8 pini digitale Arduino sunt conectați la GND, astfel încât servo-ul să se rotească încet în sens invers acelor de ceasornic, astfel încât șurubul capului să poată fi transformat în piuliță.

Deschiderea digitală cu 8 pini Arduino eliberează funcționarea normală și începe detectarea senzorului de gesturi. Detectează rotația mișcării degetelor și se mișcă în funcție de servo.

#include #include "paj7620.h" #include Servo myservo; // creați un obiect servo pentru a controla un servo

configurare nulă () {uint8_t error = 0; Serial.begin (9600); myservo.attach (A0); // atașează servo pe pinul 9 la obiectul servo pinMode (8, INPUT_PULLUP); eroare = paj7620Init (); // inițializează Paj7620 înregistrează dacă (eroare) {Serial.print ("INIT ERROR, CODE:"); Serial.println (eroare); } else {Serial.println ("INIT OK"); } Serial.println ("Vă rugăm să introduceți gesturile: / n"); }

bucla nulă () {uint8_t date = 0, data1 = 0, eroare; if (digitalRead (8) == LOW) {myservo.write (90 + 15); } else {error = paj7620ReadReg (0x43, 1 și & data); // Citiți Bank_0_Reg_0x43 / 0x44 pentru rezultatul gestului. if (! error) {switch (data) {case GES_CLOCKWISE_FLAG: Serial.println ("Clockwise"); myservo.write (90 - 20); întârziere (800); pauză; cazul GES_COUNT_CLOCKWISE_FLAG: Serial.println („în sens invers acelor de ceasornic”); myservo.write (90 + 20); întârziere (800); pauză; implicit: myservo.write (90); pauză; }}}}

Pasul 11: Operațiune

Operațiune
Operațiune

Am o drăguță drăguță de cap!

Recomandat: