فهرست مطالب:
- مرحله 1: Conception Du Circuit En Entre / Design Circuit Design
- مرحله 2: Conception Du Circuit En Sortie / Design of the Output Circuit
- مرحله 3: طراحی PCB / طراحی PCB
- مرحله 4: Périphériques Pour La Carte DE0 Nano Soc / لوازم جانبی برای کارت DE0 Nano Soc
- مرحله 5: L'écran LT24
- مرحله 6: کدهای Utiles En C ++ / کدهای مفید در C ++
- مرحله 7: Le Final / The Final
تصویری: کاکتوس 2000: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
پروژه 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 ، des multimètres
- ترکیبات مختلف (تقویت کننده ، مقاومت ، ظرفیت…)
- Un micro و 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 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 در نهایت ، به عنوان مثال ، می توانید از اصلاح کننده فرزند خود استفاده کنید.
انگلیسی:
در سال چهارم مدرسه ، متوجه یک کنترل کننده وسط شدیم. برای انجام این کار ، ما در اختیار داشتیم:
- نقشه DE0 Nano Soc
- اسیلوسکوپ ، مولتی متر
- اجزای مختلف (تقویت کننده ، مقاومت ، ظرفیت …)
- میکروفون و بلندگو
- یک صفحه نمایش کوچک
ما مجبور بودیم مراحل مختلف خطرناکی را پشت سر بگذاریم تا پروژه به موفقیت برسد. ما این دستورالعمل را به شما معرفی می کنیم.
در مرحله اول ، طراحی مدار اصلی مورد نیاز برای بازیابی پسر میکروفون و ساخت بلندگو. پس از قرعه کشی مدار ، PCB قرار بود بر روی نرم افزار Altium انجام شود. در حالی که دو دانش آموز مشغول مدیریت PCB های ورودی و خروجی بودند ، دو نفر دیگر در حال کار بر روی کارت DE0 Nano Soc بودند تا کارت بتواند نمونه های میکروفون را برداشته و برای بلندگو سیگنال بدهد. در نهایت ، ما مجبور شدیم برای تغییر صدا جلوه های صوتی ایجاد کنیم.
مرحله 1: Conception Du Circuit En Entre / Design Circuit Design
فرانسوی:
La première étape شامل circuit mettre en place un circuit qui puisse prendre le سیگنال فرستاده کننده 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)
با انتخاب R 101 = mettant R1 = 100 kOhm و R2 = 1 kOhm.
Cet amplificateur va servir a amplifier 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 par l'amplificateur.
(5) CAG (Controle Automatique de Gain)
(6) Pour 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 / دهه. فرکانس دو مرحله انتخاب 20 کیلوهرتز است.
انگلیسی:
اولین قدم این است که یک مدار را راه اندازی کنید که بتواند سیگنال ارسال شده روی میکروفون را به کارت DE0 Nano Soc منتقل کند. بالای نمودار ورودی ما.
(1) اینورتر 5 ولت را بازیابی کرده و آن را به - 5 ولت تبدیل می کند. - 5 ولت برای تقویت کننده ای که در زیر می بینیم خدمت می کند.
(2) در اینجا ما یک تقویت کننده غیر معکوس داریم. مطابق فرمول زیر:
Vs = Ve (1 + Z1 / Z2)
سود 101 با تنظیم R1 = 100 کیلو اهم و R2 = 1 کیلو اهم انتخاب شد.
از این تقویت کننده برای تقویت صدای میکروفون استفاده می شود.
(3) دو مقاومت یک افست ایجاد می کنند به طوری که ولتاژ خروجی بین 0 تا 4 ولت است.
(4) میکروفونی که توسط تقویت کننده تقویت می شود.
(5) AGC (کنترل سود خودکار)
(6) در نهایت ، ما یک فیلتر درجه دوم کم گذر با دو RC ایجاد کردیم. سفارش 2 برای تضعیف -40db / دهه مورد نیاز بود. فرکانس قطع انتخاب شده 20 کیلوهرتز است.
مرحله 2: Conception Du Circuit En Sortie / Design of the Output Circuit
فرانسوی:
Dans un second temples، 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 en signal analogical (nécessaire pour le haut parleur)
(2) La capacité va servir a virer la composante سیگنال خود را ادامه دهید.
(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éacessaire car notre signal est vraiment faible.
انگلیسی:
بالای نمودار خروجی ما.
(1) DAC (مبدل دیجیتال به آنالوگ) که به شما امکان می دهد سیگنال دیجیتالی ارسال شده توسط کارت DE0 Nano Soc را بازیابی کرده و آن را به سیگنال آنالوگ تبدیل کنید (لازم برای بلندگو).
(2) از ظرفیت برای انتقال جزء پیوسته سیگنال ما استفاده می شود.
(3) نصب که قدرت سیگنال ما را تقویت می کند. ما طرح را در نظر گرفتیم:
www.ti.com/lit/ds/symlink/lm386.pdf
صفحه 10
این طرح امکان افزایش 200 را فراهم می کند که لازم است زیرا سیگنال ما واقعاً ضعیف است.
مرحله 3: طراحی PCB / طراحی PCB
فرانسوی:
مدارهايي كه از طريق نمونه هاي اوليه به كار مي روند و به وسيله آنها مي توان از PCB استفاده كرد.
Pour ce faire، nous avons utiliser le logiciel Altium. Il faut que tout soit correctement connector puis cliquer sur:
طراحی منو -> به روز رسانی سند PCB.
Ensuite ، کلیک کنید "Validate Changes". Pour chaque chancement validé، un crochet vert apparaît 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.
Puis، il faut aller dans le menu "File" -> "Fabrication Output" -> "Gerber Files"
Une fenêtre s'ouvre، dans celle-ci vous trouverez؛
- منوی "لایه ها" qui vous permettra de choisir sur quel layer va s'appuyer votre PCB است.
- منوی Level "Drill Drawing" dans lequel il faut que tout soit décocher است.
- منوی Le "دیافراگم" dans lequel il faut cocher "آپپتورهای جاسازی شده" است.
Toute ses étapes sont complétées؟
Revenons maintenancemant à 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.
سپس بر روی "اعتبار تغییرات" کلیک کنید. برای هر تغییر تأیید شده ، یک علامت سبز در ستون "بررسی" ظاهر می شود.
پس از آن ، یک برگه جدید خواهید داشت که باز می شود و باید اجزاء را در این پنجره قرار دهید.
سپس باید به منوی "File" -> "Output Output" -> "Gerber Files" بروید
یک پنجره باز می شود ، در این پنجره خواهید یافت ؛
منوی "لایه ها" که به شما امکان می دهد لایه هایی را که از PCB شما پشتیبانی می کنند انتخاب کنید. منوی "نقاشی با مته" که در آن همه چیز باید علامت زده شود. منوی "دیافراگم" که در آن شما باید "دیافراگم های جاسازی شده" را علامت بزنید.
همه مراحلش تموم شده؟
بیایید به پنجره ای که اجزای آن روی آن کلیک می کنید برگردیم
فایل-> خروجی تولید -> فایل های مته NC
بالاخره تمام شد ، تنها کاری که باید انجام دهید این است که فایل ها را به چاپگر سه بعدی بدهید.
عکسهای دو PCB ما را ضمیمه می کنید.
مرحله 4: Périphériques Pour La Carte DE0 Nano Soc / لوازم جانبی برای کارت DE0 Nano Soc
فرانس:
Les cœurs IP sont optimisés pour les périphériques Intel FPGA and peuvent être implémentés pour réduire la conception و le temps de test.
Grâce au logiciel Qsys nous avons pu créer des périphériques embarqués dans notre carte.
Voici une liste des périphériques que nous avons ajouter:
- ارتباطات SPI pour le DAC
- ADC pour recupérer les valeurs analogique de notre signal and les convertir en donnée digitales
- HPS (processeur) pour gérer tout les codes
- GPIO pour les boutons qui vont servir à exécuter sures effets
- Mémoire (روی حافظه تراشه)
انگلیسی:
هسته های IP برای دستگاه های FPGA اینتل بهینه شده اند و می توانند به راحتی برای کاهش زمان طراحی و آزمایش پیاده سازی شوند.
به لطف نرم افزار Qsys ما توانستیم لوازم جانبی تعبیه شده را در نقشه خود ایجاد کنیم. در اینجا لیستی از دستگاهی که اضافه کردیم آمده است:
- ارتباط SPI برای DAC
- ADC برای بازیابی مقادیر آنالوگ از سیگنال ما و تبدیل آنها به داده های دیجیتال
- HPS (پردازنده) برای مدیریت کلیه کدها
- GPIO برای دکمه هایی که برای مقابله با جلوه های خاص استفاده می شود
- حافظه (روی حافظه تراشه)
مرحله 5: L'écran LT24
فرانسوی:
به عنوان مثال ، می توانید از LT24 celui-ci sera راهنمای استفاده از شبیه ساز NIOS را دریافت کنید.
Pour 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: کدهای Utiles En C ++ / کدهای مفید در C ++
Je vais vous montrer les codes en C ++ qui nous ont utin afin de réaliser des effets sonores.
Voici d'abord tos nos délararations (oui un peu exhaustif…):
من قصد دارم کدهایی را که در C ++ برای ایجاد جلوه های صوتی مفید هستند به شما نشان دهم.
اول ، همه اظهارات ما (بله کمی جامع…):
#عبارتند از
#Include #include #include #include #include #include #include #include #include "WavUtils.cpp" #شامل "Biquad.cpp" #include #include #شامل #شامل "hps_0.h" #شامل "hps.h" #شامل "alt_gpio.h" #شامل "hwlib.h" #شامل "socal.h" #شامل #شامل #بوسه_ففت. HW_REGS_SPAN - 1) #تعریف PI 3.1415926535 #تعریف NFFT 80 #تعریف FE 41000 #تعریف F2 10000 #تعریف F1 5925 #تعریف PH 5000 #تعریف PB 15000 #تعریف MOD 2000 با استفاده از فضای نام std ؛ const long 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؛ int i = 0 ؛ داده های کوتاه ، data2 ؛
Ci-dessous une de nos fonctions permettant la modulation:
در زیر یکی از توابع ما اجازه می دهد مدولاسیون:
مدولاسیون خالی (فرکانس int)
{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE)؛ در .r = داده ؛ من ++ ؛ } else i = "0"؛ }
Voici notre fonction main:
اینها عملکرد اصلی ما هستند:
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")؛ virtual_base = 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 () failed … / n")؛ بستن (fd) ؛ بازگشت (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 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) ؛ if (*h2p_lw_blue_addr == 1) data = echo (data، 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 ، داده | 0b11100000000000000) ؛ } رایگان (پیکربندی) ؛ رایگان (در) ؛ رایگان (خارج) ؛ بازگشت 0 ؛ }
مرحله 7: Le Final / The Final
فرانسوی:
Eh voilà (enfin) le rendu final de notre Cactus 2000.
Nous avons mis les PCB entrée and sortie qui sont reliés à la carte DE0 Nano Soc.
Ensuite، ses composants sont placés à l'interieur d'une boite jaune.
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 sures effets، ainsi que un ecran qui permettra d'afficher la FFT.
Le haut-parleur is 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.
با استفاده از دستورالعمل های کاربردی ، می توانید دستورالعمل های لازم را ارائه دهید.
انگلیسی:
در اینجا ما (بالاخره) آخرین رندر کاکتوس 2000 خود هستیم.
PCB های ورودی و خروجی را که به برد DE0 Nano Soc متصل هستند قرار می دهیم.
سپس ، اجزای آن در داخل یک جعبه زرد رنگ قرار می گیرند.
روی جعبه یک پتانسیومتر اسلاید قرار دارد که می تواند حجم صدا ، دکمه ها و دکمه هایی که جلوه هایی را ایجاد می کند و صفحه ای که FFT را نمایش می دهد را مدیریت کند.
بلندگو عمود بر دکمه ها قرار گرفته است. میکروفون در طرف دیگر جعبه نسبت به بلندگو قرار گرفته است.
برای امروز کافی است.
به امید اینکه این دستورالعمل برای شما مفید باشد.
توصیه شده:
لیزر اشاره کاکتوس: 3 مرحله
لیزر اشاره کاکتوس: برای یک پروژه در مدرسه ، من مجبور بودم چیزی را با آردوینو بسازم ، می خواستم چیزی را برای یک گربه بسازم ، که شما می توانید آن را تحریک کنید و به تنهایی با گربه بازی می کنید. من ابتدا به فکر موش افتادم اما ساختن چیزی به این کوچکی با آن کمی مشکل بود
بخاری القایی 2000 وات: 9 مرحله (همراه با تصاویر)
بخاری القایی 2000 وات: بخاری های القایی یک ابزار عالی برای گرم کردن اجسام فلزی هستند که می توانند در محیط کار DIYers مفید واقع شوند هنگامی که شما نیاز به گرم کردن وسایل بدون خراب کردن کل فضا دارید. بنابراین امروز ما قصد داریم یک استقراء فوق العاده قوی ایجاد کنیم
نحوه ایجاد تنظیم کننده ولتاژ 2000 وات: 7 مرحله
نحوه ایجاد تنظیم کننده ولتاژ 2000 وات: دیمر - تنظیم کننده های الکترونیکی قدرت بار به طور گسترده ای در صنعت و زندگی روزمره مورد استفاده قرار می گیرد تا بتواند سرعت چرخش موتورهای الکتریکی ، سرعت فن ، عناصر گرمایش عناصر گرمایش ، شدت روشنایی اتاق ها با برق را کنترل کند. لام
DIY 2000 Watts PWM Speed Controller: 8 مرحله (همراه با تصاویر)
DIY 2000 Watts PWM Speed Controller: من روی تبدیل دوچرخه خود به دوچرخه برقی با استفاده از موتور DC برای مکانیزم درب اتوماتیک کار کرده ام و برای این کار نیز یک بسته باتری با درجه ولتاژ 84 ولت DC تهیه کرده ام. اکنون ما به یک کنترل کننده سرعت نیاز داریم که بتواند مقدار انرژی را محدود کند
12 یورو کاکتوس لید (تزئین اتاق نئون): 4 مرحله
12 یورو Led Cactus (دکوراسیون اتاق نئون): سلام ، در این قسمت آموزشی ، من به شما نشان می دهم که چگونه این دکوراسیون اتاق Led Cactus Room را ساخته ام. شروع کنیم