Tartalomjegyzék:

Arduino szervo dobgép: 4 lépés
Arduino szervo dobgép: 4 lépés

Videó: Arduino szervo dobgép: 4 lépés

Videó: Arduino szervo dobgép: 4 lépés
Videó: Сервомотор управления с нажимом 2 кнопки с Arduino 2024, Július
Anonim
Image
Image

Ez egy egyszerű két mikroszervó és Arduino Uno vezérlésű dobgép vagy robot. A szervókat egy L alakú fatartóra szerelik fel, amelyet 4 erős mágnessel a pergőhöz tartanak. A szervókarok két pálcikára vannak csavarozva, amelyek dobpálcikaként szolgálnak. Elég hangos, de nem túl hangos. Sokkal hangosabb találatok érhetők el szabványos méretű szervók és valódi dobpálcák használatával, amelyek kissé nehezebbek. De ehhez külön tápellátásra is szükség lenne a szervók számára. Mikroszervók használatával az Arduino elegendő áramot szolgáltat ahhoz, hogy külön áramellátás nélkül közvetlenül táplálja őket.

A videó bemutatja a kísérletemet a Wipeout dob szóló egyszerű verziójának programozására. Természetesen ez nem a valódi 160 ütés / perc, de ezt könnyen meg lehet szerezni egy másik szervó hozzáadásával, ami nagyon jó lenne. Nem számítottam ki, hogy mi a legfelső ütés / perc, amit szervóval lehet elérni, és némi késleltetés szükséges ahhoz, hogy a dobozt a parkoló helyzetéből a dobfejhez juttassák.

A létrehozható ritmusoknak csak a fantáziája szab határt, és a dobgép érdekesebb társ a játékhoz, mint a digitális dobgép, ha zenész vagy.

Az egyetlen hátránya a szervo zaj, amely nem igazán észrevehető, bár úgy tűnik, hogy a kamera hangja meglehetősen felveszi.

1. lépés: Készítse el a szervókeretet

Építse fel a szervókeretet
Építse fel a szervókeretet
Építse fel a szervókeretet
Építse fel a szervókeretet

Ez a konzol néhány hobbi rétegelt lemez csíkból készült, amelyek kéznél voltak. L-alakot készítettem két darab csavarozásával egy fém L-tartóval. Ezután egy kis fadarabot ragasztottak a felső csíkra, hogy tartsa a két szervót.

Volt két praktikus szervo konzolom, amelyeket a fatuskóhoz csavartam.

4 neodímium mágnest használtam a konzol rögzítéséhez a pergőhöz.

2. lépés: Csatlakoztassa a szervókat az Arduino Uno -hoz

Csatlakoztassa a szervókat az Arduino Uno -hoz
Csatlakoztassa a szervókat az Arduino Uno -hoz

A szervók vcc (középső vezeték) az Arduino 5 v -os csapjaihoz kerülnek.

A földelés az Arduino földhöz vezet.

A jelvezetékek a 6 -os és 7 -es csapokhoz mennek.

A szervópajzs még könnyebbé tenné, ha van ilyen.

3. lépés: Arduino kód…

Az alábbiakban bemutatjuk a Wipeout egyszerű vázlatát. Csak be kell állítania a szervo pozíciókat az adott beállításhoz.

Érezd jól magad!

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "servo.h"

// szervo dobos Jim Demello 2018. június

Szervo myservo1, myservo2;

int servoPin6 = 6; //szervo

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

ha (servoNumber == 1) {

myservo1.write (servoPosition);

}

if (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

if (servoNumber == 1) {

if (beat) {beat = 10; // ha ütés = 1, akkor adj hozzá egy kis szervót lefelé az erősebb ütés érdekében

}

myServo (150 + ütem, szervoNumber); //le

késleltetés (delayVal);

myServo (100, servoNumber); // fel

késleltetés (delayVal);

}

if (servoNumber == 2) {

ha (üt) ütés = -10;

myServo (60 + ütem, szervoNumber); //le

késleltetés (delayVal);

myServo (80, servoNumber); // fel

késleltetés (delayVal);

}

}

üres beállítás ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // a 9 -es csap szervóját a szervo -objektumhoz rögzíti

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // a 9 -es csap szervóját a szervo -objektumhoz rögzíti

myservo2.write (90);

}

void loop () {

kitörlés(); // wipeout dob rutin

// doOneEighthNote (2, 0);

késleltetés (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // az első parm szervo szám, a második pedig beat (1 = ütés, 0 = nincs ütés)

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

}

Ajánlott: