Daftar Isi:

Light Me Up!: 20 Langkah (dengan Gambar)
Light Me Up!: 20 Langkah (dengan Gambar)

Video: Light Me Up!: 20 Langkah (dengan Gambar)

Video: Light Me Up!: 20 Langkah (dengan Gambar)
Video: twenty one pilots: Stressed Out [OFFICIAL VIDEO] 2024, November
Anonim
Terangi Aku!
Terangi Aku!
Terangi Aku!
Terangi Aku!
Terangi Aku!
Terangi Aku!
Terangi Aku!
Terangi Aku!

anggota tim proyek

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Bagaimana jika Anda bisa menyentuh dan mendesain cahaya? Bagaimana rasanya jika Anda memiliki pola cahaya yang indah yang Anda rancang sendiri dengan animasi yang menarik? Light me up akan menjadi sketsa menarik yang menyentuh dan mendesain cahaya itu sendiri dan membuat pola yang menarik! Proyek ini memiliki beberapa segitiga yang membentuk bentuk heksagonal. Jadi Anda dapat membuat pola stereoskopik sesuai dengan bagaimana Anda mendesain cahaya! Cukup tekan masing-masing bagian dan berbagai warna akan bergradasi, dan ketika warna yang Anda inginkan keluar, cukup tekan tangan yang Anda tekan dan itu akan terus bersinar indah dengan warna yang Anda inginkan! Proyek ini menggunakan sekitar 312 segitiga, tetapi bisa membuat cahaya bagus yang bekerja dengan baik dengan 6 segitiga. Sekarang izinkan saya menunjukkan cara membuatnya dengan enam segitiga. Ikuti langkah-langkahnya dan Anda akan memiliki karya indah Anda sendiri!

Perlengkapan

Perangkat Keras: Arduino (saya menggunakan arduino mega 2560), Akrilik (bening, putih), Strip LED (NeoPixel), Film Diffuser, tombol, Konektor 4 pin, Kawat, Papan Sirkuit, Catu Daya

Alat: Mesin Pemotong Berpanduan Laser, Printer 3D

Langkah 1: Ayo Berhasil

Ayo Buat!
Ayo Buat!
Ayo Buat!
Ayo Buat!
Ayo Buat!
Ayo Buat!

Ayo buat potongan heksagonal yang lucu ini bersamaku!

The Light Me Up dibuat menggunakan 312 segitiga, tetapi bahkan 6 segitiga dapat mendesain cahaya yang indah. Jika Anda ingin membuatnya dalam skala yang lebih besar, Anda dapat membuatnya dengan mengacu pada file terlampir di bawah ini.

Langkah 2: Persiapan Bahan

Persiapan Bahan
Persiapan Bahan

Langkah 3: Memotong Akrilik

Memotong Akrilik
Memotong Akrilik
Memotong Akrilik
Memotong Akrilik
Memotong Akrilik
Memotong Akrilik
Memotong Akrilik
Memotong Akrilik

Gunakan pemotong laser untuk memotong bagian depan dan belakang setiap bagian. Warna akrilik di bagian belakang bisa apa saja yang Anda inginkan, tapi pastikan menggunakan akrilik transparan karena bagian depan harus diredupkan! Jika Anda menggunakan akrilik warna selain transparan, Anda tidak akan melihat cahaya dengan baik.

Langkah 4: Buat Sisi Dengan Printer 3D

Membuat Sisi Dengan Printer 3D
Membuat Sisi Dengan Printer 3D
Membuat Sisi Dengan Printer 3D
Membuat Sisi Dengan Printer 3D
Membuat Sisi Dengan Printer 3D
Membuat Sisi Dengan Printer 3D

Sekarang saatnya untuk membuat sisi masing-masing bagian. Mari kita membuatnya! File pemodelan 3D di samping terlampir di bawah ini. Kami menggunakan PLA untuk membuat sisi PLA lebih kuat dan lebih sedikit kontraksi daripada ABS, jadi filamen disarankan untuk menggunakan PLA.

Langkah 5: Syuting

Syuting
Syuting
Syuting
Syuting
Syuting
Syuting

Sekarang mari kita letakkan film difusi cahaya pada akrilik di bagian depan. Jika Anda meletakkan film di atasnya, itu menyebar dan bersinar jauh lebih cantik. Pertama, potong film menjadi bentuk segitiga. (Sebaiknya Anda memotong film lebih besar daripada akrilik yang dipotong) Sangat mudah untuk memasang film, seperti, film pelindung di ponsel Anda. Kalau mau tip di sini, kamu bisa menggunakan kartu untuk mendorongnya agar bisa menempel dengan rapi!

Langkah 6: Pasang Strip LED + Solder Strip LED (NeoPixel) Dengan Kabel

Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel
Pasang Strip LED + Strip LED Solder (NeoPixel) Dengan Kabel

Jika Anda sudah pandai menyolder strip LED, saatnya memasang strip LED di bagian belakang. Pertama, pasang lem atau selotip dua sisi ke bagian belakang strip LED. Dan pertama-tama lepaskan kabel dari kedua sisi kawat solder melalui lubang di kedua sisi. Terakhir, pasang strip LED ke akrilik belakang dan selesai!

Saatnya menyolder! siapkan strip LED, konektor 4-pin (konektor atau kabel) dan apa yang Anda butuhkan untuk menyolder. Saya menggunakan LED dalam tiga unit. Anda dapat menggunakan satu atau dua LED jika Anda mau, tetapi saya sarankan menggunakan tiga. Ketika semua bahan sudah siap, solder kabel di kedua jalur data, jalur 5v, dan jalur ground strip LED.

Langkah 7: Saklar Kebijaksanaan Solder Dengan Kabel

Saklar Kebijaksanaan Solder Dengan Kabel
Saklar Kebijaksanaan Solder Dengan Kabel
Saklar Kebijaksanaan Solder Dengan Kabel
Saklar Kebijaksanaan Solder Dengan Kabel

Langkah 8: Perakitan -Masukkan Baut di Sisi =

Perakitan -Masukkan Baut di Samping =
Perakitan -Masukkan Baut di Samping =
Perakitan -Masukkan Baut di Samping =
Perakitan -Masukkan Baut di Samping =

Sekarang ini adalah bagian yang sangat mudah! Tempatkan satu baut pada masing-masing dari tiga sisi cetakan 3D. Alasan mengapa menggunakan tombol baut seperti menggunakan baut struktural dan mur akan dapat membuat. Ketika potongan itu selesai, saya akan memasukkan potongan itu ke dalam kotak dan menyelesaikannya dengan mur.

Langkah 9: Lampirkan ke =

Lampirkan ke =
Lampirkan ke =
Lampirkan ke =
Lampirkan ke =

Langkah 10: Perakitan -Gunakan dan untuk Menggabungkan dan =

Perakitan -Gunakan dan untuk Menggabungkan dan =
Perakitan -Gunakan dan untuk Menggabungkan dan =
Perakitan -Gunakan dan untuk Menggabungkan dan =
Perakitan -Gunakan dan untuk Menggabungkan dan =
Perakitan -Gunakan dan untuk Menggabungkan dan =
Perakitan -Gunakan dan untuk Menggabungkan dan =

Langkah 11: Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=

Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=
Perakitan -Lampirkan dan Menggunakan Ikatan Akrilik=

Jika Anda memasang baut di samping, kami akan memasangnya di samping dan depan. Bagian depan akrilik, jadi Anda harus memasangnya dengan ikatan akrilik khusus. Jika Anda menempelkan akrilik ke ikatan biasa, itu akan meninggalkan bekas.

Langkah 12: Lampirkan ke =

Lampirkan ke =
Lampirkan ke =
Lampirkan ke =
Lampirkan ke =

Langkah 13: Perakitan -Gabungkan dan Menggunakan dan =

Majelis -Gabungkan dan Menggunakan dan =
Majelis -Gabungkan dan Menggunakan dan =
Majelis -Gabungkan dan Menggunakan dan =
Majelis -Gabungkan dan Menggunakan dan =
Majelis -Gabungkan dan Menggunakan dan =
Majelis -Gabungkan dan Menggunakan dan =

Langkah 14: Perakitan Sepotong Lengkap

Perakitan Sepotong Lengkap
Perakitan Sepotong Lengkap
Perakitan Sepotong Lengkap
Perakitan Sepotong Lengkap
Perakitan Sepotong Lengkap
Perakitan Sepotong Lengkap

Langkah 15: Penampilan Kerja Proyek

Image
Image

Langkah 16: NeoPixel, Pengkabelan Konektor

NeoPixel, Pengkabelan Konektor
NeoPixel, Pengkabelan Konektor
NeoPixel, Pengkabelan Konektor
NeoPixel, Pengkabelan Konektor
NeoPixel, Pengkabelan Konektor
NeoPixel, Pengkabelan Konektor

Langkah 17: Kabel NeoPixel dan Arduino

Kabel NeoPixel dan Arduino
Kabel NeoPixel dan Arduino

Langkah 18: Program Arduino

extern volatile unsigned long timer0_millis;

#termasuk

#define MODEBTNNUM 3 int ani_mode = 0; preM1 panjang yang tidak ditandatangani, preM2, preM3;

batalkan pengaturan() {

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

lingkaran kosong() {

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(); // Serial.println(x); if (x == 5) { ani_mode = 0; // Serial.println("x=5"); } } } ////////////////////////////////////////////////////////////// /////// if (ani_mode == 0) { for (int i = 1; i 3000) { preM1 = current1; for (int i = 1; i 5000) { preM2 = current2; for (int i = 1; i 3000) { preM3 = current3; // timer0_milis = 0; // praM1 = 0; // praM2 = 0; // praM3 = 0; // Serial.println("pengatur waktu ulang"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmisi(i); } } } }

Langkah 19:

extern volatile unsigned long timer0_millis;

#termasuk

#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 warna[angka][3]; int warna[angka]; int sat[angka]; int terang[angka]; int pNomor = 0; int gValue[bil] = {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[angka]; btnMode boolean; int hueV[bil] = {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; preMillis1 panjang yang tidak ditandatangani; preM panjang yang tidak ditandatangani; int ani_mode = 0; int ani2_Penghitung = 0; int penghitung = 0; ///////////////////////////////////////// void setup() { Wire. mulai(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); for (int i = 0; i < num; i++) { pinMode(btnPin, INPUT_PULLUP); } //Serial.begin(9600); strip.mulai(); } ///////////////////////////////////////////////////////////

lingkaran kosong() {

if (f_v == 1) { for (int i = 0; i < num; i++) { rona = 50; sat = 95; terang = 100; } f_v = 0; } //////////////////////////////////// //버튼 입력:멈춤신호 btnMode = Salah; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println(ani_mode); //////////////////////////////////// switch (ani_mode) { case 0: ani0(); merusak; kasus 1: ani1(); ani_mode = 0; ani2_Penghitung = 0; merusak; kasus 2: ani2_Counter = 1; ani_mode = 0; merusak; kasus 3: ani3(); ani_mode = 0; ani2_Penghitung = 0; merusak; default: readyState(); merusak; } if (ani2_Counter == 1) { ani2(); } setPixels(jumlah); }

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

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

if (btnMode == benar) {

Kawat.tulis(5); // Serial.println("5 "); } else { Kawat.tulis(0); }

}

batal ani0() {

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

batal ani1() {

// Serial.println("1"); if (pNumber == 0) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { rona[a1[a] = 100; sat[a1[a] = 95; terang[a1[a] = 100; } untuk (int b = 0; b < 2; b++) { rona[b1 = 200; sat[b1 = 95; terang[b1 = 100; } untuk (int c = 0; c < 2; c++) { rona[c1[c] = 300; sat[c1[c] = 95; terang[c1[c] = 100; } // Serial.println("0"); } else if (pNumber == 1) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 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++) { rona[a2[a] = 26; sat[a2[a] = 95; terang[a2[a] = 100; } untuk (int d = 0; d < 4; d++) { rona[d2[d] = 63; sat[d2[d] = 95; terang[d2[d] = 100; } // Serial.println("1"); } else if (pNumber == 2) { //pola kubus raksasa untuk (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a14 = {34, 35, 46, 47, 48, 49};//kuning 06 untuk (int a = 0; a < 6; a++) { rona[a14[a] = 35; sat[a14[a] = 95; terang[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a3 = {34, 35, 46, 47, 48, 49};//kuning untuk (int a = 0; a < 6; a++) { rona[a3[a] = 53; sat[a3[a] = 95; terang[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a4 = {34, 35};//kuning int b4 = {47};//biru int c4 = {48};//ungu

for (int a = 0; a < 2; a++) { rona[a4[a] = 53; sat[a4[a] = 95; terang[a4[a] = 100; }

for (int b = 0; b < 1; b++) { rona[b4 = 210; sat[b4 = 95; terang[b4 = 100; } untuk (int c = 0; c < 1; c++) { rona[c4[c] = 307; sat[c4[c] = 95; terang[c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a < 6; a++) { rona[a5[a] = 100; sat[a5[a] = 95; terang[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a6 = {34, 35, 46, 47, 48, 49};//kuning untuk (int a = 0; a < 6; a++) { rona[a6[a] = 53; sat[a6[a] = 95; terang[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c7 = {34, 35, 46, 47, 48, 49};//ungu untuk (int c = 0; c < 6; c++) { rona[c7[c] = 307; sat[c7[c] = 95; terang[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //ungu untuk (int c = 0; c < 6; c++) { rona[c8[c] = 307; sat[c8[c] = 95; terang[c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //ungu untuk (int c = 0; c < 6; c++) { rona[c9[c] = 307; sat[c9[c] = 95; terang[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //ungu untuk (int c = 0; c < 6; c++) { rona[c10[c] = 307; sat[c10[c] = 95; terang[c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //ungu untuk (int c = 0; c < 6; c++) { rona[c11[c] = 307; sat[c11[c] = 95; terang[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //ungu untuk (int c = 0; c < 6; c++) { rona[c12[c] = 307; sat[c12[c] = 95; terang[c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < num; i++) { bright = 0; gNilai = 1; } int a13 = {34, 35}; //kuning int b13 = {47}; //biru int c13 = {48}; //ungu untuk (int a = 0; a < 2; a++) { rona[a13[a] = 53; sat[a13[a] = 95; terang[a13[a] = 100; } untuk (int b = 0; b < 1; b++) { rona[b13 = 210; sat[b13 = 95; terang[b13 = 100; } untuk (int c = 0; c < 1; c++) { rona[c13[c] = 307; sat[c13[c] = 95; terang[c13[c] = 100; } } pNumber = pNumber + 1;

if (pNomor == 14) {

pNomor = 0; } }

batal ani2() {

// Serial.println("2"); unsigned long curM = milis();

if (curM - preM >= 10) {

preM = skrM; for (int i = 0; i < num; i++) { if (hue = 360) { gValue = -1; } warna = warna + gNilai; } penghitung++; if (penghitung == 360) { // Serial.print("penghitung: "); // Serial.println(penghitung); // Serial.println(curM); penghitung = 0; ani2_Penghitung = 0; } } }

batal ani3() {

// Serial.println("3"); } ///////////////////////////////////////// void readyState() { / / Serial.println("siap"); } ///////////////////////////////////////// void btnEvent(int b_interval) { unsigned long curMillis1 = milis();

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

if (curMillis1 - preMillis1 > b_interval) {

preMillis1 = curMillis1; for (int i = 0; i = 360) { hueV = -1; } else if (hue <= 0) { hueV = 1; } warna = warna + warnaV; terang = 100; } } } } ///////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, bright, colors); int angka1 = i * 3; strip.setPixelColor(num1, warna[0], warna[1], warna[2]); strip.setPixelColor(angka1 + 1, warna[0], warna[1], warna[2]); strip.setPixelColor(angka1 + 2, warna[0], warna[1], warna[2]); } strip.tampilkan(); }

Langkah 20: Pola

Pola!
Pola!
Pola!
Pola!

Proyek ini memiliki beberapa segitiga yang membentuk bentuk heksagonal. Jadi Anda dapat membuat pola stereoskopik sesuai dengan bagaimana Anda mendesain cahaya! Cukup tekan masing-masing bagian dan berbagai warna akan bergradasi, dan ketika warna yang Anda inginkan keluar, cukup tekan tangan yang Anda tekan dan itu akan terus bersinar indah dengan warna yang Anda inginkan!

Direkomendasikan: