Indholdsfortegnelse:
- Trin 1: Krav 1/3 - Hardware
- Trin 2: Krav 2/3 - Komponenter til dit kredsløb
- Trin 3: Krav 3/3 - Software
- Trin 4: Indgangskredsløb
- Trin 5: Output Circuit
- Trin 6: [VALGFRIT] Oprettelse af printkredsløb og loddekomponenter
- Trin 7: SoC -opsætning
- Trin 8: Programmering af C HPS
- Trin 9: Digital erhvervelse af ADC fra kortet
- Trin 10: FFT -beregning
- Trin 11: Visning af FFT
- Trin 12: Montering
- Trin 13: Lydeffekter
- Trin 14: [VALGFRIT] Fremstilling af hjelmen
Video: Spartan Voice Changer Hjelm: 14 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Hej! Vi er et team på 4 studerende fra Polytechnic school ved Sorbonne University:
- Louis Buchert
- Bilal Melehi
- Bao Tinh Piot
- Marco Longépé
Dette projekt realiseres som en del af vores undersøgelser og har til formål at tage en række værktøjer i hånden samt demonstrere vores teoretiske resultater.
Det berømte objekt får udseende af en hjelm, der ligner helten i et bestemt videospil, hvis navn vil gå tabt. Til designsiden har vi også en skærm, der viser Fourier -transformationen af lydsignalet, der kommer ud af højttaleren. Formålet med dette headset er at ændre telefonens stemme i realtid ved hjælp af en række valgbare effekter.
Uddannelsesmål:
- Optag lyden fra en mikrofon
- Forstærke, filtrere, digitalisere signalet
- Realiser FFT for et signal
- Vis denne FFT på en skærm
- Signalsyntese
- Tag en lyd ud af en højttaler
- Realiser effekter på lydlyden (efterklang, ekko osv.)
Nu hvor vi har lagt baggrunden og præsenteret projektet, er det tid til at få styr på det!
Trin 1: Krav 1/3 - Hardware
For at kunne bygge din hjelm med succes, skal vi bruge noget hardware til at køre enheden.
- DE0-Nano-SoC Development Board af Terasic + Adafruit TFT LCD-skærm (Arduino)
- Adgang til en 3D -printer for at gøre hjelmen (Hvis du er en universitetsstuderende tættere på dit universitet, har nogle laboratorier tilgængelige for studerende)
- En computer med en internetforbindelse og et minimum af tilslutningsmuligheder (USB, Ethernet). Din computer skal også have en stærk processor, da kompilering af programmer på Qsys tager meget tid.
- (Ikke påkrævet) En printer, der laver printkort (PCB) fra Gerber -filer for at krympe kredsløbets størrelse + et loddejern for at sætte komponenterne på printkortet.
- (Stærkt anbefalet): En god kaffe til at nyde dit arbejde med vores Instructable:)
Trin 2: Krav 2/3 - Komponenter til dit kredsløb
Her er de nødvendige komponenter til dit kredsløb:
- Texas Instrument LM386 AB klasse lydforstærker
- Brødbræt
- Sæt med han-han, han-hun-kabler
- LM358P Digital-til-Analoh-konverter (DAC)
- Højttaler
- Lille mikrofon brugt i analogt kredsløb
- Et spil sæt af modstande fra 1kOhm til 220kOhm
- Kondensator 1.5nF
- Kondensator 50nF
- Kondensator 100nF
- Kondensator 100uF
- Kondensator 220uF
- x4 Kondensatorer 10uF
Trin 3: Krav 3/3 - Software
Sidst men ikke mindst skal du bruge software:
- Quartus 15.1: Lite version
- En C -kompilator (f.eks. Gcc)
- Altium til PCB -design
- Alteras SoC -integrerede suite til kommunikation med SoC -kortet
- Kitt
Trin 4: Indgangskredsløb
Lad os bygge kredsløbet. Brug ovenstående billede af kredsløbet for at samle det på dit brødbræt. Du vil også se billedet af brødbrættet og kredsløbet inde for at se, hvordan stifter er forbundet. Hele kredsløbet drives med en 5V jævnstrøm (DC). Til dette kan du bruge et 5V batteri med en USB-B konverter eller en funktionsgenerator.
Nogle påmindelser:
- 5V strømforsyning og jorden er forbundet på separate vandrette linjer på brødbrættet
- Hvis du vil forbinde 2 komponenter parallelt, skal du sætte dem i en fælles linje på brødbrættet
- Hvis du vil tilslutte 2 serielle komponenter, skal komponenterne kun have en pin i en fælles linje på brødbrættet.
Tøv ikke med at se en dedikeret vejledning i, hvordan du bruger et brødbræt og opbygger et kredsløb på det. Glem heller ikke at læse pin -positionen på LM358P lydforstærkeren omhyggeligt (se billedet ovenfor)
Trin 5: Output Circuit
Nøjagtig de samme instruktioner som trin 4. De fire indgange: SDI, ikke CS, SCK, ikke LDAC er fra dit DE0-Nano-Soc-kort. Vi vil senere se, hvordan vi genererer dem.
Glem ikke at læse pin -positionerne på LM386 lydforstærkeren omhyggeligt (se billedet ovenfor)
Trin 6: [VALGFRIT] Oprettelse af printkredsløb og loddekomponenter
Hvis du er så heldig at eje en printkortprinter eller i stand til at bruge en, vil vi oprette vores eget printkort (PCB). Bemærk, at dette trin er valgfrit. Dette trin består kun i at flytte dit kredsløb fra et brødbræt til et printkort.
Du skal bruge disse 2 GERBER -filer.
Disse filer blev lavet på Altium. Brug dem på din PCB -printersoftware for at udskrive dit printkort. Når du har fået dit printkort, skal du sørge for, at dit printkort er rent, og at sporene er korrekt udskrevet.
Nu kommer den rigtige deal: Lodning. De 2 billeder ovenfor er kortet over kredsløbet på printkortet. Hver komponent har navne (R6, C4, MK1 osv.). Billeder i trin 4 og 5 viser komponentparametrene (modstand, konduktans..). Placer hver komponent fra dit brødbræt til printkortet efter deres navne.
Når du har loddet alt med dit loddejern, skal du teste alle komponenter med et voltmeter for at kontrollere, om der er kortslutning.
Trin 7: SoC -opsætning
Med hensyn til SoC -opsætningen skal du køre nogle kommandoer og scripts, der er inkluderet i SoC's integrerede suite i en terminal. For at gøre dette skal du tilføje nogle $ PATH. PATH bruges inden for en terminal til at sige at søge efter en fil i bibliotekerne givet af sti, når du kører en kommando. For at gøre det skal du skrive følgende kommandolinje:
eksport PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
Indtast derefter kommandolinjen for at generere overskrifter fra en sof -fil. Du får sof -filen ved at kompilere dit projekt på Quartus. For at gøre det skal du skrive:./generate_header.
Trin 8: Programmering af C HPS
Vi skal indse 2 ting i denne del, nemlig læse læse værdien af ADC og skrive den i SPI.
1. Læs værdien af ADC
Adressen til hukommelsen, hvor ADC'en er indeholdt, er ikke direkte tilgængelig. Faktisk opretter linux -systemet på kortet en abstraktion af hukommelsen. For virkelig at få adgang til ADC -adressen vil vi bruge mmap -funktionen.
"h2p_lw_spi_addr = virtual_base + ((usigneret lang) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (usigneret lang) (HW_REGS_MASK));"
Denne instruktion gør det muligt at tilføje en forskydning i begyndelsen af basisadressen for at nå adressen til den hukommelse, der er tildelt til ADC'en, og for at udføre den resulterende adresse en logik OG for at tage hensyn til maskeringen.
Derefter vil det kun være nødvendigt at aflæse markøren i programmet for at opnå dens værdi.
2. Skriv værdien af ADC'en i SPI'en
Manipulationen er identisk, denne gang giver vi mmap offset til at lande på adressen tildelt af SPI. Mens du skriver i SPI'en, specificerer den tekniske dokumentation, at du skal skrive til adressen + 1 værdien af adc.
"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"
Denne instruktion giver dig mulighed for at skrive til SPI'en. Bit 4, så 1 << 12, er faktisk den bit, der gør det muligt at aktivere SPI'en. Med en logisk OR giver vi derfor både aktiveringsbiten og værdien af ADC'en til SPI'en.
Trin 9: Digital erhvervelse af ADC fra kortet
Først og fremmest skal du indstille Ethernet -IP -adressen på din computer via Kontrolpanel -> Netværk -> Kortparmesaler. Vælg ethernet -interface for kortet, ejendommen, ipv4 -adressen, og indtast en fast IP, en maske osv …
Tilslut derefter kortet fra strømstikket med mikro -USB -kablet. Åbn Quartus -programmøren og start eksporten. Denne manipulation gentages efter hver strømafbrydelse af kortet.
Skift mikro -USB -stikket for at tilslutte denne gang ved siden af Ethernet -stikket. Nu med Putty bliver det nødvendigt at oprette forbindelse til kortet via et serielt link. Konfigurationen er synlig på billederne, ideen er at erstatte COM5 med COM efterfulgt af det nummer, du kan finde i din enhedshåndtering (højreklik på Windows -logoet for at åbne det).
Tryk på enter, du er forbundet.
Info for at genstarte projekt: - Fix ethernet ip svarende til kortet - Tænd kortet, hver gang du tænder for strømmen, er det nødvendigt at sætte med "program" under quartus det projekt, der er samlet på kortet. Dette gøres via mikro -USB -porten - For at kunne vise resultatet af programmet bruger vi mere mikro -USB, men UART - Med kitt konfigureret til seriel COM5 (eller 6 ur gestinnaire periph) Tilslut til kortet. - Indstil en adgangskode (passwd) - Indstil IP -adresse ifconfig ethxx IPchoice (IP ikke langt fra den for pc'ens eth) - Generer headeren i henhold til Qsys med terminalen indlejret (eksport PATH) - make - scp l exec i kort - udfør under kitt prog
Trin 10: FFT -beregning
For at få Fast Fourier Transform i vores C -program vil vi bruge et bibliotek skrevet af Mark Borgerding: Kiss FFT. Du kan downloade biblioteket her: https://kissfft.sourceforge.net/. Anvendelse af en FFT på et signal er nødvendig for at ændre og anvende signaleffekter. Det kan også tjene til at vise spektret af et signal.
Første trin i dit C -program består i at allokere hukommelse for at gemme FFT -resultatet. Hukommelsens størrelse afhænger af antallet af punkter, der bruges til at beregne FFT. Jo flere du har point, jo mere præcis vil FFT. Programmet kører dog langsommere og bruger mere hukommelse. Bemærk, at du får to arrays fra kiss_fft -funktionen: input og output fra funktionen (cx_in og cx_out)
Når vores array er fyldt med nye FFT -værdier, dvs. når r = Win - 1, behandler vi FFT. Med hensyn til displayet viser vi kun den positive del af spektret, da der er en symmetri mellem den negative del og den positive del.
Med hensyn til den vandrette akse reducerer vi topværdier med 100*højde/(højde²) for at skelne mellem hovedfrekvensernes toppe.
Vi bruger systemkaldet usleep for at definere en læsefrekvens for ADC -værdierne. Denne frekvens er i øjeblikket indstillet til 1, 5 Hz.
Trin 11: Visning af FFT
Baseret på et eksempel, giv på Adafruit TFT LCD-skærmen tilgængelig her: https://www.terasic.com/downloads/cd-rom/de0-nano-s… vi har programmeret NIOS i vores bestyrelse, så han kan læse ADC -værdien.
Så ADC -registret deles mellem NIOS og HPS, fordi ADC -værdierne vil blive brugt til at vise FFT på NIOS -skærmen, og de samme værdier vil blive skrevet på SPI'en for at blive udsendt af tavlen og til sidst konverteres af DAC for at få et analogt signal.
Trin 12: Montering
Vi er næsten færdige! Du skal samle alle dele af projet (indgangskredsløb, udgangskredsløb og tavlen). Sørg for at tilslutte delene til korrekte stifter i henhold til Quartus -projektet.
- Indgangskredsløbet sender lydsignalet, der er fanget af mikrofonen, forstærket, filtreret og forskudt.
- Programmet C, der findes på kortet, læser værdierne for ADC'en, som vi har set tidligere, og skriver den på SPI'en, så vi kan gendanne værdien på kortets GPIO.
- Derefter sender output GPIO fra SPI'en de oplysninger, der vil blive afkodet af vores DAC og forstærket ved at køre for at nå højttaleren.
Trin 13: Lydeffekter
Det eneste skridt tilbage er lydeffekter.
Tilgængelige effekter er:
- Højfrekvent filter
- Lavfrekvent filter
- …
Du kan skifte mellem effekter takket være en knap. Denne knap ændrer en variabel i vores C -program, så den kan anvende den rigtige effekt.
Trin 14: [VALGFRIT] Fremstilling af hjelmen
Her er vi i det mest manuelle trin i projektet:
- Først limede vi de forskellige 3D -trykte dele af hjelmen.
- For at udfylde hullerne mellem de limede stykker tilføjede vi en finish ved hjælp af en 3D -pen.
- Vi polerede mellemrummet fyldt med pennen og hjelmen mere generelt, så maleriet holder godt bagefter.
- Vi malede hjelmen med 2 lag: Den første i antracitsort, tæt på, og den anden primærgrøn fra videre for at give nuancer af mørkere grøn.
- Endelig trykte vi logoet på vores skole på siden af hjelmen
Anbefalede:
Glowtrooper: en interaktiv Stormtrooper -hjelm: 5 trin (med billeder)
Glowtrooper: en interaktiv Stormtrooper -hjelm: Hej fyre! I dag har jeg en hurtig instruktion i, hvordan du bygger en interaktiv Star Wars Stormtrooper-lampe, komplet med flerfarvede lys og et funktionelt 8-trigger soundboard. Håber alle instruktionerne er lette at læse og bruge, og håber
Voice Changer Hack til DIY Synths: 9 trin (med billeder)
Voice Changer Hack til DIY Synths: For dem, der har fulgt mine seneste 'ibles - vil du vide, at jeg har bygget et par 555 timersynths for sent. For nylig under en tur til mit lokale genbrugsdepot fandt jeg en stemmeskifter for børn. Det er typen, hvor man taler til en mikrofon
DIY hjelm Bluetooth -headset: 11 trin (med billeder)
DIY hjelm Bluetooth -headset: Dette er en super let og superbillig gør det selv -guide til, hvordan du laver et Bluetooth -headset til din motorcykelhjelm eller hvilken som helst hjelmtype, du vil bruge denne på. Så det var det, der sker ifølge ordene " NØDVENDIGHED ER MOTEN
Project 2 Smart-Hjelm: 6 trin (med billeder)
Projekt 2 Smart-hjelm: Vi, Benoot Sven, Staelens Lennert og Dujardin Laurens, skulle lave et projekt til skolen. Vi skulle arbejde sammen med en studerende fra IPO (Industrial Product Design). Han kom på ideen om at lave en smart motorcykelhjelm. Han lavede designet af
TECHNO VIKING! LED -horn på en Space Viking -hjelm: Volumenindikator + Transucent Viking -hjelm: 6 trin
TECHNO VIKING! LED -horn på en Space Viking -hjelm: Volumenindikator + Transucent Viking -hjelm: Ja! Dette er en hjelm til Space Vikings. *** Opdatering, dette skal omdøbes til Techno Viking -hjelm *** Men det var oktober 2010, og jeg lærte først lige om Techno Viking i dag. Godt bag meme -kurven. Whateva 'Her er han med højere produktivitet