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

קקטוס 2000: 7 שלבים
קקטוס 2000: 7 שלבים

וִידֵאוֹ: קקטוס 2000: 7 שלבים

וִידֵאוֹ: קקטוס 2000: 7 שלבים
וִידֵאוֹ: מצמרר: האמא שנרצחה בטבח השביעי באוקטובר בקיבוץ ניר עוז התגלתה בחלום 2024, יולי
Anonim
קקטוס 2000
קקטוס 2000

פרויקט MIDI-CONTROLEUR EISE4

פרנסאית:

Lors de notre quatrième année d'école ingénieur, nous avons réalisé un midi-contrôleur. Pour ce faire, nous avions à notre disposition:

  • Une carte DE0 Nano Soc
  • אוסצילוסקופים, des multimètres
  • סוגי רכיבים שונים (מגבר, התנגדות, יכולת …)
  • Un micro et un haut-parleur
  • חסרון קטן

Il nous a fallu passer par différentes étapes périlleuses afin de réussir le projet. Nous allons vous les présenter dans cet ניתן להדרכה.

Pour commencer, le dessin du circuit de base était nécessaire afin de récupérer le son du micro et le rendre au haut-parleur. Une fois le circuit dessiner, le PCB était à faire sur le logiciel Altium. Pendant que deux élèves s'occupaient de gérer les PCB de l'entrée et de la sortie, les deux autres s'occupaient de faire fonctionner la carte DE0 Nano Soc afin que la carte puisse récupérer les echantillons du micro et redonner un signal pour le haut-parleur. סיום, il nous a fallu créer des effets sonores pour modifier le son.

אנגלית:

במהלך שנת הלימודים הרביעית שלנו, גילינו מיקר-בקר. לשם כך עמדנו לרשותנו:

  • מפה DE0 Nano Soc
  • אוסצילוסקופים, מולטימטרים
  • רכיבים מסוגים שונים (מגבר, התנגדות, קיבולת …)
  • מיקרופון ורמקול
  • מסך קטן

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

ראשית, עיצוב המעגל הבסיסי הנדרש לשחזור בנו של המיקרופון וייצור הרמקול. לאחר משיכת המעגל, ה- PCB אמור היה להתבצע בתוכנת Altium. בעוד שני סטודנטים היו עסוקים בניהול ה- PCB של הקלט והפלט, השניים האחרים עבדו על הפעלת כרטיס DE0 Nano Soc, כך שהכרטיס יוכל לאסוף את דוגמאות המיקרופון ולתת אות לרמקול. לבסוף, היינו צריכים ליצור אפקטים קוליים כדי לשנות את הצליל.

שלב 1: Conception Du Circuit En Entrée / עיצוב מעגל הכניסה

Conception Du Circuit En Entrée / עיצוב מעגל כניסה
Conception Du Circuit En Entrée / עיצוב מעגל כניסה

פרנסאית:

La première étape consiste à mettre en place un circuit qui puisse prendre le signal envoyer sur le micro pour le transmettre à la carte DE0 Nano Soc.

Ci-dessus le schéma de notre entrée.

(1) L'inverseur va permettre de récupérer le 5 Volt et le transformer en - 5 V. Le - 5 V servira pour l'amplificateur que nous verrons ci -dessous.

(2) Ici, nous avons un amplificateur non-inverseur. D'après la formule suivante:

Vs = Ve (1 + Z1/Z2)

על בחירה un gain de 101 en mettant R1 = 100 kOhm et R2 = 1 kOhm.

מגבר CET מגביר את המגבר le son du micro.

(3) Res deux résistances vont créer un offset afin que la spanning de sortie soit includes entre 0 et 4 V.

(4) מגבר Le micro qui va être par l'amplificateur.

(5) CAG (Controle Automatique de Gain)

(6) יוצקים finir, nous avons créé un filtre passe-bas du second ordre avec deux RC. L'ordre 2 était nécessaire pour avoir une atténuation de - 40db / עשור. La fréquence de coupure choisit est 20 kHz.

אנגלית:

השלב הראשון הוא להקים מעגל שיכול לקחת את האות ששולח על המיקרופון כדי להעביר אותו לכרטיס DE0 Nano Soc. מעל התרשים של הערך שלנו.

(1) המהפך ישחזר את 5 וולט ויהפוך אותו ל - 5 V. ה- - 5 V ישמש עבור המגבר שנראה להלן.

(2) כאן יש לנו מגבר לא הפוך. על פי הנוסחה הבאה:

Vs = Ve (1 + Z1 / Z2)

רווח של 101 נבחר על ידי הגדרת R1 = 100 kOhm ו- R2 = 1 kOhm.

מגבר זה ישמש להגברת צליל המיקרופון.

(3) שני הנגדים ייצרו קיזוז כך שמתח המוצא יהיה בין 0 ל -4 וולט.

(4) המיקרופון שיוגבר על ידי המגבר.

(5) AGC (בקרת רווח אוטומטית)

(6) לבסוף, יצרנו מסנן מעבר נמוך מסדר שני עם שני RC. צו 2 היה צורך בהנחתה של -40db / עשור. תדר החיתוך שנבחר הוא 20 קילוהרץ.

שלב 2: Conception Du Circuit En Sortie / עיצוב מעגל הפלט

Conception Du Circuit En Sortie / עיצוב מעגל הפלט
Conception Du Circuit En Sortie / עיצוב מעגל הפלט

פרנסאית:

Dans un second temps, nous avons penser à la création du circuit en sortie.

Ci-dessus le schéma de notre sortie.

(1) Le DAC (ממיר דיגיטלי לאנלוגי) qui va permettre de récupérer le signal numérique שליח par la carte DE0 Nano Soc et le convertir signal signal analog (nécessaire pour le haut parleur)

(2) La capacité va servir a virer la composante המשך אות notre.

(3) Montage qui va permettre d'amplifier la puissance de notre signal. Nous avons prit le schéma:

www.ti.com/lit/ds/symlink/lm386.pdf

עמוד 10

Ce schéma permet d'avoir un gain de 200 qui est nécessaire car notre signal est vraiment faible.

אנגלית:

מעל התרשים של הפלט שלנו.

(1) ה- DAC (ממיר דיגיטלי לאנלוגי) שיאפשר לשחזר את האות הדיגיטלי הנשלח על ידי כרטיס DE0 Nano Soc ולהמיר אותו לאות אנלוגי (הכרחי לרמקול).

(2) הקיבולת תשמש להעברת הרכיב הרציף של האות שלנו.

(3) הרכבה שתגביר את עוצמת האות שלנו. לקחנו את התוכנית:

www.ti.com/lit/ds/symlink/lm386.pdf

עמוד 10

תכנית זו מאפשרת להשיג רווח של 200 וזה הכרחי מכיוון שהאות שלנו באמת חלש.

שלב 3: Conception Des PCB / עיצוב ה- PCB

Conception Des PCB / עיצוב ה- PCB
Conception Des PCB / עיצוב ה- PCB

פרנסאית:

Une fois que nos circuits on été instanciés il nous a fallu les mettre sur des PCB.

Pour ce faire, nous avons utiliser le logiciel Altium. אם אתה רוצה לתקן את זה, התחבר puis cliquer sur:

עיצוב תפריט -> עדכן מסמך PCB.

חדר רחצה צמוד, לחץ על «אימות שינויים». יוצקים שינוי צ'אקה תקף, לא סרוגים את האפלה של dans la colonne: «בדוק».

Après cela, vous aurez un nouvel onglet qui va s'ouvrir et il faudra placer les composants dans cette fenêtre.

תפריט "קובץ" -> "פלט ייצור" -> "קבצי גרבר"

Une fenêtre s'ouvre, dans celle-ci vous trouverez;

  • התפריט "שכבות" מאפשר לך להעביר את המקלדת לשכבות קבועות ולהוציא את הלוח PCB.
  • התפריט "ציור מקדח" dans lequel il faut que tout soit décocher.
  • תפריט Le Apertures dans lequel il faut cocher "Embedded appertures".

האם אתה לא יכול להשלים?

Revenons maintenant à la fenêtre avec les composants sur celle-ci vous cliquez sur

קובץ-> פלט ייצור -> קבצי מקדחה NC

C'est enfin finit, il ne reste plus qu'à donner à l'imprimante 3D les fichiers.

Vous trouverez ci-joint les photos de nos deux PCB.

אנגלית:

לאחר שהמעגלים שלנו נוצרו מיידית, היינו צריכים לשים אותם על מחשבי PCB.

לשם כך אנו משתמשים בתוכנת Altium. הכל חייב להיות מחובר כהלכה ואז לחץ על:

עיצוב תפריט -> עדכן מסמך PCB.

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

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

לאחר מכן עליך לעבור לתפריט "קובץ" -> "פלט פלט" -> "קבצי גרבר"

נפתח חלון, בחלון זה תמצא;

תפריט "שכבות" שיאפשר לך לבחור אילו שכבות יתמכו ב- PCB שלך. התפריט "ציור תרגיל" שבו יש לבטל הכל. התפריט "Apertures" בו עליך לבדוק את "Appertures embedded".

כל צעדיו הושלמו?

נחזור עכשיו לחלון עם הרכיבים על זה שאתה לוחץ עליו

קובץ-> פלט ייצור -> קבצי מקדחה NC

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

תמצאו את התמונות המצורפות של שני ה- PCB שלנו.

שלב 4: Périphériques Pour La Carte DE0 Nano Soc / ציוד היקפי לכרטיס DE0 Nano Soc

Périphériques Pour La Carte DE0 Nano Soc / ציוד היקפי לכרטיס DE0 Nano Soc
Périphériques Pour La Carte DE0 Nano Soc / ציוד היקפי לכרטיס DE0 Nano Soc

פרנקאים:

כתובת ה- IP לא נותנת אופטימיזציה של FPGA של אינטל ו- FPGA ותוכל ליישם את התפיסה ואת זמני הבדיקה.

Grâce au logiciel Qsys nous avons pu créer des périphériques embarqués dans notre carte.

Voici une list des périphériques que nous avons ajouter:

  • תקשורת SPI pour le DAC
  • ADC pour recupérer les valeurs analogique de notre signal et les convertir en donnée digitales
  • HPS (מעבד) יוצרים קודים רבים
  • GPIO pour les boutons qui vont servir à exécuter מעניק תועלת
  • Mémoire (על זיכרון שבבים)

אנגלית:

ליבות ה- IP מותאמות למכשירי FPGA של אינטל וניתנות ליישום בקלות על מנת להקטין את זמן התכנון והבדיקה.

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

  • תקשורת SPI עבור DAC
  • ADC לאחזר את הערכים האנלוגיים מהאות שלנו ולהמיר אותם לנתונים דיגיטליים
  • HPS (מעבד) לניהול כל הקודים
  • GPIO לכפתורים שישמשו להתמודדות עם אפקטים מסוימים
  • זיכרון (על זיכרון השבב)

שלב 5: L'écran LT24

L'écran LT24
L'écran LT24

פרנסאית:

Il nous a fallu comprendre et gérer l'écran LT24 celui-ci sera guidé par un processeur simulé NIOS.

יוצקים את l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.

Au final, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.

אנגלית:

היינו צריכים להבין ולנהל את המסך LT24 זה יונחה על ידי מעבד NIOS מדומה. כדי ליזום אותו, קראנו עליו תיעוד רב.

בסופו של דבר, המסך שלנו משמש להצגת ה- FFT, לאפקט הרצוי.

שלב 6: Codes Utiles En C ++ / Codes שימושי ב- C ++

Codes Utiles En C ++ / Codes שימושי ב- C ++
Codes Utiles En C ++ / Codes שימושי ב- C ++

Je vais vous montrer les codes en C ++ qui nous ont utiles afin de réaliser des effets sonores.

Voici d'abord טוען לנו הצהרות (אוף אפי ממצה …):

אני הולך להראות לך את הקודים ב- C ++ שהיו שימושיים עבורנו ליצירת אפקטים קוליים.

ראשית, כל ההצהרות שלנו (כן קצת ממצות …):

#לִכלוֹל

#include #include #include #include #include #include #include #include #include "WavUtils.cpp" #include "Biquad.cpp" #include #include #include #include "hps_0.h" #include "hps.h" #include "alt_gpio.h" #include "hwlib.h" #include "socal.h" #include #include "kiss_fft.h" #הגדר nbpoint 1000 #הגדר HW_REGS_BASE (ALT_STM_OFST) #הגדר HW_REGS_SPAN (0x04000000_de) HW_REGS_SPAN - 1) #define PI 3.1415926535 #define NFFT 80 #define FE 41000 #define F2 10000 #define F1 5925 #define PH 5000 #define PB 15000 #define MOD 2000 באמצעות STD מרחב שמות; const ארוך SAMPLE_RATE = 12500000; // Création de la configuration et des buffers in et out pour s (t) et S (f) const kiss_fft_cfg config = kiss_fft_alloc (NFFT, 0, NULL, NULL); const kiss_fft_cfg config_inv = kiss_fft_alloc (NFFT, 1, NULL, NULL); kiss_fft_cpx*in = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*inv = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); queueoutBuf; int גלובלי = 0; int i = 0; נתונים קצרים, data2;

Ci-dessous une de nos fonctions permettant la modulation:

מתחת לאחת הפונקציות שלנו המאפשרות אפנון:

אפנון חלל (freq int)

{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); ב- .r = data; i ++; } אחר i = "0"; }

Voici notre fonction הראשי:

אלה הפונקציה העיקרית שלנו:

int main (int argc, char ** argv)

{נדיף בלתי חתום ארוך *h2p_lw_spi_addr = NULL; נדיף בלתי חתום ארוך *h2p_lw_led_addr = NULL; נדיף בלתי חתום ארוך *h2p_lw_adc_addr = NULL; נדיף בלתי חתום ארוך *h2p_lw_blue_addr = NULL; נדיף בלתי חתום ארוך *h2p_lw_red_addr = NULL; נדיף בלתי חתום ארוך *h2p_lw_black_addr = NULL; void *virtual_base; int fd; printf ("1 / n"); // למפות את מרחב הכתובות של רושמי ה- spi למרחב משתמשים כך שנוכל לקיים איתם אינטראקציה. // למעשה נמפה את כל טווח ה- CSR של ה- HPS מכיוון שברצוננו לגשת לרשמים שונים בתוך אותו טווח אם ((fd = open ("/dev/mem", (O_RDWR | O_SYNC))) == -1) {printf ("שגיאה: לא ניתן היה לפתוח \"/dev/mem / "… / n"); החזרה (1); } printf ("2 / n"); בסיס וירטואלי = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / n"); if (virtual_base == MAP_FAILED) {printf ("ERROR: mmap () נכשל … / n"); קרוב (fd); החזרה (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = וירטואלי_בסיס + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); h2p_lw_led_addr = וירטואלי_בסיס + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); h2p_lw_adc_addr = וירטואלי_בסיס + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); h2p_lw_blue_addr = וירטואלי_בסיס + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); h2p_lw_black_addr = וירטואלי_בסיס + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((לא חתום ארוך) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (לא חתום ארוך) (HW_REGS_MASK)); // int i = 0; נתוני int; int i = 0, j; // Création de la configuration et des buffers in et out pour s (t) et S (f) const kiss_fft_cfg config = kiss_fft_alloc (NFFT, 0, NULL, NULL); kiss_fft_cpx*in = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); kiss_fft_cpx*out = (kiss_fft_cpx*) malloc (NFFT*sizeof (kiss_fft_cpx)); בעוד (1) {data = *(h2p_lw_adc_addr+2); אם (*h2p_lw_blue_addr == 1) data = echo (נתונים, 20); אם (*h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr, 0x0F); אם (*h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr, 0xF0); alt_write_word (h2p_lw_spi_addr+1, נתונים | 0b111000000000000); } חינם (config); חינם (ב); חופשי בחוץ); החזר 0; }

שלב 7: Le Final / הגמר

Le Final / הגמר
Le Final / הגמר

פרנסאית:

אהה וילה (enfin) le rendu final de notre קקטוס 2000.

Nous avons mis les PCB entrée et sortie qui sont reliés à la carte DE0 Nano Soc.

חדר רחצה צמוד, מלחינים לא כוללים את מקום האירוח במלון.

Sur la boîte on trouve un potentiomètre glissière, qui permet de gérer le volume du son, des potentiomètres et des boutons qui permettrons de lancer certains effets, ainsi que un ecran qui permettra d'afficher la FFT.

Le haut-parleur est positionné perpendiculairement par rapport aux boutons. Le micro est positionné de l'autre coté de la boîte par rapport au haut-parleur.

C'est tout pour aujourd'hui.

En esperant que cet Instructable vous soit utility.

אנגלית:

הנה (סוף סוף) העיבוד הסופי של קקטוס 2000 שלנו.

שמנו את כניסות והיציאות PCB המחוברות ללוח DE0 Nano Soc.

לאחר מכן, מרכיביו ממוקמים בתוך קופסה צהובה.

על הקופסה נמצא פוטנציומטר שקופיות, שיכול לנהל את עוצמת הקול, הכפתורים והלחצנים שיפעילו כמה אפקטים, ומסך שיציג את ה- FFT.

הרמקול ממוקם בניצב לכפתורים. המיקרופון ממוקם בצד השני של התיבה ביחס לרמקול.

זה הכל להיום.

בתקווה שהמדריך הזה שימושי עבורך.

מוּמלָץ: