Innholdsfortegnelse:

Sonic Bow Tie, av David Boldevin Engen: 4 trinn (med bilder)
Sonic Bow Tie, av David Boldevin Engen: 4 trinn (med bilder)

Video: Sonic Bow Tie, av David Boldevin Engen: 4 trinn (med bilder)

Video: Sonic Bow Tie, av David Boldevin Engen: 4 trinn (med bilder)
Video: Sonic Bow Tie 2024, November
Anonim
Image
Image

En kompakt sløyfe, som kontinuerlig kan vise den omkringliggende lyden i fire forskjellige frekvenser på sine to speilede 4x5 LED -arrays

Denne opplæringen vil gå gjennom hvordan du lager en sløyfe som får deg til å skille seg ut i en mengde.

Dette trenger du for dette prosjektet:

1 Arduino Pro Micro eller en Arduino av samme størrelse som kjører på 16MHz

40 3 mm lysdioder

1 enkel knapp

1 Electret -mikrofon

1 oppladbart 3,7V 800mAh 25C 1-cellers LiPo-batteri

10 100Ω motstander

1 10kΩ motstand

1 220Ω motstand

Tilgang til en PCB -maskin (kretskort)

Et billig justerbart krok/fest-slips eller bare det justerbare kroken/klips-halsbåndet

Trinn 1: Skriv ut kretskortet

Skriv ut kretskortet
Skriv ut kretskortet

Når du skriver ut et kretskort, må du kanskje tilpasse.cmp -filen til produsentens krav. Imidlertid ble tavlen i originalen laget med en ganske unøyaktig metode, så de fleste produsenter vil mest sannsynlig kunne produsere PCB uten endringer. På bildene kan du se forsiden og baksiden av kretskortet. Designet forutsetter at loddehull ikke inkluderer vias, og at vias bare kan plasseres separat (i PCB med mer enn en side vias er forbindelser mellom lag).

Hvert lys er adressert til individuelt ved hjelp av en teknikk kalt Charlieplexing som gir mye færre inngangsnoder enn en vanlig LED -matrise, ulempen er at bare på lys kan slås på om gangen, noe som setter en grense for hvor stor matrisen kan være og uten merkbar blinking. Charliplexing fungerer ved å i stedet for å ha to signaler 1 og 0, har det tre 1, 0 og Z. Hvor Z fungerer som en åpen krets, ved å ha veldig høy impedans. Så hvert lys slås på ved at noden er i en kombinasjon av 1, 0, Z, Z, Z, noe som betyr at strømmen bare kan gå fra en node til hverandre om gangen.

Trinn 2: Lodding alt sammen

Lodding alt sammen
Lodding alt sammen

Ved lodding av lysene på kretskortet er det veldig viktig å konsekvent lodde den positive siden av lysdioden til rutene og den negative til sirkelen. Hvis du gjør det motsatt, vil adressen i koden slå på feil lys, og inkonsekvens vil føre til at flere lys slås på av de samme stimuliene.

Deretter loddes de 10 100Ω motstandene foran på sløyfen.

Koble deretter de andre brikkene på den måten som er vist i kretsdiagrammet, det er greit å lodde batteriet direkte til Arduino, da det lades opp når arduinoen er koblet til via USB. Før du limer alle bitene på baksiden av kretskortet, bør du teste for feil i matrisen.

Trinn 3: Last opp kode og feilsøking

Last opp koden ovenfor. Når den er lastet opp, trykker du på knappen for å aktivere den. Nå skal en trekantform som peker innover, bla opp eller ned på sløyfen.

Hvis du ikke gjør det, kan du bruke Blink (LED) -funksjonen, som tar en inngang på et tall 1-20, for hvert lys individuelt i mens (modus = 0) sløyfe i hulrommet mens du kommenterer resten av det mens Løkke.

void loop () {

mens (modus == 0) {

Blink (1); // En etter en test for å se om lysene fungerer som de skal og hvilke som ikke fungerer

// Blink (2); // neste trinn helt til 20

/* if (digitalRead (Button) == 0) {

modus = 1;

Av();

turnOn (1);

forsinkelse (200);

gå i stykker;

}

Av(); */ // denne delen kommenteres under feilsøking

}

…..

Feilsøking:

Hvis du har forskjellige lys på hver side, er det noe galt med lodding, og du bør desolde de berørte lysene og gjøre trinn 2 igjen.

Hvis par med 2 lys er slått av, kan det mangle vias.

Hvis to lys alltid tennes sammen og er mindre lyse enn andre, har det ene blitt loddet på feil måte.

Hvis hvert lys tennes individuelt, men ikke følger mønsteret som er beskrevet i instruksjonene øverst i koden, har du ødelagt trinn 2.

andre problemer kan oppstå på grunn av dårlige tilkoblinger eller kortslutning på kretskortet.

Advarsel: Dette segmentet er veldig teknisk og unødvendig for å lage sløyfe

Jeg har skrevet spektrumanalysekoden spesielt for en Arduino med en 16MHz klokkefrekvens. Så jeg er ikke helt sikker på hvor godt det vil fungere på andre systemer, det kan føre til at alle båndene reagerer veldig annerledes, men det endrer kanskje ikke så mye.

Det fungerer ved å ta 60 prøver på omtrent 6, 7ms, som er en samplingsfrekvens på omtrent 8, 9kHz. Deretter analyserer du dem på 4 forskjellige måter og gir 4 forskjellige frekvenser.

Den høyeste frekvensanalysen fungerer ved å sammenligne annenhver prøve med den neste, kvadrere verdien og summere den for hvert par prøver. Dette gir den høyeste effekten rundt halve samplingsfrekvensen, så det er et båndpassfilter rundt 4, 4 kHz.

En grov matematisk formel for analyse:

Σ (kvadrat (x [2n-1] -x [2n]))

Den neste fungerer veldig likt, men den legger først til to prøver om gangen. Dette gir effektivt halvparten av samplingsfrekvensen til det siste systemet mens du filtrerer bort de høyeste frekvensene og skaper et båndpassfilter rundt 2, 2 kHz.

Det neste systemet gjør det samme, men i stedet for å legge til 2 sampler om gangen legger det til 10 som blir et båndpassfilter for 440Hz.

Den siste analysen summerer de første 30 prøvene og sammenligner den med summen av de siste 30. Dette blir effektivt et båndpassfilter for 150Hz.

Trinn 4: Lim alt sammen

Lim alt sammen
Lim alt sammen

Det er viktig å holde Arduino atskilt fra kretskortet, da det kan forårsake kortslutning hvis de kommer i kontakt. Dette kan gjøres ved å lime dem sammen med elektrisk tape mellom. Det er også fordelaktig å ha batteriet på den ene vingen av sløyfe og mikrokontrolleren til den andre for balanse. Du bør prøve å holde midten av slipset ganske tomt, da det er her du kobler nakkebåndet, med mulig unntak av mikrofonen da den skal stikke ut noen millimeter og peke mot spiserøret, vil dette bety at når du snakker alle vil se det tydeligst.

Husk: på baksiden av sløyfe er funksjonen langt viktigere enn estetikk, da ingen vil se dette.

Anbefalt: