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

קסדת מחליף קול ספרטני: 14 שלבים (עם תמונות)
קסדת מחליף קול ספרטני: 14 שלבים (עם תמונות)

וִידֵאוֹ: קסדת מחליף קול ספרטני: 14 שלבים (עם תמונות)

וִידֵאוֹ: קסדת מחליף קול ספרטני: 14 שלבים (עם תמונות)
וִידֵאוֹ: יצאתי לצלול במקומות הכי מסוכנים ברובלוקס ! | Scuba Diving at Quill Lake🤿 2024, נוֹבֶמבֶּר
Anonim
קסדת מחליף קול ספרטני
קסדת מחליף קול ספרטני
קסדת מחליף קול ספרטני
קסדת מחליף קול ספרטני

שלום! אנו צוות של 4 סטודנטים מבית הספר הפוליטכני של אוניברסיטת סורבון:

  • לואי בוכרט
  • בילאל מלחי
  • באו טינה פיוט
  • מרקו לונגפה

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

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

מטרות חינוכיות:

  • צלם את הצליל מהמיקרופון
  • הגבר, סינון, דיגיטציה של האות
  • לממש את ה- FFT של אות
  • הצג את ה- FFT הזה על מסך
  • סינתזת אותות
  • הוציא צליל מהרמקול
  • לממש אפקטים על צליל השמע (הדהוד, הד וכו '…)

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

שלב 1: דרישות 1/3 - חומרה

דרישות 1/3 - חומרה
דרישות 1/3 - חומרה

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

  • לוח פיתוח DE0-Nano-SoC מאת Terasic + Adafruit TFT LCD LCD (Arduino)
  • גישה למדפסת תלת מימד בכדי להפוך את הקסדה (אם אתה סטודנט באוניברסיטה מתקרב לאוניברסיטה שלך, לחלקן יש מעבדות נגישות לסטודנטים)
  • מחשב עם חיבור לאינטרנט ומינימום קישוריות (USB, Ethernet). המחשב שלך צריך להיות בעל מעבד חזק מכיוון שעריכת תוכניות ב- Qsys אורכת הרבה זמן.
  • (לא חובה) מדפסת שיוצרת לוחות מעגלים מודפסים (PCB) מקבצי גרבר על מנת לצמצם את גודל המעגל + מגהץ להלחמת הרכיבים על הלוח.
  • (מומלץ בחום): קפה טוב ליהנות מהעבודה שלך עם המדריך שלנו:)

שלב 2: דרישות 2/3 - רכיבים למעגל שלך

דרישות 2/3 - רכיבים למעגל שלך
דרישות 2/3 - רכיבים למעגל שלך
דרישות 2/3 - רכיבים למעגל שלך
דרישות 2/3 - רכיבים למעגל שלך
דרישות 2/3 - רכיבים למעגל שלך
דרישות 2/3 - רכיבים למעגל שלך

להלן הרכיבים הדרושים למעגל שלך:

  • מגבר אודיו מסוג Texas Instrument LM386 AB
  • לוח לחם
  • סט כבלים זכר-זכר, זכר-נקבה
  • ממיר LM358P דיגיטלי לאנלוגי (DAC)
  • רַמקוֹל
  • מיקרופון קטן המשמש במעגל אנלוגי
  • מערך משחק של נגדים מ- 1 kOhm עד 220 kOhm
  • קבלים 1.5nF
  • קבלים 50nF
  • קבלים 100nF
  • קבלים 100uF
  • קבלים 220uF
  • קבלים x4 10uF

שלב 3: דרישות 3/3 - תוכנה

דרישות 3/3 - תוכנה
דרישות 3/3 - תוכנה
דרישות 3/3 - תוכנה
דרישות 3/3 - תוכנה

אחרון חביב, תזדקק לתוכנה:

  • Quartus 15.1: גרסת לייט
  • מהדר C (gcc למשל)
  • אלטיום לעיצוב PCB
  • הסוויטה המשובצת של SoC של Altera לתקשר עם מפת SoC
  • מֶרֶק

שלב 4: מעגל קלט

מעגל קלט
מעגל קלט
מעגל קלט
מעגל קלט
מעגל קלט
מעגל קלט
מעגל קלט
מעגל קלט

בואו לבנות את המעגל. השתמש בתמונה למעלה של המעגל על מנת להרכיב אותה על לוח הלחם שלך. תוכלו גם לראות את התמונה של לוח הלחם ואת המעגל שבתוכו כדי לראות כיצד מחברים סיכות. המעגל כולו מופעל באמצעות זרם ישר של 5V (DC). לשם כך, תוכל להשתמש בסוללת 5V עם ממיר USB-B או מחולל פונקציות.

כמה תזכורות:

  • ספק כוח 5V והקרקע מחוברים בקווים אופקיים נפרדים של לוח הלחם
  • אם אתה רוצה לחבר 2 רכיבים במקביל, שים אותם בקו משותף של לוח הלחם
  • אם ברצונך לחבר 2 רכיבים סדרתיים, המרכיבים חייבים רק סיכה אחת בשורה משותפת של לוח הלחם.

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

שלב 5: מעגל פלט

מעגל פלט
מעגל פלט
מעגל פלט
מעגל פלט
מעגל פלט
מעגל פלט
מעגל פלט
מעגל פלט

אותן הוראות בדיוק כמו שלב 4. ארבעת הכניסות: SDI, לא CS, SCK, לא LDAC הן מלוח ה- DE0-Nano-Soc שלך. נראה בהמשך כיצד לייצר אותם.

אל תשכח לקרוא בעיון את מיקומי הסיכה של מגבר השמע LM386 (ראה תמונה למעלה)

