Sisällysluettelo:

Starry Sky Led Tie: 9 vaihetta (kuvilla)
Starry Sky Led Tie: 9 vaihetta (kuvilla)

Video: Starry Sky Led Tie: 9 vaihetta (kuvilla)

Video: Starry Sky Led Tie: 9 vaihetta (kuvilla)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Joulukuu
Anonim
Image
Image
Tähtitaivas Led Tie
Tähtitaivas Led Tie
Tähtitaivas Led Tie
Tähtitaivas Led Tie

Jokin aika sitten löysin dollarikaupasta lasten lelun, jossa oli kuituoptiikkaa, ja aloin miettiä, mitä voisin tehdä sen kanssa.

Yksi hulluista ajatuksistani oli solmion tekeminen tähtitaivaan vaikutuksesta.

Minulla oli vielä joitain arduino pro miniä, adafruit -lautoja ja paristoja, jotka sopisivat todennäköisesti tähän projektiin.

Joten heti kun löysin mukavan leveän solmion kaupungissani olevasta panttilainaamosta ja löysin laatikon, joka saattaisi sopia laitteistoon, päätin mennä siihen ja yrittää rakentaa sen.

Tämä opas näyttää, miten tein sen.

Se toimii arduino pro minillä, adafruit powerboost 500 -laturilla, emmerich icr 18650nh-sp: llä ja 5 valkoisella LEDillä. Koodi tekee LED -valon kirkkauden muutoksen satunnaiseksi. (Videon ensimmäiset 40 sekuntia ovat 3 -kertaisia)

Vaihe 1: Kaaviot ja laitteisto

Kaaviot ja laitteisto
Kaaviot ja laitteisto
Kaaviot ja laitteisto
Kaaviot ja laitteisto

Käytän seuraavaa laitteistoa:

- Piirilevy, jossa on jäävalkoiset LEDit ja 220 ohmin vastukset.

-Arduino pro mini (käytin knockoffia)

-Adafruit Powerboost 500 -laturi

-Emmerich Li-ion accu ICR-18650NH-SP

- Valokuidut (eri kokoja)

Vaihe 2: Piirilevyn luominen LEDien isännöinti

Piirilevyn tekeminen LEDien isännöinti
Piirilevyn tekeminen LEDien isännöinti
Piirilevyn tekeminen LEDien isännöinti
Piirilevyn tekeminen LEDien isännöinti
Piirilevyn tekeminen LEDien isännöinti
Piirilevyn tekeminen LEDien isännöinti

Leikkasin nauhan pois piirilevystä LEDien pitämiseksi ja käytin LED -nastat juottamaan sen pääpiirilevyyn.

Yhdisti kaikki katodit (-) GND: hen ja käytti puolet nastoista juottamaan sen kiinni PCB: hen.

Kytketty kaikki anodit (+) vastuksiin ja kaapeleilla arduinoon.

LEDit on liitettävä yhteen seuraavista PWM -porteista: 3, 5, 6, 9, 10, 11

Typerä tein paljon virheitä tämän projektin kanssa ja unohdin tarkistaa oikeat PWM -portit, joten minun piti ratkaista muutama myöhemmin. Testattu korkealla/matalalla, joten huomasin tämän vasta myöhemmin.

Aloitin seitsemällä LED -valolla, mutta PWM -portteja oli vain 6 ja yksi uudelleen myydyistä LEDeistä kuoli. Pidin vain viisi toimivaa LEDiä, enkä käytä kuudetta.

Vaihe 3: Laatikon valmistus

Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen
Laatikon tekeminen

Käytin Bosch GRO: ta (kuten Dremelia) ja poraa leikkaamaan akun muodon, painikkeen, mikro-usb-portin, Arduinon otsikot ja optiset kuidut. (käytä pölynaamaria!)

Liimattu akku koteloon 2 nauhalla.

Käytti ruuveja Adafruit -levyn ja piirilevyn kiinnittämiseen.

Kitkan avaaminen ja sulkeminen vaurioitti johtoja. Minun piti lastaa ne uudelleen ja käyttää liimaa, jotta se ei toistu.

Vaihe 4: Solmion valmistelu

Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu

Irrotettiin ompeleet solmion alaosasta sopimaan kumilevyyn.

Piilottaakseni laitteiston ja silti päästä siihen tarvittaessa käsiksi, päätin käyttää vetoketjua.

En ole hyvä ompelukoneessa, joten suloinen äitini laittoi vetoketjun solmion taakse.

Tämän jälkeen liimasin kumilevyn solmioon. Pelkäsin käyttää liikaa liimaa, joka kyllästäisi kankaan ja olisi näkyvissä edestä, joten yritin tasoittaa sen ja olla käyttämättä liikaa. Kaiken kaikkiaan se näyttää hyvältä, mutta muutamassa paikassa huomasin liikaa tai liian vähän liimaa, koska se tuli kankaan läpi tai ei tarttunut kankaaseen kovin hyvin. Onneksi tämä näkyy vain tuskin lähietäisyydeltä kirkkaassa valossa.

Laatikko ja solmio on nyt tehty. Aika liimata kuituoptiikka!

Vaihe 5: Valokuitujen liimaaminen

Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus
Kuituoptisten liimaus

Lelussa oli yksi iso nippu kuituoptisia johtoja, jotka hajosivat helposti. Yritin aluksi liimata niitä yksitellen, mutta huomasin pian, että olisi parempi tehdä pieniä nippuja ja kiinnittää ne LED -valoon kerralla. Se helpottaisi pitämistä vakaana, kunnes liima on kuiva. Sotki ensimmäisen LEDin, joka selvitti tämän.

Muista käyttää läpinäkyvää liimaa! Käyttämäni kuivui hyvin hitaasti ja nopeasti kuivuva liima, jota kokeilin ensimmäisellä LEDillä, muuttui valkoiseksi, jolloin jotkut ensimmäisen LEDin kuidut olivat vähemmän kirkkaita.

Liimasin pienet mustat kumilevyt estämään valon vuotamisen päälle ja erottamaan LEDit.

Yksi arkeista esti kotelon sulkemisen, joten lisäsin kuminauhan pitämään kansi kiinni.

Vaihe 6: Valokuitujen siirtäminen solmion läpi

Valokuitujen siirtäminen solmion läpi
Valokuitujen siirtäminen solmion läpi
Valokuitujen siirtäminen solmion läpi
Valokuitujen siirtäminen solmion läpi
Valokuitujen siirtäminen solmion läpi
Valokuitujen siirtäminen solmion läpi

Alusta alkaen puristin reikiä neulalla ja laitoin kuidut yksi kerrallaan. Kunkin LEDin kuidut leviävät satunnaisesti solmion poikki.

Liimasin takaosaan mustan nauhan, jonka piti mennä solmion pienempään osaan pitämään laatikon paino, mutta sen jälkeen, kun olin laittanut kaikki johdot läpi ja tuntenut lankojen kireyden, päätin liimata kaikki solmio oli parempi idea ja katkaisi nauhan.

Koska lelun kuituoptiset johdot olivat niin lyhyitä, niitä oli vaikea kiinnittää koko solmioon. Olin rajallinen laatikon sijoittamisessa ja minulla oli vaikeuksia tehdä kaikki niin tasaiseksi kuin halusin.

Vaihe 7: Valokuitujen liimaaminen solmioon

Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon
Valokuitujen liimaaminen solmioon

Liimasin kaikki kuituoptiset johdot kumilevyyn estääkseni johtojen vetäytymisen kumilevystä ja tehdäksesi solmion tasaiseksi.

Varmistaakseni, etten kiinnittänyt puristinta solmioon painettaessa sitä, laitoin paperia väliin. Se ei näytä kovin hienolta, mutta toimii hyvin. Ja et näe sitä, kun se on suljettu.

Kun liima on kuivunut, katkaisin etupuolella olevat johdot ja leikkasin hieman irti kumilevystä juuri korkeimman langan yläpuolella, koska solmio oli hieman liian pitkä.

Valkoisella paidalla otetut kuvat on otettu ennen kuin leikkaan viimeisen kumin pois.

Vaihe 8: Koodi

Koodin alle, jonka kirjoitin tasapelille.

Kaikilla LEDeillä on asetettu "keskiarvo" (ei oikeastaan keskiarvo, vaan keskikirkkaus).

Heti kun se saavuttaa tämän keskiarvon, se päättää 3/4 todennäköisyydellä pienemmälle kirkkaudelle. Se asettaa myös satunnaisesti uuden vähimmäiskirkkauden, suurimman kirkkauden, odotusajan vähimmäis- ja maksimikirkkaudelle sekä nopeuden, joka kasvaa tai pienenee joka kierros (1-255) viidestä esiasetetusta arvosta. Sitten se tekee syklin, kunnes se saavuttaa jälleen keskiarvon. Vain 2 LEDiä voi olla korkeassa jaksossa samanaikaisesti.

Jokaista tilaa edustaa kokonaislukuarvo (1-7), joka määrittää, onko se menossa keskimäärin, alhainen keskiarvo, odottava alhainen, päivittyy jne.

Lisätietoja koodin lataamisesta arduinoon on osoitteessa www.arduino.cc

/ * Tähtitaivaan solmio * * Tämä on käsikirjoitus, joka häivyttää satunnaisesti 5 LEDiä keskimääräisestä pienempään * tai korkeampaan kirkkauteen satunnaisilla pienemmillä, korkeammilla ja ajoitusasetuksilla * näyttääkseen tähtitaivaalta, kun sitä käytetään kuituoptisten kanssa. * Tässä tapauksessa ne toteutetaan tasapelissä. * * Ylös/alas -mahdollisuus = 1/4 ylös, 3/4 alas, enintään 2 * nousee samaan aikaan maksimiin. * * Keskiarvo pysyy samana. * Minimi-, maksimi- ja ajoitusvaihtoehdot muuttuvat satunnaisesti * viidestä vaihtoehdosta aina, kun LED saavuttaa keskiarvon uudelleen. * * Luonut Billy Jaspers, toukokuu 2019. *

/ Ilmoita nastat

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Aikamuuttujat

allekirjoittamaton pitkä nykyinen aika; allekirjoittamaton pitkä odotusaika [5]; allekirjoittamaton pitkä viimeinen pyöreä;

// LED -muuttujat

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimi kirkkaus int brightAvg [5] = {200, 200, 200, 200, 200}; // Keskimääräinen kirkkaus kirkkaassaMax [5] = {240, 240, 240, 240, 240}; // Suurin kirkkaus int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Odotusaika int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Odotusaika int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Odotusaika lisäyksin [5] = {2, 5, 4, 5, 2}; // Kirkkauden lisäys nykyisessä kirkkaassa [5] = {200, 230, 210, 210, 235}; // Nykyinen kirkkaus

// LED -muuttujien mahdollisuudet

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimi kirkkausmahdollisuudet int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Suurimmat kirkkausmahdollisuudet int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Odotusaika pienillä kirkkausmahdollisuuksilla int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Odotusaika suurilla kirkkausmahdollisuuksilla int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Odotusaika keskimääräisissä kirkkausmahdollisuuksissa lisäyksinPos [5] = {2, 4, 5, 3, 1}; // kirkkauden lisääminen

// Muuttujat

bool -käynnistys = totta; // Onko käynnistysasetukset käynnistettävä?

// Suuntamuuttujat

/* 0 = Odotetaan keskimäärin 1 = siirtyminen keskiarvoon matalaksi 2 = odottava matala 3 = menossa matalaksi keskiarvoksi 4 = siirtyminen keskiarvoon maksimi 5 = odottaminen korkeintaan 6 = menossa korkeaan keskiarvoon 7 = päivitetään muuttujia*/ int statusLED [5] = {0, 0, 0, 0, 0}; int määräHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Odottaako Led?

// Satunnaismuuttujat

pitkä satunnaisluku; // Pitkä tallentaa satunnaisluku pitkä randomNumberTwo; // Pitää tallentaa toinen satunnaisluku

// laskurit

int i = 0; // Pääsilmukan laskuri

void setup () {

Sarja.alku (115200); // Aloita sarja randomSeed (analogRead (A0)); // Aseta satunnainen siemen

// Ilmoita lähdöt

pinMode (LED01, LÄHTÖ); pinMode (LED02, LÄHTÖ); pinMode (LED03, LÄHTÖ); pinMode (LED04, LÄHTÖ); pinMode (LED05, LÄHTÖ); }

// Kirjoita tiedot LED -valoihin

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Pääsilmukka

void loop () {if (startup) {// Käynnistysasetukset lastRound = millis (); // Aseta lastRound käynnistykselle writeToLED (); // Kirjoita käynnistystiedot LED -käynnistykseen = false; // Sammuta käynnistys} currentTime = millis (); // Aseta kellonaika

if (currentTime - lastRound> = refreshRate) {

for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Päivitetään Led randomNumber = random (5); brightMin = brightMinPos [satunnaisluku]; // Aseta satunnaisarvo vähimmäiskirkkaudelle randomNumber = random (5); brightMax = brightMaxPos [satunnaisluku]; // Aseta satunnaisarvo suurimmalle kirkkaudelle randomNumber = random (5); timeWaitLow = aikaLowPos [satunnaisluku]; // Aseta satunnaisarvo alhaiselle odotusajalle randomNumber = random (5); timeWaitMax = aikaHighPos [satunnaisluku]; // Aseta satunnaisarvo suurelle odotusajalle randomNumber = random (5); timeWaitAvg = aikaAvgPos [satunnaisluku]; // Aseta satunnaisarvo keskimääräiselle odotusajalle randomNumber = random (5); lisäys = lisäysPos [satunnaisluku]; // Aseta satunnaisarvo lisäarvolle randomNumber = random (2); // Aseta satunnaisarvo suunnalle randomNumberTwo = random (2); // Aseta satunnainen arvo suunnalle, jos (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Jos alimmassa kohdassa: Siirry Odottava keskiarvo} else {currentBright = currentBright +lisäys ; // Else: Suurempi kirkkaus}} else if (statusLED == 2) {// -2- Odottaa vähän, jos (! StatusWaiting ) {// Jos ei odota: waitingTime = millis (); // Aseta odotusaika statusWaiting = true; // Aloita odotus} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Jos odotetaan JA timeWaitAvg on ohitettu: statusWaiting = false; // Lopeta odotus -tilaLED = 3; // Aseta statusLed arvoon Odottaa päivitystä}} else if (statusLED == 1) {// -1- Keskiarvon laskeminen matalaksi, jos (currentBright <= brightMin ) {statusLED = 2; // Jos alimmassa kohdassa: Siirry odottavaan aikaan} else {currentBright = currentBright -lisäys ; // Muuten: pienennä kirkkautta}} else if (statusLED == 6) {// -6- Maksimi keskiarvo, jos (currentBright = timeWaitMax ) {// Jos odotetaan JA timeWaitAvg on kulunut: statusWaiting = false; // Lopeta odotus -tilaLED = 6; // Aseta statusLed -tilaan Odotetaan päivitystä}} else if (statusLED == 4) {// -4- Siirryt keskiarvoon Max, jos (currentBright > = brightMax ) {statusLED = 5; // Jos alimmassa kohdassa: Siirry odottavaan kohtaan} else {currentBright = currentBright +lisäys ; // Muuten: suurempi kirkkaus}} else if (statusLED == 0) {// -0- Odotetaan keskimäärin, jos (! StatusWaiting ) {// Jos ei odota: waitingTime = millis (); // Aseta odotusaika statusWaiting = true; // Aloita odottaminen} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Jos odotetaan JA timeWaitAvg on ohitettu: statusWaiting = false; // Lopeta odotus -tilaLED = 7; // Aseta statusLed arvoon Odottaa päivitystä}}} i = 0; lastRound = millis (); // Aseta, kun viimeinen kierros on päättynyt. writeToLED (); // Kirjoita kaikki tiedot LED -valolle}}

Vaihe 9: Lopputuote

Image
Image
Lopputuote
Lopputuote
Lopputuote
Lopputuote

Mielestäni se toimi hyvin. Solmio ei ole liian paksu, jäykkä, pitkä tai raskas ja tähtiefekti näyttää hämmästyttävältä.

Suositeltava: