Indholdsfortegnelse:

Arduino Infinity Mirror (Bluetooth og lydreaktiv): 9 trin (med billeder)
Arduino Infinity Mirror (Bluetooth og lydreaktiv): 9 trin (med billeder)

Video: Arduino Infinity Mirror (Bluetooth og lydreaktiv): 9 trin (med billeder)

Video: Arduino Infinity Mirror (Bluetooth og lydreaktiv): 9 trin (med billeder)
Video: Arduino Infinity Mirror (Bluetooth & Sound Reactive) 2024, Juli
Anonim
Image
Image
Arduino Infinity Mirror (Bluetooth og lydreaktiv)
Arduino Infinity Mirror (Bluetooth og lydreaktiv)
Arduino Infinity Mirror (Bluetooth og lydreaktiv)
Arduino Infinity Mirror (Bluetooth og lydreaktiv)

Jeg har oprettet et Infinity Mirror til et skoleprojekt med Arduino, som du kan styre med din telefon eller tablet ved hjælp af Bluetooth. Spejlet har også en indbygget mikrofon, der registrerer lyd/musik og reagerer i overensstemmelse hermed ved at generere iøjnefaldende lysstråler på taktens musik! Du skal blot starte appen, oprette forbindelse til bluetooth og se magien ske!

I denne Instructables vil jeg vise dig, hvordan du kan lave dette Infinity Mirror. Så lad os komme i gang!

Trin 1: Saml materialer

Saml materialer
Saml materialer

For at lave dette uendelige spejl skal du bruge følgende materialer:

1) Arduino Uno ($ 30)

Du kan også bruge en anden type Arduino, men det er helt op til dig.

2) Mini -brødbræt eller PCB ($ 5)

Jeg brugte brødbrættet til prototyper og loddet senere alt til et perfboard/stripboard.

3) WS2813 Digital 5050 RGB LED Strip - 144 LED'er (1 meter) ($ 25)

Du kan også bruge en anden LED -strip, men sørg for, at alle LED'er er individuelt adresserbare. Sørg også for, at LED -strimlen giver en "ekstra" 5V spænding for hver meter LED'er. Dette skyldes, at spændingen falder over strimlen, og strømmen i starten kan stige betydeligt. (og måske brænde starten på din LED -strip!) Du kan læse mere om dette her: Powering Neopixels.

4) Prototype ledninger ($ 3)

Farver betyder generelt ikke noget, men det er meget nyttigt at have dem som reference for dig selv. Jeg brugte hvid, sort, rød, grøn, gul, orange og blå.

5) USB A til B -kabel ($ 4)

Dette vil blive brugt til at uploade din Arduino -kode til Arduino Uno -kortet.

6) Mean Well Switching Power Supply - 5V 10A ($ 15)

Dette vil blive brugt til at understøtte LED -stripen med ekstern 5V spænding, fordi Arduino i sig selv ikke er kraftig nok til at tænde alle LED'er. Du kan også vælge at bruge en strømforsyning til vægadapter, men sørg for, at den kører på 5V.

7) 230V strømkabel med stik ($ 3)

Dette bruges til at tilslutte strømforsyningen til 230V -stikket. Afhængigt af hvor du bor, kan mængden af spænding fra stikkontakten variere. Under alle omstændigheder skal du bruge et ordentligt kabel med stik.

8) Bluetooth HC-06 modul RF transceiver Slave 4-PIN ($ 8)

Dette modul bruges til at sende data fra din telefon eller tablet til Arduino. Dette bluetooth -modul kan kun tjene som slave. Standard bluetooth pin / adgangskode er 1234.

9) Lyddetekteringssensormodul 3-PIN ($ 3)

Dette modul bruges til at registrere lyd, da det har en indbygget mikrofon. Indstil potentiometeret til den ønskede mængde lyd, hvor et signal genereres. Du kan også bruge en anden lydsensor, men det er op til dig.

10) 220 Ω modstand ($ 0,25)

Dette vil blive brugt til at kontrollere LED'ernes spændinger. Hvis du ikke bruger dette, bliver lysdioderne i sidste ende rigtig varme. En 220Ω modstand har røde, røde og brune striber i den rækkefølge. Den sidste stribe repræsenterer tolerancen. Guld betyder ± 5%. Mere info her: 220 Ohm modstand.

11) 1000uF 16V elektrolytisk kondensator ($ 0,25)

Dette vil blive brugt til at tilføje og gemme kapacitans (energi) til dit kredsløb. Mere info her: Elektrolytkondensatorer.

Kasse og spejl:

Dette er de materialer og dimensioner, jeg brugte til at oprette min boks. Du kan også vælge at købe en ramme eller færdiglavet boks i stedet, som er stor nok til at passe et envejs reflekterende spejl, normalt spejl, lysdioder og elektronik i det. Jeg anbefaler kun at bygge det selv, hvis du har de korrekte værktøjer og materialer.

12) Glas 25 x 25 cm (3 mm tyk) ($ 5)

Glasset vil blive brugt som et envejs reflekterende spejl, som du skal bruge envejs spejlvinduesfilmen til (se 13). Du kan også vælge at købe et envejsspejl/halvgennemsigtigt spejl i stedet, som er stort nok til at passe ind i din æske. Du kan selv skære glas med en glasskærer (se 22), men jeg anbefaler hellere at konsultere specialister for at gøre dette for dig eller endnu bedre bare købe glas med de rigtige dimensioner.

13) Tonet envejs spejlvinduesfilm 30 x 30 cm ($ 5)

For at kopiere et envejsspejl skal du bruge glas og en rulle tonet envejs spejlvinduesfilm, som påføres glasset med vand og sæbe (se 29). Grunden til at det er lidt større end glasset, er fordi det vil krympe over tid. Hvis du vælger at købe et envejsspejl i stedet som nævnt ovenfor, har du ikke brug for dette.

14) Spejl 25 x 25 cm (3 mm tyk) ($ 5)

Bare et normalt spejl, som det du har på badeværelset. Dette vil blive brugt sammen med envejsspejlet til at skabe "uendelig" -effekten.

15) 2x Tyk Træliste 25 x 10 x 2cm ($ 2)

To trælister til toppen og bunden af kassen.

16) 2x Tyk Træliste 27 x 10 x 2cm ($ 2)

To trælister til højre og venstre side af kassen.

17) 2x Tynd Træliste 25 x 2,5 x 0,5 cm ($ 1)

To trælister til toppen og bunden af boksens inderside (som spejlene vil hvile på, og som lysdioderne er klistret på).

18) 2x Tynd Træliste 24 x 2,5 x 0,5 cm ($ 1)

To trælister til højre og venstre side af indersiden af kassen (som spejlene vil hvile på, og som lysdioderne er klistret på).

19) Sort maling dåse/spray

Jeg brugte dette til at male min kasse sort for at få den til at blande sig mere med det mørke tema.

Værktøjer:

Dette er de værktøjer, du skal bruge til at oprette boksen såvel som spejlet:

20) Målebånd ($ 3)

Bruges naturligvis til måling af din kasse. Mere info her: Sådan læses et målebånd.

21) Måler kvadrat ($ 5)

Bruges også til måling af din kasse/materialer. Ikke virkelig påkrævet, men det kan være meget praktisk.

22) Wire cutter/stripper ($ 5)

Bruges til at fjerne og skære dine ledninger. Som alternativ kan du også bruge en køkkenkniv eller en stanleykniv. Mere info her: Sådan fjernes Wire.

23) Glasskærer ($ 5)

Anvendes til skæring af glas og spejle. Som alternativ kan du bruge en diamant, men jeg anbefaler den ikke. Mere info her: Sådan skærer du farvet glas.

24) Skruetrækker/boremaskine ($ 2)

Anvendes til at køre skruer og bore huller. Mere info her: Sådan køres en træskrue.

25) Hammer ($ 5)

Bruges til at køre søm. Mere info her: Sådan bruges en hammer sikkert.

26) Trælim ($ 5)

Hvis skruer eller søm ikke er gode nok, kan du også anvende lidt trælim for at holde dele sammen. Mere info her: Sådan limes træ sammen.

27) Så ($ 5)

Anvendes til savning af træ. Mere info her: Sådan saves træ med en håndsav.

28) Negle ($ 3)

Bruges til at holde dele sammen, i vores tilfælde permanent.

29) Skruer ($ 3)

Også brugt til at holde dele sammen, men ved hjælp af skruer i stedet for søm kan du nemt afbryde delene, hvis det er nødvendigt.

30) Vand og sæbe

Anvendes til påføring af den tonede envejs spejlvinduesfilm på glasset. Og bruges også til rengøring af uendeligt spejl. Hvis du vil vide, hvordan du installerer vinduesfilmen, kan du følge denne vejledning: Sådan installeres vinduesfilm.

31) Sandpapir ($ 1)

Bruges til at forfine glasets og træets skarpe kanter.

Loddeværktøjer (valgfrit):

32) Loddejern ($ 15)

Valgfrit, hvis du vælger at lodde alt sammen i stedet for at lade det ligge på brødbrættet. Hvis du vil vide, hvordan man lodder, kan du følge denne vejledning: Sådan loddes elektronik.

33) Loddeform 0,6 mm - 100 g ($ 5,50)

Anvendes til lodning af ledningerne sammen.

34) Aflodningstråd - 1 mm 1,5 m ($ 1,50)

Anvendes til aflodning af ledningerne, hvis du begik en fejl ved et uheld.

35) Varmekrympende rør ($ 2)

Anvendes til sikkert at holde lodde ledninger sammen.

36) 1x 3 Pins header hun ($ 0,10)

Ikke virkelig påkrævet, men det kan være praktisk, hvis du ikke direkte vil lodde lyddetekteringssensoren til ledningerne.

37) 1x 4 Pins header hun ($ 0,10)

Ikke virkelig påkrævet, men det kan være praktisk, hvis du ikke vil direkte lodde bluetooth -modulet til ledningerne.

Trin 2: Tilslutninger til brødbræt

Image
Image
Tilslutninger til brødbræt
Tilslutninger til brødbræt
Tilslutninger til brødbræt
Tilslutninger til brødbræt

Når du har samlet materialerne, er det tid til at lave din første prototype ved hjælp af et brødbræt. Panelet har i alt fire kolonner. De to første og de sidste to blå og røde kolonner deler en forbindelse lodret, der repræsenterer +5V (rød) og jord/GND (blå) forbindelser. De to kolonner i midten er, hvor dine hovedkomponenter skal placeres. Du kan lære mere om brødbrætter her.

Så hvad du vil gøre er at slutte din Arduino til brødbrættet ved hjælp af nogle prototypeledninger. Som jeg nævnte før, betyder farver ikke noget, men de er en nyttig reference for dig selv. For eksempel brugte jeg de røde ledninger til at repræsentere +5V og de hvide ledninger til at repræsentere GND. Det er også ligegyldigt, hvor du placerer dine pins, så længe de bliver i det samme kredsløb.

Dernæst vil du slutte din LED -strip til brødbrættet. Du vil bemærke, at den har 3-6 ledninger afhængigt af hvilken type du har. Hvid repræsenterer GND/min input, rød repræsenterer +5V input, grøn repræsenterer data input PIN og blå repræsenterer backup data input input PIN (forbind ikke, medmindre LED'en er forbundet). Tilslut den eksterne 5V strøm, og slut den til LED -stripen. Glem ikke også at tilslutte modstanden og kondensatoren som vist på billedet ovenfor, ellers kan du brænde dine lysdioder ud!

Endelig vil du slutte dit bluetooth -modul og din lyddetekteringssensor til brødbrættet. Tildel lyddetekteringssensoren til pin A0 (analog). Hvad angår bluetooth -modulet, vil du bemærke, at det har en RXD og en TXD -pin. Disse er til at sende og modtage signaler. BEMÆRK: Tilslut TXD -pin på modulet til RXD -pin på Arduino og RXD -pin på modulet til TXD -pin på Arduino. Ikke til de samme stifter!

Trin 3: Kode Arduino

Kode Arduino
Kode Arduino

Så det næste trin er at kode Arduino. Du skal bruge Arduino IDE -softwaren til at gøre dette, som du kan downloade her. Når du har downloadet IDE, skal du åbne et nyt dokument og kopiere og indsætte følgende kode i projektvinduet:

#omfatte

// Stifter, der er forbundet til Arduino

const int PIN = 6; // Indgangsstiften på LED -strimlen int NUMPIXELS = 144; // Antallet af pixels, der lyser const int SOUNDSENSOR = A0; // Indgangsstiften på lydsensoren

int ButtonState = 0; // Angiv, at der er tildelt en knap i bluetooth -appen

int volumen = 0; // Angiv, at der kontrolleres, om der er et signal i mikrofonen eller ej

// Farvevariabler

boolsk PrimBlue = falsk; boolsk PrimGreen = falsk; boolsk PrimRed = falsk; boolsk PrimWhite = falsk; boolsk PrimYellow = falsk; boolsk PrimOrange = falsk; boolsk PrimPink = falsk; boolsk PrimPurple = falsk;

// Lys- og lydvariabler

boolsk SoundDetect = false; boolsk FullLight = falsk;

Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

ugyldig opsætning () {

pinMode (SOUNDSENSOR, INPUT); // Indgang af lydsensor pinMode (PIN, OUTPUT); // Indgang af LED -båndet

Serial.begin (9600);

strip.setPixelColor (0, 0, 0, 0); strip.setBrightness (0); strip.begin (); // Dette initialiserer NeoPixel bibliotek strip.show ();

}

void loop () {

// Definer lysstyrken i henhold til skyderen byte lysstyrke = analogRead (A0)/4; Serial.println (lysstyrke); hvis (Serial.available ()> 0) {ButtonState = Serial.read (); }

// Aktiver eller deaktiver LED og lydregistrering

hvis (FullLight == 1 && SoundDetect == 0) {strip.setBrightness (ButtonState); strip.show (); } ellers hvis (FullLight == 0 && SoundDetect == 0) {strip.setBrightness (0); strip.show (); } ellers hvis (FullLight == 0 && SoundDetect == 1) {strip.setBrightness (lysstyrke); strip.show (); } ellers hvis (FullLight == 1 && SoundDetect == 1) {strip.setBrightness (0); strip.show (); }

////////////////////////////// LED switch //////////////////////// ////

hvis (ButtonState == 'a') {primaryColors (); FullLight = 1; SoundDetect = 0; }

hvis (ButtonState == 'b') {

FullLight = 0; SoundDetect = 0; }

////////////////////////////// Lyddetektering switch ///////////////////// /////

hvis (ButtonState == 'c') {primaryColors (); SoundDetect = 1; FullLight = 0; }

hvis (ButtonState == 'd') {

SoundDetect = 0; FullLight = 0; }

////////////////////////////// Primærfarver //////////////////////// ////

hvis (ButtonState == '1') {primaryColors (); PrimBlue = 0; PrimGreen = 0; PrimRed = 1; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }

hvis (ButtonState == '2') {

primaryColors (); PrimGreen = 1; PrimBlue = 0; PrimRed = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }

hvis (ButtonState == '3') {

primaryColors (); PrimRed = 0; PrimBlue = 1; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } hvis (ButtonState == '4') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 1; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } hvis (ButtonState == '5') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 1; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } hvis (ButtonState == '6') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 1; PrimPink = 0; PrimPurple = 0; } hvis (ButtonState == '7') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 1; PrimPurple = 0; } hvis (ButtonState == '8') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 1; }}

void primaryColors () {

for (int i = 0; i <NUMPIXELS; i ++) {if (PrimBlue == 1) {strip.setPixelColor (i, 0, 0, 255); } ellers hvis (PrimGreen == 1) {strip.setPixelColor (i, 0, 255, 0); } ellers hvis (PrimRed == 1) {strip.setPixelColor (i, 255, 0, 0); } ellers hvis (PrimWhite == 1) {strip.setPixelColor (i, 255, 255, 255); } ellers hvis (PrimYellow == 1) {strip.setPixelColor (i, 255, 255, 0); } ellers hvis (PrimOrange == 1) {strip.setPixelColor (i, 255, 102, 0); } ellers hvis (PrimPink == 1) {strip.setPixelColor (i, 255, 0, 255); } ellers hvis (PrimPurple == 1) {strip.setPixelColor (i, 102, 0, 204); } ellers {strip.setPixelColor (i, 255, 255, 255); }} strip.show (); }

Hvis det beder dig om at installere Adafruit NeoPixel -biblioteket, skal du gøre dette ved at gå til Sketch> Import Library> Adafruit NeoPixel.

Trin 4: Byg Bluetooth -appen

Image
Image
Byg kassen
Byg kassen

Lad os nu komme ind på den interessante del, bygge din app! Jeg besluttede at bruge en tredjepartssoftware kaldet MIT App Inventor 2 til at gøre dette. Hvis du vil downloade projektfilerne (.aia) og foretage ændringer i appen, kan du downloade den herunder. Men du kan også downloade selve appen (.apk) med det samme uden at skulle kode noget. Du skal kun installere det på din enhed.

Trin 5: Byg kassen

Byg kassen
Byg kassen
Byg kassen
Byg kassen
Byg kassen
Byg kassen

I dette trin bygger vi kassen/rammen til uendeligt spejl.

Den ydre ramme

Skær først den tykke læg til den ydre ramme (se billederne ovenfor). Du skal bruge to stykker længde 27 cm (til top og bund) og to stykke længde 25 cm (til venstre og højre side). Nu søm dem sammen ved at køre søm til hjørnerne af kassen (4 på hver side), men sørg for, at kanterne passer perfekt. Du kan også vælge at lime dem sammen, men det er op til dig.

Den indre ramme

Skær derefter den tynde læg til den indvendige ramme (se ovenstående billeder igen). Du skal bruge to stykker længde 25 cm (til top og bund) og to længder på 24 cm (til venstre og højre side). Nu vil du sømme disse til cirka 0,5 cm under toppen af den ydre ramme ved at bruge 2 søm til hver side. Jeg har også påført lidt trælim her for at gøre dem mere robuste. BEMÆRK: Sørg for, at envejsspejlet passer perfekt ind i rammen!

Boring af mikrofonhullet

Da mikrofonen er et følsomt objekt, skal den være fri for dækning. Derfor borede jeg et hul i toppen af rammen, hvorfra mikrofonhovedet stikker ud. Gør ikke hullet for stort, for du vil ikke have, at din mikrofon falder helt ud af rammen.

Mal din ramme

Jeg besluttede at male min ramme næsten matsort for at give den en slags mørk, mystisk effekt. Hvis du også beslutter dig for at male det, skal du sørge for, at der ikke er tykke klatter maling tilbage på rammen. For at forhindre dette skal du forsigtigt male rammen med en lille til medium pensel. Derudover kan du male det for anden gang, hvis det ikke er dækket nok. Lad det tørre i et døgn eller deromkring.

Trin 6: Lodde elektronikken til et printkort

Image
Image
Lodde elektronikken til et printkort
Lodde elektronikken til et printkort
Lodde elektronikken til et printkort
Lodde elektronikken til et printkort

I dette trin lodder vi elektronikken til et printkort, som vi senere installerer på bagsiden af vores spejl. Lodning er ikke obligatorisk, men jeg anbefaler stærkt at gøre det for at holde elektronikken sikker på plads. Jeg loddet alt trin for trin pr. Komponent til nettet for at forhindre fejl. Så jeg lodde først lydmodulet til brættet, derefter bluetooth -modulet, og til sidst LED -strimlerne. Jeg anbefaler at efterlade et tomt mellemrum mellem komponenterne, som ikke må berøre hinanden direkte, f.eks. +5V indgangstråde og GND indgangstråde (se billederne ovenfor).

Når du har dine komponenter loddet til brættet, skal du begynde at lave broforbindelser ved at påføre noget blik mellem komponenterne under brættet. Alternativt kan du fjerne nogle ledninger og lodde disse til komponenterne for at oprette en broforbindelse.

Nu vil du teste kredsløbet ved blot at forbinde ledningerne til Arduino. Sørg for, at du også har tilsluttet strømforsyningen! Hvis lysdioderne tændes med succes, så godt gået! Hvis de ikke tændes, kan du dog dobbelttjekke kredsløbet og se efter defekte forbindelser.

Trin 7: Installer elektronikken på bagsiden

Installer elektronikken på bagsiden
Installer elektronikken på bagsiden

Næste trin er at installere elektronikken på et stykke træ, som vi også vil bruge til bagsiden af spejlet. Jeg fastgjorde elektronikken til brættet med nogle skruer og limede to blokke på højre og venstre side af bagsiden, som bruges til at skrue kassens bagside til selve boksen.

Trin 8: Saml spejlene med æsken

Saml spejlene med æsken
Saml spejlene med æsken
Saml spejlene med æsken
Saml spejlene med æsken
Saml spejlene med æsken
Saml spejlene med æsken

Nu er det tid til at samle spejlene, sætte lysdioderne fast på rammen og sætte lyddetekteringssensoren på plads.

Envejs spejl

Envejsspejlet placeres på selve rammen med den tonede side vendt nedad mod spejlet og lysdioder. For at lave dette spejl selv skal du bruge glaspladen og den tonede vinduesfilm. Klip først vinduesfilmen i den rigtige størrelse, men efterlad cirka 2-5 cm ekstra plads på hver side. Dernæst vil du rense vinduet helt og fjerne alle støvrester. Dæk derefter vinduet med lidt vand og sæbe og fjern forsigtigt plasten fra vinduesfilmen (du kan placere tape på hver side for let at fjerne det). Nu vil du også dække den klæbrige side af vinduesfilmen med vand og sæbe for at forhindre, at den klistrer til sig selv. Det eneste du skal gøre nu er at placere det oven på glasset og feje det stramt på plads (se billederne ovenfor). Lad det tørre i cirka et døgn, og fjern den resterende vinduesfilm.

Sæt lysdioderne fast på æsken

Det næste trin er at sætte lysdioderne fast på æsken, hvilket kan gøres ved at fjerne det klæbende papir. Jeg anbefaler også at påføre lidt lim på bagsiden af strimlen for at forhindre den i at løsne sig.

Placer spejlene og afslut det

Det sidste trin er at sætte både envejsspejlet og det normale spejl på plads. Det normale spejl går bag LED-strimlen, og envejsspejlet går foran. Lim dem på plads med lidt hurtig lim, og skru bagpladen med elektronikken på bagsiden af kassen. Sæt lyddetekteringssensoren på plads, tilslut alle ledningerne, og voila, du er færdig!

Trin 9: Test dit uendelige spejl

Alt du skal gøre nu er at teste, om alt virker. Og det er det! Nu har du bygget dit eget Bluetooth -kontrollerbare og lydreaktive uendeligt spejl!: D

Tøv ikke med at spørge i kommentarfeltet, hvis du har spørgsmål.

Tak og hav det sjovt!

Anbefalede: