Съдържание:

Спартанска каска за смяна на глас: 14 стъпки (със снимки)
Спартанска каска за смяна на глас: 14 стъпки (със снимки)

Видео: Спартанска каска за смяна на глас: 14 стъпки (със снимки)

Видео: Спартанска каска за смяна на глас: 14 стъпки (със снимки)
Видео: Джошуа Принц-Рэймус: Строительство театра, который сам себя переделывает 2024, Ноември
Anonim
Спартански шлем за смяна на глас
Спартански шлем за смяна на глас
Спартански шлем за смяна на глас
Спартански шлем за смяна на глас

Здравейте! Ние сме екип от 4 ученици от Политехническото училище на Сорбонския университет:

  • Луи Бухерт
  • Билал Мелехи
  • Бао Тин Пиот
  • Марко Лонгепе

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

Известният обект придобива вид на шлем, наподобяващ този на героя на определена видео игра, чието име ще бъде загубено. От страна на дизайна също имаме екран, който показва трансформацията на Фурие на аудио сигнала, излизащ от високоговорителя. Целта на тази слушалка е да промени гласа на оператора в реално време, използвайки редица избираеми ефекти.

Образователни цели:

  • Уловете звука от микрофон
  • Усилва, филтрира, дигитализира сигнала
  • Реализирайте FFT на сигнал
  • Покажете това FFT на екран
  • Синтез на сигнали
  • Извадете звук от високоговорителя
  • Реализирайте ефекти върху аудио звука (реверберация, ехо и т.н. …)

Сега, когато поставихме фона и представихме проекта, е време да го вземете в ръце!

Стъпка 1: Изисквания 1/3 - Хардуер

Изисквания 1/3 - Хардуер
Изисквания 1/3 - Хардуер

За да изградим успешно вашата каска, ще ни е необходим хардуер, за да стартираме устройството.

  • Съвет за разработка на DE0-Nano-SoC от Terasic + Adafruit TFT LCD екран (Arduino)
  • Достъп до 3D принтер, за да направите каската (Ако сте студент, приближете се до вашия университет, някои имат лаборатории, достъпни за студенти)
  • Компютър с интернет връзка и минимум свързаност (USB, Ethernet). Вашият компютър също трябва да има силен процесор, тъй като компилирането на програми на Qsys отнема много време.
  • (Не се изисква) Принтер, който прави печатни платки (PCB) от файлове Gerber с цел свиване на размера на веригата + поялник за поставяне на компонентите върху печатната платка.
  • (Силно препоръчително): Добро кафе, за да се насладите на работата си с нашия Instructable:)

Стъпка 2: Изисквания 2/3 - Компоненти за вашата схема

Изисквания 2/3 - Компоненти за вашата схема
Изисквания 2/3 - Компоненти за вашата схема
Изисквания 2/3 - Компоненти за вашата схема
Изисквания 2/3 - Компоненти за вашата схема
Изисквания 2/3 - Компоненти за вашата схема
Изисквания 2/3 - Компоненти за вашата схема

Ето компонентите, необходими за вашата верига:

  • Аудио усилвател Texas Instrument LM386 AB клас
  • BreadBoard
  • Комплект мъжки-мъжки, мъжки-женски кабели
  • LM358P цифрово-аналогов конвертор (DAC)
  • Говорителят
  • Малък микрофон, използван в аналогова верига
  • Игрален набор от резистори от 1kOhm до 220kOhm
  • Кондензатор 1.5nF
  • Кондензатор 50nF
  • Кондензатор 100nF
  • Кондензатор 100uF
  • Кондензатор 220uF
  • x4 Кондензатори 10uF

Стъпка 3: Изисквания 3/3 - Софтуер

Изисквания 3/3 - Софтуер
Изисквания 3/3 - Софтуер
Изисквания 3/3 - Софтуер
Изисквания 3/3 - Софтуер

Не на последно място, ще ви трябва софтуер:

  • Quartus 15.1: Опростена версия
  • Компилатор на C (gcc например)
  • Altium за дизайн на печатни платки
  • Вграденият SoC пакет на Altera за комуникация с SoC картата

  • Шпакловка

Стъпка 4: Входна верига

Входна верига
Входна верига
Входна верига
Входна верига
Входна верига
Входна верига
Входна верига
Входна верига

Нека изградим веригата. Използвайте горната картина на веригата, за да я сглобите на дъската си. Ще видите и картината на BreadBoard и веригата вътре, за да видите как са свързани щифтовете. Цялата верига се захранва с 5V постоянен ток (DC). За това можете да използвате 5V батерия с USB-B конвертор или генератор на функции.

Някои напомняния:

  • 5V захранването и земята са свързани на отделни хоризонтални линии на макета
  • Ако искате да свържете 2 компонента паралелно, поставете ги в обща линия на макета
  • Ако искате да свържете 2 серийни компонента, компонентите трябва да съдържат само един щифт в обща линия на макета.

Не се колебайте да гледате специален урок за това как да използвате макет и да закрепите верига върху него. Също така не забравяйте да прочетете внимателно позицията на щифтовете на аудио усилвателя LM358P (вижте снимката по -горе)

Стъпка 5: Изходна верига

Изходна верига
Изходна верига
Изходна верига
Изходна верига
Изходна верига
Изходна верига
Изходна верига
Изходна верига

Съвсем същите инструкции като стъпка 4. Четирите входа: SDI, а не CS, SCK, не LDAC са от вашата платка DE0-Nano-Soc. По -късно ще видим как да ги генерираме.

Не забравяйте да прочетете внимателно позициите на щифтовете на аудио усилвателя LM386 (вижте снимката по -горе)

Стъпка 6: [ОПЦИОНАЛНО] Създаване на печатни вериги Borad и запояване компоненти

[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване
[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване
[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване
[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване
[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване
[ОПЦИОНАЛНО] Създаване на печатни платки и компоненти за запояване

Ако имате късмета да притежавате принтер на печатни платки или да можете да го използвате, ние ще създадем своя собствена печатна платка (печатна платка). Имайте предвид, че тази стъпка не е задължителна. Тази стъпка се състои само в преместване на вашата схема от макет към печатна платка.

Ще ви трябват тези 2 файла GERBER.

Тези файлове са направени на Altium. Използвайте ги в софтуера на принтера за печатни платки, за да отпечатате вашата печатна платка. След като получите вашата печатна платка, уверете се, че тя е чиста и че песните са правилно отпечатани.

Сега идва истинската сделка: запояване. Двете снимки по -горе са картата на веригата на печатната платка. Всеки компонент има имена (R6, C4, MK1 и т.н.). Снимките в стъпки 4 и 5 показват параметрите на компонентите (съпротивление, проводимост..). Поставете всеки компонент от вашата платка към печатната платка според техните имена.

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

Стъпка 7: Настройка на SoC

SoC настройка
SoC настройка
SoC настройка
SoC настройка

Що се отнася до настройката на SoC, ще трябва да изпълните някои команди и скриптове, включени в вградения SoC пакет в терминал. За да направите това, ще трябва да добавите малко $ PATH. PATH се използват в терминала, за да кажат за търсене на файл в директориите, дадени от path, когато изпълнявате команда. За да направите това, въведете следния команден ред:

експортиране на PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH

След това въведете командния ред, за да генерирате заглавки от sof файл. Вие получавате софтуерния файл, като компилирате вашия проект на Quartus. За да направите това, въведете:./generate_header.

Стъпка 8: Програмиране на C HPS

Програмиране на C HPS
Програмиране на C HPS

Трябва да осъзнаем 2 неща в тази част, а именно прочетете прочетете стойността на ADC и я запишете в SPI.

1. Прочетете стойността на ADC

Адресът на паметта, в която се съдържа ADC, не е директно достъпен, всъщност системата на Linux, присъстваща на картата, създава абстракция на паметта. За наистина достъп до ADC адреса ще използваме функцията mmap.

"h2p_lw_spi_addr = virtual_base + ((unsigned long) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (unsigned long) (HW_REGS_MASK));"

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

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

2. Запишете стойността на ADC в SPI

Манипулацията е идентична, този път даваме на mmap отместването да кацне на адреса, определен от SPI. Докато пишете в SPI, техническата документация посочва, че трябва да напишете на адрес + 1 стойността на adc.

"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"

Тази инструкция ви позволява да пишете в SPI. Всъщност бит 4, така че 1 << 12, е битът, който позволява да се активира SPI. Следователно с логическо ИЛИ ние даваме както бита за активиране, така и стойността на ADC на SPI.

Стъпка 9: Цифрово получаване на ADC от картата

Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата
Цифрово придобиване на ADC от картата

На първо място, ще трябва да зададете Ethernet IP адреса на компютъра си чрез Контролен панел -> Мрежа -> Картови пармезали. Изберете Ethernet интерфейса на картата, свойството, ipv4 адреса и въведете фиксиран IP, маска и т.н.

След това свържете картата от страната на жака за захранване с микро USB кабела. Отворете програмиста Quartus и стартирайте експортирането. Тази манипулация ще бъде повторена след всяко изключване на картата.

Сменете микро USB кабела, за да се свържете този път до Ethernet жака. Сега с Putty ще е необходимо да се свържете с картата чрез серийна връзка. Конфигурацията се вижда на снимките, като идеята е да замените COM5 с COM, последвано от номера, който можете да намерите в мениджъра на устройството (щракнете с десния бутон върху логото на Windows, за да го отворите).

Натиснете enter, вие сте свързани.

Информация за рестартиране на проекта: - Поправете ethernet ip, съответстващ на картата - Включете картата, всеки път, когато включите захранването, е необходимо да поставите с "програма" под четвъртината проекта, съставен в картата. Това става чрез микро -USB порта - За да можем да покажем резултата от програмата, използваме повече микро USB, но UART - С шпакловка, конфигурирана за сериен COM5 (или 6 часовника с периферия за гледане) Свържете се с картата. - Задайте парола (passwd) - Задайте IP адрес ifconfig ethxx IPchoice (IP недалеч от този за eth на компютъра) - Генерирайте заглавката според Qsys с вграден терминал (експортирайте PATH) - направете - scp l exec в map - изпълнява под шпакловка прог

Стъпка 10: Изчисляване на FFT

Изчисляване на FFT
Изчисляване на FFT

За да получим бързата трансформация на Фурие в нашата програма C, ще използваме библиотека, написана от Марк Боргердинг: Kiss FFT. Можете да изтеглите библиотеката тук: https://kissfft.sourceforge.net/. Прилагането на FFT върху сигнал е необходимо, за да се променят и приложат сигнални ефекти. Той може да служи и за показване на спектъра на сигнала.

Първата стъпка във вашата C програма е да разпределите памет, за да съхраните резултата от FFT. Размерът на паметта зависи от броя на точките, използвани за изчисляване на FFT. Колкото повече точки имате, толкова по -пективен ще бъде FFT. Програмата обаче ще работи по -бавно и ще използва повече памет. Обърнете внимание, че ще получите два масива от функцията kiss_fft: входът и изходът на функцията (cx_in и cx_out)

След като нашият масив е изпълнен с нови стойности на FFT, т.е. когато r = Win - 1, ние обработваме FFT. Що се отнася до дисплея, ние показваме само положителната част от спектъра, тъй като има симетрия между отрицателната и положителната част.

Що се отнася до хоризонталната ос, ние намаляваме пиковите стойности със 100*височина/(височина²), за да разграничим пиковете на основните честоти.

Използваме системния разговор usleep, за да определим честота на четене за стойностите на ADC. Понастоящем тази честота е зададена на 1, 5 Hz.

Стъпка 11: Показване на FFT

Показване на FFT
Показване на FFT
Показване на FFT
Показване на FFT

Въз основа на пример, даден на Adafruit TFT LCD екрана, достъпен тук: https://www.terasic.com/downloads/cd-rom/de0-nano-s… ние сме програмирали NIOS на нашия съвет, така че той да може да чете стойността на ADC.

Така регистърът на ADC се споделя между NIOS и HPS, защото стойностите на ADC ще се използват за показване на FFT на екрана NIOS, а същите тези стойности ще бъдат записани на SPI, за да бъдат изведени от платката и накрая да бъдат преобразувани чрез DAC за получаване на аналогов сигнал.

Стъпка 12: Монтаж

Монтаж
Монтаж

Почти свършихме! Ще трябва да сглобите всяка част от проекта (входна верига, изходна верига и платката). Уверете се, че сте свързали частите към правилните щифтове съгласно проекта Quartus.

  1. Входната верига ще изпраща аудио сигнала, уловен от микрофона, усилен, филтриран и изместен.
  2. Програмата C, присъстваща на картата, ще прочете стойностите на ADC, както видяхме по -рано, и ще я запише в SPI, за да можем да възстановим стойността на GPIO на картата.
  3. След това изходният GPIO на SPI ще предава информацията, която ще бъде декодирана от нашия DAC и усилена чрез бягане, за да достигне до високоговорителя.

Стъпка 13: Звукови ефекти

Звукови ефекти
Звукови ефекти
Звукови ефекти
Звукови ефекти

Остават само звуковите ефекти.

Наличните ефекти са:

  • Високочестотен филтър
  • Нискочестотен филтър

Можете да превключвате между ефектите благодарение на бутон. Този бутон ще промени променлива в нашата програма C, така че да може да приложи правилния ефект.

Стъпка 14: [ОПЦИОНАЛНО] Изработване на шлема

[ОПЦИОНАЛНО] Изработване на шлема
[ОПЦИОНАЛНО] Изработване на шлема
[ОПЦИОНАЛНО] Изработване на шлема
[ОПЦИОНАЛНО] Изработване на шлема
[ОПЦИОНАЛНО] Изработване на шлема
[ОПЦИОНАЛНО] Изработване на шлема

Тук сме в най -ръчната стъпка на проекта:

  1. Първо залепихме различните 3D отпечатани части на каската.
  2. За да запълним празнините между залепените парчета, добавихме завършек с помощта на 3D химикалка.
  3. Полирахме междинните пространства, напълнени с химикалката и каската по -общо, така че картината да се задържи добре след това.
  4. Боядисвахме каската с 2 слоя: първият в антрацитно черно, отблизо и втори от основното зелено от по -нататък, за да дадем нюанси на по -тъмно зелено.
  5. Накрая отпечатахме логото на нашето училище отстрани на шлема

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