Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acesta este un robot simplu cu două micro-servo și Arduino Uno controlat. Servo-urile sunt montate pe un suport de lemn în formă de L care este ținut de tamburul cu 4 magneți puternici. Brațele servo sunt înșurubate la două bețișoare care servesc drept tobe. Este destul de tare, dar nu prea tare. Lovituri mult mai puternice ar putea fi obținute folosind servome de dimensiuni standard și tobe verzi, care sunt destul de grele. Dar asta ar necesita și o sursă de alimentare separată pentru servomotoare. Folosind micro-servo-uri Arduino furnizează suficient curent pentru a le alimenta direct fără o sursă de alimentare separată.
Videoclipul arată încercarea mea de a programa o versiune simplă a tamburului Wipeout solo. Desigur, nu este la 160 de bătăi pe minut, dar asta ar putea fi obținut cu ușurință adăugând un alt servo care ar fi destul de cool. Nu am calculat care sunt bpm-urile superioare care pot fi obținute utilizând un servo și necesită o oarecare întârziere pentru a obține bețica din poziția sa de parcare până la capul tobei.
Ritmurile pe care le puteți crea sunt limitate doar de imaginația dvs., iar toba este un partener mai interesant de jucat decât o mașină de tobe digitală, dacă sunteți muzician.
Singurul dezavantaj este zgomotul servo, care nu este chiar atât de vizibil, deși sunetul camerei pare să-l capteze destul de notabil.
Pasul 1: Construiți Servo Bracket
Această paranteză este realizată din niște benzi de placaj hobby pe care le aveam la îndemână. Am creat o formă de L prin șurubarea a două piese împreună cu un suport de metal L. Apoi, un mic bloc de lemn a fost lipit de banda superioară pentru a ține cele două servouri.
Aveam două brațe servo la îndemână pe care le-am înșurubat la blocul de lemn.
Am folosit 4 magneți de neodim pentru a ține consola de tambur.
Pasul 2: conectați Servo-urile la Arduino Uno
Servoarele vcc (firul de mijloc) se îndreaptă către pinii Arduino 5 v.
Pământul se conectează la pământul Arduino.
Firele de semnal merg la pinii 6 și 7.
Un servo-scut ar face chiar mai ușor dacă aveți unul.
Pasul 3: Cod Arduino …
Mai jos este schița simplă pentru a juca Wipeout. Trebuie doar să ajustați pozițiile servo pentru configurarea dvs. particulară.
A se distra!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#includeți „servo.h”
// servo baterist Jim Demello iunie 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; // dacă bate = 1, atunci adaugă un pic mai mult de servo în jos pentru o lovitură mai puternică
}
myServo (150 + beat, servoNumber); //jos
întârziere (delayVal);
myServo (100, servoNumber); // sus
întârziere (delayVal);
}
if (servoNumber == 2) {
dacă (bate) bate = -10;
myServo (60 + beat, servoNumber); //jos
întârziere (delayVal);
myServo (80, servoNumber); // sus
întârziere (delayVal);
}
}
configurare nulă ()
{
// Serial.begin (9600);
myservo1.attach (servoPin6, 1000, 2000); // atașează servo pe pinul 9 la obiectul servo
myservo1.write (100);
myservo2.attach (servoPin7, 1000, 2000); // atașează servo pe pinul 9 la obiectul servo
myservo2.write (90);
}
bucla nulă () {
nimici(); // rutină tambur wipeout
// doOneEighthNote (2, 0);
întârziere (40);
}
void wipeout () {
doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // primul parm este numărul servo și al doilea parm este beat (1 = beat, 0 = fără beat)
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);
}