תוכן עניינים:

מכונת תוף סרוו ארדואינו: 4 שלבים
מכונת תוף סרוו ארדואינו: 4 שלבים

וִידֵאוֹ: מכונת תוף סרוו ארדואינו: 4 שלבים

וִידֵאוֹ: מכונת תוף סרוו ארדואינו: 4 שלבים
וִידֵאוֹ: servo.h ארדואינו - מנוע סרוו, הסבר - כולל קוד הפעלה ושימוש בפונקציה 2024, יולי
Anonim
Image
Image

זוהי מכונת תופים או רובוט מבוקרת עם שני מיקרו סרוו וארדואינו אונו. הסרוויים מותקנים על סוגר עץ בצורת L הנחזק לתוף המלכודת עם 4 מגנטים חזקים. זרועות הסרוו מוברגות לשני מקלות אכילה המשמשים כמקלות התוף. זה די חזק אבל לא חזק מדי. ניתן היה להשיג להיטים חזקים הרבה יותר באמצעות סרוו בגודל סטנדרטי ומקלות תופים אמיתיים שהם לא מעט כבדים יותר. אבל זה ידרוש גם ספק כוח נפרד עבור השירותים. באמצעות מיקרו סרווס, Arduino מספק מספיק זרם כדי להפעיל אותם ישירות ללא ספק כוח נפרד.

הסרטון מראה את הניסיון שלי לתכנת גרסה פשוטה של סולו התופים של Wipeout. כמובן שהוא לא עומד על 160 פעימות בדקה, אך ניתן להשיג זאת בקלות על ידי הוספת סרוו נוסף שיהיה די מגניב. לא חישבתי מהו הדופק העליון שניתן להשיג באמצעות סרוו וזה אכן דורש עיכוב כלשהו בהעברת התוף מהמצב החונה שלו לראש התוף.

המקצבים שאתה יכול ליצור מוגבלים רק על ידי הדמיון שלך ומכונת התופים היא חברה מעניינת יותר לשחק איתה מאשר מכונת תופים דיגיטלית, אם אתה מוזיקאי.

החיסרון היחיד הוא רעש הסרווו שהוא לא ממש מורגש אם כי נראה כי שמע המצלמה מרים אותו באופן בולט למדי.

שלב 1: בנה את סוגר סרוו

בנה את סוגר סרוו
בנה את סוגר סרוו
בנה את סוגר סרוו
בנה את סוגר סרוו

סוגר זה עשוי מכמה רצועות דיקט תחביב שהיה לי בהישג יד. יצרתי צורת L על ידי הברגה של שתי חתיכות יחד עם סוגר מתכת L. אחר כך הודבק גוש עץ קטן לרצועה העליונה בכדי להכיל את שני הסרבים.

היו לי שני סוגרי סרוו נוחים שהברגתי לגוש העץ.

השתמשתי ב -4 מגנטים ניאודימיום כדי להחזיק את התושבת לתוף המלכודת.

שלב 2: העבר את סרוווס לאו ארדואינו

חברו את סרוווס לאו ארדואינו
חברו את סרוווס לאו ארדואינו

סרוווס vcc (חוט אמצעי) עובר לסיכות 5 v של Arduino.

חוטי הקרקע לקרקע ארדואינו.

חוטי האות עוברים לסיכות 6 ו -7.

מגן סרוו יקל עוד יותר אם יש לך כזה.

שלב 3: קוד Arduino …

להלן הסקיצה הפשוטה לשחק Wipeout. אתה רק צריך להתאים את עמדות הסרו עבור ההתקנה הספציפית שלך.

תעשה חיים!

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

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

#כלול "servo.h"

// מתופף סרוו ג'ים דמלו יוני 2018

סרוו myservo1, myservo2;

int servoPin6 = 6; // סרוו

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

אם (ביט) {פעימה = 10; // אם ביט = 1 ואז הוסיפו עוד קצת סרוו למטה לחבטה חזקה יותר

}

myServo (150 + פעימה, servoNumber); //מטה

עיכוב (delayVal);

myServo (100, servoNumber); // למעלה

עיכוב (delayVal);

}

if (servoNumber == 2) {

אם (ביט) פעימה = -10;

myServo (60 + פעימה, servoNumber); //מטה

עיכוב (delayVal);

myServo (80, servoNumber); // למעלה

עיכוב (delayVal);

}

}

הגדרת חלל ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // מחבר את הסרוו על סיכה 9 לאובייקט הסרוו

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // מחבר את הסרוו על סיכה 9 לאובייקט הסרוו

myservo2.write (90);

}

לולאת חלל () {

מנגב(); // שגרת תופים wipeout

// doOneEighthNote (2, 0);

עיכוב (40);

}

wipeout void () {

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

}

מוּמלָץ: