Съдържание:
- Стъпка 1: Изисквания 1/3 - Хардуер
- Стъпка 2: Изисквания 2/3 - Компоненти за вашата схема
- Стъпка 3: Изисквания 3/3 - Софтуер
- Стъпка 4: Входна верига
- Стъпка 5: Изходна верига
- Стъпка 6: [ОПЦИОНАЛНО] Създаване на печатни вериги Borad и запояване компоненти
- Стъпка 7: Настройка на SoC
- Стъпка 8: Програмиране на C HPS
- Стъпка 9: Цифрово получаване на ADC от картата
- Стъпка 10: Изчисляване на FFT
- Стъпка 11: Показване на FFT
- Стъпка 12: Монтаж
- Стъпка 13: Звукови ефекти
- Стъпка 14: [ОПЦИОНАЛНО] Изработване на шлема
Видео: Спартанска каска за смяна на глас: 14 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Здравейте! Ние сме екип от 4 ученици от Политехническото училище на Сорбонския университет:
- Луи Бухерт
- Билал Мелехи
- Бао Тин Пиот
- Марко Лонгепе
Този проект се реализира като част от нашите проучвания и има за цел да вземе под ръка редица инструменти, както и да демонстрира нашите теоретични постижения.
Известният обект придобива вид на шлем, наподобяващ този на героя на определена видео игра, чието име ще бъде загубено. От страна на дизайна също имаме екран, който показва трансформацията на Фурие на аудио сигнала, излизащ от високоговорителя. Целта на тази слушалка е да промени гласа на оператора в реално време, използвайки редица избираеми ефекти.
Образователни цели:
- Уловете звука от микрофон
- Усилва, филтрира, дигитализира сигнала
- Реализирайте FFT на сигнал
- Покажете това FFT на екран
- Синтез на сигнали
- Извадете звук от високоговорителя
- Реализирайте ефекти върху аудио звука (реверберация, ехо и т.н. …)
Сега, когато поставихме фона и представихме проекта, е време да го вземете в ръце!
Стъпка 1: Изисквания 1/3 - Хардуер
За да изградим успешно вашата каска, ще ни е необходим хардуер, за да стартираме устройството.
- Съвет за разработка на DE0-Nano-SoC от Terasic + Adafruit TFT LCD екран (Arduino)
- Достъп до 3D принтер, за да направите каската (Ако сте студент, приближете се до вашия университет, някои имат лаборатории, достъпни за студенти)
- Компютър с интернет връзка и минимум свързаност (USB, Ethernet). Вашият компютър също трябва да има силен процесор, тъй като компилирането на програми на Qsys отнема много време.
- (Не се изисква) Принтер, който прави печатни платки (PCB) от файлове Gerber с цел свиване на размера на веригата + поялник за поставяне на компонентите върху печатната платка.
- (Силно препоръчително): Добро кафе, за да се насладите на работата си с нашия Instructable:)
Стъпка 2: Изисквания 2/3 - Компоненти за вашата схема
Ето компонентите, необходими за вашата верига:
- Аудио усилвател Texas Instrument LM386 AB клас
- BreadBoard
- Комплект мъжки-мъжки, мъжки-женски кабели
- LM358P цифрово-аналогов конвертор (DAC)
- Говорителят
- Малък микрофон, използван в аналогова верига
- Игрален набор от резистори от 1kOhm до 220kOhm
- Кондензатор 1.5nF
- Кондензатор 50nF
- Кондензатор 100nF
- Кондензатор 100uF
- Кондензатор 220uF
- x4 Кондензатори 10uF
Стъпка 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 пакет в терминал. За да направите това, ще трябва да добавите малко $ PATH. PATH се използват в терминала, за да кажат за търсене на файл в директориите, дадени от path, когато изпълнявате команда. За да направите това, въведете следния команден ред:
експортиране на PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
След това въведете командния ред, за да генерирате заглавки от sof файл. Вие получавате софтуерния файл, като компилирате вашия проект на Quartus. За да направите това, въведете:./generate_header.
Стъпка 8: Програмиране на 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 от картата
На първо място, ще трябва да зададете 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
За да получим бързата трансформация на Фурие в нашата програма 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
Въз основа на пример, даден на 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.
- Входната верига ще изпраща аудио сигнала, уловен от микрофона, усилен, филтриран и изместен.
- Програмата C, присъстваща на картата, ще прочете стойностите на ADC, както видяхме по -рано, и ще я запише в SPI, за да можем да възстановим стойността на GPIO на картата.
- След това изходният GPIO на SPI ще предава информацията, която ще бъде декодирана от нашия DAC и усилена чрез бягане, за да достигне до високоговорителя.
Стъпка 13: Звукови ефекти
Остават само звуковите ефекти.
Наличните ефекти са:
- Високочестотен филтър
- Нискочестотен филтър
- …
Можете да превключвате между ефектите благодарение на бутон. Този бутон ще промени променлива в нашата програма C, така че да може да приложи правилния ефект.
Стъпка 14: [ОПЦИОНАЛНО] Изработване на шлема
Тук сме в най -ръчната стъпка на проекта:
- Първо залепихме различните 3D отпечатани части на каската.
- За да запълним празнините между залепените парчета, добавихме завършек с помощта на 3D химикалка.
- Полирахме междинните пространства, напълнени с химикалката и каската по -общо, така че картината да се задържи добре след това.
- Боядисвахме каската с 2 слоя: първият в антрацитно черно, отблизо и втори от основното зелено от по -нататък, за да дадем нюанси на по -тъмно зелено.
- Накрая отпечатахме логото на нашето училище отстрани на шлема
Препоръчано:
Voicetron - Играчка за запис на глас: 40 стъпки (със снимки)
Voicetron - играчка за запис на глас: Това устройство е създадено за удоволствие и вдъхновение за всеки, който би искал да направи обикновен диктофон за игра на децата си, или като декорация, или да използва в Geocaching или в стаи за бягство. Има много възможности. Така че нека да стигнем до него
Плаващо интелигентно магическо огледало от стар лаптоп с разпознаване на глас Alexa: 6 стъпки (със снимки)
Плаващо интелигентно магическо огледало от стар лаптоп с разпознаване на гласа на Alexa: Запишете се в моя курс „Електроника накратко“тук: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK Вижте и моя YouTube канал тук за още проекти и уроци по електроника: https://www.youtube.com/channel/UCelOO
Бутон за дистанционно управление, активиран с глас: 4 стъпки (със снимки)
Бутон за дистанционно управление, активиран с глас: Ако сте виждали другите ми инструкции, знаете, че нашият син има мускулна дистрофия. Това е част от проект, който да направи нещата по -достъпни за него. Имаме врата, която се управлява от дистанционно отваряне на гаражни врати. Това беше фантастично в
Носеща се технология: Ръкавица за смяна на глас: 7 стъпки
Wearable Tech: Ръкавица за промяна на гласа: Е, изглежда, че ръкавиците с невероятни сили са ярост в наши дни. Докато Innosity Gauntlet на Thanos е доста мощна ръкавица, ние искахме да направим ръкавица, която би могла да направи нещо още по-забележително: да промени гласа на потребителя в реално време
Направи си сам каска за каска за ЕВТИНИ: 5 стъпки
DIY Каска за каска за ЕВТИЧНО: Първо, Това може да се намери: http://iamkraze.com/helmet-cam-diyТогава откакто исках колело, аз съм фен на видеоклипа на 13mordeth в youtube. По същество той прави блогове, докато кара мотоциклета си от всичко, което е толкова просто като деня или толкова сложно, колкото да се отърве