Оглавление:

Кактус 2000: 7 шагов
Кактус 2000: 7 шагов

Видео: Кактус 2000: 7 шагов

Видео: Кактус 2000: 7 шагов
Видео: Земфира — Кактус (OST к моноспектаклю Ренаты Литвиновой) 2024, Ноябрь
Anonim
Кактус 2000
Кактус 2000

ПРОЕКТ MIDI-КОНТРОЛЕР 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 disposition:

  • Une carte DE0 Nano Soc
  • Мультимедийные осциллографы
  • Des composants de différents types (амплификатор, сопротивление, емкость…)
  • 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.

Залить начальный, ле dessin du circuit de base était nécessaire afin de récupérer le son du micro et le rendre au haut-parleur. Чтобы печатная плата была справедлива на логике 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 le haut-parleur. Finallement, это не значит, что вам нужны звуковые эффекты для модификатора.

Английский:

На четвертом году обучения мы реализовали миди-контроллер. Для этого в нашем распоряжении были:

  • Карта DE0 Nano Soc
  • Осциллографы, мультиметры
  • Компоненты разных типов (усилитель, сопротивление, мощность…)
  • Микрофон и динамик
  • Маленький экран

Чтобы проект увенчался успехом, нам пришлось пройти через различные опасные этапы. Мы познакомим вас с этим руководством.

Во-первых, конструкция базовой схемы, необходимая для восстановления микрофона и изготовления динамика. После того, как схема была нарисована, печатная плата должна была быть сделана в программном обеспечении Altium. В то время как два студента были заняты управлением печатными платами ввода и вывода, двое других работали над запуском карты DE0 Nano Soc, чтобы карта могла собирать образцы микрофонов и подавать сигнал для говорящего. Наконец, нам пришлось создать звуковые эффекты для изменения звука.

Шаг 1: Концепция схемы на входе / проектирование входной схемы

Conception Du Circuit En Entrée / Проектирование входной схемы
Conception Du Circuit En Entrée / Проектирование входной схемы

Français:

Премьера эфира состоит из метра на месте цепи, служащей для передачи сигнала посланника на микроконтроллере для преобразования на карте DE0 Nano Soc.

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

(1) Обратное преобразование 5 Вольт и трансформатор на 5 В. Ле - 5 Вольт для усилителя, который может быть исправлен.

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

Vs = Ve (1 + Z1 / Z2)

При выбранном коэффициенте усиления 101 кОм R1 = 100 кОм и R2 = 1 кОм.

Этот усилитель работает с усилителем le son du micro.

(3) Лечебные сопротивления для компенсации напряжения вылета состоят из 0 и 4 V.

(4) Микро-qui va être усилитель для усилителя.

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

(6) Залить Finir, nous avons créé un filter Passe-bas du second ordre avec deux RC. L'ordre 2 - это обязательный атрибут для предотвращения - 40 дБ / десятилетие. Частота купюры выбирается на 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 был необходим, чтобы иметь затухание -40 дБ / декаду. Выбранная частота среза - 20 кГц.

Шаг 2: Концепция Du Circuit En Sortie / Дизайн выходной цепи

Концепция Du Circuit En Sortie / Дизайн выходной цепи
Концепция Du Circuit En Sortie / Дизайн выходной цепи

Français:

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

Ci-dessus le schéma de notre sortie.

(1) ЦАП (цифро-аналоговый преобразователь), который позволяет получать номер сигнала, полученный по карте DE0, Nano Soc et le convertir en signal analogique (nécessaire pour le haut parleur)

(2) La capacity va servir a virer la composante continue de notre signal.

(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) ЦАП (цифро-аналоговый преобразователь), который позволит восстанавливать цифровой сигнал, отправляемый картой DE0 Nano Soc, и преобразовывать его в аналоговый сигнал (необходимый для громкоговорителя).

(2) Емкость будет использоваться для передачи непрерывной составляющей нашего сигнала.

(3) Крепление, которое усилит мощность нашего сигнала. Взяли схему:

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

стр.10

Эта схема позволяет получить усиление 200, что необходимо, потому что наш сигнал действительно слабый.

Шаг 3: Концепция печатной платы / Дизайн печатной платы

Conception Des PCB / Дизайн печатной платы
Conception Des PCB / Дизайн печатной платы

Français:

Все схемы находятся в непосредственной близости от печатной платы.

Pour ce faire, nous avons utiliser le logiciel Altium. Il faut que tout soit correctement connecter puis cliquer sur:

Меню Дизайн -> Обновить документ печатной платы.

Ensuite, cliquez sur «Validate Changes». Вылейте chaque change validé, 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.

Возможно, вы не нашли в меню «Файл» -> «Вывод фабрики» -> «Файлы Гербера»

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

  • Меню «Слои» позволяет выбирать слои из каждой печатной платы.
  • Меню «Drill Drawing» в разделе «Drill Drawing» - это все, что вам нужно.
  • Меню «Апертуры» и «Встроенные апертуры».

Toute ses étapes sont Complétées?

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

Файл -> Выходные данные -> Файлы сверления с ЧПУ

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

Откроется окно, в котором вы найдете;

Меню «Слои», которое позволит вам выбрать, какие слои будут поддерживать вашу печатную плату. Меню «Drill Drawing», где все должно быть снято. Меню «Апертуры», в котором нужно отметить «Встроенные апертуры».

Все его шаги выполнены?

Вернемся теперь к окну с компонентами, на котором вы нажимаете

Файл -> Производство -> Файлы сверления с ЧПУ

Наконец-то все кончено, все, что вам нужно сделать, это передать файлы 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:

Эти IP-адреса оптимизированы для использования в процессорах Intel FPGA и могут применяться для восстановления концепции и тестирования.

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 для ЦАП
  • АЦП для сбора аналоговых сигналов нотрского сигнала и преобразователей цифровых данных
  • HPS (процессор) для получения всех кодов
  • GPIO pour les boutons qui vont servir à exécuter определенные эффекты
  • Mémoire (на чипе памяти)

Английский:

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

Благодаря программному обеспечению Qsys мы смогли создать встроенные периферийные устройства на нашей карте. Вот список добавленных нами устройств:

  • Связь SPI для ЦАП
  • АЦП для извлечения аналоговых значений из нашего сигнала и преобразования их в цифровые данные
  • HPS (процессор) для управления всеми кодами
  • GPIO для кнопок, которые будут использоваться для управления определенными эффектами.
  • Память (на памяти микросхемы)

Шаг 5: L'écran LT24

L'écran LT24
L'écran LT24

Français:

Если вы понимаете и работаете с L'écran LT24, вам нужна сыворотка, которая будет обрабатывать simulé NIOS.

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

В финале, не пропустите, после того, как FFT, а затем выберете результат.

Английский:

Нам предстояло разобраться в экране LT24 и управлять им, он будет руководствоваться смоделированным процессором NIOS. Чтобы инициировать его, мы прочитали много документации по нему.

В конце концов, наш экран используется для отображения БПФ с желаемым эффектом.

Шаг 6: коды Utiles En C ++ / Полезные коды C ++

Codes Utiles En C ++ / Полезные коды на C ++
Codes Utiles En C ++ / Полезные коды на C ++

Je 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 excustif…):

Я собираюсь показать вам коды на 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_SPAN00 (0W_REGS_SPAN) 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 using namespace std; const long SAMPLE_RATE = 12500000; // Создание конфигурации и буферов для ввода и вывода для s (t) и 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 я = 0; короткие данные, data2;

Различные функции, обеспечивающие модуляцию:

Ниже одна из наших функций, допускающих модуляцию:

пустая модуляция (int freq)

{если (i <NFFT) {данные = данные * cos (2 * PI * freq * i / FE); in .r = data; 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 / п"); // отображаем адресное пространство для регистров spi в пользовательское пространство, чтобы мы могли с ними взаимодействовать. // мы фактически будем отображать весь диапазон CSR HPS, поскольку мы хотим получить доступ к различным регистрам в этом диапазоне if ((fd = open ("/ dev / mem", (O_RDWR | O_SYNC))) == -1) {printf ("ОШИБКА: не удалось открыть \" / dev / mem / "… / n"); возврат (1); } printf ("2 / п"); virtual_base = mmap (NULL, HW_REGS_SPAN, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, HW_REGS_BASE); printf ("3 / п"); if (virtual_base == MAP_FAILED) {printf ("ОШИБКА: ошибка mmap ()… / n"); закрыть (fd); возврат (1); } printf ("4 / п"); printf ("5 / п"); 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; // Создание конфигурации и буферов для ввода и вывода для s (t) и 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) {данные = * (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); } бесплатно (конфигурация); бесплатно (в); бесплатно (выход); возврат 0; }

Шаг 7: Ле Финал / Финал

Ле Финал / Финал
Ле Финал / Финал

Français:

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

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

Ensuite, ses composants sont placés à l'interieur d'une 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.

Затем его компоненты помещаются в желтую коробку.

На коробке находится ползунковый потенциометр, который может управлять громкостью звука, ручки и кнопки, запускающие некоторые эффекты, и экран, на котором отображается БПФ.

Динамик расположен перпендикулярно кнопкам. Микрофон расположен с другой стороны коробки относительно динамика.

Это все на сегодня.

Надеемся, что это руководство будет вам полезно.

Рекомендуемые: