Inhoudsopgave:
- Benodigdheden
- Stap 1: Laten we het maken
- Stap 2: Materiaalvoorbereiding
- Stap 3: Acryl snijden
- Stap 4: Maak kanten met 3D-printers
- Stap 5: Filmen
- Stap 6: Bevestig LED-strip + soldeer-LED-strip (NeoPixel) met draden
- Stap 7: Toetsschakelaar met draden solderen
- Stap 8: Montage - Steek de bout aan de zijkant = ①
- Stap 9: Bevestig Ⓛⓣ aan de Ⓒ= ②
- Stap 10: Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
- Stap 11: Montage -Bevestig Ⓐⓔ en ③ met behulp van een acrylverbinding = ④
- Stap 12: Bevestig Ⓢ aan Ⓓ= ⑤
- Stap 13: Montage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
- Stap 14: Complete stukmontage
- Stap 15: De werkvorm van een project
- Stap 16: NeoPixel, connectorbedrading
- Stap 17: NeoPixel- en Arduino-bedrading
- Stap 18: Programmeer de Arduino
- Stap 19:
- Stap 20: Patronen
Video: Light Me Up!: 20 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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 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
Stap 3: 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
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
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
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
Stap 8: 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 Ⓒ= ②
Stap 10: Montage -Gebruik een Ⓦ en Ⓝ om ① en ②= ③. te combineren
Stap 11: 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 Ⓓ= ⑤
Stap 13: Montage -Combineer ④ en ⑤ Gebruik Ⓦ en Ⓝ= ⑥
Stap 14: Complete stukmontage
Stap 15: De werkvorm van een project
Stap 16: NeoPixel, connectorbedrading
Stap 17: 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
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:
DIY WiFi Smart Security Light met Shelly 1: 6 stappen (met afbeeldingen)
DIY WiFi Smart Security Light met Shelly 1: Deze instructable zal kijken naar het maken van een DIY smart security light met behulp van het Shelly 1 slimme relais van Shelly. Door een beveiligingslampje slim te maken, heb je veel meer controle over wanneer het wordt geactiveerd en hoe lang het blijft branden. Het kan actief zijn
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen
Een video met gesplitst scherm maken in vier stappen: 4 stappen (met afbeeldingen)
Een video met gesplitst scherm maken in vier stappen: we zien vaak dezelfde persoon twee keer in een scène in een tv-toneelstuk. En voor zover we weten heeft de acteur geen tweelingbroer. We hebben ook gezien dat er twee zangvideo's op één scherm worden gezet om hun zangkunsten te vergelijken. Dit is de kracht van spl