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

מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS): 3 שלבים
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS): 3 שלבים

וִידֵאוֹ: מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS): 3 שלבים

וִידֵאוֹ: מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS): 3 שלבים
וִידֵאוֹ: רובוט ליניארי, מפעיל חשמלי, אוטוציה תעשייתי 2024, נוֹבֶמבֶּר
Anonim
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)
מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS)

יש לך פעם רעיון גרוע שפשוט היית צריך להפוך לפרויקט מיני? ובכן, שיחקתי עם סקיצה שהכנתי עבור ה- Arduino Due שמטרתה ליצור מוזיקה עם מודול AD9833 Direct Digital Synthesis (DDS) … ובשלב מסוים חשבתי "היי, אולי אני צריך לסדר מנוע צעד/נהג כדי זֶה". והרעיון הזה הוא בדיוק מה שהניע את הפרויקט הקטן הזה מבוסס קרש הלחם.

כלול בפרויקט זה קוד כלשהו לשימוש ב- MIDI-over-USB לשליטה ב- Arduino Due ושליחת גלים מרובעים בין מודול AD9833 לבין מנהל ההתקן. יהיו גם תרשים והוראות בסיסיות לחיבור זה ל- Arduino Due.

אספקה:

מה תצטרך לפרויקט הזה:

ארדואינו דו

הערה: הקוד כתוב עבור ה- Due, אך הוא אמור לפעול ו/או להיות מותאם לאפס. הוא משתמש בספריית MIDIUSB של Arduino, הדורשת יציאת USB מקורית.

לוח לחם + מגשרים

מודול פריצה AD9833

נהג צעדים A4988 (או דומה)

מנוע צעד NEMA 17 (או דומה)

- ספק כוח 24V (שים לב, בחרתי בערך זה של 24 וולט מכיוון שהוא היה גדול יותר ממתח המנוע המדרגה הנומינלי. היישום שלך עשוי להיות שונה אם אתה משתמש במנוע גדול יותר)

שלב 1: לוח לחם

לוח לחם
לוח לחם

הרעיון הבסיסי שעומד מאחורי זה הוא שה- IC Direct Digital Synthesis IC ייצור גל מרובע להנעת סיכת ה"דרגה "של נהג המדרגה. נהג צעד זה יניע את המנוע בתדר הקולי שצוין. כיוון המנוע שרירותי במידה כל עוד הוא צועד בתדר הנכון.

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

קרקע, אדמה:

- חבר את סיכות AGND ו- DGND של מודול AD9833 למסילת GND שעל לוח הלחם.

- חבר את שני סיכות ה- GND במנהג הצעד למעקה ה- GND

תביא את זה לאחד מסיכות ה- GND של ה- Arduino Due

3.3V כוח:

- חבר את סיכת VDD של נהג הצעד למעקה V+ של לוח הלחם

- חבר את סיכת VCC של מודול AD9833 למעקה V+ של לוח הלחם

- תביא את זה לסיכה 3.3V של Arduino Due

כוח 24V:

- חבר את סיכת VMOT לחשמל 24V DC (בהתאם לבחירת המנוע שלך, ייתכן שתרצה להפעיל מסילת אספקה גבוהה או נמוכה יותר)

חיבור מודול למודול:

- חבר את סיכת OUT ממודול AD9833 לסיכה STEP של מנהל ההתקן

חיבורי נהג צעדים:

- חבר את חיבורי מנוע הצעד לסיכות 2B/2A/1A/1B. הקוטביות אינה כה חשובה, כל עוד שלבי הנהג תואמים את אלה של מנוע הצעדים.

- חבר את סיכות RESET ו- SLEEP יחדיו והבא אותן לסיכה 8 של Arduino Due.

- חבר את פין DIR למסילה 3.3V

חיבורי מודול AD9833:

- חבר את SCLK לסיכת SCK של Arduino Due. שים לב שסיכה זו נמצאת בכותרת ICSP הזכרית בת 6 פינים ליד המיקרו-בקר, לא בכותרות הנשיות החיצוניות הרגילות.

- חבר את סיכת ה- SDATA לפין MOSI של ה- Due. שים לב שסיכה זו נמצאת בכותרת ICSP הזכרית בת 6 פינים ליד המיקרו-בקר, לא בכותרות הנשיות החיצוניות הרגילות.

- חבר את FSYNC לסיכה 6 של Arduino Due (זהו סיכת בחירת שבב לפרויקט זה)

כעת, כאשר לוח הלחם מורכב במלואו, הגיע הזמן להציץ בקוד!

שלב 2: תכנות והתקנת MIDI

תכנות והתקנת MIDI
תכנות והתקנת MIDI

הסקיצה המצורפת.ino תיקח כניסות USB-MIDI דרך יציאת ה- USB המקורית של Arduino Due, ותשתמש בהן להנעת ה- AD9833. לשבב זה יש DAC שפועל ברזולוציית תדר של 25 מגה -הרץ (28 סיביות (עודף מוגזם למה שצריך כאן), וחלק גדול מהקוד כאן מגדיר את זה להפעלה ולפלט של גל מרובע.

הערה: ישנן שתי יציאות USB. האחד משמש לתכנות הלוח, והשני ישמש עבור פקודת MIDI-over-USB

שים לב שסקיצה זו לא תעבוד כפי שהיא ב- Arduino Uno - פרויקט זה ספציפי לצורך שלו ב- USB המקורי ב- Arduino Due או התקנים דומים

אפשרויות התאמה אישית:

- ישנם 2 מצבים הניתנים להגדרה על ידי הגדרת מאקרו קדם -מעבד. אם "#define STOPNOTES" נותר על כנו, השלב יעצור בין ההערות. זה לא תמיד רצוי (למשל, משחק ארפגיות מהירות), כדי לשנות התנהגות זו, פשוט מחק או ציין כי הצהרת #define והצעד יופעלו ברציפות לאחר שיופעלו.

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

תרגום MIDI לתדר מתבצע עם שורה זו בפונקציית playNote: int f_out = (int) (27.5*pow (2, ((float) midiNote-33)/12));

- אני נוטה להשתמש במחשב שלי לממשק באמצעות USB MIDI - אתה יכול לעשות זאת מהתוכנה המועדפת עליך על תחנת עבודה דיגיטלית אודיו (DAW). אם אין לך מערכת כזו, זה די קל להגדיר מערכת זו באמצעות LMMS - פלטפורמת קוד פתוח בחינם. לאחר ההתקנה והריצה, פשוט הגדר את ה- Arduino Due כמכשיר פלט MIDI, ואם אתה משתמש במקלדת USB MIDI, הגדר זאת כקלט.

שלב 3: בדיקה והתנסות

הגיע הזמן לשחק במנוע הצעד שלך!

כאמור, כל הרעיון מאחורי זה היה סוג של ניסוי מחוץ לשרוול, אז בכל מקרה, עשה קצת ניסויים משלך!

מוּמלָץ: