Sisällysluettelo:
- Vaihe 1: Kaaviot ja laitteisto
- Vaihe 2: Piirilevyn luominen LEDien isännöinti
- Vaihe 3: Laatikon valmistus
- Vaihe 4: Solmion valmistelu
- Vaihe 5: Valokuitujen liimaaminen
- Vaihe 6: Valokuitujen siirtäminen solmion läpi
- Vaihe 7: Valokuitujen liimaaminen solmioon
- Vaihe 8: Koodi
- Vaihe 9: Lopputuote
Video: Starry Sky Led Tie: 9 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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
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
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
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
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
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
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:
Grid Tie Inverter: 10 vaihetta (kuvilla)
Grid Tie Inverter: Tämä on lihava projekti, joten solki ylös! Grid tie invertterit voit työntää virtaa pistorasiaan, mikä on mahtava kyky. Minusta niiden suunnitteluun osallistuvat tehoelektroniikka- ja ohjausjärjestelmät ovat mielenkiintoisia, joten rakensin oman. Tämä raportti on
Rakenna säähallintapaneeli Dark Sky -sovellusliittymän avulla: 5 vaihetta (kuvilla)
Rakenna säähallintapaneeli Dark Sky -sovellusliittymän avulla: Dark Sky on erikoistunut sääennusteisiin ja visualisointiin. Dark Skyn hienoin osa on niiden sääsovellusliittymä, jonka avulla voimme hakea säätiedot lähes mistä tahansa maailmasta. Sää ei ole vain sateinen tai aurinkoinen, mutta lämpötila on
Diy -kaiutin 2 -tie: 6 vaihetta (kuvilla)
Diy -kaiutin 2 -tie: Tämä ohje sisältää ohjeet kaksisuuntaisen monokanavakaiuttimen rakentamiseen. Kaikki sähkökomponentit voidaan ostaa Amazonista alla olevien kumppanilinkkien kautta. Rakennuksen kokonaiskustannukset olivat kuitenkin ~ 160 dollaria; sähkökomponentit c
Holi-Tie: 8 vaihetta (kuvilla)
Holi-Tie: Tämä on Holi-Tie, juhla-solmio, joka on suunniteltu käytettäväksi lomien aikana. Holi-Tie perustuu löyhästi Becky Sternin Ampli-Tie -laitteeseen, joka käyttää Flora-levyä, ja käyttää Circuit Python Express (CPX) -mikro-ohjainta NeoPixel-animaatioiden ohjaamiseen
Arduino CNC -piirustuskone (tai tie menestykseen): 10 vaihetta (kuvilla)
Arduino CNC -piirustuskone (tai tie menestykseen): Tämä projekti perustuu enimmäkseen kohteisiin, jotka on helppo löytää. Ajatuksena on ottaa kaksi käyttämätöntä tietokoneen levyyksikköä ja yhdistää ne luomaan automaattinen piirustuskone, joka muistuttaa CNC -konetta. Asemista käytetyt kappaleet sisältävät mo