Inhoudsopgave:

Light Me Up!: 20 stappen (met afbeeldingen)
Light Me Up!: 20 stappen (met afbeeldingen)

Video: Light Me Up!: 20 stappen (met afbeeldingen)

Video: Light Me Up!: 20 stappen (met afbeeldingen)
Video: Lamp ophangen stappenplan. 2024, November
Anonim
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!
Vrolijk me op!

projectteamleden

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Wat als je het licht zou kunnen aanraken en ontwerpen? Hoe zou het voelen als je een prachtig lichtpatroon had dat je zelf had ontworpen met een interessante animatie? Light me up wordt een interessant schetsboek dat het licht zelf aanraakt en ontwerpt en interessante patronen maakt! Dit project heeft verschillende driehoeken die een zeshoekige vorm. U kunt dus stereoscopische patronen creëren op basis van hoe u licht ontwerpt! Druk gewoon op elk stuk en verschillende kleuren worden gegradeerd, en wanneer de gewenste kleur naar buiten komt, drukt u gewoon op de hand die u hebt ingedrukt en het zal prachtig blijven glanzen met de gewenste kleur! Het project gebruikte ongeveer 312 driehoeken, maar het kon creëren een mooie lamp die goed werkt met 6 driehoeken. Laat me je nu laten zien hoe je het kunt maken met zes driehoeken. Volg de stappen en je hebt je eigen prachtige werk!

Benodigdheden

Hardware: Arduino (ik gebruikte arduino mega 2560), acryl (helder, wit), LED-strip (NeoPixel), diffusorfilm, knop, 4-pins connector, draad, printplaat, voeding

Gereedschap: lasergestuurde snijmachine, 3D-printer

Stap 1: Laten we het maken

Laten we het maken!
Laten we het maken!
Laten we het maken!
Laten we het maken!
Laten we het maken!
Laten we het maken!

Laten we dit schattige zeshoekige stuk met mij maken!

De Light Me Up is gemaakt met 312 driehoeken, maar zelfs 6 driehoeken kunnen prachtig licht ontwerpen. Als je het op grotere schaal wilt maken, kun je het maken door te verwijzen naar het onderstaande bestand.

Stap 2: Materiaalvoorbereiding

Materiaalvoorbereiding
Materiaalvoorbereiding

Stap 3: Acryl snijden

Acryl snijden
Acryl snijden
Acryl snijden
Acryl snijden
Acryl snijden
Acryl snijden
Acryl snijden
Acryl snijden

Gebruik een lasersnijder om de voor- en achterkant van elk onderdeel te snijden. De kleur van het acryl op de achterkant kan alles zijn wat je wilt, maar zorg ervoor dat je transparant acryl gebruikt, want de voorkant moet gedimd worden! Gebruik je een andere kleur acryl dan transparant, dan zie je het licht niet goed.

Stap 4: Maak kanten met 3D-printers

Maak kanten met 3D-printers
Maak kanten met 3D-printers
Maak kanten met 3D-printers
Maak kanten met 3D-printers
Maak kanten met 3D-printers
Maak kanten met 3D-printers

Nu is het tijd om de zijkanten van elk stuk te maken. Laten we het maken! De 3D-modelleringsbestanden aan de zijkant zijn hieronder bijgevoegd. We hebben de PLA gebruikt om zijkanten te maken. De PLA is sterker en minder samentrekkingen dan de ABS, dus filamenten worden aanbevolen om de PLA te gebruiken.

Stap 5: Filmen

filmen
filmen
filmen
filmen
filmen
filmen

Laten we nu een lichtdiffusiefilm op het acryl aan de voorkant plaatsen. Als je er film op doet, spreidt het uit en glanst het veel mooier. Snijd eerst de film in de vorm van een driehoek. (Je kunt de film beter groter snijden dan het gesneden acryl) Het is eenvoudig om film op te zetten, zoals een beschermende film op je telefoon. Als je hier een fooi wilt geven, kun je hem met een kaartje duwen zodat hij netjes kan worden geplakt!

Stap 6: Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden

Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden

Als je zo goed bent geweest in het solderen van de ledstrip, wordt het tijd om de ledstrip op de achterkant te plaatsen. Bevestig eerst een lijmpistool of dubbelzijdig plakband op de achterkant van de ledstrip. En verwijder eerst de draden van beide kanten van de soldeerdraad door de gaten aan beide kanten. Bevestig tot slot de LED-strip aan de achterkant van acryl en klaar is Kees!

Het is soldeertijd! bereid LED-strips, 4-pins connectoren (connector of draden) voor en wat je nodig hebt om te solderen. Ik gebruikte LED's in drie eenheden. Je kunt een of twee LED's gebruiken als je wilt, maar ik raad aan om er drie te gebruiken. Als alle materialen klaar zijn, soldeert u de draden in beide datalijnen, 5v-lijnen en massalijnen van de LED-strip.

Stap 7: Toetsschakelaar met draden solderen

Toetsschakelaar met draden solderen
Toetsschakelaar met draden solderen
Toetsschakelaar met draden solderen
Toetsschakelaar met draden solderen

Stap 8: Montage - Steek de bout aan de zijkant = ①

Montage - Steek de bout aan de zijkant = ①
Montage - Steek de bout aan de zijkant = ①
Montage - Steek de bout aan de zijkant = ①
Montage - Steek de bout aan de zijkant = ①

Nu is het een heel gemakkelijk onderdeel! Plaats een bout op elk van de drie 3D-geprinte zijden. De reden waarom het gebruik van de boutknop zoals het gebruik van structurele bouten en moeren kan maken. Als het stuk af is, stop ik het stuk in de koffer en maak het af met een moer.

Stap 9: Bevestig Ⓛⓣ aan de Ⓒ= ②

Bevestig Ⓛⓣ aan de Ⓒ= ②
Bevestig Ⓛⓣ aan de Ⓒ= ②
Bevestig Ⓛⓣ aan de Ⓒ= ②
Bevestig Ⓛⓣ aan de Ⓒ= ②

Stap 10: Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren

Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren

Stap 11: Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④

Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④

Als je een bout aan de zijkant zet, dan doen wij hem aan de zijkant en voorkant. De voorkant is van acryl, dus je moet het aanbrengen met een speciale acrylbinding. Als je acryl op een gewone binding bevestigt, laat het een merkteken achter.

Stap 12: Bevestig Ⓢ aan Ⓓ= ⑤

Bevestig Ⓢ aan Ⓓ= ⑤
Bevestig Ⓢ aan Ⓓ= ⑤
Bevestig Ⓢ aan Ⓓ= ⑤
Bevestig Ⓢ aan Ⓓ= ⑤

Stap 13: Montage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥

Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Assemblage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥

Stap 14: Complete stukmontage

Complete stukmontage
Complete stukmontage
Complete stukmontage
Complete stukmontage
Complete stukmontage
Complete stukmontage

Stap 15: De werkvorm van een project

Image
Image

Stap 16: NeoPixel, connectorbedrading

NeoPixel, connectorbedrading
NeoPixel, connectorbedrading
NeoPixel, connectorbedrading
NeoPixel, connectorbedrading
NeoPixel, connectorbedrading
NeoPixel, connectorbedrading

Stap 17: NeoPixel- en Arduino-bedrading

NeoPixel- en Arduino-bedrading
NeoPixel- en Arduino-bedrading

Stap 18: Programmeer de Arduino

externe vluchtige niet-ondertekende lange timer0_millis;

#erbij betrekken

#define MODEBTNNUM 3 int ani_mode = 0; niet-ondertekende lange preM1, preM2, preM3;

ongeldige setup() {

Draad.begin(); for (int i = 0; i < MODEBTNNUM; i++) { pinMode (i + 2, INPUT_PULLUP); } //Serial.begin(9600); }

lege lus() {

for (int i = 0; i < MODEBTNNUM; i++) { if (!digitalRead(i + 2)) ani_mode = i + 1; } for (int i = 0; i < 6; i++) { Wire.requestFrom(i + 1, 1); while (Wire.available()) { int x = Wire.read(); // Serieel.println(x); if (x == 5) { ani_mode = 0; // Serieel.println("x=5"); } } } /////////////////////////////////////////////// /////// if (ani_mode == 0) { for (int i = 1; i 3000) { preM1 = current1; voor (int i = 1; i 5000) { preM2 = stroom2; voor (int i = 1; i 3000) { preM3 = huidig3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("timer reset"); for (int i = 1; i <7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmission(i); } } } }

Stap 19:

externe vluchtige niet-ondertekende lange timer0_millis;

#erbij betrekken

#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; int kleuren[num][3]; int tint [num]; int zat[num]; int helder[num]; int pNumber = 0; int gWaarde [getal] = {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, 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 btnState[num]; booleaanse 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 }; #include #define BTNNUM 1 int f_v = 1; niet-ondertekende lange preMillis1; ongetekende lange preM; int ani_mode = 0; int ani2_Counter = 0; int-teller = 0; /////////////////////////////////////////// void setup() { Draad. begin(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); for (int i = 0; i < num; i++) { pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin(); } ///////////////////////////////////////////

lege lus() {

if (f_v == 1) { for (int i = 0; i < num; i++) { hue = 50; zat = 95; helder = 100; } f_v = 0; } ////////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = vals; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serieel.println (ani_mode); ////////////////////////////////////// schakelaar (ani_mode) { geval 0: ani0(); pauze; geval 1: ani1(); ani_mode = 0; ani2_Teller = 0; pauze; geval 2: ani2_Counter = 1; ani_mode = 0; pauze; geval 3: ani3(); ani_mode = 0; ani2_Teller = 0; pauze; standaard: readyState(); pauze; } if (ani2_Counter == 1) { ani2(); } setPixels(aantal); }

///////////////////////////////////////////

void ReceiveEvent (int howMany) { int x = Wire.read (); if (x == 5) { // Serial.println ("ontvangen 5"); ani_mode = 0; } ani_mode = x; // Serieel.println (ani_mode); } /////////////////////////////////////////// void requestEvent() {

if (btnMode == waar) {

Draad.schrijven(5); // Serial.println ("5 보냄"); } else { Wire.write(0); }

}

ongeldig ani0() {

// Serieel.println ("0"); }

ongeldig ani1() {

// Serieel.println ("1"); if (pNumber == 0) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { tint[a1[a] = 100; zat[a1[a] = 95; helder[a1[a] = 100; } voor (int b = 0; b < 2; b++) { tint[b1 = 200; zat[b1 = 95; helder[b1 = 100; } voor (int c = 0; c < 2; c++) { tint[c1[c] = 300; sat[c1[c] = 95; helder[c1[c] = 100; } // Serieel.println("0"); } else if (pNumber == 1) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; for (int a = 0; a < 8; a++) { tint[a2[a] = 26; zat[a2[a] = 95; helder[a2[a] = 100; } voor (int d = 0; d < 4; d++) { tint [d2[d] = 63; zat[d2[d] = 95; helder [d2[d] = 100; } // Serieel.println("1"); } else if (pNumber == 2) { // gigantisch kubuspatroon voor (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a14 = {34, 35, 46, 47, 48, 49};//geel 06 voor (int a = 0; a < 6; a++) { tint[a14[a] = 35; zat[a14[a] = 95; helder[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a3 = {34, 35, 46, 47, 48, 49};//geel voor (int a = 0; a < 6; a++) { tint[a3[a] = 53; zat[a3[a] = 95; helder[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a4 = {34, 35};//geel int b4 = {47};//blauw int c4 = {48};//paars

for (int a = 0; a < 2; a++) { tint[a4[a] = 53; zat[a4[a] = 95; helder[a4[a] = 100; }

voor (int b = 0; b < 1; b++) { tint[b4 = 210; zat[b4 = 95; helder[b4 = 100; } voor (int c = 0; c < 1; c++) { tint[c4[c] = 307; zat[c4[c] = 95; helder [c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a < 6; a++) { tint[a5[a] = 100; zat[a5[a] = 95; helder[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a6 = {34, 35, 46, 47, 48, 49};//geel voor (int a = 0; a < 6; a++) { tint[a6[a] = 53; zat[a6[a] = 95; helder[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c7 = {34, 35, 46, 47, 48, 49};//paars voor (int c = 0; c < 6; c++) { hue[c7[c] = 307; zat[c7[c] = 95; helder[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // paars voor (int c = 0; c <6; c ++) {tint [c8 [c] = 307; zat[c8[c] = 95; helder [c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // paars voor (int c = 0; c <6; c ++) {tint [c9 [c] = 307; sat[c9[c] = 95; helder[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // paars voor (int c = 0; c <6; c ++) {tint [c10 [c] = 307; sat[c10[c] = 95; helder [c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // paars voor (int c = 0; c <6; c ++) {tint [c11 [c] = 307; zat[c11[c] = 95; helder[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // paars voor (int c = 0; c <6; c ++) {tint [c12 [c] = 307; zat[c12[c] = 95; helder [c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < num; i++) { bright = 0; gWaarde = 1; } int a13 = {34, 35}; // geel int b13 = {47}; //blauw int c13 = {48}; // paars voor (int a = 0; a < 2; a++) {tint [a13 [a] = 53; zat[a13[a] = 95; helder[a13[a] = 100; } voor (int b = 0; b < 1; b++) { tint[b13 = 210; zat[b13 = 95; helder[b13 = 100; } voor (int c = 0; c < 1; c++) { tint[c13[c] = 307; zat[c13[c] = 95; helder [c13[c] = 100; } } pNummer = pNummer + 1;

if (pGetal == 14) {

pNummer = 0; } }

ongeldig ani2() {

// Serieel.println ("2"); unsigned lange curM = millis();

if (curM - preM >= 10) {

preM = curM; for (int i = 0; i < num; i++) { if (hue = 360) { gValue = -1; } tint = tint + gWaarde; } teller++; if (teller == 360) { // Serial.print ("teller: "); // Serial.println (teller); // Serieel.println(curM); teller = 0; ani2_Teller = 0; } } }

ongeldig ani3() {

// Serieel.println ("3"); } /////////////////////////////////////////// void readyState() { / / Serieel.println("klaar"); } /////////////////////////////////////////// void btnEvent(int b_interval) { unsigned long curMillis1 = millis();

for (int i = 0; i < num; i++) { btnState = digitalRead(btnPin); }

if (curMillis1 - preMillis1 > b_interval) {

preMillis1 = curMillis1; voor (int i = 0; i = 360) { hueV = -1; } else if (hue <= 0) { hueV = 1; } tint = tint + tintV; helder = 100; } } } } /////////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, bright, colors); int aantal1 = ik * 3; strip.setPixelColor(num1, kleuren[0], kleuren[1], kleuren[2]); strip.setPixelColor(num1 + 1, kleuren[0], kleuren[1], kleuren[2]); strip.setPixelColor(num1 + 2, colors[0], colors[1], colors[2]); } strip.show(); }

Stap 20: Patronen

Patronen!
Patronen!
Patronen!
Patronen!

Dit project heeft verschillende driehoeken die een zeshoekige vorm vormen. U kunt dus stereoscopische patronen creëren op basis van hoe u licht ontwerpt! Druk gewoon op elk stuk en verschillende kleuren worden gegradeerd, en wanneer de gewenste kleur uitkomt, drukt u gewoon op de hand die u hebt ingedrukt en deze blijft prachtig glanzen met de gewenste kleur!

Aanbevolen: