Tartalomjegyzék:

Starry Sky Led Tie: 9 lépés (képekkel)
Starry Sky Led Tie: 9 lépés (képekkel)

Videó: Starry Sky Led Tie: 9 lépés (képekkel)

Videó: Starry Sky Led Tie: 9 lépés (képekkel)
Videó: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image
Csillagos égbolt Led nyakkendő
Csillagos égbolt Led nyakkendő
Csillagos égbolt Led nyakkendő
Csillagos égbolt Led nyakkendő

Nem sokkal ezelőtt egy dollárboltban találtam egy száloptikás gyerekjátékot, és azon kezdtem gondolkodni, hogy mit tehetnék vele.

Az egyik őrült ötletem az volt, hogy nyakkendőt csináltam a csillagos ég hatására.

Még mindig volt néhány arduino pro mini, adafruit táblák és elemek, amelyek valószínűleg illeszkednek ehhez a projekthez.

Tehát amint találtam egy szép széles nyakkendőt a városom zálogházában, és találtam egy dobozt, amely illeszkedhet a hardverhez, úgy döntöttem, hogy megkeresem és megpróbálom megépíteni.

Ez az oktatóanyag megmutatja, hogyan készítettem.

Működik arduino pro mini, adafruit powerboost 500 töltőn, emmerich icr 18650nh-sp és 5 fehér LED-en. A kód véletlenszerűvé teszi a LED fényerejének változását. (A videó első 40 másodperce háromszoros sebességű)

1. lépés: Vázlatok és hardver

Vázlatok és hardver
Vázlatok és hardver
Vázlatok és hardver
Vázlatok és hardver

A következő hardvert használom:

- NYÁK jégfehér LED -ekkel és 220 Ohm ellenállással.

-Arduino pro mini (kopogtatót használtam)

-Adafruit Powerboost 500 töltő

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

- Optikai szálak (különböző méretekben)

2. lépés: A NYÁK -ok tárolása a NYÁK -ban

A nyomtatott áramköri lapok készítése A LED -ek elhelyezése
A nyomtatott áramköri lapok készítése A LED -ek elhelyezése
A nyomtatott áramköri lapok készítése A LED -ek elhelyezése
A nyomtatott áramköri lapok készítése A LED -ek elhelyezése
A nyomtatott áramköri lapok készítése A LED -ek elhelyezése
A nyomtatott áramköri lapok készítése A LED -ek elhelyezése

Levágtam egy csíkot egy NYÁK -ról, hogy tartsák a LED -eket, és a LED -es csapok segítségével forrasztottam a fő NYÁK -hoz.

Az összes katódot (-) a GND-hez csatlakoztatta, és a csapok felét forrasztásra használta, és a fő NYÁK-ra ragadt.

Az összes anódot (+) ellenállásokhoz csatlakoztatta, és kábelekkel az arduino -hoz.

A LED -eket az alábbi PWM portok egyikéhez kell csatlakoztatni: 3, 5, 6, 9, 10, 11

Hülye én sok hibát követtem el ezzel a projekttel, és elfelejtettem ellenőrizni a megfelelő PWM portokat, ezért később újra kellett határoznom. Magas/Alacsony teszteléssel, így csak később vettem észre.

7 LED -del kezdtem, de csak 6 PWM -port volt, és az egyik újraladott LED meghalt. Megtartottam az 5 működő LED -et, és nem használom a 6 -ot.

3. lépés: A doboz elkészítése

A doboz elkészítése
A doboz elkészítése
A doboz elkészítése
A doboz elkészítése
A doboz elkészítése
A doboz elkészítése
A doboz elkészítése
A doboz elkészítése

Az akkumulátor, a gomb, a mikro-usb port, az Arduino fejlécei és az optikai szálak kivágásához Bosch GRO-t (például Dremel-t) és fúrót használtam. (használjon porvédő maszkot!)

2 szalaggal ragasztotta az akkumulátort a tokhoz.

Csavarokat használt az Adafruit tábla és a NYÁK rögzítéséhez.

A nyitás és zárás súrlódása károsított néhány vezetéket. Újra kellett forrasztanom őket, és ragasztót kellett használnom, hogy ne forduljon elő újra.

4. lépés: A nyakkendő előkészítése

A nyakkendő előkészítése
A nyakkendő előkészítése
A nyakkendő előkészítése
A nyakkendő előkészítése
A nyakkendő előkészítése
A nyakkendő előkészítése

Eltávolította a varrást a nyakkendő alsó részéről, hogy illeszkedjen a gumilaphoz.

Hogy elrejtsem a hardvert és továbbra is hozzáférhessek hozzá, ha szükséges, úgy döntöttem, hogy cipzárat használok.

Nem vagyok jó varrógéppel, ezért édes anyám cipzárt tett a nyakkendő hátára.

Miután ez megtörtént, ragasztottam a nyakkendőbe a gumilapot. Féltem, hogy túl sok ragasztót használok, ami telíti az anyagot és látható lesz elölről, ezért megpróbáltam kiegyenlíteni és nem túl sokat használni. Összességében jól néz ki, de néhány helyen túl sok vagy túl kevés ragasztót vettem észre, mert átjutott az anyagon, vagy nem nagyon ragadt rá. Szerencsére ez csak alig látható távolról erős fényben.

A doboz és a nyakkendő most kész. Ideje ragasztani a száloptikákat!

5. lépés: A száloptikák ragasztása

A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása
A száloptikák ragasztása

A játékban egy nagy köteg száloptikai vezeték volt, amely könnyen szétesett. Először megpróbáltam egyenként ragasztani őket, de hamar észrevettem, hogy jobb lenne kis kötegeket készíteni, és egyszerre ragasztani a LED -hez. Ez megkönnyítené a stabilitást, amíg a ragasztó megszárad. Elrontotta az első LED -et, amely ezt kitalálta.

Feltétlenül használjon átlátszó ragasztót! Az általam használt nagyon lassan száradt, és az első LED -en kipróbált gyorsan száradó ragasztó fehérre vált, így az első LED egyes szálai kevésbé fényesek.

Kis fekete gumilapokat ragasztottam, hogy megakadályozzam a fény szivárgását a tetején, és elválasszam a LED -eket.

Az egyik lap megakadályozta a tok lezárását, ezért hozzáadtam egy gumiszalagot a fedél zárásához.

6. lépés: A száloptikák átvezetése a nyakkendőn

A száloptikák átvezetése a nyakkendőn
A száloptikák átvezetése a nyakkendőn
A száloptikák átvezetése a nyakkendőn
A száloptikák átvezetése a nyakkendőn
A száloptikák átvezetése a nyakkendőn
A száloptikák átvezetése a nyakkendőn

Az aljától kezdve tűvel lyukakat csíptem, és egyenként átvittem a szálakat. Az egyes LED -ek szálai véletlenszerűen terjednek a nyakkendőben.

A hátlapra ragasztottam egy fekete csíkot, amelynek fel kellett mennie a nyakkendő kisebb részére, hogy megtartsa a doboz súlyát, de miután minden vezetéket átengedtem és éreztem a vezetékek feszességét, úgy döntöttem, hogy ragasztom a nyakkendőhöz minden jobb ötlet volt, és levágta a csíkot.

Mivel a játék száloptikai huzaljai olyan rövidek voltak, nehéz volt őket a nyakkendőre felszerelni. Korlátozottan tudtam elhelyezni a dobozt, és nehezen tudtam mindent olyan laposra hozni, ahogy akartam.

7. lépés: Száloptikák ragasztása a nyakkendőhöz

Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz
Száloptikák ragasztása a nyakkendőhöz

Az összes száloptikai vezetéket ragasztottam a gumilaphoz, hogy megakadályozzam a vezetékek kihúzását a gumilapból, és hogy a nyakkendő lapos legyen.

Annak érdekében, hogy ne ragasszam a bilincset a nyakkendőre, amikor nyomást gyakorolok rá, néhány papírt tettem közé. Nem tűnik nagyszerűnek, de jól működik. És nem látja, ha zárva van.

Miután a ragasztó megszáradt, levágtam az elülső vezetékeket, és egy kicsit levágtam a gumilapot a legmagasabb huzal felett, mert a kötés egy kicsit túl hosszú volt.

A fényképek a fehér inggel készülnek, mielőtt levágom az utolsó gumit.

8. lépés: A kód

A nyakkendőhöz írt kód alatt.

Minden LED -nek van egy "átlaga" (valójában nem átlagos, hanem közepes fényerő).

Amint eléri ezt az átlagot, 3/4 eséllyel úgy dönt, hogy alacsonyabb fényerőre megy. Ezenkívül véletlenszerűen beállít egy új minimális fényerőt, maximális fényerőt, várakozási időt a minimális és maximális fényerősséghez, valamint a sebességet, amelyet minden körben növel (vagy csökkent) (1-255) 5 előre beállított értékről. Ezután egy ciklust fog csinálni, amíg újra el nem éri az átlagot. Egyidejűleg csak 2 LED lehet nagy ciklusban.

Minden állapotot egy egész szám (1-7) képvisel, amely meghatározza, hogy átlag-alacsony, alacsony-átlag, alacsony várakozás, frissítés stb.

A kód arduino -ba történő feltöltésével kapcsolatos információkért nézze meg a www.arduino.cc oldalt

/ * Csillagos égbolt nyakkendő * * Ez egy olyan szkript, amely véletlenszerűen elhalványítja az 5 LED -et az átlagról alacsonyabb * vagy magasabb fényerőre, véletlenszerű alacsonyabb, magasabb és időzítési beállításokkal *, hogy száloptikával együtt csillagos égboltnak tűnjön. * Ebben az esetben ezeket döntetlenben hajtják végre. * * Fel/le esély = 1/4 felfelé, 3/4 lefelé, maximum 2 * felfelé haladva egyszerre. * * Az átlag változatlan marad. * A minimális, maximális és időzítési lehetőségek véletlenszerűen változnak * 5 lehetőségből minden alkalommal, amikor egy LED ismét eléri az átlagot. * * Készítette: Billy Jaspers, 2019. május. *

/ Csapok deklarálása

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

// Időváltozók

előjel nélküli long currentTime; előjel nélküli hosszú várakozási idő [5]; unsigned long lastRound;

// LED -es változók

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimális fényerő int brightAvg [5] = {200, 200, 200, 200, 200}; // Átlagos fényerő int brightMax [5] = {240, 240, 240, 240, 240}; // Maximális fényerő int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Várakozási idő int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Várakozási idő int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Várakozási idő növekményben [5] = {2, 5, 4, 5, 2}; // Fényerő -növekedés int currentBright [5] = {200, 230, 210, 210, 235}; // Jelenlegi fényerő

// LED -es változók lehetőségei

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimális fényerő lehetőségek int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maximális fényerő lehetőségek int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Várakozási idő alacsony fényerő mellett int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Várakozási idő nagy fényerejű lehetőségeknél int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Várakozási idő átlagos fényerő -lehetőségeken belül növekménybenPos [5] = {2, 4, 5, 3, 1}; // a fényerő növelése

// Változók

bool indítás = igaz; // El kell indítani az indítási beállításokat?

// Irányváltozók

/* 0 = Várakozás átlagosan 1 = átlag alacsony szintre 2 = várakozás alacsony 3 = alacsony átlag 4 -re = átlag max 5 -re = várakozás max 6 -ra = magas átlag 7 -re = változók frissítése*/ int állapotLED [5] = {0, 0, 0, 0, 0}; int mennyiségHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {hamis, hamis, hamis, hamis, hamis}; // Vár a Led?

// Véletlen változók

hosszú randomNumber; // Hosszú a véletlenszám tárolásához long randomNumberTwo; // Hosszú a második véletlen szám tárolása

// számlálók

int i = 0; // Fő hurok számlálója

void setup () {

Sorozat.kezdet (115200); // Soros randomSeed indítása (analogRead (A0)); // A randomseed beállítása

// Kimenetek deklarálása

pinMode (LED01, KIMENET); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, KIMENET); }

// Adatok írása LED -ekre

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

// Főhurok

void loop () {if (indítás) {// Indítási beállítások lastRound = millis (); // LastRound beállítása a boot writeToLED (); // Indítási adatok írása a LED indításhoz = false; // Indítás kikapcsolása} currentTime = millis (); // Állítsa be a pontos időt

if (currentTime - lastRound> = refreshRate) {

for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Led randomNumber = random (5) frissítése; brightMin = brightMinPos [randomNumber]; // Véletlen érték beállítása a minimális fényerőhöz randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Véletlen érték beállítása a maximális fényerőhöz randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Véletlen érték beállítása az alacsony várakozási időhöz randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Véletlen érték beállítása a magas várakozási időhöz randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Véletlen érték beállítása az átlagos várakozási időhöz randomNumber = random (5); növekmény = növekményPos [véletlenszám]; // Véletlen érték beállítása a növekményhez randomNumber = random (2); // Véletlen érték beállítása randomNumberTwo = random (2); // Véletlen érték beállítása az irányhoz, ha (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Ha a legalacsonyabb ponton: Menjen a Várakozás átlaga oldalra} else {currentBright = currentBright +növekmény ; // Egyéb: Nagyobb fényerő}} else if (statusLED == 2) {// -2- Várakozás alacsony, ha (! StatusWaiting ) {// Ha nem vár, vár: timeTime = millis (); // Várakozási idő állapotának beállításaWaiting = true; // Várakozás megkezdése} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Ha várakozás ÉS timeWaitAvg letelt: statusWaiting = false; // A várakozás leállítása állapotLED = 3; // A statusLed beállítása frissítésre vár}}} else if (statusLED == 1) {// -1- Átlag alacsonyra állítása, ha (currentBright <= brightMin ) {statusLED = 2; // Ha a legalacsonyabb ponton: Menjen a Várakozás alacsonyba} else {currentBright = currentBright -növekedés ; // Egyéb: Csökkentse a fényerőt}} else if (állapotLED == 6) {// -6- Maximális átlag elérése, ha (currentBright = timeWaitMax ) {// Ha várakozás ÉS timeWaitAvg elmúlt: statusWaiting = hamis; // A várakozás leállítása állapotLED = 6; // A statusLed beállítása frissítésre vár}}} else if (statusLED == 4) {// -4- Átl. Max. Értékre áll, ha (currentBright > = brightMax ) {statusLED = 5; // Ha a legalacsonyabb ponton: Ugrás a Várakozás magasra} else {currentBright = currentBright +növekmény ; // Egyéb: Nagyobb fényerő}} else if (statusLED == 0) {// -0- Várakozás átlagosan, ha (! StatusWaiting ) {// Ha nem vár: waitTime = millis (); // Várakozási idő állapotának beállításaWaiting = true; // Várakozás megkezdése} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Ha várakozás ÉS timeWaitAvg letelt: statusWaiting = false; // A várakozás leállítása állapotLED = 7; // A statusLed beállítása Frissítésre vár}}} i = 0; lastRound = millis (); // Az utolsó kör befejezésének beállítása. writeToLED (); // Írja be az összes adatot a LED -ekre}}

9. lépés: Végtermék

Image
Image
Végtermék
Végtermék
Végtermék
Végtermék

Szerintem jól sikerült. A nyakkendő nem túl vastag, merev, hosszú vagy nehéz, és a csillaghatás elképesztően jól néz ki.

Ajánlott: