Përmbajtje:
- Furnizimet
- Hapi 1: Le t'ia dalim
- Hapi 2: Përgatitja e materialit
- Hapi 3: Prerja e akrilikut
- Hapi 4: Krijoni anët me printerët 3D
- Hapi 5: Xhirimi
- Hapi 6: Bashkoni Rripin LED + Rripin LED të bashkuar (NeoPixel) me tela
- Hapi 7: Kalimi i Taktit të Saldimit me Tela
- Hapi 8: Asambleja -Futni rrufe në anën = ①
- Hapi 9: Bashkojeni Ⓛⓣ me Ⓒ =
- Hapi 10: Montimi -Përdorni a Ⓦ dhe Ⓝ për të kombinuar ① dhe ② =
- Hapi 11: Asambleja -Atach Ⓐⓔ dhe ③ Duke përdorur një lidhje akrilike =
- Hapi 12: Bashkojeni Ⓢ me Ⓓ =
- Hapi 13: Montimi -Kombinoni ④ dhe ⑤ Duke përdorur Ⓦ dhe Ⓝ =
- Hapi 14: Asambleja e plotë e Copës
- Hapi 15: Paraqitja në punë e një projekti
- Hapi 16: NeoPixel, Lidhës Lidhës
- Hapi 17: NeoPixel dhe Arduino Wiring
- Hapi 18: Programoni Arduino
- Hapi 19:
- Hapi 20: Modelet
Video: Light Me Up !: 20 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
anëtarët e ekipit të projektit
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Po sikur të mund të prekni dhe dizajnoni dritën? Si do të ndiheshit nëse do të kishit një model të bukur drite që e keni projektuar vetë me një animacion interesant? Light me up do të jetë një skicë interesante që prek dhe dizajnon vetë dritën dhe bën modele interesante! Ky projekt ka disa trekëndësha që formojnë një formë gjashtëkëndore. Kështu që ju mund të krijoni modele stereoskopike sipas mënyrës se si e projektoni dritën! Thjesht shtypni secilën pjesë dhe ngjyrat e ndryshme do të gradohen, dhe kur të dalë ngjyra që dëshironi, thjesht goditni dorën që keni shtypur dhe do të vazhdojë të shkëlqejë bukur me ngjyrën që dëshironi! Projekti përdori rreth 312 trekëndësha, por mund të krijojë një dritë e bukur që funksionon mirë me 6 trekëndësha. Tani më lejoni t'ju tregoj se si ta bëni atë me gjashtë trekëndësha. Ndiqni hapat dhe do të keni punën tuaj të mrekullueshme!
Furnizimet
Pajisjet kompjuterike: Arduino (kam përdorur arduino mega 2560), Akrilik (i qartë, i bardhë), Rrip LED (NeoPixel), Diffuser Film, buton, Lidhës me 4 kunja, Tela, Bord qark, Furnizim me energji elektrike
Mjetet: Makinë prerëse e drejtuar me lazer, Printer 3D
Hapi 1: Le t'ia dalim
Le ta bëjmë këtë pjesë të bukur gjashtëkëndore me mua!
Light Me Up është bërë duke përdorur 312 trekëndësha, por edhe 6 trekëndësha mund të krijojnë një dritë të mrekullueshme. Nëse dëshironi ta bëni atë në një shkallë më të madhe, mund ta bëni duke iu referuar skedarit të bashkangjitur më poshtë.
Hapi 2: Përgatitja e materialit
Hapi 3: Prerja e akrilikut
Përdorni një prestar lazer për të prerë pjesën e përparme dhe të pasme të secilës pjesë. Ngjyra e akrilikut në pjesën e pasme mund të jetë gjithçka që dëshironi, por sigurohuni që të përdorni akrilik transparent sepse pjesa e përparme duhet të errësohet! Nëse përdorni një ngjyrë akrilike të ndryshme nga ajo transparente, nuk do ta shihni mirë dritën.
Hapi 4: Krijoni anët me printerët 3D
Tani është koha për të bërë anët e secilës pjesë. Le ta bëjmë! Skedarët e modelimit 3D në anën janë bashkangjitur më poshtë. Ne përdorëm PLA për të bërë anët PLA është më e fortë dhe më pak kontraktime sesa ABS, kështu që fijet rekomandohen të përdorin PLA.
Hapi 5: Xhirimi
Tani le të vendosim një film të shpërndarjes së lehtë në akrilik në pjesën e përparme. Nëse vendosni film mbi të, ai përhapet dhe shkëlqen shumë më bukur. Së pari, prejeni filmin në formën e një trekëndëshi. (Më mirë ta preni filmin më të madh se akriliku i prerë) simpleshtë e thjeshtë të vendosni film, si një film mbrojtës në telefonin tuaj. Nëse doni të jepni bakshish këtu, mund të përdorni një kartë për ta shtyrë atë në mënyrë që të ngjitet me kujdes!
Hapi 6: Bashkoni Rripin LED + Rripin LED të bashkuar (NeoPixel) me tela
Nëse keni qenë aq të mirë në bashkimin e shiritit LED, është koha për të vendosur shiritin LED në anën e pasme. Së pari, lidhni një armë zam ose kasetë të dyanshme në pjesën e prapme të shiritit LED. Dhe së pari hiqni telat nga të dy anët e telit të bashkimit përmes vrimave në të dy anët. Së fundi, ngjiteni shiritin LED në akrilikun e pasmë dhe mbaron!
Timeshtë koha e saldimit! përgatitni shirita LED, lidhës 4-pin (lidhës ose tela) dhe atë që ju nevojitet për bashkim. Kam përdorur LED në tre njësi. Nëse dëshironi, mund të përdorni një ose dy LED, por unë rekomandoj të përdorni tre. Kur të gjitha materialet të jenë gati, lidhni telat në të dy linjat e të dhënave, linjat 5v dhe linjat e tokëzimit të shiritit LED.
Hapi 7: Kalimi i Taktit të Saldimit me Tela
Hapi 8: Asambleja -Futni rrufe në anën = ①
Tani është një pjesë vërtet e lehtë! Vendosni një bulon në secilën nga tre anët e printuara 3D. Arsyeja pse përdorimi i butonit të bulonave si përdorimi i bulonave dhe arrave strukturore do të jetë në gjendje të bëjë. Kur pjesa të ketë mbaruar, do ta vendos copën në kasë dhe do ta përfundoj me një arrë.
Hapi 9: Bashkojeni Ⓛⓣ me Ⓒ =
Hapi 10: Montimi -Përdorni a Ⓦ dhe Ⓝ për të kombinuar ① dhe ② =
Hapi 11: Asambleja -Atach Ⓐⓔ dhe ③ Duke përdorur një lidhje akrilike =
Nëse vendosni një rrufe në anë, ne do ta vendosim atë në anën dhe pjesën e përparme. Pjesa e përparme është akrilike, kështu që duhet ta vendosni me një lidhje akrilike të dedikuar. Nëse lidhni akrilik në një lidhje të rregullt, ajo do të lërë një shenjë.
Hapi 12: Bashkojeni Ⓢ me Ⓓ =
Hapi 13: Montimi -Kombinoni ④ dhe ⑤ Duke përdorur Ⓦ dhe Ⓝ =
Hapi 14: Asambleja e plotë e Copës
Hapi 15: Paraqitja në punë e një projekti
Hapi 16: NeoPixel, Lidhës Lidhës
Hapi 17: NeoPixel dhe Arduino Wiring
Hapi 18: Programoni Arduino
jashtme të paqëndrueshme të panënshkruara kohëmatësi0_millis;
#përfshi
#define MODEBTNNUM 3 int ani_mode = 0; pa shenjë të gjatë preM1, preM2, preM3;
void setup () {
Wire.begin (); për (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.fillo (9600); }
lak void () {
për (int i = 0; i <MODEBTNNUM; i ++) {nëse (! digitalRead (i + 2)) ani_mode = i + 1; } për (int i = 0; i <6; i ++) {Wire.questFrom (i+1, 1); ndërsa (Wire.available ()) {int x = Wire.read (); // Serial.println (x); nëse (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} /////////////////////////////////////////////// /////// nëse (ani_mode == 0) {për (int i = 1; i 3000) {preM1 = aktuale1; për (int i = 1; i 5000) {preM2 = aktuale2; për (int i = 1; i 3000) {preM3 = aktuale3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("rivendosja e kohëmatësit"); për (int i = 1; i <7; i ++) {Wire.beginTransmetimi (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmetimi (i); }}}}
Hapi 19:
jashtme të paqëndrueshme të panënshkruara kohëmatësi0_millis;
#përfshi
#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; ngjyrat int [num] [3]; int hue [num]; int sat [num]; int i ndritshëm [num]; int pNumri = 0; int gVlera [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; const int btnPin [num] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 46, 48, 50, 52, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54, 55, 56, 57, 58, 59}; int btnShteti [num]; boolean btnMode; int hueV [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; #përfshi #përcakto BTNNUM 1 int f_v = 1; pa nënshkrim i gjatë preMillis1; preM e pa firmosur gjatë; int ani_mode = 0; int ani2_Counter = 0; int counter = 0; ///////////////////////////////////////////// void setup () {Wire. filloj (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (merrniEvent); për (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.fillo (9600); strip.filloj (); } /////////////////////////////////////////////
lak void () {
nëse (f_v == 1) {për (int i = 0; i <num; i ++) {nuancë = 50; ul = 95; e ndritshme = 100; } f_v = 0; } /////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 t btnMode = i rremë; për (int i = 0; i <num; i ++) {nëse (! digitalRead (btnPin ))) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////// kaloni (ani_mode) {rasti 0: ani0 (); pushim; rasti 1: ani1 (); modaliteti ani = 0; ani2_Counter = 0; pushim; rasti 2: ani2_Counter = 1; modaliteti ani = 0; pushim; rasti 3: ani3 (); modaliteti ani = 0; ani2_Counter = 0; pushim; parazgjedhje: readyState (); pushim; } if (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
pavlefshme دریافتEvent (në shumë mënyra) {int x = Wire.read (); nëse (x == 5) {// Serial.println ("mori 5"); modaliteti ani = 0; } ani_mode = x; // Serial.println (ani_mode); } ///////////////////////////////////////////// void requestEvent () {
nëse (btnMode == e vërtetë) {
Tela.shkruaj (5); // Serial.println ("5 보냄"); } else {Wire.write (0); }
}
void ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); nëse (pNumri == 0) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; për (int a = 0; a <2; a ++) {nuancë [a1 [a] = 100; ul [a1 [a] = 95; e ndritshme [a1 [a] = 100; } për (int b = 0; b <2; b ++) {nuancë [b1 = 200; ul [b1 = 95; e ndritshme [b1 = 100; } për (int c = 0; c <2; c ++) {nuancë [c1 [c] = 300; ul [c1 [c] = 95; e ndritshme [c1 [c] = 100; } // Serial.println ("0"); } tjetër nëse (pNumri == 1) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; për (int a = 0; a <8; a ++) {nuancë [a2 [a] = 26; ul [a2 [a] = 95; e ndritshme [a2 [a] = 100; } për (int d = 0; d <4; d ++) {nuancë [d2 [d] = 63; ul [d2 [d] = 95; e ndritshme [d2 [d] = 100; } // Serial.println ("1"); } tjetër nëse (pNumer == 2) {// model kubik gjigant për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // e verdhë 06 për (int a = 0; a <6; a ++) {nuancë [a14 [a] = 35; ul [a14 [a] = 95; e ndritshme [a14 [a] = 100; }} tjetër nëse (pNumri == 3) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // e verdhë për (int a = 0; a <6; a ++) {nuancë [a3 [a] = 53; ul [a3 [a] = 95; e ndritshme [a3 [a] = 100; }} tjetër nëse (pNumri == 4) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a4 = {34, 35}; // int e verdhë b4 = {47}; // blu int c4 = {48}; // vjollce
për (int a = 0; a <2; a ++) {nuancë [a4 [a] = 53; ul [a4 [a] = 95; e ndritshme [a4 [a] = 100; }
për (int b = 0; b <1; b ++) {nuancë [b4 = 210; ul [b4 = 95; e ndritshme [b4 = 100; } për (int c = 0; c <1; c ++) {nuancë [c4 [c] = 307; ul [c4 [c] = 95; e ndritshme [c4 [c] = 100; }} tjetër nëse (pNumri == 5) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a5 = {34, 35, 46, 47, 48, 49};
për (int a = 0; a <6; a ++) {nuancë [a5 [a] = 100; ul [a5 [a] = 95; e ndritshme [a5 [a] = 100; }} tjetër nëse (pNumri == 6) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // e verdhë për (int a = 0; a <6; a ++) {nuancë [a6 [a] = 53; ul [a6 [a] = 95; e ndritshme [a6 [a] = 100; }} tjetër nëse (pNumer == 7) {për (int i = 0; i <num; i ++) {ndritshme = 0; gVlera = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // vjollcë për (int c = 0; c <6; c ++) {nuancë [c7 [c] = 307; ul [c7 [c] = 95; e ndritshme [c7 [c] = 100; }} tjetër nëse (pNumri == 8) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // vjollce për (int c = 0; c <6; c ++) {nuancë [c8 [c] = 307; ul [c8 [c] = 95; e ndritshme [c8 [c] = 100; }} tjetër nëse (pNumri == 9) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // vjollce për (int c = 0; c <6; c ++) {nuancë [c9 [c] = 307; ul [c9 [c] = 95; e ndritshme [c9 [c] = 100; }} tjetër nëse (pNumri == 10) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // vjollce për (int c = 0; c <6; c ++) {nuancë [c10 [c] = 307; ul [c10 [c] = 95; e ndritshme [c10 [c] = 100; }} tjetër nëse (pNumri == 11) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // vjollce për (int c = 0; c <6; c ++) {nuancë [c11 [c] = 307; ul [c11 [c] = 95; e ndritshme [c11 [c] = 100; }} tjetër nëse (pNumer == 12) {për (int i = 0; i <num; i ++) {e ndritshme = 0; gVlera = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // vjollce për (int c = 0; c <6; c ++) {nuancë [c12 [c] = 307; ul [c12 [c] = 95; e ndritshme [c12 [c] = 100; }} tjetër nëse (pNumri == 13) {për (int i = 0; i <num; i ++) {i ndritshëm = 0; gVlera = 1; } int a13 = {34, 35}; // e verdhë int b13 = {47}; // blu int c13 = {48}; // vjollce për (int a = 0; a <2; a ++) {nuancë [a13 [a] = 53; ul [a13 [a] = 95; e ndritshme [a13 [a] = 100; } për (int b = 0; b <1; b ++) {nuancë [b13 = 210; ul [b13 = 95; e ndritshme [b13 = 100; } për (int c = 0; c <1; c ++) {nuancë [c13 [c] = 307; ul [c13 [c] = 95; e ndritshme [c13 [c] = 100; }} pNumer = pNumër + 1;
nëse (pNumer == 14) {
pNumri = 0; }}
void ani2 () {
// Serial.println ("2"); curM e gjatë e panënshkruar = millis ();
nëse (curM - preM> = 10) {
preM = curM; për (int i = 0; i <num; i ++) {nëse (nuanca = 360) {gVlera = -1; } nuanca = nuanca + gVlera ; } sportel ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (kundër); // Serial.println (curM); numërues = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } ////////////////////////////////////////////// void readyState () {/ / Serial.println ("gati"); } //////////////////////////////////////////////////////////// void btnEvent (int b_interval) {pa shenjë e gjatë curMillis1 = milis ();
për (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
nëse (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; për (int i = 0; i = 360) {hueV = -1; } tjetër nëse (nuanca <= 0) {hueV = 1; } nuanca = nuanca + hueV ; e ndritshme = 100; }}}} ///////////////////////////////////////////// void setPixels (int k) {për (int i = 0; i <k; i ++) {H2R_HSBtoRGB (nuancë , ul , e ndritshme , ngjyra ); int num1 = i * 3; strip.setPixelColor (num1, ngjyrat [0], ngjyrat [1], ngjyrat [2]); strip.setPixelColor (num1 + 1, ngjyra [0], ngjyra [1], ngjyra [2]); strip.setPixelColor (num1 + 2, ngjyra [0], ngjyra [1], ngjyra [2]); } strip.shfaq (); }
Hapi 20: Modelet
Ky projekt ka disa trekëndësha që formojnë një formë gjashtëkëndore. Kështu që ju mund të krijoni modele stereoskopike sipas mënyrës se si e projektoni dritën! Thjesht shtypni secilën pjesë dhe ngjyrat e ndryshme do të gradohen, dhe kur të dalë ngjyra që dëshironi, thjesht goditni dorën që keni shtypur dhe ajo do të vazhdojë të shkëlqejë bukur me ngjyrën që keni dashur!
Recommended:
FuseLight: Kthehuni në Old/Fused Tubelight Into Studio/Light Light: 3 hapa (me fotografi)
FuseLight: Turn Old/Fused Tubelight Into Studio/Party Light: Këtu kam kthyer një Tubelight të shkrirë në një Studio/dritë duke përdorur disa mjete themelore, drita rgb dhe printim 3D. Për shkak të shiritave të udhëhequr nga RGB ne mund të kemi ngjyra dhe hije të shumëfishta
BookWorm Light-Up Book Light dhe Bookmark: 13 hapa (me fotografi)
BookWorm Light-Up Book Light dhe Bookmark: Bëni këtë faqerojtës argëtues të krimbave të librave që funksionon si një dritë libri! Ne do ta printojmë, do ta presim, ngjyrosim dhe dekorojmë, dhe ata e përdorin atë për të ndriçuar natën në mënyrë që të lexoni në errësirë. Ai është bërë me vetëm disa materiale dhe bën një gjë të mirë të parë
DIY WiFi Smart Security Light Light Me Shelly 1: 6 Hapa (me fotografi)
DIY WiFi Smart Security Light With Shelly 1: Ky udhëzues do të shikojë në krijimin e një dritë të mençur të sigurisë DIY duke përdorur stafetën inteligjente Shelly 1 nga Shelly. Bërja e një dritë sigurie të zgjuar do t'ju lejojë të keni shumë më tepër kontroll mbi atë kur aktivizohet dhe sa kohë qëndron ndezur. Mund të jetë aktive
DIY Givi V56 Motor Topbox Light Light Kit me Sinjale të Integruara: 4 Hapa (me Fotografi)
DIY Givi V56 Motor Topbox Light Light Me Sinjale të Integruara: Si një kalorës motoçikletash, jam shumë i njohur me trajtimin si të padukshëm në rrugë. Një gjë që shtoj gjithmonë tek biçikletat e mia është një top box i cili zakonisht ka një dritë të integruar. Kohët e fundit u përmirësova në një biçikletë të re dhe bleva Givi V56 Monokey
RPi IoT Light Light duke përdorur Firebase: 4 hapa (me fotografi)
RPi IoT Smart Light duke përdorur Firebase: Ky udhëzues ju tregon se si të krijoni dhe konfiguroni një aplikacion për të kontrolluar Raspberry Pi përmes Firebase (Një bazë të dhënash në internet). Dhe pastaj printimi 3D një kuti për Pi Zero W, një Powerboost 1000C, një bateri dhe një Blinkt!. Për të qenë në gjendje të ndiqni më lehtë, unë rekomandoj