תוכן עניינים:
וִידֵאוֹ: מנוע צעד נשלט על ידי MIDI עם שבב סינתזה דיגיטלית ישירה (DDS): 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
יש לך פעם רעיון גרוע שפשוט היית צריך להפוך לפרויקט מיני? ובכן, שיחקתי עם סקיצה שהכנתי עבור ה- 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
הסקיצה המצורפת.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: בדיקה והתנסות
הגיע הזמן לשחק במנוע הצעד שלך!
כאמור, כל הרעיון מאחורי זה היה סוג של ניסוי מחוץ לשרוול, אז בכל מקרה, עשה קצת ניסויים משלך!
מוּמלָץ:
מנוע צעד נשלט על ידי מנוע צעד ללא מיקרו -בקר !: 6 שלבים
מנוע צעד נשלט על מנוע צעד ללא מיקרו -בקר !: בהוראה מהירה זו, נכין בקר מנוע צעד פשוט באמצעות מנוע צעד. פרויקט זה אינו דורש מעגלים מורכבים או מיקרו -בקר. אז בלי להתבטא יותר, בואו נתחיל
מנוע צעד נשלט על ידי מנוע צעד ללא מיקרו -בקר (V2): 9 שלבים (עם תמונות)
מנוע צעד מבוקר צעדים ללא מיקרו -בקר (V2): באחד ממדריכי ההוראות הקודמים שלי, הראיתי לך כיצד לשלוט במנוע צעד באמצעות מנוע צעד ללא מיקרו -בקר. זה היה פרויקט מהיר ומהנה אך הוא בא עם שתי בעיות שיפתרו במדריך זה. אז, שנינות
קטר דגם מבוקר באמצעות מנוע צעד - מנוע צעד כמקודד סיבובי: 11 שלבים (עם תמונות)
קטר דגם מבוקר באמצעות מנוע צעד | מנוע צעד כמקודד סיבוב: באחד מההנחיות הקודמות למדנו כיצד להשתמש במנוע צעד כמקודד סיבוב. בפרויקט זה, כעת נשתמש במנוע הצעד ההופך את המקודד הסיבובי לשליטה על קטר דגם באמצעות מיקרו -בקר ארדואינו. אז בלי fu
מנוע צעד מבוקר צעד מנוע - מנוע צעד כמקודד סיבובי: 11 שלבים (עם תמונות)
מנוע צעד מבוקר צעד מנוע | מנוע צעד כמקודד סיבובי: האם כמה מנועי צעד שוכבים ורוצים לעשות משהו? במדריך זה, בואו להשתמש במנוע צעד כמקודד סיבובי כדי לשלוט במיקום מנוע צעד אחר באמצעות מיקרו -בקר Arduino. אז בלי להתבטא יותר, בואו נגיד
מנוע צעד (מנוע צעד): 5 שלבים
التحكم بالمحرك الخطوي (מנוע צעד) بطريقة (Microstep): في هذه المدونة اتحدث عن كيف نقوم بالتحكم بماتور خطوي عن طريق الخطوة الدقيقة وهي الطريقة المتبعة في الطابعات الثلاثية الابعاد