Turinys:
- 1 veiksmas: reikalavimai 1/3 - Aparatūra
- 2 žingsnis: 2/3 reikalavimai - jūsų grandinės komponentai
- 3 žingsnis: Reikalavimai 3/3 - Programinė įranga
- 4 žingsnis: įvesties grandinė
- 5 žingsnis: išvesties grandinė
- 6 veiksmas: [PASIRENKAMA] Spausdintos grandinės Borad ir litavimo komponentų kūrimas
- 7 žingsnis: SoC sąranka
- 8 žingsnis: C HPS programavimas
- 9 veiksmas: skaitmeninis ADC įsigijimas iš kortelės
- 10 žingsnis: FFT skaičiavimas
- 11 veiksmas: FFT rodymas
- 12 žingsnis: Surinkimas
- 13 žingsnis: garso efektai
- 14 žingsnis: [PASIRENKAMAS] Šalmo gamyba
Video: „Spartan Voice Changer“šalmas: 14 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Sveiki! Esame 4 studentų komanda iš Sorbonos universiteto politechnikos mokyklos:
- Louis Buchert
- Bilal Melehi
- Bao Tinh Piot
- Marco Longépé
Šis projektas yra įgyvendinamas kaip mūsų studijų dalis, jo tikslas - pasinaudoti daugybe priemonių ir parodyti mūsų teorinius pasiekimus.
Garsusis objektas įgauna šalmą, panašų į tam tikro vaizdo žaidimo herojaus, kurio vardas bus prarastas. Dizaino pusėje taip pat turime ekraną, kuriame rodomas iš garsiakalbio sklindančio garso signalo Furjė transformacija. Šios laisvų rankų įrangos paskirtis yra pakeisti operatoriaus balsą realiuoju laiku naudojant daugybę pasirenkamų efektų.
Ugdymo tikslai:
- Fiksuokite garsą iš mikrofono
- Sustiprinkite, filtruokite, skaitmeninkite signalą
- Supraskite signalo FFT
- Rodyti šį FFT ekrane
- Signalo sintezė
- Ištraukite garsą iš garsiakalbio
- Supraskite garso garso efektus (aidas, aidas ir kt.)
Dabar, kai išsiaiškinome pagrindą ir pristatėme projektą, atėjo laikas į jį įsitraukti!
1 veiksmas: reikalavimai 1/3 - Aparatūra
Norėdami sėkmingai sukurti šalmą, mums reikės tam tikros aparatūros, kad paleistume įrenginį.
- „DE0-Nano-SoC“plėtros lenta, sukurta „Terasic + Adafruit“TFT LCD ekrano („Arduino“)
- Prieiga prie 3D spausdintuvo, kad būtų galima pasidaryti šalmą (jei esate universiteto studentas, arčiau savo universiteto, kai kurie turi laboratorijas, prieinamas studentams)
- Kompiuteris su interneto ryšiu ir minimaliu ryšiu (USB, Ethernet). Jūsų kompiuteris taip pat turi turėti stiprų procesorių, nes „Qsys“programų sudarymas užima daug laiko.
- (Nereikalaujama) Spausdintuvas, gaminantis spausdintines plokštes (PCB) iš Gerber failų, siekiant sumažinti grandinės dydį + lituoklis, skirtas sudėti komponentus į PCB.
- (Primygtinai rekomenduojama): gera kava, skirta mėgautis jūsų darbu su mūsų „Instructable“:)
2 žingsnis: 2/3 reikalavimai - jūsų grandinės komponentai
Čia yra jūsų grandinei reikalingi komponentai:
- „Texas Instrument LM386 AB“klasės garso stiprintuvas
- Bandomoji Lenta
- Kabelių rinkinys „Male-Male“, „Male-Female“
- LM358P skaitmeninis-analoginis konverteris (DAC)
- Pranešėjas
- Mažas mikrofonas, naudojamas analoginėje grandinėje
- Žaidimo rezistorių rinkinys nuo 1kOhm iki 220kOhm
- Kondensatorius 1,5 nF
- Kondensatorius 50 nF
- Kondensatorius 100 nF
- Kondensatorius 100uF
- Kondensatorius 220uF
- x4 10uF kondensatoriai
3 žingsnis: Reikalavimai 3/3 - Programinė įranga
Galiausiai, jums reikės programinės įrangos:
- „Quartus 15.1“: supaprastinta versija
- C kompiliatorius (pvz., Gcc)
- Altium PCB dizainui
- „Altera“įterptas SoC rinkinys, skirtas bendrauti su SoC žemėlapiu
- Glaistas
4 žingsnis: įvesties grandinė
Sukurkime grandinę. Naudokite aukščiau pateiktą grandinės paveikslėlį, kad surinktumėte jį ant savo duonos lentos. Taip pat pamatysite „BreadBoard“paveikslėlį ir viduje esančią grandinę, kad pamatytumėte, kaip prijungti kaiščiai. Visa grandinė maitinama 5 V nuolatine srove (DC). Tam galite naudoti 5 V bateriją su USB-B keitikliu arba funkcijų generatoriumi.
Keletas priminimų:
- 5 V maitinimo šaltinis ir žemė yra prijungti prie atskirų horizontalių duonos lentos linijų
- Jei norite lygiagrečiai prijungti 2 komponentus, įdėkite juos į bendrą duonos lentos liniją
- Jei norite prijungti 2 nuoseklius komponentus, komponentai turi turėti tik vieną kaištį bendroje lentos eilutėje.
Nedvejodami žiūrėkite specialią pamoką, kaip naudoti duonos lentą, ir ant jos uždėkite grandinę. Taip pat nepamirškite atidžiai perskaityti LM358P garso stiprintuvo kaiščio padėties (žr. Paveikslėlį aukščiau)
5 žingsnis: išvesties grandinė
Panašios instrukcijos kaip ir 4 veiksme. Keturios įvestys: SDI, o ne CS, SCK, o ne LDAC yra iš jūsų DE0-Nano-Soc plokštės. Kaip juos sugeneruoti, pamatysime vėliau.
Nepamirškite atidžiai perskaityti garso stiprintuvo LM386 kaiščių padėties (žr. Paveikslėlį aukščiau)
6 veiksmas: [PASIRENKAMA] Spausdintos grandinės Borad ir litavimo komponentų kūrimas
Jei jums pasisekė turėti plokštės spausdintuvą arba galite jį naudoti, mes sukursime savo spausdintinę plokštę (PCB). Atminkite, kad šis žingsnis yra neprivalomas. Šis žingsnis yra tik perkelti grandinę iš duonos lentos į PCB.
Jums reikės šių 2 GERBER failų.
Šie failai buvo sukurti „Altium“. Naudokite juos savo PCB spausdintuvo programinėje įrangoje, kad spausdintumėte PCB. Gavę savo PCB, įsitikinkite, kad jūsų PCB yra švari ir ar takeliai yra teisingai atspausdinti.
Dabar čia ateina tikrasis dalykas: litavimas. 2 aukščiau pateiktos nuotraukos yra PCB grandinės žemėlapis. Kiekvienas komponentas turi pavadinimus (R6, C4, MK1 ir kt.). 4 ir 5 žingsnių paveikslėliuose rodomi komponentų parametrai (atsparumas, laidumas..). Įdėkite kiekvieną komponentą iš savo duonos lentos į PCB pagal jų pavadinimus.
Lituodami viską su lituokliu, išbandykite visus komponentus voltmetru ir patikrinkite, ar nėra trumpojo jungimo.
7 žingsnis: SoC sąranka
Kalbant apie SoC sąranką, turėsite paleisti kai kurias komandas ir scenarijus, įtrauktus į SoC įterptąjį paketą terminale. Norėdami tai padaryti, turėsite pridėti $ PATH. PATH yra naudojami terminale sakant, kad ieškote failo kataloguose, kuriuos nurodo kelias, kai vykdote komandą. Norėdami tai padaryti, įveskite šią komandų eilutę:
eksportuoti PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
Tada įveskite komandų eilutę, kad sugeneruotumėte antraštes iš „sof“failo. Sof failą gaunate surinkę savo projektą „Quartus“. Norėdami tai padaryti, įveskite:./generate_header.
8 žingsnis: C HPS programavimas
Šioje dalyje turime suprasti 2 dalykus, būtent perskaityti perskaityti ADC vertę ir parašyti ją SPI.
1. Perskaitykite ADC vertę
Atminties, kurioje yra ADC, adresas nėra tiesiogiai prieinamas, iš tikrųjų kortelėje esanti „Linux“sistema nustato atminties abstrakciją. Norėdami iš tikrųjų pasiekti ADC adresą, naudosime mmap funkciją.
"h2p_lw_spi_addr = virtualioji bazė + ((ilgai nepasirašyta) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (nepasirašyta ilga) (HW_REGS_MASK));"
Ši instrukcija leidžia bazinio adreso pradžioje pridėti poslinkį, kad būtų pasiektas ADC priskirtos atminties adresas, ir gautu adresu atlikti logiką IR atsižvelgti į maskavimą.
Po to programoje reikės tik nukrypti nuo žymeklio, kad gautumėte jo vertę.
2. Į SPI įrašykite ADC vertę
Manipuliacija yra identiška, šį kartą mmap suteikiame poslinkį nusileisti SPI skirtu adresu. Rašant SPI, techninėje dokumentacijoje nurodoma, kad turite parašyti adresu +1 adc reikšmę.
"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"
Ši instrukcija leidžia rašyti į SPI. Iš tikrųjų 4 bitas, taigi 1 << 12, yra bitas, leidžiantis aktyvuoti SPI. Turėdami loginį ARBA, SPI suteikiame ir aktyvinimo bitą, ir ADC vertę.
9 veiksmas: skaitmeninis ADC įsigijimas iš kortelės
Visų pirma, turėsite nustatyti savo kompiuterio „Ethernet“IP adresą per Valdymo skydą -> Tinklas -> „Parmesals“kortelė. Pasirinkite kortelės eterneto sąsają, nuosavybę, ipv4 adresą ir įveskite fiksuotą IP, kaukę ir tt …
Tada prijunkite kortelę iš maitinimo lizdo pusės naudodami mikro USB kabelį. Atidarykite „Quartus“programuotoją ir paleiskite eksportą. Ši manipuliacija bus pakartota po kiekvieno kortelės išjungimo.
Pakeiskite „micro USB“kištukinį kabelį, kad šį kartą galėtumėte prisijungti prie „Ethernet“lizdo. Dabar, naudojant „Putty“, prie kortelės reikės prisijungti naudojant serijinę nuorodą. Konfigūracija matoma nuotraukose, idėja COM5 pakeisti COM, o po to - skaičius, kurį rasite savo įrenginių tvarkytuvėje (dešiniuoju pelės mygtuku spustelėkite „Windows“logotipą, kad jį atidarytumėte).
Paspauskite „Enter“, esate prisijungę.
Informacija, skirta iš naujo paleisti projektą: - Ištaisykite kortelę atitinkantį eterneto ip. - Įjunkite kortelę, kiekvieną kartą įjungus maitinimą, būtina įdėti „programą“į kortelę sudarytą projektą. Tai atliekama per „micro -USB“prievadą. - Kad galėtume rodyti programos rezultatus, naudojame daugiau „micro USB“, bet UART. - Nustatykite slaptažodį (passwd) - Nustatykite IP adresą ifconfig ethxx IPchoice (IP nėra toli nuo kompiuterio etikos) - Sukurkite antraštę pagal Qsys su įterptu terminalu (eksporto kelias) - make - scp l exec žemėlapis - vykdyti pagal glaistai prog
10 žingsnis: FFT skaičiavimas
Norėdami gauti greitą Furjė transformaciją mūsų C programoje, naudosime biblioteką, parašytą Mark Borgerding: Kiss FFT. Biblioteką galite atsisiųsti čia: https://kissfft.sourceforge.net/. Norint modifikuoti ir pritaikyti signalo efektus, signalui reikia taikyti FFT. Jis taip pat gali būti naudojamas rodyti signalo spektrą.
Pirmasis jūsų C programos žingsnis yra priskirti atmintį, kad būtų išsaugotas FFT rezultatas. Atminties dydis priklauso nuo taškų skaičiaus, naudojamo FFT apskaičiuoti. Kuo daugiau taškų gausite, tuo tikslesnis bus FFT. Tačiau programa veiks lėčiau ir sunaudos daugiau atminties. Atminkite, kad iš funkcijos kiss_fft gausite du masyvus: funkcijos įvestį ir išvestį (cx_in ir cx_out)
Kai mūsų masyvas užpildomas naujomis FFT reikšmėmis, ty kai r = Win - 1, mes apdorojame FFT. Kalbant apie ekraną, mes rodome tik teigiamą spektro dalį, nes yra neigiamos ir teigiamos dalies simetrija.
Kalbant apie horizontaliąją ašį, mes sumažiname piko vertes 100*aukščio/(aukščio²), kad atskirtume pagrindines dažnių viršūnes.
Mes naudojame „usleep“sistemos iškvietimą, kad nustatytume ADC verčių skaitymo dažnį. Šis dažnis šiuo metu nustatytas 1, 5 Hz.
11 veiksmas: FFT rodymas
Remdamiesi pavyzdžiu, pateiktu „Adafruit“TFT LCD ekrane, kurį galite rasti čia: https://www.terasic.com/downloads/cd-rom/de0-nano-s… mes užprogramavome savo valdybos NIOS, kad jis galėtų skaityti ADC reikšmę.
Taigi ADC registras yra bendrinamas tarp NIOS ir HPS, nes ADC reikšmės bus naudojamos FFT rodymui NIOS ekrane, o tos pačios vertės bus parašytos SPI, kad būtų išvestos iš plokštės ir galiausiai konvertuojamos DAC, kad gautų analoginį signalą.
12 žingsnis: Surinkimas
Mes beveik baigėme! Jums reikės surinkti visas projektoriaus dalis (įėjimo grandinę, išvesties grandinę ir plokštę). Būtinai prijunkite dalis prie tinkamų kaiščių pagal „Quartus“projektą.
- Įvesties grandinė siųs mikrofono užfiksuotą garso signalą, sustiprintą, filtruotą ir kompensuotą.
- Kortelėje esanti programa C nuskaitys ADC reikšmes, kaip matėme anksčiau, ir parašys jas ant SPI, kad galėtume atkurti kortelės GPIO vertę.
- Tada SPI išvesties GPIO perduos informaciją, kurią dekoduos mūsų DAC ir sustiprins bėgimu, kad pasiektų garsiakalbį.
13 žingsnis: garso efektai
Liko tik garso efektai.
Galimi efektai yra šie:
- Aukšto dažnio filtras
- Žemo dažnio filtras
- …
Vienu mygtuku galite perjungti efektus. Šis mygtukas pakeis mūsų C programos kintamąjį, todėl jis gali pritaikyti tinkamą efektą.
14 žingsnis: [PASIRENKAMAS] Šalmo gamyba
Štai mes atliekame rankinį projekto žingsnį:
- Pirmiausia klijavome skirtingas šalmo 3D spausdintas dalis.
- Norėdami užpildyti tarpus tarp klijuotų gabalų, 3D rašikliu pridėjome apdailą.
- Rašikliu ir šalmu užpildytas tarpines vietas šlifavome taip, kad vėliau paveikslas gerai laikytųsi.
- Mes nudažėme šalmą dviem sluoksniais: pirmasis antracito juodos spalvos, iš arti, o antrasis - žalia iš toliau, kad suteiktų tamsesnės žalios spalvos atspalvius.
- Galiausiai ant šalmo atspausdinome savo mokyklos logotipą
Rekomenduojamas:
„Covid“saugos šalmas 1 dalis: „Tinkercad“grandinių įvadas!: 20 žingsnių (su nuotraukomis)
„Covid“saugos šalmas 1 dalis: „Tinkercad“grandinių įvadas!: Sveiki, drauge! Šioje dviejų dalių serijoje sužinosime, kaip naudotis „Tinkercad“grandinėmis - linksma, galinga ir edukacinė priemonė, skirta sužinoti, kaip veikia grandinės! Vienas iš geriausių mokymosi būdų yra tai padaryti. Taigi, pirmiausia suprojektuosime savo projektą:
3D spausdinamas disko šalmas!: 11 žingsnių (su nuotraukomis)
3D spausdinamas disko šalmas!: Įkvėptas klasikinio „Daft Punk“„Thomas“šalmo. Apšvieskite kambarį ir pavydėkite visiems savo draugams su šiuo nuostabiu „Arduino“varomu diskotekos šalmu! Norėdami užbaigti šį projektą, jums reikės prieigos prie 3D spausdintuvo ir lituoklio. Jei norite
„Voice Changer Hack“„pasidaryk pats“sintezatoriams: 9 žingsniai (su nuotraukomis)
„Voice Changer Hack for DIY Synths“: tiems, kurie seka mano naujausius „ibles“- žinosite, kad pastaraisiais metais kūriau keletą 555 laikmačių sintezatorių. Neseniai per kelionę į vietinį perdirbimo sandėlį radau vaikų balso keitiklį. Tai tipas, kuriame kalbate su mikrofonu
„Pasidaryk pats“šalmas „Bluetooth“laisvų rankų įranga: 11 žingsnių (su nuotraukomis)
„Pasidaryk pats“šalmas „Bluetooth“laisvų rankų įranga: Tai labai lengvas ir labai pigus „Pasidaryk pats“vadovas, kaip pasidaryti „Bluetooth“ausines motociklo šalmui ar bet kokio tipo šalmui, prie kurio norite jį naudoti. Taigi taip atsitiko pagal posakį „būtinybė yra motina
„Pimped Out“megafono šalmas: 11 žingsnių (su nuotraukomis)
„Pimped Out“megafono šalmas: čia aš parodysiu, kaip galite labai lengvai pakeisti megafoną, kad jis priimtų 1/8 colio įvestį iš „iPod“, ir pritvirtinti megafoną ant motociklo šalmo. Gautas „mega šalmas“suteikia didžiausią garsinį kvailumą leidžia įstatymas