Obsah:

Servo bubon Arduino: 4 kroky
Servo bubon Arduino: 4 kroky

Video: Servo bubon Arduino: 4 kroky

Video: Servo bubon Arduino: 4 kroky
Video: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, November
Anonim
Image
Image

Jedná sa o jednoduchý dva mikro servo a bubon alebo robot ovládaný Arduino Uno. Serva sú namontované na drevenej konzole v tvare L, ktorá je pripevnená k malým bubnom pomocou 4 silných magnetov. Ramienka serva sú priskrutkované k dvom paličkám, ktoré slúžia ako bubny. Je to dosť hlasné, ale nie príliš hlasné. Oveľa hlasnejšie údery je možné dosiahnuť použitím štandardných serv a skutočných bicích tyčí, ktoré sú o niečo ťažšie. To by však tiež vyžadovalo samostatný zdroj napájania pre serva. Použitím mikro-serva dodáva Arduino dostatok prúdu na priame napájanie bez samostatného napájania.

Video ukazuje môj pokus o naprogramovanie jednoduchej verzie sóla bicích Wipeout. Samozrejme to nie je na skutočných 160 úderov za minútu, ale to sa dá ľahko získať pridaním ďalšieho serva, ktoré by bolo celkom cool. Nevypočítal som, aké najvyššie otáčky za minútu je možné získať pomocou serva, a vyžaduje si to určité zdržanie pri presune paličky zo zaparkovanej polohy do hlavy bubna.

Rytmy, ktoré môžete vytvoriť, sú obmedzené iba vašou predstavivosťou a bicí automat je zaujímavejším spoločníkom na hranie ako digitálny bicí automat, ak ste hudobník.

Jedinou nevýhodou je hluk serva, ktorý nie je taký nápadný, aj keď sa zdá, že zvuk kamery ho zachytáva pomerne výrazne.

Krok 1: Zostavte držiak serva

Postavte servo držiak
Postavte servo držiak
Postavte servo držiak
Postavte servo držiak

Táto konzola je vyrobená z niekoľkých pásov hobby preglejky, ktoré som mal po ruke. Tvar L som vytvoril priskrutkovaním dvoch kusov k sebe pomocou kovovej konzoly L. Potom bol na horný pás prilepený malý blok dreva, ktorý držal dve servá.

Mal som dve praktické servosvorky, ktoré som priskrutkoval k drevenému bloku.

Na pripevnenie držiaka na malý bubienok som použil 4 neodymové magnety.

Krok 2: Pripojte serva k Arduino Uno

Pripojte serva k Arduino Uno
Pripojte serva k Arduino Uno

Serva vcc (stredný drôt) idú na kolíky Arduino 5 V.

Uzemnite vodiče k zemi Arduino.

Signálne vodiče prechádzajú na piny 6 a 7.

Servo štít by bol ešte jednoduchší, ak ho máte.

Krok 3: Arduino kód …

Nasleduje jednoduchý náčrt na hranie Wipeout. Musíte len nastaviť polohy servo pre vaše konkrétne nastavenie.

Bavte sa!

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

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

#include "servo.h"

// servo bubeník Jim Demello, jún 2018

Servo myservo1, myservo2;

int servoPin6 = 6; // servo

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

if (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; // ak je úder = 1, pridajte trochu viac servo dolu, aby ste získali silnejší úder

}

myServo (150 + úder, servoNumber); // dole

oneskorenie (delayVal);

myServo (100, servoNumber); // nahor

oneskorenie (delayVal);

}

if (servoNumber == 2) {

ak (beat) beat = -10;

myServo (60 + úder, servoNumber); // dole

oneskorenie (delayVal);

myServo (80, servoNumber); // hore

oneskorenie (delayVal);

}

}

neplatné nastavenie ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // pripevní servo na kolíku 9 k objektu serva

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // pripevní servo na kolíku 9 k objektu serva

myservo2.write (90);

}

prázdna slučka () {

vytrieť(); // rutina vymazania bubna

// doOneEighthNote (2, 0);

oneskorenie (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // prvý parameter je číslo serva a druhý parameter je porazený (1 = úder, 0 = žiadny úder)

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

}

Odporúča: