Sisukord:

Arduino servotrummimasin: 4 sammu
Arduino servotrummimasin: 4 sammu

Video: Arduino servotrummimasin: 4 sammu

Video: Arduino servotrummimasin: 4 sammu
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, November
Anonim
Image
Image

See on lihtne kahe mikro-servo ja Arduino Uno juhitav trummimasin või robot. Servod on paigaldatud L-kujulisele puidust kronsteinile, mida hoitakse nelja tugeva magnetiga lõksutrumli küljes. Servohoovad on poltidega kinnitatud kahe söögipulga külge, mis on trummipulgad. See on üsna vali, kuid mitte liiga vali. Palju valjemat tabamust oleks võimalik saada standardsuuruses servode ja päris raskete trummipulkade abil. Kuid see eeldaks ka servode jaoks eraldi toiteallikat. Mikroservosid kasutades annab Arduino piisavalt voolu, et neid otse ilma eraldi toiteallikata toita.

Video näitab minu katset programmeerida Wipeouti trummisoolo lihtsat versiooni. Muidugi ei ole see tegelik 160 lööki minutis, kuid seda oleks lihtne saada, lisades teise servo, mis oleks päris lahe. Ma ei ole arvutanud, milline on ülemine löögisagedus, mida saab servo abil, ja see nõuab mõningast viivitust trummipulga pargitud asendist trumliotsani jõudmisel.

Rütme, mida saate luua, piirab ainult teie kujutlusvõime ja trummimasin on huvitavam kaaslane mängida kui digitaalne trummimasin, kui olete muusik.

Ainus negatiivne külg on servomüra, mis pole tegelikult nii märgatav, kuigi kaamera heli näib seda üsna märkimisväärselt vastu võtvat.

Samm: ehitage servoklamber

Ehitage servoklamber
Ehitage servoklamber
Ehitage servoklamber
Ehitage servoklamber

See sulg on valmistatud mõnest hobivineerist, mis mul käepärast oli. Lõin L-kuju, keerates kaks tükki kokku metallist L-kronsteiniga. Seejärel liimiti ülemise riba külge väike puitplokk kahe servo hoidmiseks.

Mul oli kaks käepärast servoklambrit, mille kruvisin puitklotsi külge.

Ma kasutasin 4 neodüümmagnetit, et hoida kronsteini lõksutrumli küljes.

Samm: ühendage servod Arduino Unoga

Ühendage servod Arduino Unoga
Ühendage servod Arduino Unoga

Servod vcc (keskmine traat) läheb Arduino 5 v tihvtidele.

Maandusjuhtmed Arduino maandusesse.

Signaalijuhtmed lähevad tihvtidele 6 ja 7.

Servokilp muudaks selle veelgi lihtsamaks, kui teil see on.

Samm: Arduino kood…

Allpool on lihtne visand Wipeouti mängimiseks. Peate lihtsalt kohandama servoasendeid oma konkreetse seadistuse jaoks.

Lõbutse hästi!

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

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

#include "servo.h"

// servotrummar Jim Demello juuni 2018

Servo myservo1, myservo2;

int servoPin6 = 6; // servo

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

kui (servoNumber == 1) {

myservo1.write (servoPosition);

}

kui (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

kui (servoNumber == 1) {

kui (peksma) {peksma = 10; // kui löök = 1, lisage tugevama löögi jaoks veel natuke servot alla

}

myServo (150 + löök, servoNumber); // alla

viivitus (delayVal);

myServo (100, servoNumber); // üles

viivitus (delayVal);

}

kui (servoNumber == 2) {

kui (lööma) lööma = -10;

myServo (60 + löök, servoNumber); // alla

viivitus (delayVal);

myServo (80, servoNumber); // üles

viivitus (delayVal);

}

}

tühine seadistus ()

{

// Seriaal.algus (9600);

myservo1.attach (servoPin6, 1000, 2000); // kinnitab tihvti 9 servo servoobjekti külge

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // kinnitab tihvti 9 servo servoobjekti külge

myservo2.write (90);

}

void loop () {

wipeout (); // pühkimistrumli rutiin

// doOneEighthNote (2, 0);

viivitus (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // esimene parm on servonumber ja teine parm lööb (1 = lööb, 0 = ei löö)

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);

}

Soovitan: