جدول المحتويات:

كاكتوس 2000: 7 خطوات
كاكتوس 2000: 7 خطوات

فيديو: كاكتوس 2000: 7 خطوات

فيديو: كاكتوس 2000: 7 خطوات
فيديو: Cactus - El Sama { Official Audio } كاكتوس - السما 2024, شهر نوفمبر
Anonim
كاكتوس 2000
كاكتوس 2000

مشروع MIDI-CONTROLEUR EISE4

الفرنسية:

Lors de notre quatrième année d'école ingénieur، nous avons réalisé un midi-contoulur. صب faire، nous avions à notre tre:

  • غير حسب الطلب DE0 Nano Soc
  • ديس الذبذبات ، des multimètres
  • أنواع المكونات المختلفة (مكبر الصوت ، المقاومة ، السعة …)
  • Un micro et un haut-parleur
  • Un petit ecran

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 Instructable.

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 circ dessiner، le PCB était à faire sur le logiciel Altium. قلادة 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. الخاتمة ، لن يكون هناك مردود فلو يفسد سونور من أجل تعديل لو ابنه.

إنجليزي:

خلال السنة الرابعة من المدرسة ، أدركنا وجود وحدة تحكم متوسطة. للقيام بذلك ، كان لدينا تحت تصرفنا:

  • خريطة DE0 Nano Soc
  • راسمات الذبذبات ، المتر
  • مكونات من أنواع مختلفة (مضخم ، مقاومة ، قدرة …)
  • ميكروفون ومكبر صوت
  • شاشة صغيرة

كان علينا أن نمر بخطوات محفوفة بالمخاطر مختلفة لإنجاح المشروع. سوف نقدم لك هذا Instructable.

اولا تصميم الدائرة الاساسية المطلوبة لاستعادة ابن الميكروفون وعمل السماعة. بمجرد رسم الدائرة ، كان من المقرر عمل PCB على برنامج Altium. بينما كان اثنان من الطلاب مشغولين بإدارة المدخلات والمخرجات ثنائي الفينيل متعدد الكلور ، كان الآخران يعملان على تشغيل بطاقة DE0 Nano Soc بحيث يمكن للبطاقة التقاط عينات الميكروفون وإعطاء إشارة للمتكلم. أخيرًا ، كان علينا إنشاء مؤثرات صوتية لتغيير الصوت.

الخطوة 1: تصميم Conception Du Circuit En Entrée / Entrance Circuit

Conception Du Circuit En Entrée / Ent Entrée Circuit Design
Conception Du Circuit En Entrée / Ent Entrée Circuit Design

الفرنسية:

يتكون الشريط الأول من نوع واحد في مكان ما في الدائرة الكاملة لمبعوث الإشارة 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 مكبر للصوت غير العاكس. D'après la formule suivante:

Vs = Ve (1 + Z1 / Z2)

عند اختيار مكسب ، تبلغ قيمته 101 أونصة R1 = 100 كيلو أوم و R2 = 1 كيلو أوم.

Cet amplificateur va servir a مكبر للصوت le son du micro.

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

(4) Le micro qui va être amplifier بالتناسب مع تضخيم الصوت.

(5) CAG (التحكم الآلي في كسب)

(6) صب ، nous avons créé un filtre passe-bas du second ordre avec deux RC. L'ordre 2 était nécessaire من أجل تجنب التخفيف من - 40 ديسيبل / العقد. La fréquence de coupure choisit تبلغ 20 كيلوهرتز.

إنجليزي:

تتمثل الخطوة الأولى في إعداد دائرة يمكنها أخذ الإشارة المرسلة على الميكروفون لإرسالها إلى بطاقة DE0 Nano Soc. فوق الرسم البياني لدخولنا.

(1) سيقوم العاكس باستعادة 5 فولت وتحويله إلى - 5 فولت. سوف يعمل - 5 فولت لمكبر الصوت الذي سنراه أدناه.

(2) لدينا هنا مكبر للصوت غير مقلوب. حسب الصيغة التالية:

Vs = Ve (1 + Z1 / Z2)

تم اختيار كسب 101 عن طريق ضبط R1 = 100 kOhm و R2 = 1 kOhm.

سيُستخدم مكبر الصوت هذا لتضخيم صوت الميكروفون.

(3) ستنشئ المقاوماتان إزاحة بحيث يكون جهد الخرج بين 0 و 4 فولت.

(4) الميكروفون الذي سيتم تضخيمه بواسطة مكبر الصوت.

(5) AGC (التحكم التلقائي في الكسب)

(6) أخيرًا ، أنشأنا مرشح تمرير منخفض من الدرجة الثانية مع اثنين من أجهزة التحكم عن بعد. مطلوب الأمر 2 للحصول على تخفيف -40 ديسيبل / عقد. تردد القطع المختار هو 20 كيلو هرتز.

الخطوة 2: مفهوم 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 circular en sortie.

Ci-dessus le schéma de notre sortie.

(1) Le DAC (المحول الرقمي إلى التناظري) كما هو الحال مع مبعوث رقمي للإشارة حسب الطلب DE0 Nano Soc et le convertir en signal analogique (nécessaire pour le haut parleur)

(2) La Capacité va servir a virer la composante تواصل إشارة نوتر.

(3) مونتاج بجودة عالية لإشارة مكبر للصوت. Nous avons prit le schéma:

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

الصفحة 10

إن الحصول على 200 فرصة من الحصول على أفضل العلامات التجارية للسيارة هو إشارة لمخزون.

إنجليزي:

فوق الرسم التخطيطي لمخرجاتنا.

(1) DAC (المحول الرقمي إلى التناظري) الذي سيسمح باستعادة الإشارة الرقمية المرسلة بواسطة بطاقة DE0 Nano Soc وتحويلها إلى إشارة تناظرية (ضرورية لمكبر الصوت).

(2) سيتم استخدام السعة لنقل المكون المستمر لإشارتنا.

(3) التثبيت الذي من شأنه تضخيم قوة إشارتنا. أخذنا المخطط:

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

الصفحة 10

هذا المخطط يجعل من الممكن الحصول على ربح قدره 200 وهو أمر ضروري لأن إشارتنا ضعيفة حقًا.

الخطوة 3: مفهوم تصميم ثنائي الفينيل متعدد الكلور / تصميم ثنائي الفينيل متعدد الكلور

Conception Des PCB / Design of the PCB
Conception Des PCB / Design of the PCB

الفرنسية:

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

صب faire، nous avons utiliser le logiciel Altium. Il faut que tout soit التصحيح الموصل puis cliquer sur:

تصميم القائمة -> تحديث مستند ثنائي الفينيل متعدد الكلور.

Ensuite ، cliquez sur «تحقق من صحة التغييرات». صب التغيير صالح ، un crochet vert apparaît dans la colonne: «Check».

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

Puis، il faut aller dans le menu "File" -> "Fabrication Output" -> "Gerber Files"

Une fenêtre s'ouvre، dans celle-ci vous proverez؛

  • قائمة قائمة "طبقات" ذات جودة عالية من طبقات متناهية الصغر.
  • قائمة Le "رسم الحفر" dans lequel il faut que tout soit décocher.
  • قائمة Le "الفتحات" dans lequel il faut cocher "المظاهر المضمنة".

لا تكتمل العبارات؟

Revenons صيانه à 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 troubleverez ci-Joint les photos de nos deux PCB.

إنجليزي:

بمجرد إنشاء الدوائر الخاصة بنا ، كان علينا وضعها على مركبات ثنائي الفينيل متعدد الكلور.

للقيام بذلك ، نستخدم برنامج Altium. يجب توصيل كل شيء بشكل صحيح ثم الضغط على:

تصميم القائمة -> تحديث مستند ثنائي الفينيل متعدد الكلور.

ثم انقر فوق "التحقق من صحة التغييرات". لكل تغيير تم التحقق منه ، تظهر علامة اختيار خضراء في عمود "التحقق".

بعد ذلك ، سيكون لديك علامة تبويب جديدة ستفتح وسيتعين عليك وضع المكونات في هذه النافذة.

ثم عليك أن تذهب إلى "ملف" -> "إخراج المخرجات" -> "ملفات جربر"

تفتح نافذة ، ستجد في هذه النافذة ؛

قائمة "الطبقات" التي تسمح لك باختيار الطبقات التي ستدعم PCB الخاص بك. قائمة "حفر الرسم" حيث يجب إلغاء تحديد كل شيء. قائمة "الفتحات" التي يجب عليك فيها التحقق من "الملامح المضمنة".

اكتملت كل خطواته؟

دعنا نعود الآن إلى النافذة التي تحتوي على المكونات الموجودة في هذا العنصر الذي تنقر فوقه

ملف-> إخراج التصنيع -> ملفات حفر NC

انتهى الأمر أخيرًا ، كل ما عليك فعله هو إعطاء الطابعة ثلاثية الأبعاد الملفات.

سوف تجد الصور المرفقة من ثنائي الفينيل متعدد الكلور لدينا.

الخطوة 4: Périphériques Pour La Carte DE0 Nano Soc / Peripherals for DE0 Nano Soc Card

Périphériques Pour La Carte DE0 Nano Soc / Peripherals for DE0 Nano Soc Card
Périphériques Pour La Carte DE0 Nano Soc / Peripherals for DE0 Nano Soc Card

فرانسيه:

ليس من السهل استخدام بروتوكول الإنترنت من أجل تطوير الأفكار والتطبيقات الفعالة.

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

Voici une 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 (المعالج) صب gérer tout les code
  • GPIO pour les boutons qui vont servir à exécuter
  • Mémoire (على ذاكرة الرقاقة)

إنجليزي:

تم تحسين نوى IP لأجهزة Intel FPGA ويمكن تنفيذها بسهولة لتقليل وقت التصميم والاختبار.

بفضل برنامج Qsys ، تمكنا من إنشاء أجهزة طرفية مضمنة في خريطتنا. فيما يلي قائمة بالجهاز الذي أضفناه:

  • اتصال SPI لـ DAC
  • ADC لاسترداد القيم التناظرية من إشارتنا وتحويلها إلى بيانات رقمية
  • HPS (معالج) لإدارة جميع الأكواد
  • GPIO للأزرار التي سيتم استخدامها للتعامل مع تأثيرات معينة
  • الذاكرة (على ذاكرة الرقاقة)

الخطوة 5: L'écran LT24

لوكران LT24
لوكران LT24

الفرنسية:

Il nous a Fallu تشمل و gérer l'écran LT24 celui-ci sera Guidé par un processeur simulé NIOS.

صب l'initaliser ، nous avons lu beaucoup de documentss sur celui-ci.

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

إنجليزي:

كان علينا أن نفهم وندير الشاشة LT24 ، وسوف تسترشد بمعالج NIOS المحاكى. لبدء ذلك ، قرأنا الكثير من الوثائق حوله.

في النهاية ، يتم استخدام شاشتنا لعرض FFT ، إلى التأثير المطلوب.

الخطوة 6: Codes Utiles En C ++ / Useful Codes in C ++

Codes Utiles En C ++ / رموز مفيدة في C ++
Codes Utiles En C ++ / رموز مفيدة في 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" #define nbpoint 1000 #define HW_REGS_BASE (ALT_STM_OFST) #define HW_REGS_SPAN (0x0400) 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 ؛ ثابت طويل 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 global = 0 ؛ كثافة العمليات أنا = 0 ؛ بيانات وبيانات قصيرة 2 ؛

Ci-dessous une de nos fonctions permettant la modulation:

يوجد أدناه إحدى وظائفنا التي تسمح بالتعديل:

تعديل باطل (كثافة العمليات)

{if (i <NFFT) {data = data * cos (2 * PI * freq * i / FE) ؛ في .r = البيانات ؛ أنا ++ ؛ } وإلا أنا = "0" ؛ }

الصوت الرئيسي:

هذه وظيفتنا الرئيسية:

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 ؛ باطل * virtual_base ؛ كثافة العمليات printf ("1 / n") ؛ // قم بتعيين مساحة العنوان لسجلات spi في مساحة المستخدم حتى نتمكن من التفاعل معها. // سنقوم بالفعل بتعيين نطاق CSR بالكامل لـ HPS نظرًا لأننا نريد الوصول إلى سجلات مختلفة ضمن هذا النطاق إذا ((fd = open ("/ dev / mem"، (O_RDWR | O_SYNC))) == -1) {printf ("خطأ: تعذر فتح \" / dev / mem / "… / n") ؛ عودة (1) ؛ } printf ("2 / n")؛ virtual_base = mmap (NULL ، HW_REGS_SPAN ، (PROT_READ | PROT_WRITE) ، MAP_SHARED ، fd ، HW_REGS_BASE) ؛ printf ("3 / n") ؛ إذا (virtual_base == MAP_FAILED) {printf ("خطأ: mmap () فشل… / n") ؛ قريب (فد) ؛ عودة (1) ؛ } printf ("4 / n")؛ printf ("5 / n") ؛ h2p_lw_spi_addr = virtual_base + ((طويلة بدون توقيع) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (بدون توقيع طويل) (HW_REGS_MASK)) ؛ h2p_lw_led_addr = virtual_base + ((طويلة بدون توقيع) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (بدون توقيع طويل) (HW_REGS_MASK)) ؛ h2p_lw_adc_addr = virtual_base + ((طويلة بدون توقيع) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (بدون توقيع طويل) (HW_REGS_MASK)) ؛ h2p_lw_blue_addr = virtual_base + ((طويلة بدون توقيع) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (بدون توقيع طويل) (HW_REGS_MASK)) ؛ h2p_lw_black_addr = virtual_base + ((طويلة بدون توقيع) (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 أنا = 0 ، ي ؛ // 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) البيانات = صدى (بيانات ، 20) ؛ if (* h2p_lw_black_addr == 1) alt_write_word (h2p_lw_led_addr، 0x0F) ؛ if (* h2p_lw_red_addr == 0) alt_write_word (h2p_lw_led_addr، 0xF0) ؛ alt_write_word (h2p_lw_spi_addr + 1 ، البيانات | 0b111000000000000) ، } free (config) ؛ مجانا في)؛ حر (خارج) ؛ العودة 0 ؛ }

الخطوة 7: Le Final / the Final

لو النهائي / النهائي
لو النهائي / النهائي

الفرنسية:

إيه فويلا (إنفين) لو ريندو فاينل دي نوتر كاكتوس 2000.

هناك العديد من الطرق التي لا توجد بها PCB Entrée et Sortie qui حتى لا تعفي DE0 Nano Soc.

في الداخل ، لن يتم وضع الملحنين في l'interieur d'une boite jaune.

Sur la boîte on trouble un potentiomètre glissière، qui permet de gérer le volume du son، des potentiomètres et des boutons qui permettrons de lancer certs 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 utile.

إنجليزي:

ها نحن (أخيرًا) العرض النهائي لـ Cactus 2000.

نضع المدخلات والمخرجات PCBs المتصلة بلوحة DE0 Nano Soc.

ثم توضع مكوناته داخل صندوق أصفر.

يوجد على الصندوق مقياس جهد الشريحة ، والذي يمكنه إدارة حجم الصوت والمقابض والأزرار التي ستطلق بعض التأثيرات ، وشاشة تعرض FFT.

مكبر الصوت في وضع عمودي على الأزرار. يتم وضع الميكروفون على الجانب الآخر من الصندوق بالنسبة إلى السماعة.

هذا كل شيء لهذا اليوم.

على أمل أن يكون هذا Instructable مفيدًا لك.

موصى به: