Բովանդակություն:

Arduino Servo հարվածային մեքենա ՝ 4 քայլ
Arduino Servo հարվածային մեքենա ՝ 4 քայլ

Video: Arduino Servo հարվածային մեքենա ՝ 4 քայլ

Video: Arduino Servo հարվածային մեքենա ՝ 4 քայլ
Video: Torno semiautomático para baquetas. Empresa Rioz Percussion. 2024, Հուլիսի
Anonim
Image
Image

Սա պարզ երկու միկրովերվո և Arduino Uno վերահսկվող թմբուկի մեքենա կամ ռոբոտ է: Սերվոները տեղադրված են L- ձևի փայտի բրա վրա, որը 4 ամուր մագնիսներով պահվում է թակարդի թմբուկին: Սերվոյի ձեռքերը ամրացված են երկու ձողիկներով, որոնք ծառայում են որպես թմբուկի ձողիկներ: Այն բավականին բարձր է, բայց ոչ շատ բարձր: Շատ ավելի բարձր հարվածներ կարելի է ստանալ `օգտագործելով ստանդարտ չափսի սերվերներ և իրական թմբուկներ, որոնք բավականին ծանր են: Բայց դա նաև կպահանջի առանձին սնուցման աղբյուր սերվերի համար: Օգտագործելով միկրո-սերվերներ ՝ Arduino- ն բավականաչափ հոսանք է մատակարարում ՝ դրանք ուղղակիորեն սնուցելու համար ՝ առանց առանձին էլեկտրամատակարարման:

Տեսանյութը ցույց է տալիս Wipeout թմբուկի մենակատարի պարզ տարբերակը ծրագրավորելու իմ փորձը: Իհարկե, դա իրականում 160 զարկ / րոպե չէ, բայց դա հեշտությամբ կարելի է ձեռք բերել ՝ ավելացնելով մեկ այլ սերվո, որը շատ թույն կլիներ: Ես չեմ հաշվարկել, թե որ առավելագույն հարվածներն են ստացվում սերվոյի միջոցով և դա որոշակի հետաձգում է պահանջում, որպեսզի թմբուկն իր կայանած դիրքից թմբուկի գլուխը հասցնի:

Այն ռիթմերը, որոնք դուք կարող եք ստեղծել, սահմանափակվում են միայն ձեր երևակայությամբ, և թմբուկի մեքենան ավելի հետաքրքիր նվագակցող է, քան թվային թմբուկի մեքենան, եթե երաժիշտ եք:

Միակ բացասական կողմը սերվոյի աղմուկն է, որն իրականում այդքան էլ նկատելի չէ, չնայած տեսախցիկի ձայնը, ըստ երևույթին, այն զգալիորեն բարձրացնում է:

Քայլ 1. Կառուցեք Servo բրա

Կառուցեք Servo բրա
Կառուցեք Servo բրա
Կառուցեք Servo բրա
Կառուցեք Servo բրա

Այս փակագիծը պատրաստված է հոբբի նրբատախտակի որոշ շերտերից, որոնք ես ունեի ձեռքի տակ: Ես ստեղծեցի L- ձև ՝ երկու կտոր ամրացնելով մետաղյա L- փակագծի հետ միասին: Այնուհետև փայտի մի փոքր բլոկ սոսնձվեց վերին ժապավենին ՝ երկու սերվերը պահելու համար:

Ես ունեի երկու հարմար servo փակագծեր, որոնք ես պտուտակեցի փայտի բլոկին:

Ես օգտագործեցի 4 նեոդիմի մագնիս ՝ փակագիծը թակարդին ամրացնելու համար:

Քայլ 2. Servos- ը միացրեք Arduino Uno- ին

Servos- ը միացրեք Arduino Uno- ին
Servos- ը միացրեք Arduino Uno- ին

Servos vcc (միջին մետաղալար) անցնում է Arduino 5 v կապում:

The Ground լարերը դեպի Arduino գետնին:

Ազդանշանի լարերը անցնում են 6 -րդ և 7 -րդ կապում:

Servo վահանն ավելի կհեշտացնի, եթե այն ունեք:

Քայլ 3: Arduino կոդ…

Ստորև բերված է Wipeout խաղալու պարզ ուրվագիծը: Դուք պարզապես պետք է հարմարեցնեք սերվոյի դիրքերը ձեր հատուկ տեղադրման համար:

Զվարճանալ!

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

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

#ներառել «servo.h»

// սերվո թմբկահար Jimիմ Դեմելլո 2018 թվականի հունիս

Servo myservo1, myservo2;

int servoPin6 = 6; // ծառայություն

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

եթե (servoNumber == 1) {

myservo1.write (servoPosition);

}

եթե (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

եթե (servoNumber == 1) {

եթե (ծեծել) {ծեծել = 10; // եթե ծեծում եք = 1, ապա մի փոքր ավելի սերվո ավելացրեք ներքև `ավելի ուժեղ հարվածի համար

}

myServo (150 + հարված, servoNumber); // ներքև

ուշացում (delayVal);

myServo (100, servoNumber); // վեր

ուշացում (delayVal);

}

եթե (servoNumber == 2) {

եթե (ծեծել) ծեծել = -10;

myServo (60 + հարված, servoNumber); // ներքև

ուշացում (delayVal);

myServo (80, servoNumber); // վեր

ուշացում (delayVal);

}

}

դատարկ կարգավորում ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // ամրացնում է servo- ն 9 -րդ կապի վրա servo օբյեկտին

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // ամրացնում է servo- ն 9 -րդ կապի վրա servo օբյեկտին

myservo2.write (90);

}

դատարկ շրջան () {

wipeout (); // wipeout drum routine

// doOneEighthNote (2, 0);

ուշացում (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // առաջին հատակը սերվոյի համարն է, իսկ երկրորդը `ծեծված (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, 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);

}

Խորհուրդ ենք տալիս: