Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Jeg opprettet et Infinity Mirror for et skoleprosjekt med Arduino som du kan styre med telefonen eller nettbrettet ved å bruke Bluetooth. Speilet har også en innebygd mikrofon som oppdager lyd/musikk og reagerer deretter ved å generere iøynefallende lysstråler i takt med musikken! Bare start appen, koble til bluetooth og se magien skje!
I denne instruksen vil jeg vise deg hvordan du kan lage dette Infinity Mirror. Så la oss komme i gang!
Trinn 1: Samle materialer
For å lage dette uendelige speilet trenger du følgende materialer:
1) Arduino Uno ($ 30)
Du kan også bruke en annen type Arduino, men det er helt opp til deg.
2) Mini -brødbrett eller PCB ($ 5)
Jeg brukte brødbrettet til prototyping og loddet senere alt til et perfboard/stripboard.
3) WS2813 Digital 5050 RGB LED Strip - 144 lysdioder (1 meter) ($ 25)
Du kan også bruke en annen LED -stripe, men sørg for at alle lysdioder er individuelt adresserbare. Sørg også for at LED -stripen gir en "ekstra" 5V spenning for hver meter LED. Dette er fordi spenningen synker over stripen og strømmen ved starten kan øke betraktelig. (og kanskje brenne starten på LED -stripen din!) Du kan lese mer om dette her: Powering Neopixels.
4) Prototype ledninger ($ 3)
Farger spiller ingen rolle generelt, men det er veldig nyttig å ha dem som referanse for deg selv. Jeg brukte hvit, svart, rød, grønn, gul, oransje og blå.
5) USB A til B -kabel ($ 4)
Dette vil bli brukt til å laste opp Arduino -koden til Arduino Uno -kortet.
6) Mean Well Switching Power Supply - 5V 10A ($ 15)
Dette vil bli brukt til å støtte LED -stripen med ekstern 5V spenning, fordi Arduino i seg selv ikke er kraftig nok til å lyse opp alle lysdioder. Du kan også velge å bruke en strømadapter for veggadapter, men sørg for at den går på 5V.
7) 230V strømkabel med støpsel ($ 3)
Dette vil bli brukt til å koble strømbryteren til 230V -kontakten. Avhengig av hvor du bor, kan mengden spenning fra stikkontakten variere. Uansett trenger du en skikkelig kabel med plugg.
8) Bluetooth HC-06 modul RF transceiver Slave 4-PIN ($ 8)
Denne modulen vil bli brukt til å sende data fra telefonen eller nettbrettet til Arduino. Denne bluetooth -modulen kan bare tjene som slave. Standard bluetooth -PIN / passord er 1234.
9) Lyddetekteringssensormodul 3-PIN ($ 3)
Denne modulen vil bli brukt til å oppdage lyd siden den har en innebygd mikrofon. Still potensiometeret for ønsket mengde lyd som signalet genereres ved. Du kan også bruke en annen lydsensor, men det er opp til deg.
10) 220 Ω motstand ($ 0,25)
Dette vil bli brukt til å kontrollere spenningene til lysdiodene. Hvis du ikke bruker dette, vil lysdiodene til slutt bli veldig varme. En 220Ω motstand har røde, røde og brune striper i den rekkefølgen. Den siste stripen representerer toleransen. Gull betyr ± 5%. Mer informasjon her: 220 Ohm motstand.
11) 1000uF 16V elektrolytisk kondensator ($ 0,25)
Dette vil bli brukt til å legge til og lagre kapasitans (energi) til kretsen din. Mer informasjon her: Elektrolytiske kondensatorer.
Boks og speil:
Dette er materialene og dimensjonene jeg brukte til å lage boksen min. Du kan også velge å kjøpe en ramme eller ferdig boks i stedet som er stor nok til å passe et enveis reflekterende speil, normalt speil, lysdioder og elektronikk i det. Jeg anbefaler bare å bygge den selv hvis du har riktige verktøy og materialer.
12) Glass 25 x 25 cm (3 mm tykk) ($ 5)
Glasset vil bli brukt som et enveis reflekterende speil, som du trenger enveis speilvindu for (se 13). Du kan også velge å kjøpe et enveis speil/halvgjennomsiktig speil i stedet som er stort nok til å passe inn i esken din. Du kan kutte glass selv med en glassskjærer (se 22), men jeg anbefaler heller å konsultere spesialister for å gjøre dette for deg eller enda bedre bare kjøpe glass med riktige dimensjoner.
13) Tonet enveis speilvindu film 30 x 30 cm ($ 5)
For å kopiere et enveisspeil trenger du glass og en rulle tonet enveis speilvindufilm, som påføres glasset med vann og såpe (se 29). Grunnen til at det er litt større enn glasset er fordi det vil krympe over tid. Hvis du velger å kjøpe et enveis speil i stedet som nevnt ovenfor, trenger du ikke dette.
14) Speil 25 x 25 cm (3 mm tykt) ($ 5)
Bare et vanlig speil, som det du har på badet. Dette vil bli brukt, sammen med enveis speilet, for å lage "uendelig" -effekten.
15) 2x tykk treliste 25 x 10 x 2 cm ($ 2)
To lekter av tre for toppen og bunnen av esken.
16) 2x tykk trebjelke 27 x 10 x 2 cm ($ 2)
To lekter av tre for høyre og venstre side av esken.
17) 2x tynn trebjelke 25 x 2,5 x 0,5 cm ($ 1)
To treplater for toppen og bunnen av innsiden av esken (som speilene vil hvile på og som lysdiodene limes på).
18) 2x tynn trebjelke 24 x 2,5 x 0,5 cm ($ 1)
To lekter av tre for høyre og venstre side av innsiden av boksen (som speilene vil hvile på og som lysdiodene limes på).
19) Svart malingskanne/spray
Jeg brukte denne til å male boksen min svart for å få den til å passe bedre inn i det mørke temaet.
Verktøy:
Dette er verktøyene du trenger for å lage esken og speilet:
20) Målebånd ($ 3)
Brukes selvfølgelig til måling av boksen din. Mer informasjon her: Slik leser du et målebånd.
21) Måler kvadrat ($ 5)
Brukes også til måling av esken/materialet ditt. Egentlig ikke nødvendig, men det kan være veldig nyttig.
22) Wire cutter/stripper ($ 5)
Brukes til å fjerne og kutte ledningene. Som alternativ kan du også bruke en kjøkkenkniv eller en stanleykniv. Mer informasjon her: How to Strip Wire.
23) Glassskjærer ($ 5)
Brukes til skjæring av glass og speil. Som alternativ kan du bruke en diamant, men jeg anbefaler den ikke. Mer informasjon her: Hvordan kutte glassmalerier.
24) Skrutrekker/drill ($ 2)
Brukes til å skru skruer og bore hull. Mer informasjon her: Slik kjører du en treskrue.
25) Hammer ($ 5)
Brukes til å kjøre spiker. Mer informasjon her: Slik bruker du en hammer trygt.
26) Trelim ($ 5)
Hvis skruer eller spiker ikke er gode nok, kan du også bruke litt trelim for å holde delene sammen. Mer informasjon her: Slik limer du tre sammen.
27) Så ($ 5)
Brukes til saging av tre. Mer informasjon her: Slik ser du tre med en håndsag.
28) Spiker ($ 3)
Brukes til å holde deler sammen, i vårt tilfelle permanent.
29) Skruer ($ 3)
Også brukt til å holde deler sammen, men ved å bruke skruer i stedet for spiker kan du enkelt koble fra delene om nødvendig.
30) Vann og såpe
Brukes for påføring av den tonede enveis speilvindufilmen på glasset. Og også brukt til rengjøring av uendelig speil. Hvis du vil vite hvordan du installerer vindusfilmen, kan du følge denne opplæringen: Slik installerer du vindusfilm.
31) Sandpapir ($ 1)
Brukes til å finpusse de skarpe kantene på glasset og treverket.
Loddeverktøy (valgfritt):
32) Loddejern ($ 15)
Valgfritt hvis du velger å lodde alt sammen i stedet for å la det ligge på brødbrettet. Hvis du vil vite hvordan du lodder, kan du følge denne opplæringen: Slik lodder du elektronikk.
33) Loddetinn 0.6mm - 100g ($ 5.50)
Brukes til lodding av ledningene sammen.
34) Avlodningstråd - 1 mm 1,5 m ($ 1,50)
Brukes til å lodde ledningene, i tilfelle du gjorde en feil ved et uhell.
35) Varmekrympende rør ($ 2)
Brukes for trygt å holde loddede ledninger sammen.
36) 1x 3 Pins header female ($ 0,10)
Egentlig ikke nødvendig, men det kan være nyttig hvis du ikke vil lodde lyddeteksjonssensoren direkte til ledningene.
37) 1x 4 Pins header female ($ 0,10)
Egentlig ikke nødvendig, men det kan være nyttig hvis du ikke vil lodde Bluetooth -modulen direkte til ledningene.
Trinn 2: Tilkoblinger til brødbrett
Når du har samlet materialene, er det på tide å lage din første prototype ved å bruke et brødbrett. Brettbrettet har totalt fire kolonner. De to første og siste to blå og røde kolonnene deler en forbindelse vertikalt, som representerer +5V (rød) og bakken/GND (blå) tilkoblinger. De to kolonnene i midten er hvor hovedkomponentene skal plasseres. Du kan lære mer om brødbrett her.
Så det du vil gjøre er å koble din Arduino til brødbrettet ved å bruke noen prototypeledninger. Som jeg nevnte før, spiller ingen rolle farge, men de er en nyttig referanse for deg selv. For eksempel brukte jeg de røde ledningene for å representere +5V og de hvite ledningene for å representere GND. Det spiller heller ingen rolle hvor du plasserer pinnene dine så lenge de holder seg i samme krets.
Deretter vil du koble LED -stripen til brødbrettet. Du vil legge merke til at den har 3-6 ledninger avhengig av hvilken type du har. Hvit representerer GND/min-inngang, rødt representerer +5V inngang, grønt representerer PIN-koden for datainngang og blå representerer PIN-koden for sikkerhetskopiering av data (ikke koble til med mindre LED-en er koblet til). Koble til den eksterne 5V -strømmen og koble den til LED -stripen. Ikke glem å også koble motstanden og kondensatoren som vist på bildet ovenfor, ellers kan du brenne ut lysdiodene dine!
Til slutt vil du koble Bluetooth -modulen og lyddeteksjonssensoren til brødbrettet. Tilordne lyddeteksjonssensoren til pin A0 (analog). Når det gjelder Bluetooth -modulen, vil du legge merke til at den har en RXD og en TXD -pin. Disse er for å sende og motta signaler. MERK: koble TXD -pinnen til modulen til RXD -pinnen på Arduino, og RXD -pinnen til modulen til TXD -pinnen på Arduino. Ikke til de samme pinnene!
Trinn 3: Kode Arduino
Så det neste trinnet er å kode Arduino. Du trenger Arduino IDE -programvaren for å gjøre dette, som du kan laste ned her. Når du har lastet ned IDE, åpner du et nytt dokument og kopierer og limer inn følgende kode i prosjektvinduet:
#inkludere
// Pinner som er koblet til Arduino
const int PIN = 6; // Inngangspinnen til LED -stripen int NUMPIXELS = 144; // Antall piksler som vil lyse opp const int SOUNDSENSOR = A0; // Inngangspinnen til lydsensoren
int ButtonState = 0; // Stat som er tilordnet en knapp på bluetooth -appen
int volum = 0; // Oppgi som kontrollerer om det er et signal i mikrofonen eller ikke
// Fargevariabler
boolsk PrimBlue = false; boolsk PrimGreen = false; boolsk PrimRed = false; boolsk PrimWhite = false; boolsk PrimYellow = false; boolsk PrimOrange = false; boolsk PrimPink = false; boolsk PrimPurple = false;
// Lys- og lydvariabler
boolsk SoundDetect = false; boolsk FullLight = false;
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
ugyldig oppsett () {
pinMode (SOUNDSENSOR, INNGANG); // Inngang av lydsensor pinMode (PIN, OUTPUT); // Inngang av LED -stripen
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 lysstyrken byte lysstyrke = analogRead (A0)/4; Serial.println (lysstyrke); if (Serial.available ()> 0) {ButtonState = Serial.read (); }
// Aktiver eller deaktiver LED og lyddeteksjon
if (FullLight == 1 && SoundDetect == 0) {strip.setBrightness (ButtonState); strip.show (); } annet hvis (FullLight == 0 && SoundDetect == 0) {strip.setBrightness (0); strip.show (); } annet hvis (FullLight == 0 && SoundDetect == 1) {strip.setBrightness (lysstyrke); strip.show (); } annet hvis (FullLight == 1 && SoundDetect == 1) {strip.setBrightness (0); strip.show (); }
////////////////////////////// LED switch ////////////////////// ////
if (ButtonState == 'a') {primaryColors (); FullLight = 1; SoundDetect = 0; }
hvis (ButtonState == 'b') {
FullLight = 0; SoundDetect = 0; }
//////////////////////////////////////////// /////
if (ButtonState == 'c') {primaryColors (); SoundDetect = 1; FullLight = 0; }
hvis (ButtonState == 'd') {
SoundDetect = 0; FullLight = 0; }
////////////////////////////// Primærfarger //////////////////////// ////
if (ButtonState == '1') {primaryColors (); PrimBlue = 0; PrimGreen = 0; PrimRed = 1; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }
if (ButtonState == '2') {
primaryColors (); PrimGreen = 1; PrimBlue = 0; PrimRed = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }
if (ButtonState == '3') {
primaryColors (); PrimRed = 0; PrimBlue = 1; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } if (ButtonState == '4') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 1; PrimGul = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } if (ButtonState == '5') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 1; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } if (ButtonState == '6') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 1; PrimPink = 0; PrimPurple = 0; } if (ButtonState == '7') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimGul = 0; PrimOrange = 0; PrimPink = 1; PrimPurple = 0; } if (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); } annet hvis (PrimGreen == 1) {strip.setPixelColor (i, 0, 255, 0); } annet hvis (PrimRed == 1) {strip.setPixelColor (i, 255, 0, 0); } annet hvis (PrimWhite == 1) {strip.setPixelColor (i, 255, 255, 255); } annet hvis (PrimYellow == 1) {strip.setPixelColor (i, 255, 255, 0); } annet hvis (PrimOrange == 1) {strip.setPixelColor (i, 255, 102, 0); } annet hvis (PrimPink == 1) {strip.setPixelColor (i, 255, 0, 255); } annet hvis (PrimPurple == 1) {strip.setPixelColor (i, 102, 0, 204); } annet {strip.setPixelColor (i, 255, 255, 255); }} strip.show (); }
Hvis du blir bedt om å installere Adafruit NeoPixel -biblioteket, gjør dette ved å gå til Sketch> Import Library> Adafruit NeoPixel.
Trinn 4: Bygg Bluetooth -appen
La oss gå inn på den interessante delen, bygge appen din! Jeg bestemte meg for å bruke en tredjepartsprogramvare som heter MIT App Inventor 2 for å gjøre dette. Hvis du vil laste ned prosjektfilene (.aia) og gjøre endringer i appen, kan du laste den ned nedenfor. Men du kan også laste ned selve appen (.apk) med en gang uten å måtte kode noe. Du trenger bare å installere det på enheten din.
Trinn 5: Bygg boksen
I dette trinnet skal vi bygge esken/rammen for uendelig speil.
Den ytre rammen
Klipp først den tykke lekten for den ytre rammen (se bildene ovenfor). Du trenger to lengder på 27 cm (for topp og bunn) og to lengder på 25 cm (for venstre og høyre side). Spik dem sammen ved å kjøre spiker til hjørnene på esken (4 på hver side), men pass på at kantene passer perfekt. Du kan også velge å lime dem sammen, men det er opp til deg.
Den indre rammen
Klipp deretter den tynne lekten for den indre rammen (se bildene ovenfor igjen). Du trenger to lengder på 25 cm (for topp og bunn) og to lengder på 24 cm (for venstre og høyre side). Nå vil du spikre disse til omtrent 0,5 cm under toppen av den ytre rammen ved å bruke 2 spiker på hver side. Jeg har også påført litt trelim her for å gjøre dem mer robuste. MERK: sørg for at enveis speilet passer perfekt inn i rammen!
Boring av mikrofonhullet
Siden mikrofonen er et sensitivt objekt, må den være fri for dekning. Derfor boret jeg et hull i toppen av rammen som mikrofonhodet stikker ut av. Ikke gjør hullet for stort, for du vil ikke at mikrofonen skal falle helt ut av rammen.
Maling av rammen din
Jeg bestemte meg for å male rammen min nesten matt svart for å gi den en slags mørk, mystisk effekt. Hvis du også bestemmer deg for å male den, må du sørge for at det ikke er tykke malingsklatter igjen på rammen. For å forhindre dette må du forsiktig male rammen med en liten til middels pensel. I tillegg kan du male den for andre gang hvis den ikke er dekket nok. La det tørke i en dag eller så.
Trinn 6: Lodd elektronikken til en PCB
I dette trinnet vil vi lodde elektronikken til en PCB som vi senere skal installere på baksiden av speilet. Lodding er ikke obligatorisk, men jeg anbefaler på det sterkeste å gjøre det for å holde elektronikken på plass. Jeg loddet alt trinnvis per "komponent" til rutenettet for å forhindre feil. Så jeg loddet først lydmodulen til brettet, deretter bluetooth -modulen, og til slutt LED -stripene. Jeg anbefaler å la det være tomt mellom komponentene som ikke får berøre hverandre direkte, for eksempel +5V inngangstrådene og GND -inngangstrådene (se bildene ovenfor).
Når du har komponentene dine loddet til brettet, begynner du å lage broforbindelser ved å påføre litt tinn mellom komponentene under brettet. Alternativt kan du stripe noen ledninger og lodde disse til komponentene for å lage en broforbindelse.
Nå vil du teste kretsen ved ganske enkelt å koble ledningene til Arduino. Sørg for at du også har koblet til strømforsyningen! Hvis lysdiodene tennes vellykket, så bra gjort! Hvis de ikke slår seg på, kan det imidlertid være lurt å dobbeltsjekke kretsen og se etter feil tilkoblinger.
Trinn 7: Installer elektronikken på baksiden
Det neste trinnet er å installere elektronikken på et treverk, som vi også skal bruke på baksiden av speilet. Jeg festet elektronikken til brettet med noen skruer og limte to blokker på høyre og venstre side av baksiden som brukes til å skru baksiden av esken til selve esken.
Trinn 8: Monter speilene med esken
Nå er det på tide å montere speilene, feste lysdiodene til rammen og sette lyddeteksjonssensoren på plass.
Enveis speil
Enveis speilet vil bli plassert på selve rammen, med den fargede siden vendt nedover mot speilet og lysdioder. For å lage dette speilet selv trenger du glassplaten og den tonede vindusfilmen. Klipp først vindusfilmen i riktig størrelse, men la ca 2-5 cm ekstra plass på hver side. Deretter vil du rengjøre vinduet helt og fjerne alle støvrester. Dekk deretter vinduet med litt vann og såpe og fjern plasten forsiktig fra vindusfilmen (du kan plassere tape på hver side for å enkelt fjerne den). Nå vil du også dekke den klebrig siden av vindusfilmen med vann og såpe for å forhindre at den fester seg. Alt du trenger å gjøre nå er å plassere det på toppen av glasset og feie det på plass (se bildene ovenfor). La det tørke i omtrent et døgn og fjern den gjenværende vindusfilmen.
Fest lysdiodene til boksen
Det neste trinnet er å feste lysdiodene til esken, noe som kan gjøres ved å fjerne det klebrig papiret. Jeg anbefaler også å påføre litt lim på baksiden av stripen for å forhindre at den løsner.
Plasser speilene og fullfør det
Det siste trinnet er å sette både enveis speilet og det normale speilet på plass. Det vanlige speilet går bak LED-stripen og enveis speilet går foran. Lim dem på plass med litt raskt lim og skru bakplaten med elektronikken på baksiden av esken. Sett lyddeteksjonssensoren på plass, koble til alle ledningene, og voila, du er ferdig!
Trinn 9: Test ditt uendelige speil
Alt du trenger å gjøre nå er å teste om alt fungerer. Og det er det! Nå har du bygget ditt eget Bluetooth kontrollerbare og lydreaktive uendelig speil!: D
Ikke nøl med å spørre i kommentarfeltet hvis du har spørsmål.
Takk og ha det gøy!