שלב 6: [אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים

[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים
[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים
[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים
[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים
[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים
[אופציונלי] יצירת רכיבי בורד ומעגלים מודפסים

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

תצטרך את 2 קבצי ה- GERBER האלה.

קבצים אלה נעשו באלטיום. השתמש בהם בתוכנת מדפסת ה- PCB כדי להדפיס את ה- PCB. לאחר קבלת ה- PCB, ודא שה- PCB נקי וכי הרצועות מודפסות כהלכה.

עכשיו הנה העסקה האמיתית: הלחמה. 2 התמונות למעלה הן מפת המעגל על הלוח המודרני. לכל רכיב יש שמות (R6, C4, MK1 וכו '). תמונות בשלב 4 ו -5 מציגות את פרמטרי הרכיבים (התנגדות, מוליכות..). מקם כל רכיב מלוח הלוח אל הלוח הלוח לפי שמותיהם.

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

שלב 7: הגדרת SoC

הגדרת SoC
הגדרת SoC
הגדרת SoC
הגדרת SoC

בנוגע להגדרת SoC, יהיה עליך להריץ כמה פקודות ותסריטים הכלולים בחבילת SoC המובנית בתוך מסוף. לשם כך תצטרך להוסיף קצת $ PATH. PATH משמשים בתוך מסוף כדי לחפש קובץ בספריות הנתונות על ידי הנתיב בעת הפעלת פקודה. לשם כך הקלד את שורת הפקודה הבאה:

ייצוא PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH

לאחר מכן הקלד את שורת הפקודה ליצירת כותרות מקובץ sof. אתה משיג את קובץ ה- sof על ידי חיבור הפרויקט שלך ב- Quartus. לשם כך הקלד:./generate_header.

שלב 8: תכנות C HPS

תכנות C HPS
תכנות C HPS

אנחנו צריכים להבין 2 דברים בחלק זה, קרי לקרוא את הערך של ה- ADC ולכתוב אותו ב- SPI.

1. קרא את הערך של ה- ADC

כתובת הזיכרון שבו ה- ADC נמצא אינה נגישה ישירות, למעשה מערכת הלינוקס הקיימת בכרטיס מגדירה הפשטה של הזיכרון. כדי באמת להיכנס לכתובת ה- ADC נשתמש בפונקציית mmap.

"h2p_lw_spi_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (unsigned long) (HW_REGS_MASK));"

הוראה זו מאפשרת להוסיף קיזוז בתחילת כתובת הבסיס כדי להגיע לכתובת הזיכרון המוקצה ל- ADC, ולבצע על הכתובת המתקבלת היגיון AND לקחת בחשבון את המיסוך.

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

2. כתוב את ערך ה- ADC ב- SPI

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

"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"

הוראה זו מאפשרת לך לכתוב ל- SPI. אכן ביט 4, כך 1 << 12, הוא הסיביה המאפשרת להפעיל את ה- SPI. עם OR הגיוני, אנו נותנים לכן את ביט ההפעלה ואת הערך של ה- ADC ל- SPI.

שלב 9: רכישה דיגיטלית של ה- ADC מהכרטיס

רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס
רכישה דיגיטלית של ה- ADC מהכרטיס

קודם כל, יהיה עליך להגדיר את כתובת ה- IP של המחשב שלך דרך לוח הבקרה -> רשת -> כרטיסי זיכרון. בחר את ממשק ה- Ethernet של הכרטיס, הנכס, כתובת ipv4 והזן IP קבוע, מסכה וכו '…

לאחר מכן, חבר את הכרטיס מצד שקע החשמל באמצעות כבל המיקרו USB. פתח את מתכנת Quartus והפעל את הייצוא. מניפולציה זו תתבצע מחדש לאחר כל כיבוי של הכרטיס.

שנה את כבל תקע המיקרו USB כדי להתחבר הפעם לצד שקע ה- Ethernet. כעת, עם מרק יהיה צורך להתחבר לכרטיס באמצעות קישור טורי. התצורה גלויה בתמונות, הרעיון הוא להחליף את COM5 על ידי COM ואחריו את המספר שתוכל למצוא במנהל ההתקנים שלך (לחץ לחיצה ימנית על הלוגו של Windows כדי לפתוח אותו).

הקש enter, אתה מחובר.

מידע להפעלה מחדש של הפרויקט: - תקן ip ethernet המתאים לכרטיס - הפעל את הכרטיס, בכל פעם שאתה מפעיל את הכוח, עליך לשים עם "תוכנית" מתחת לרבע את הפרויקט שנאסף בכרטיס. זה נעשה באמצעות יציאת המיקרו USB - כדי להצליח להציג את התוצאה של התוכנית אנו משתמשים יותר במיקרו USB אך ב- UART - עם מרק מוגדר עבור COM5 סידורי (או 6 שעון gestinnaire periph) התחבר לכרטיס. - הגדר סיסמה (passwd) - הגדר כתובת IP ifconfig ethxx IPchoice (IP לא רחוק מזה של eth של המחשב האישי) - צור את הכותרת על פי Qsys כשהמסוף מוטמע (ייצא PATH) - make - scp l exec ב- מפה - לבצע תחת מרק את פרוג

שלב 10: חישוב FFT

חישוב FFT
חישוב FFT

על מנת לקבל את טרנספורמציה המהירה של פורייה בתוכנית C שלנו, נשתמש בספרייה שנכתבה על ידי מארק בורגרדינג: Kiss FFT. אתה יכול להוריד את הספרייה כאן: https://kissfft.sourceforge.net/. החלת FFT על אות היא הכרחית על מנת לשנות ולהחיל אפקטים של אות. זה יכול גם לשמש להצגת הספקטרום של אות.

השלב הראשון בתוכנית C שלך כולל הקצאת זיכרון על מנת לאחסן את תוצאת ה- FFT. גודל הזיכרון תלוי במספר הנקודות המשמשות לחישוב ה- FFT. ככל שיש לך יותר נקודות, כך ה- FFT יהיה יותר מדויק. עם זאת, התוכנית תפעל לאט יותר ותשתמש יותר בזיכרון. שים לב שתקבל שני מערכים מהפונקציה kiss_fft: הקלט והפלט של הפונקציה (cx_in ו- cx_out)

לאחר שהמערך שלנו יתמלא בערכי FFT חדשים, כלומר כאשר r = Win - 1, אנו מעבדים את ה- FFT. בנוגע לתצוגה, אנו מציגים רק את החלק החיובי של הספקטרום, שכן קיימת סימטריה בין החלק השלילי לחלק החיובי.

בנוגע לציר האופקי, אנו מפחיתים את ערכי השיא ב -100*גובה/(גובה ²) על מנת להבחין בין שיאי התדרים העיקריים.

אנו משתמשים בשיחת מערכת usleep על מנת להגדיר תדר קריאה לערכי ה- ADC. תדר זה מוגדר כרגע ל -1, 5 הרץ.

שלב 11: הצגת ה- FFT

הצגת ה- FFT
הצגת ה- FFT
הצגת ה- FFT
הצגת ה- FFT

על סמך דוגמה תן על מסך ה- TFT LCD של Adafruit הזמין כאן: https://www.terasic.com/downloads/cd-rom/de0-nano-s… תיכננו את ה- NIOS של הלוח שלנו כך שהוא יוכל לקרוא ערך ה- ADC.

אז רשם ה- ADC משותף בין ה- NIOS ל- HPS מכיוון שערכי ה- ADC ישמשו להצגת ה- FFT במסך ה- NIOS, ואותם ערכים ייכתבו ב- SPI על מנת שיוצא מהלוח ולבסוף יומר על ידי DAC כדי לקבל אות אנלוגי.

שלב 12: הרכבה

הַרכָּבָה
הַרכָּבָה

כמעט סיימנו! יהיה עליך להרכיב כל חלק של הפרוג'ט (מעגל כניסה, מעגל פלט ולוח). הקפד לחבר את החלקים לפינים הנכונים בהתאם לפרויקט Quartus.

  1. מעגל הקלט ישלח את אות השמע שנתפס על ידי המיקרופון, מוגבר, מסונן וקוזז.
  2. התוכנית C המופיעה בכרטיס תקרא את ערכי ה- ADC כפי שראינו בעבר, ותכתוב אותה ב- SPI כך שנוכל לשחזר את הערך ב- GPIO של הכרטיס.
  3. לאחר מכן פלט ה- GPIO של ה- SPI ישדר את המידע שיפענח על ידי ה- DAC שלנו ויוגבר על ידי ריצה כדי להגיע לרמקול.

שלב 13: אפקטים קוליים

אפקטים קוליים
אפקטים קוליים
אפקטים קוליים
אפקטים קוליים

הצעד היחיד שנותר הוא אפקטים קוליים.

השפעות זמינות הן:

  • מסנן תדרים גבוהים
  • מסנן תדרים נמוכים

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

שלב 14: [אופציונלי] הכנת הקסדה

[אופציונלי] הכנת הקסדה
[אופציונלי] הכנת הקסדה
[אופציונלי] הכנת הקסדה
[אופציונלי] הכנת הקסדה
[אופציונלי] הכנת הקסדה
[אופציונלי] הכנת הקסדה

כאן אנו נמצאים בשלב הידני ביותר של הפרויקט:

  1. ראשית הדבקנו את החלקים השונים המודפסים של הקסדה.
  2. כדי למלא את הפערים בין החלקים המודבקים הוספנו גימור בעזרת עט תלת מימד.
  3. ליטשנו את המרווחים המלאים בעט ובקסדה באופן כללי יותר כך שהציור יחזיק טוב לאחר מכן.
  4. ציירנו את הקסדה בשתי שכבות: הראשונה בשחור אנתרציט, מקרוב, ושנייה של ירוק ראשוני מלמעלה מעניקה גוונים של ירוק כהה יותר.
  5. לבסוף הדפסנו את הלוגו של בית הספר שלנו בצד הקסדה

מוּמלָץ: