Innehållsförteckning:
- Tillbehör
- Steg 1: Låt oss göra det
- Steg 2: Materialberedning
- Steg 3: Skärning av akryl
- Steg 4: Gör sidor med 3D -skrivare
- Steg 5: Filma
- Steg 6: Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
- Steg 7: Lödning av taktbrytare med trådar
- Steg 8: Montering -Sätt in bult på sidan = ①
- Steg 9: Fäst Ⓛⓣ på Ⓒ = ②
- Steg 10: Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
- Steg 11: Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
- Steg 12: Koppla Ⓢ till Ⓓ = ⑤
- Steg 13: Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
- Steg 14: Komplett delmontering
- Steg 15: Ett projekts utseende
- Steg 16: NeoPixel, Anslutningskablar
- Steg 17: NeoPixel och Arduino Wiring
- Steg 18: Programmera Arduino
- Steg 19:
- Steg 20: Mönster
Video: Light Me Up !: 20 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
projektgruppens medlemmar
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Tänk om du kunde röra och designa ljuset? Hur skulle det kännas om du hade ett vackert ljusmönster som du själv designade med en intressant animering? Tänd mig blir en intressant skissbok som berör och designar själva ljuset och gör intressanta mönster! Detta projekt har flera trianglar som bildar en sexkantig form. Så du kan skapa stereoskopiska mönster efter hur du designar ljus! Tryck bara på varje bit så kommer olika färger att graderas, och när färgen du vill ha kommer ut trycker du bara på handen du tryckte på så fortsätter den att lysa vackert med den färg du ville ha! Projektet använde cirka 312 trianglar, men det kan skapa ett fint ljus som fungerar bra med 6 trianglar. Låt mig nu visa dig hur du gör det med sex trianglar. Följ stegen så får du ditt eget underbara arbete!
Tillbehör
Hårdvara: Arduino (jag använde arduino mega 2560), akryl (klar, vit), LED -remsa (NeoPixel), diffusorfilm, knapp, 4 -stifts kontakt, tråd, kretskort, strömförsörjning
Verktyg: Laserstyrd skärmaskin, 3D-skrivare
Steg 1: Låt oss göra det
Låt oss göra denna söta sexkantiga bit med mig!
Light Me Up är gjord med 312 trianglar, men även 6 trianglar kan designa underbart ljus. Om du vill göra det i större skala kan du göra det genom att hänvisa till filen som bifogas nedan.
Steg 2: Materialberedning
Steg 3: Skärning av akryl
Använd en laserskärare för att skära fram- och baksidan av varje del. Färgen på akrylen på baksidan kan vara vad du vill, men se till att använda transparent akryl eftersom fronten måste dämpas! Om du använder en annan akrylfärg än transparent ser du inte ljuset bra.
Steg 4: Gör sidor med 3D -skrivare
Nu är det dags att göra sidorna på varje bit. Låt oss göra det! 3D -modelleringsfilerna på sidan bifogas nedan. Vi använde PLA för att göra sidor PLA är starkare och mindre sammandragningar än ABS, så filament rekommenderas för att använda PLA.
Steg 5: Filma
Låt oss nu lägga en lätt diffusionsfilm på akrylen på framsidan. Om du lägger film på det sprids det ut och lyser mycket vackrare. Klipp först filmen i form av en triangel. (Det är bättre att klippa filmen större än den skurna akrylen) Det är enkelt att sätta på film som en skyddsfilm på din telefon. Om du vill tipsa här kan du använda ett kort för att trycka på det så att det kan fastna snyggt!
Steg 6: Fäst LED -remsa + Löd -LED -remsa (NeoPixel) med trådar
Om du har varit så bra på att lödda LED -remsan är det dags att sätta LED -remsan på baksidan. Fäst först en limpistol eller dubbelsidig tejp på baksidan av LED-remsan. Och ta först bort trådarna från båda sidorna av lödtråden genom hålen på båda sidor. Slutligen fäst LED -remsan på baksidan av akryl och det är över!
Det är lödningstid! förbereda LED-remsor, 4-poliga kontakter (kontakt eller ledningar) och vad du behöver för lödning. Jag använde lysdioder i tre enheter. Du kan använda en eller två lysdioder om du vill, men jag rekommenderar att du använder tre. När allt material är klart, löd kablarna i både datalinjer, 5v -linjer och jordledningar på LED -remsan.
Steg 7: Lödning av taktbrytare med trådar
Steg 8: Montering -Sätt in bult på sidan = ①
Nu är det en riktigt enkel del! Placera en bult på var och en av de tre 3D -tryckta sidorna. Anledningen till att använda bultknappen som att använda strukturella bultar och muttrar kommer att kunna göra. När biten är klar lägger jag biten i fodralet och avslutar den med en mutter.
Steg 9: Fäst Ⓛⓣ på Ⓒ = ②
Steg 10: Montering -Använd Ⓦ och Ⓝ för att kombinera ① och ② = ③
Steg 11: Montering -Fäst Ⓐⓔ och ③ Använd en akrylbindning = ④
Om du sätter en bult på sidan sätter vi den på sidan och framsidan. Framsidan är akryl, så du måste sätta på den med en dedikerad akrylbindning. Om du fäster akryl på en vanlig bindning kommer det att lämna ett märke.
Steg 12: Koppla Ⓢ till Ⓓ = ⑤
Steg 13: Montering -Combine ④ och ⑤ Använda Ⓦ och Ⓝ = ⑥
Steg 14: Komplett delmontering
Steg 15: Ett projekts utseende
Steg 16: NeoPixel, Anslutningskablar
Steg 17: NeoPixel och Arduino Wiring
Steg 18: Programmera Arduino
extern flyktig osignerad lång timer0_millis;
#omfatta
#define MODEBTNNUM 3 int ani_mode = 0; osignerad lång preM1, preM2, preM3;
void setup () {
Wire.begin (); för (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }
void loop () {
för (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } för (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); medan (Wire.available ()) {int x = Wire.read (); // Serial.println (x); om (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} ////////////////////////////////////////////// /////// if (ani_mode == 0) {för (int i = 1; i 3000) {preM1 = current1; för (int i = 1; i 5000) {preM2 = current2; för (int i = 1; i 3000) {preM3 = current3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("timeråterställning"); för (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
Steg 19:
extern flyktig osignerad lång timer0_millis;
#omfatta
#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 färger [num] [3]; int nyans [num]; int satt [num]; int ljus [num]; int pNumber = 0; int gValue [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, 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]; booleskt 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; osignerad lång preMillis1; osignerad lång preM; int ani_mode = 0; int ani2_Counter = 0; int räknare = 0; ///////////////////////////////////////////////// begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (ReceiveEvent); för (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); }/////////////////////////////////////////////
void loop () {
if (f_v == 1) {för (int i = 0; i <num; i ++) {hue = 50; satt = 95; ljus = 100; } f_v = 0; } ////////////////////////////////////////////////// falsk; för (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////////////// switch (ani_mode) {case 0: ani0 (); ha sönder; fall 1: ani1 (); ani_mode = 0; ani2_Counter = 0; ha sönder; fall 2: ani2_Counter = 1; ani_mode = 0; ha sönder; fall 3: ani3 (); ani_mode = 0; ani2_Counter = 0; ha sönder; default: readyState (); ha sönder; } om (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("fått 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); }////////////////
om (btnMode == true) {
Wire.write (5); // Serial.println ("5 보냄"); } annat {Wire.write (0); }
}
void ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); if (pNumber == 0) {for (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; för (int a = 0; a <2; a ++) {nyans [a1 [a] = 100; satt [a1 [a] = 95; ljus [a1 [a] = 100; } för (int b = 0; b <2; b ++) {hue [b1 = 200; satt [b1 = 95; ljus [b1 = 100; } för (int c = 0; c <2; c ++) {hue [c1 [c] = 300; satt [c1 [c] = 95; ljus [c1 [c] = 100; } // Serial.println ("0"); } annars if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; för (int a = 0; a <8; a ++) {nyans [a2 [a] = 26; satt [a2 [a] = 95; ljus [a2 [a] = 100; } för (int d = 0; d <4; d ++) {hue [d2 [d] = 63; satt [d2 [d] = 95; ljus [d2 [d] = 100; } // Serial.println ("1"); } annars om (pNumber == 2) {// jättekubmönster för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // gul 06 för (int a = 0; a <6; a ++) {hue [a14 [a] = 35; satt [a14 [a] = 95; ljus [a14 [a] = 100; }} annat om (pNumber == 3) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // gul för (int a = 0; a <6; a ++) {hue [a3 [a] = 53; satt [a3 [a] = 95; ljus [a3 [a] = 100; }} annat om (pNumber == 4) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a4 = {34, 35}; // gul int b4 = {47}; // blå int c4 = {48}; // lila
för (int a = 0; a <2; a ++) {nyans [a4 [a] = 53; satt [a4 [a] = 95; ljus [a4 [a] = 100; }
för (int b = 0; b <1; b ++) {nyans [b4 = 210; satt [b4 = 95; ljus [b4 = 100; } för (int c = 0; c <1; c ++) {hue [c4 [c] = 307; satt [c4 [c] = 95; ljus [c4 [c] = 100; }} annat om (pNumber == 5) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a5 = {34, 35, 46, 47, 48, 49};
för (int a = 0; a <6; a ++) {nyans [a5 [a] = 100; satt [a5 [a] = 95; ljus [a5 [a] = 100; }} annat om (pNumber == 6) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // gul för (int a = 0; a <6; a ++) {hue [a6 [a] = 53; satt [a6 [a] = 95; ljus [a6 [a] = 100; }} annat om (pNumber == 7) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {hue [c7 [c] = 307; satt [c7 [c] = 95; ljus [c7 [c] = 100; }} annat om (pNumber == 8) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c8 [c] = 307; satt [c8 [c] = 95; ljus [c8 [c] = 100; }} annat om (pNumber == 9) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c9 [c] = 307; satt [c9 [c] = 95; ljus [c9 [c] = 100; }} annat om (pNumber == 10) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c10 [c] = 307; satt [c10 [c] = 95; ljus [c10 [c] = 100; }} annat om (pNumber == 11) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {hue [c11 [c] = 307; satt [c11 [c] = 95; ljus [c11 [c] = 100; }} annat om (pNumber == 12) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // lila för (int c = 0; c <6; c ++) {nyans [c12 [c] = 307; satt [c12 [c] = 95; ljus [c12 [c] = 100; }} annat om (pNumber == 13) {för (int i = 0; i <num; i ++) {bright = 0; gVärde = 1; } int a13 = {34, 35}; // gul int b13 = {47}; // blue int c13 = {48}; // lila för (int a = 0; a <2; a ++) {nyans [a13 [a] = 53; satt [a13 [a] = 95; ljus [a13 [a] = 100; } för (int b = 0; b <1; b ++) {hue [b13 = 210; satt [b13 = 95; ljus [b13 = 100; } för (int c = 0; c <1; c ++) {hue [c13 [c] = 307; satt [c13 [c] = 95; ljus [c13 [c] = 100; }} pNumber = pNumber + 1;
om (pNumber == 14) {
pNumber = 0; }}
void ani2 () {
// Serial.println ("2"); osignerad lång curM = millis ();
if (curM - preM> = 10) {
preM = curM; för (int i = 0; i <num; i ++) {if (nyans = 360) {gValue = -1; } nyans = nyans + gVärde ; } räknare ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (räknare); // Serial.println (curM); räknare = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); }///////////////////////////////////////////////////////////////////////// / Serial.println ("klar"); }/////////////////////////// {osignerad lång curMillis1 = millis ();
för (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
if (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; för (int i = 0; i = 360) {hueV = -1; } annars if (nyans <= 0) {hueV = 1; } nyans = nyans + hueV ; ljus = 100; }}}} ///////////////////////////////////////////////////// void setPixels (int k) {för (int i = 0; i <k; i ++) {H2R_HSBtoRGB (nyans , lör , ljus , färger ); int num1 = i * 3; strip.setPixelColor (num1, färger [0], färger [1], färger [2]); strip.setPixelColor (num1 + 1, färger [0], färger [1], färger [2]); strip.setPixelColor (num1 + 2, färger [0], färger [1], färger [2]); } strip.show (); }
Steg 20: Mönster
Detta projekt har flera trianglar som bildar en sexkantig form. Så du kan skapa stereoskopiska mönster efter hur du designar ljus! Tryck bara på varje bit så kommer olika färger att graderas, och när färgen du vill ha kommer ut, tryck bara på handen du tryckte på så fortsätter den att lysa vackert med den färg du ville ha!
Rekommenderad:
BookWorm Light-Up Book Light och bokmärke: 13 steg (med bilder)
BookWorm Light-Up Book Light och Bookmark: Gör det här roliga bokmaskens bokmärke som fungerar som ett bokljus! Vi kommer att skriva ut det, klippa ut det, färga och dekorera det, och de använder honom för att tända natten så att du kan läsa i mörkret. Han är gjord med bara några material och gör en fantastisk första
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Pull the Light - Light Module Using Neopixel & Pull Up Switch: 6 Steg (med bilder)
Dra i ljuset - ljusmodul med hjälp av Neopixel & Pull Up Switch: Funktioner i ljusmodulen Arduino Uno Hardware & kapsling köpt från internet Neopixel & Strömförsörjning lånad från School of Informatics & Produktdesign Ljusmodul som styrs av strömförsörjning Alla funktioner som styrs via
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
The Intimate Video Light/ Handheld Photograpy Light .: 7 steg (med bilder)
The Intimate Video Light/ Handheld Photograpy Light .: Jag vet vad du tänker. Med " intim, " Jag menade närbildsbelysning under svåra ljusförhållanden-inte nödvändigtvis för " intima situationer. &Quot; (Det kan dock användas för det också …) Som videograf i New York-eller