Sonic Bow Tie, door David Boldevin Engen - Ajarnpa
Sonic Bow Tie, door David Boldevin Engen - Ajarnpa
Anonim
Image
Image

Een compacte vlinderdas, in staat om het omgevingsgeluid continu in vier verschillende frequenties weer te geven op zijn twee gespiegelde 4x5 LED-arrays

In deze tutorial wordt uitgelegd hoe je een vlinderdas maakt waarmee je opvalt in elke menigte.

Wat heb je nodig voor dit project:

1 Arduino Pro Micro of een Arduino van vergelijkbare grootte die werkt op 16MHz

40 LED's van 3 mm

1 simpele knop

1 Electret-microfoon

1 oplaadbare 3.7V 800mAh 25C 1-cel LiPo-batterij

10 100Ω weerstanden

1 10kΩ weerstand

1 220Ω weerstand

Toegang tot een PCB-machine (Printed Circuit Board)

Een goedkope verstelbare gehaakte/clip-on vlinderdas of gewoon de verstelbare haken/clip-on nekband

Stap 1: Print de printplaat

Print de printplaat
Print de printplaat

Bij het printen van een printplaat moet u mogelijk het.cmp-bestand aanpassen aan de eisen van de fabrikant. Het bord in het origineel is echter gemaakt met behulp van een vrij onnauwkeurige methode, dus de meeste fabrikanten zullen hoogstwaarschijnlijk de PCB zonder aanpassingen kunnen produceren. Op de foto's ziet u de voor- en achterkant van de printplaat. Het ontwerp gaat ervan uit dat soldeergaten geen via's bevatten en dat via's alleen afzonderlijk kunnen worden geplaatst (in PCB's met meer dan één zijde via's zijn verbindingen tussen lagen).

Elk licht is individueel gericht met behulp van een techniek genaamd Charlieplexing, waardoor er veel minder ingangsknooppunten zijn dan een normale LED-matrix, het nadeel is dat er alleen licht tegelijk kan worden ingeschakeld, wat een limiet stelt aan hoe groot de array kan zijn en zonder merkbaar knipperen. Charliplexing werkt door in plaats van twee signalen 1 en 0 te hebben, het heeft drie 1, 0 en Z. Waar Z werkt als een open circuit, door een zeer hoge impedantie te hebben. Dus elk licht wordt ingeschakeld door het knooppunt in een combinatie van 1, 0, Z, Z, Z te hebben, wat betekent dat de stroom slechts van het ene knooppunt naar het andere tegelijk kan gaan.

Stap 2: Alles samen solderen

Alles samen solderen
Alles samen solderen

Bij het solderen van de lampjes op de print is het erg belangrijk om de positieve kant van de LED consequent aan de vierkanten en de negatieve aan de cirkel te solderen. Als u het tegenovergestelde doet, zal het adres in de code de verkeerde lichten aandoen, en inconsistentie zal ervoor zorgen dat meerdere lichten worden ingeschakeld door dezelfde stimuli.

Soldeer vervolgens de 10 100Ω weerstanden aan de voorkant van de vlinderdas.

Sluit vervolgens de andere stukken aan op de manier die wordt weergegeven in het schakelschema, het is prima om de batterij rechtstreeks op de Arduino te solderen, omdat deze wordt opgeladen wanneer de Arduino via USB is aangesloten. Voordat u alle stukjes op de achterkant van de print plakt, moet u testen op fouten in de array.

Stap 3: Code uploaden en debuggen

Upload de code hierboven. Wanneer het is geüpload, drukt u op de knop om het te activeren, nu zou een driehoekige vorm die naar binnen wijst omhoog of omlaag moeten scrollen op de vlinderdas.

Als je dat niet doet, gebruik dan de Blink (LED) -functie, die een invoer van een nummer 1-20 nodig heeft, voor elk licht afzonderlijk in de while (mode = 0) loop in de lege lus terwijl je de rest van die terwijl becommentarieert lus.

lege lus() {

terwijl (modus == 0) {

Knipperen(1); //Eén voor één test om te zien of de lichten werken zoals ze zouden moeten en welke niet

//Knipper (2); // volgende stap helemaal naar 20

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

modus = 1;

Uit();

inschakelen(1);

vertraging (200);

pauze;

}

Uit(); */ // deze sectie is uitgelicht tijdens het debuggen

}

…..

Debuggen:

Als je aan elke kant verschillende lampjes hebt, is er iets mis met het solderen en moet je de betreffende lampjes desolderen en stap 2 opnieuw doen.

Als paren van 2 lampen zijn uitgeschakeld, kunnen er via's ontbreken.

Als twee lampjes altijd samen branden en minder fel zijn dan andere, is er een op de verkeerde manier gesoldeerd.

Als elk lampje afzonderlijk gaat branden, maar niet het patroon volgt dat wordt beschreven in de instructies bovenaan de code, heb je stap 2 verprutst.

andere problemen kunnen ontstaan door slechte verbindingen of een kortsluiting op de printplaat.

Waarschuwing: dit segment is erg technisch en onnodig voor het maken van de vlinderdas

Ik heb de spectrumanalysecode speciaal geschreven voor een Arduino met een klokfrequentie van 16 MHz. Dus ik weet niet helemaal zeker hoe goed het zal werken op andere systemen, het kan ervoor zorgen dat alle bands heel anders reageren, maar het kan niet veel veranderen.

Het werkt door 60 samples te nemen in ongeveer 6, 7 ms, wat een bemonsteringsfrequentie is van ongeveer 8, 9 kHz. Analyseer ze vervolgens op 4 verschillende manieren en geef 4 verschillende frequenties.

De analyse met de hoogste frequentie werkt door elk ander monster met het volgende te vergelijken, de waarde te kwadrateren en op te tellen voor elk paar monsters. Dit geeft het hoogste effect rond de helft van de bemonsteringsfrequentie, dus het is een banddoorlaatfilter rond de 4, 4 kHz.

Een ruwe wiskundige formule voor analyse:

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

De volgende werkt op dezelfde manier, maar voegt eerst twee samples tegelijk toe. Dit geeft effectief de helft van de bemonsteringsfrequentie van het laatste systeem, terwijl de hoogste frequenties worden weggefilterd en een banddoorlaatfilter rond de 2, 2kHz wordt gecreëerd.

Het volgende systeem doet hetzelfde, maar in plaats van 2 samples tegelijk toe te voegen, voegt het 10 toe, wat een banddoorlaatfilter wordt voor 440Hz.

De laatste analyse telt de eerste 30 samples op en vergelijkt deze met de som van de laatste 30. Dit wordt in feite een banddoorlaatfilter voor 150 Hz.

Stap 4: Lijm het allemaal samen

Lijm het allemaal samen
Lijm het allemaal samen

Het is belangrijk om de Arduino gescheiden te houden van de printplaat, omdat dit kortsluiting kan veroorzaken als ze in contact komen. Dit kan door ze aan elkaar te lijmen met isolatietape ertussen. het is ook voordelig om de batterij op de ene vleugel van de vlinderdas te hebben en de microcontroller op de andere voor balans. Je moet proberen het midden van de vlinderdas vrij leeg te houden, omdat je hier de nekband aansluit, met mogelijke uitzondering van de microfoon omdat deze een paar millimeter moet uitsteken en naar je slokdarm moet wijzen, dit betekent dat wanneer je praat dat zal iedereen het duidelijkst zien.

Onthoud: aan de achterkant van de vlinderdas is functionaliteit veel belangrijker dan esthetiek, aangezien niemand dit zal zien.

Aanbevolen: