Sonic Bow Tie, av David Boldevin Engen: 4 Steps (with Pictures)
Sonic Bow Tie, av David Boldevin Engen: 4 Steps (with Pictures)
Anonim
Image
Image

En kompakt fluga, som kontinuerligt kan visa omgivande ljud i fyra olika frekvenser på sina två speglade 4x5 LED -matriser

Denna handledning kommer att gå igenom hur man gör en fluga som får dig att sticka ut i vilken folkmassa som helst.

Vad du behöver för detta projekt:

1 Arduino Pro Micro eller en liknande storlek Arduino som körs på 16MHz

40 3 mm lysdioder

1 enkel knapp

1 Electret -mikrofon

1 uppladdningsbart 3,7V 800mAh 25C 1-cell LiPo-batteri

10 100Ω motstånd

1 10kΩ motstånd

1 220Ω motstånd

Tillgång till en PCB -maskin (kretskort)

En billig justerbar krokad/fäst fluga eller bara det justerbara krok/klämbandet

Steg 1: Skriv ut kretskortet

Skriv ut kretskortet
Skriv ut kretskortet

När du skriver ut ett kretskort kan du behöva anpassa.cmp -filen för att passa tillverkarens krav. Men tavlan i originalet gjordes med en ganska felaktig metod, så de flesta tillverkare kommer sannolikt att kunna producera kretskortet utan förändringar. På bilderna kan du se fram- och baksidan av kretskortet. Konstruktionen förutsätter att lödhål inte innehåller vias och att vias bara kan placeras separat (i kretskort med mer än en sidavia är anslutningar mellan lager).

Varje ljus riktas till individuellt med hjälp av en teknik som kallas Charlieplexing som möjliggör mycket färre ingångsnoder än en vanlig LED -matris, nackdelen är att endast på ljus kan slås på i taget, vilket sätter en gräns för hur stor matrisen kan vara och utan märkbar blinkning. Charliplexing fungerar genom att istället för att ha två signaler 1 och 0, har det tre 1, 0 och Z. Där Z fungerar som en öppen krets, genom att ha mycket hög impedans. Så varje lampa tänds genom att ha noden i en kombination av 1, 0, Z, Z, Z, vilket innebär att strömmen bara kan gå från en nod till en i taget.

Steg 2: Lödning av allt tillsammans

Lödning av allt tillsammans
Lödning av allt tillsammans

Vid lödning av lamporna på kretskortet är det mycket viktigt att konsekvent löda den positiva sidan av lysdioden till rutorna och den negativa till cirkeln. Om du gör det motsatt kommer adressen i koden att tända fel lampor, och inkonsekvens gör att flera lampor tänds av samma stimuli.

Löd sedan på de 10 100Ω motstånden på framsidan av fluga.

Anslut sedan de andra bitarna på det sätt som visas i kretsschemat, det är okej att lödda batteriet direkt till Arduino eftersom det laddas när arduino är ansluten via USB. Innan du limmar alla bitarna på baksidan av kretskortet bör du testa för misstag i matrisen.

Steg 3: Ladda upp kod och felsökning

Ladda upp koden ovan. När den har laddats upp trycker du på knappen för att aktivera den. Nu ska en triangelform som pekar inåt rulla upp eller ner på fluga.

Om du inte gör det, använd funktionen Blink (LED), som tar en ingång på ett nummer 1-20, för varje ljus individuellt i medan (mode = 0) slingan i tomrumsslingan medan du kommenterar resten av det medan slinga.

void loop () {

medan (läge == 0) {

Blink (1); // Ett efter ett test för att se om lamporna fungerar som de ska och vilka som inte fungerar

// Blink (2); // nästa steg ända till 20

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

läge = 1;

Av();

turnOn (1);

fördröjning (200);

ha sönder;

}

Av(); */ // detta avsnitt kommenteras vid felsökning

}

…..

Felsökning:

Om du har olika lampor på varje sida är det något fel med lödningen och du bör avlöda de påverkade lamporna och göra steg 2 igen.

Om par med 2 lampor är släckta kan det saknas vias.

Om två lampor alltid tänds tillsammans och är mindre ljusa än andra, har en lödts på fel sätt.

Om varje lampa tänds individuellt, men inte följer mönstret som beskrivs i instruktionerna högst upp i koden har du förstört steg 2.

andra problem kan uppstå på grund av dåliga anslutningar eller kortslutning på kretskortet.

Varning: Detta segment är mycket tekniskt och onödigt för att göra fluga

Jag har skrivit spektrumanalyskoden specifikt för en Arduino med en 16MHz klockfrekvens. Så jag är inte helt säker på hur bra det kommer att fungera på andra system, det kan få alla band att reagera väldigt annorlunda men det kanske inte förändras så mycket.

Det fungerar genom att ta 60 sampel på cirka 6, 7 ms vilket är en samplingsfrekvens på ungefär 8, 9 kHz. Analysera dem sedan på 4 olika sätt och ge 4 olika frekvenser.

Den högsta frekvensanalysen fungerar genom att jämföra vartannat prov med nästa, kvadrera värdet och summera det för varje par prover. Detta ger den högsta effekten runt halva samplingsfrekvensen så det är ett bandpassfilter runt 4, 4kHz.

En grov matematisk formel för analys:

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

Nästa fungerar väldigt likadant, men den lägger först till två prover åt gången. Detta ger effektivt hälften av samplingsfrekvensen för det sista systemet samtidigt som de högsta frekvenserna filtreras bort och skapar ett bandpassfilter runt 2, 2 kHz.

Nästa system gör samma sak men istället för att lägga till 2 samplingar åt gången lägger det till 10 som blir ett bandpassfilter för 440Hz.

Den sista analysen summerar de första 30 samplen och jämför det med summan av de sista 30. Detta blir faktiskt ett bandpassfilter för 150Hz.

Steg 4: Limma ihop allt

Limma ihop allt
Limma ihop allt

Det är viktigt att hålla Arduino separerad från kretskortet eftersom det kan orsaka kortslutning om de kommer i kontakt. Detta kan göras genom att limma ihop dem med eltejp mellan. Det är också fördelaktigt att ha batteriet på ena vingen av fluga och mikrokontrollen till den andra för balans. Du bör försöka hålla mitten av fluga ganska tom eftersom det är här du ansluter nackbandet, med eventuellt undantag för mikrofonen eftersom den ska sticka ut några millimeter och peka mot matstrupen, det betyder att när du pratar alla kommer att se det tydligaste.

Kom ihåg: på baksidan av fluga funktionen är mycket viktigare än estetik eftersom ingen kommer att se detta.

Rekommenderad: