Съдържание:

Кактус 2000: 7 стъпки
Кактус 2000: 7 стъпки

Видео: Кактус 2000: 7 стъпки

Видео: Кактус 2000: 7 стъпки
Видео: 7 стъпки от Атила до Орлин (Йомрукнат Архив) 2024, Юли
Anonim
Кактус 2000
Кактус 2000

ПРОЕКТ MIDI-CONTROLEUR EISE4

Français:

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 разположение:

  • Une carte DE0 Nano Soc
  • Des oscilloscopes, 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 circuit 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 haut-parleur. Окончателно, не е фалшив крем за звукови ефекти за модификатор.

Английски:

По време на четвъртата ни учебна година реализирахме midi-контролер. За целта имахме на разположение:

  • Карта DE0 Nano Soc
  • Осцилоскопи, мултиметри
  • Компоненти от различни видове (усилвател, съпротивление, капацитет …)
  • Микрофон и високоговорител
  • Малък екран

Трябваше да преминем през различни опасни стъпки, за да направим проекта успешен. Ще ви запознаем с тази инструкция.

Първо, дизайнът на основната схема, необходим за възстановяване на сина на микрофона и за създаване на високоговорителя. След като схемата се изтегли, печатната платка трябваше да се направи на софтуера Altium. Докато двама ученици бяха заети с управлението на входните и изходните печатни платки, другите двама работеха за пускането на картата DE0 Nano Soc, така че картата да може да вземе пробите от микрофона и да даде сигнал за високоговорителя. И накрая, трябваше да създадем звукови ефекти, за да променим звука.

Стъпка 1: Концепция Du Circuit En Entrée / Входна схема

Conception Du Circuit En Entrée / Входни вериги Дизайн
Conception Du Circuit En Entrée / Входни вериги Дизайн

Français:

La première étape се състои от 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)

При избор на печелене от 101 en метант R1 = 100 kOhm et R2 = 1 kOhm.

Cet amplificateur va servir усилвател le son du micro.

(3) Les deux résistances vont créer un offset afin que la напрежение de sortie soit включва entre 0 и 4 V.

(4) Le micro qui va être усилвател за усилвател.

(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 / десетилетие. 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 V.

(4) Микрофонът, който ще бъде усилен от усилвателя.

(5) AGC (автоматичен контрол на усилването)

(6) Накрая създадохме нискочестотен филтър от втори ред с два RC. Поръчка 2 беше необходима, за да има затихване от -40db / десетилетие. Избраната гранична честота е 20 kHz.

Стъпка 2: Концепция Du Circuit En Sortie / Проектиране на изходната верига

Conception Du Circuit En Sortie / Проектиране на изходната верига
Conception Du Circuit En Sortie / Проектиране на изходната верига

Français:

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

Ci-dessus le schéma de notre sortie.

(1) Le DAC (цифров към аналогов преобразувател) qui va permettre de recupérer le numérique сигнал сигнал пратеник par la carte DE0 Nano Soc et le convertir en signal analogique (nécessaire pour le haut parleur)

(2) Капацитет на обслужване и поглъщане на композиция за продължаване на сигнала за продължаване.

(3) Монтаж на усилвател за усилвател на сигнала. 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: Концепция Des PCB / Дизайн на печатни платки

Концепция Des PCB / Дизайн на печатни платки
Концепция Des PCB / Дизайн на печатни платки

Français:

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. Il faut que tout soit correctement connecter puis cliquer sur:

Проектиране на меню -> Актуализиране на документ на печатна платка.

Собствена, кликнете върху „Потвърдете промените“. Изсипете chaque changement 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.

По -добре е да изберете менюто „File“-> „Fabrication Output“-> „Gerber Files“

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

  • Ле меню "Слоеве" qui vous permettra de choisir sur quel слоеве с s'appuyer votre печатни платки.
  • В менюто „Чертеж на бормашина“можете да разгледате най -новите неща, които можете да направите.
  • В менюто „Отвори“можете да изтеглите „Вградени отвори“.

Toute ses étapes sont complétées?

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

File-> Fabrication Output -> NC Drill Files

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.

Английски:

След като нашите вериги бяха създадени, трябваше да ги поставим на печатни платки.

За целта използваме софтуера Altium. Всичко трябва да бъде правилно свързано, след което щракнете върху:

Проектиране на меню -> Актуализиране на документ на печатна платка.

След това кликнете върху „Валидиране на промените“. За всяка валидирана промяна в колоната „Проверка“се появява зелена отметка.

След това ще имате нов раздел, който ще се отвори и ще трябва да поставите компонентите в този прозорец.

След това трябва да отидете в менюто "Файл" -> "Изходен изход" -> "Gerber файлове"

Отваря се прозорец, в който ще намерите;

Менюто "Слоеве", което ще ви позволи да изберете кои слоеве ще поддържат вашата печатна платка. Менюто "Чертеж на тренировка", където всичко трябва да бъде отменено. Менюто "Отвори", в което трябва да проверите "Вградени отвори".

Всичките му стъпки са завършени?

Нека се върнем сега към прозореца с компонентите върху този, върху който кликнете

Файл-> Производствена продукция -> NC бормашини

Най -накрая свърши, всичко, което трябва да направите, е да дадете файловете на 3D принтера.

Прикачени ще намерите снимките на нашите две печатни платки.

Стъпка 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

Francais:

Лес cœurs IP sont optimisés pour les périphériques Intel FPGA и peuvent être implémentés pour reduire la conception et 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 за лек DAC
  • ADC pour recupérer les valeurs analogique de notre signal et les convertir en donnée digitales
  • HPS (процесор) за попълване на кодове
  • GPIO за всички бутони, които са изпратени, за да се справят с някои ефекти
  • Мемуар (на чип памет)

Английски:

IP ядрата са оптимизирани за Intel FPGA устройства и могат лесно да бъдат внедрени, за да се намали времето за проектиране и тестване.

Благодарение на софтуера Qsys успяхме да създадем вградени периферни устройства в нашата карта. Ето списък на добавеното от нас устройство:

  • SPI комуникация за DAC
  • ADC, за да извлечем аналоговите стойности от нашия сигнал и да ги преобразуваме в цифрови данни
  • HPS (процесор) за управление на всички кодове
  • GPIO за бутоните, които ще се използват за справяне с определени ефекти
  • Памет (в паметта на чипа)

Стъпка 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Това е един от фалшивите компресори, които излъчват LT24 целули-ци сера, насочени към процесора на NIOS.

Pour l'initaliser, nous avons lu beaucoup de documentations sur celui-ci.

Au окончателно, notre écran sert à afficher la FFT, à sélectionner l'effet voulu.

Английски:

Трябваше да разберем и управляваме екрана LT24, той ще се ръководи от симулиран NIOS процесор. За да го инициираме, четем много документация по него.

В крайна сметка нашият екран се използва за показване на FFT до желания ефект.

Стъпка 6: Кодове Utiles En C ++ / Полезни кодове в 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 toutes nos déclarations (oui un peu excluustif …):

Ще ви покажа кодовете в 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 #deteine HW_REGS_BASE (ALT_STM_OFST) #define HW_REGS_00x 0 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 long SAMPLE_RATE = 12500000; // Création de la configuration и 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; кратки данни, данни2;

Ci-dessous une de nos fonctions permettant la модулация:

Под една от нашите функции, позволяващи модулация:

модулация на празнотата (int freq)

{if (i <NFFT) {data = data*cos (2*PI*freq*i/FE); в .r = данни; i ++; } else i = "0"; }

Основни функции на voici notre:

Това са нашата основна функция:

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 ("ГРЕШКА: mmap () неуспешна … / n"); затваряне (fd); връщане (1); } printf ("4 / n"); printf ("5 / n"); h2p_lw_spi_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_led_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_adc_addr = virtual_base + ((без знак без дължина) (ALT_LWFPGASLVS_OFST + ADC_0_BASE) & (без знак без дължина) (HW_REGS_MASK)); h2p_lw_blue_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_BLUE_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_black_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_BLACK_BASE) & (unsigned long) (HW_REGS_MASK)); h2p_lw_red_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + PIO_RED_BASE) & (unsigned long) (HW_REGS_MASK)); // int i = 0; int данни; int i = 0, j; // Création de la configuration и 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)); while (1) {данни = *(h2p_lw_adc_addr+2); if (*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); } безплатно (конфиг.); безплатно (в); безплатно (навън); връщане 0; }

Стъпка 7: Le Final / Финалът

Le Final / Финалът
Le Final / Финалът

Français:

Eh voilà (enfin) le rendu final de notre Cactus 2000.

Nous avons mis les PCB entrée et sorte qui sont reliés a 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 някои ефекти, 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.

Поставяме входните и изходните платки, които са свързани към платката DE0 Nano Soc.

След това компонентите му се поставят в жълта кутия.

На кутията има слайд потенциометър, който може да управлява силата на звука, копчета и бутони, които ще стартират някои ефекти, и екран, който ще показва FFT.

Високоговорителят е разположен перпендикулярно на бутоните. Микрофонът е разположен от другата страна на кутията спрямо високоговорителя.

Това е всичко за днес.

Надявайки се, че тази инструкция е полезна за вас.

Препоръчано: