Spartas balss mainītāja ķivere: 14 soļi (ar attēliem)
Spartas balss mainītāja ķivere: 14 soļi (ar attēliem)
Anonim
Spartas balss mainītāja ķivere
Spartas balss mainītāja ķivere
Spartas balss mainītāja ķivere
Spartas balss mainītāja ķivere

Sveiki! Mēs esam 4 studentu komanda no Sorbonnas Universitātes Politehniskās skolas:

  • Louis Buchert
  • Bilal Melehi
  • Bao Tinh Piot
  • Marko Longē

Šis projekts tiek īstenots kā daļa no mūsu pētījumiem, un tā mērķis ir ņemt rokās vairākus instrumentus, kā arī parādīt mūsu teorētiskos sasniegumus.

Slavenais objekts iegūst ķiveres izskatu, kas līdzinās noteiktas videospēles varonim, kura vārds tiks zaudēts. Arī dizaina pusē mums ir ekrāns, kas parāda no skaļruņa izplūstošā audio signāla Furjē transformāciju. Šo austiņu mērķis ir mainīt operatora balsi reālā laikā, izmantojot vairākus atlasāmus efektus.

Izglītības mērķi:

  • Uzņemiet skaņu no mikrofona
  • Pastipriniet, filtrējiet, digitalizējiet signālu
  • Izprotiet signāla FFT
  • Parādiet šo FFT ekrānā
  • Signālu sintēze
  • Izņemiet skaļruni no skaļruņa
  • Izprotiet skaņas skaņas efektus (atbalss, atbalss utt.)

Tagad, kad esam apkopojuši pamatinformāciju un prezentējuši projektu, ir pienācis laiks ķerties pie tā!

1. darbība. Prasības 1/3 - aparatūra

Prasības 1/3 - Aparatūra
Prasības 1/3 - Aparatūra

Lai veiksmīgi izveidotu ķiveri, mums būs nepieciešama aparatūra, lai darbinātu ierīci.

  • DE0-Nano-SoC attīstības padome ar Terasic + Adafruit TFT LCD ekrānu (Arduino)
  • Piekļuve 3D printerim, lai izgatavotu ķiveri (ja esat universitātes students, tuvojieties savai universitātei, dažiem ir laboratorijas, kas pieejamas studentiem)
  • Dators ar interneta pieslēgumu un minimālu savienojumu (USB, Ethernet). Jūsu datoram jābūt arī spēcīgam procesoram, jo programmu apkopošana Qsys prasa daudz laika.
  • (Nav nepieciešams) Printeris, kas ražo iespiedshēmas plates (PCB) no Gerber failiem, lai samazinātu ķēdes izmēru + lodāmurs, lai saliktu komponentus uz PCB.
  • (Stingri ieteicams): laba kafija, lai izbaudītu darbu ar mūsu Instructable:)

2. darbība. Prasības 2/3 - Jūsu ķēdes komponenti

Prasības 2/3 - Jūsu ķēdes komponenti
Prasības 2/3 - Jūsu ķēdes komponenti
Prasības 2/3 - Jūsu ķēdes komponenti
Prasības 2/3 - Jūsu ķēdes komponenti
Prasības 2/3 - Jūsu ķēdes komponenti
Prasības 2/3 - Jūsu ķēdes komponenti

Šeit ir jūsu ķēdei nepieciešamās sastāvdaļas:

  • Texas Instrument LM386 AB klases audio pastiprinātājs
  • BreadBoard
  • Vīriešu-vīriešu, vīriešu-sieviešu kabeļu komplekts
  • LM358P digitālais-analogo pārveidotājs (DAC)
  • Runātājs
  • Neliels mikrofons, ko izmanto analogā ķēdē
  • Spēļu rezistoru komplekts no 1kOhm līdz 220kOhm
  • Kondensators 1,5 nF
  • Kondensators 50 nF
  • Kondensators 100 nF
  • Kondensators 100uF
  • Kondensators 220uF
  • x4 10uF kondensatori

3. darbība. Prasības 3/3 - programmatūra

Prasības 3/3 - Programmatūra
Prasības 3/3 - Programmatūra
Prasības 3/3 - Programmatūra
Prasības 3/3 - Programmatūra

Visbeidzot, jums būs nepieciešama programmatūra:

  • Kvarts 15.1: vienkāršotā versija
  • C kompilators (piemēram, gcc)
  • Altium PCB projektēšanai
  • Altera SoC iegultais komplekts, lai sazinātos ar SoC karti

  • Špakteles

4. solis: ievades ķēde

Ievades ķēde
Ievades ķēde
Ievades ķēde
Ievades ķēde
Ievades ķēde
Ievades ķēde
Ievades ķēde
Ievades ķēde

Veidosim ķēdi. Izmantojiet iepriekš redzamo shēmas attēlu, lai to saliktu uz maizes dēļa. Jūs redzēsit arī BreadBoard attēlu un ķēdi iekšpusē, lai redzētu, kā tapas ir savienotas. Visa ķēde tiek darbināta ar 5 V līdzstrāvu (DC). Šim nolūkam varat izmantot 5V akumulatoru ar USB-B pārveidotāju vai funkciju ģeneratoru.

Daži atgādinājumi:

  • 5V barošanas avots un zeme ir savienoti uz atsevišķām maizes dēļa horizontālajām līnijām
  • Ja vēlaties paralēli savienot 2 komponentus, ievietojiet tos kopējā maizes dēļa līnijā
  • Ja vēlaties savienot 2 sērijas komponentus, komponentiem ir jābūt tikai vienam tapam maizes dēļa kopējā līnijā.

Nevilcinieties noskatīties īpašu pamācību, kā izmantot maizes dēli, un uz tā uzbūvēt ķēdi. Tāpat neaizmirstiet uzmanīgi izlasīt LM358P audio pastiprinātāja tapas pozīciju (skatiet attēlu iepriekš)

5. darbība: izejas ķēde

Izejas ķēde
Izejas ķēde
Izejas ķēde
Izejas ķēde
Izejas ķēde
Izejas ķēde
Izejas ķēde
Izejas ķēde

Gluži tādi paši norādījumi kā 4. solī. Četras ievades: SDI, nevis CS, SCK, nevis LDAC ir no jūsu DE0-Nano-Soc plates. Vēlāk redzēsim, kā tos ģenerēt.

Neaizmirstiet uzmanīgi izlasīt LM386 audio pastiprinātāja tapu pozīcijas (skatiet attēlu iepriekš)

6. darbība: [IZVĒLES] Iespiestas shēmas bora un lodēšanas komponentu izveide

[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide
[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide
[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide
[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide
[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide
[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide

Ja jums ir paveicies iegūt shēmas plates printeri vai arī varat to izmantot, mēs izveidosim savu iespiedshēmas plates (PCB). Ņemiet vērā, ka šī darbība nav obligāta. Šis solis sastāv tikai no ķēdes pārvietošanas no maizes dēļa uz PCB.

Jums būs nepieciešami šie 2 GERBER faili.

Šie faili tika izveidoti vietnē Altium. Izmantojiet tos savā PCB printera programmatūrā, lai izdrukātu PCB. Kad esat ieguvis savu PCB, pārliecinieties, vai jūsu PCB ir tīra un vai celiņi ir pareizi izdrukāti.

Tagad šeit ir īstais darījums: lodēšana. Iepriekš redzamie 2 attēli ir shēmas karte uz PCB. Katrai sastāvdaļai ir nosaukumi (R6, C4, MK1 utt.). Attēlos 4. un 5. solī ir parādīti komponentu parametri (pretestība, vadītspēja..). Novietojiet katru komponentu no maizes dēļa uz PCB atbilstoši to nosaukumiem.

Kad esat lodējis visu ar lodāmuru, pārbaudiet visas sastāvdaļas ar voltmetru, lai pārbaudītu, vai nav īssavienojuma.

7. solis: SoC iestatīšana

SoC iestatīšana
SoC iestatīšana
SoC iestatīšana
SoC iestatīšana

Attiecībā uz SoC iestatīšanu jums būs jāizpilda dažas komandas un skripti, kas iekļauti SoC iegultajā komplektā terminālī. Lai to izdarītu, jums būs jāpievieno daži $ PATH. PATH tiek izmantoti terminālī, lai teiktu, lai meklētu failu direktorijos, kas norādīti ceļā, kad izpildāt komandu. Lai to izdarītu, ierakstiet šādu komandrindu:

eksportēt PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH

Pēc tam ierakstiet komandrindu, lai ģenerētu galvenes no sof faila. Sof failu iegūst, apkopojot savu projektu vietnē Quartus. Lai to izdarītu, ierakstiet:./generate_header.

8. solis: C HPS programmēšana

C HPS programmēšana
C HPS programmēšana

Šajā daļā mums ir jāapzinās 2 lietas, proti, lasiet, lasiet ADC vērtību un ierakstiet to SPI.

1. Izlasiet ADC vērtību

Atmiņas adrese, kurā atrodas ADC, nav tieši pieejama, patiesībā kartē esošā Linux sistēma izveido atmiņas abstrakciju. Lai patiešām piekļūtu ADC adresei, mēs izmantosim mmap funkciju.

"h2p_lw_spi_addr = virtual_base + ((neparakstīts garš) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (neparakstīts garš) (HW_REGS_MASK));"

Šī instrukcija ļauj bāzes adreses sākumā pievienot nobīdi, lai sasniegtu ADC piešķirtās atmiņas adresi, un ar iegūto adresi veikt loģiku UN, lai ņemtu vērā maskēšanu.

Pēc tam programmā būs jānorāda tikai rādītājs, lai iegūtu tā vērtību.

2. SPI ierakstiet ADC vērtību

Manipulācija ir identiska, šoreiz mmap dodam nobīdi, lai nokļūtu uz SPI piešķirto adresi. Rakstot SPI, tehniskajā dokumentācijā norādīts, ka jums ir jāraksta uz adresi +1 adc vērtība.

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

Šī instrukcija ļauj rakstīt SPI. Patiešām, 4. bits, tātad 1 << 12, ir bits, kas ļauj aktivizēt SPI. Izmantojot loģisku VAI, mēs SPI piešķiram gan aktivizācijas bitu, gan ADC vērtību.

9. darbība: ADC digitālā iegūšana no kartes

ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes
ADC digitālā iegūšana no kartes

Pirmkārt, jums būs jāiestata datora Ethernet IP adrese, izmantojot vadības paneli -> Tīkls -> Kartes parmezāli. Izvēlieties kartes Ethernet interfeisu, īpašumu, ipv4 adresi un ievadiet fiksētu IP, masku utt.

Pēc tam pievienojiet karti no strāvas ligzdas puses, izmantojot mikro USB kabeli. Atveriet programmētāju Quartus un sāciet eksportēšanu. Šī manipulācija tiks atkārtota pēc katras kartes izslēgšanas.

Nomainiet mikro USB spraudņa kabeli, lai šoreiz pievienotos blakus Ethernet ligzdai. Tagad, izmantojot Putty, būs nepieciešams izveidot savienojumu ar karti, izmantojot seriālo saiti. Konfigurācija ir redzama fotoattēlos, ideja ir aizstāt COM5 ar COM, kam seko numurs, ko varat atrast ierīces pārvaldniekā (ar peles labo pogu noklikšķiniet uz logotipa, lai to atvērtu).

Nospiediet taustiņu Enter, un jūs esat izveidojis savienojumu.

Informācija, lai restartētu projektu: - Labojiet kartei atbilstošo Ethernet ip. - Ieslēdziet karti, katru reizi, kad ieslēdzat strāvu, kartē apkopoto projektu ir nepieciešams ievietot ar "programmu". Tas tiek darīts, izmantojot mikro -USB portu - Lai varētu parādīt programmas rezultātu, mēs izmantojam vairāk mikro USB, bet UART - Ar špakteli, kas konfigurēts sērijveida COM5 (vai 6 pulksteņu gestinnaire perifērijai) Pievienojiet kartei. - Uzstādīt paroli (passwd) - Iestatīt IP adresi ifconfig ethxx IPchoice (IP nav tālu no datora ētikas) - Izveidot galveni saskaņā ar Qsys ar iebūvētu termināli (eksporta ceļš) - make - scp l exec karte - izpildīt zem špakteles prog

10. solis: FFT aprēķins

FFT aprēķins
FFT aprēķins

Lai mūsu C programmā iegūtu ātro Furjē transformāciju, mēs izmantosim bibliotēku, kuras autors ir Marks Borgerdings: Kiss FFT. Jūs varat lejupielādēt bibliotēku šeit: https://kissfft.sourceforge.net/. FFT piemērošana signālam ir nepieciešama, lai modificētu un piemērotu signāla efektus. Tas var kalpot arī signāla spektra attēlošanai.

C programmas pirmais solis ir atmiņas piešķiršana, lai saglabātu FFT rezultātu. Atmiņas apjoms ir atkarīgs no FFT aprēķināšanai izmantotā punktu skaita. Jo vairāk jums būs punktu, jo precīzāks būs FFT. Tomēr programma darbosies lēnāk un izmantos vairāk atmiņas. Ņemiet vērā, ka no funkcijas kiss_fft jūs iegūsit divus masīvus: funkcijas ievadi un izvadi (cx_in un cx_out)

Kad mūsu masīvs ir piepildīts ar jaunām FFT vērtībām, ti, kad r = Win - 1, mēs apstrādājam FFT. Attiecībā uz displeju mēs parādām tikai pozitīvo spektra daļu, jo pastāv simetrija starp negatīvo un pozitīvo daļu.

Attiecībā uz horizontālo asi mēs samazinām maksimālās vērtības par 100*augstumu/(augstums²), lai atšķirtu galvenās frekvenču virsotnes.

Mēs izmantojam usleep sistēmas izsaukumu, lai definētu lasīšanas biežumu ADC vērtībām. Šī frekvence pašlaik ir iestatīta uz 1, 5 Hz.

11. darbība: FFT parādīšana

FFT parādīšana
FFT parādīšana
FFT parādīšana
FFT parādīšana

Pamatojoties uz piemēru, kas sniegts Adafruit TFT LCD ekrānā, kas pieejams šeit: https://www.terasic.com/downloads/cd-rom/de0-nano-s… mēs esam ieprogrammējuši mūsu padomes NIOS, lai viņš varētu lasīt ADC vērtība.

Tātad ADC reģistrs tiek koplietots starp NIOS un HPS, jo ADC vērtības tiks izmantotas, lai parādītu FFT uz NIOS ekrāna, un tās pašas vērtības tiks ierakstītas SPI, lai tās tiktu izvadītas no tāfeles un beidzot tiktu konvertētas DAC, lai iegūtu analogo signālu.

12. solis: montāža

Montāža
Montāža

Mēs esam gandrīz pabeiguši! Jums būs jāsamontē visas projekcijas daļas (ieejas ķēde, izejas ķēde un tāfele). Noteikti pievienojiet detaļas pareizām tapām saskaņā ar Quartus projektu.

  1. Ievades shēma nosūtīs mikrofona uztverto audio signālu, pastiprinātu, filtrētu un nobīdītu.
  2. Kartē esošā programma C nolasīs ADC vērtības, kā mēs redzējām iepriekš, un uzrakstīs to uz SPI, lai mēs varētu atgūt kartes GPIO vērtību.
  3. Pēc tam SPI izejas GPIO pārsūtīs informāciju, kuru mūsu DAC dekodēs un pastiprinās, skrienot, lai sasniegtu skaļruni.

13. darbība. Skaņas efekti

Skaņas efekti
Skaņas efekti
Skaņas efekti
Skaņas efekti

Atlicis tikai skaņas efekti.

Pieejamie efekti ir:

  • Augstas frekvences filtrs
  • Zemfrekvences filtrs

Izmantojot pogu, varat pārslēgties starp efektiem. Šī poga mainīs mūsu C programmas mainīgo, lai tā varētu piemērot pareizo efektu.

14. darbība: [IZVĒLES] Ķiveres izgatavošana

[Pēc izvēles] Ķiveres izgatavošana
[Pēc izvēles] Ķiveres izgatavošana
[Pēc izvēles] Ķiveres izgatavošana
[Pēc izvēles] Ķiveres izgatavošana
[Pēc izvēles] Ķiveres izgatavošana
[Pēc izvēles] Ķiveres izgatavošana

Šeit mēs esam projekta manuālākajā solī:

  1. Vispirms mēs pielīmējām dažādas ķiveres 3D drukātās daļas.
  2. Lai aizpildītu atstarpes starp līmētajiem gabaliem, mēs pievienojām apdari, izmantojot 3D pildspalvu.
  3. Mēs noslīpējām starpsienas, kas piepildītas ar pildspalvu un ķiveri, lai glezna pēc tam labi noturētos.
  4. Mēs krāsojām ķiveri ar 2 slāņiem: pirmais antracīta melnā krāsā, tuvplānā un otrs primāri zaļš no tālāk, lai iegūtu tumšāk zaļas nokrāsas.
  5. Visbeidzot, mēs ķiveres malā iespiedām mūsu skolas logotipu

Ieteicams: