Isi kandungan:

Ringankan Saya !: 20 Langkah (dengan Gambar)
Ringankan Saya !: 20 Langkah (dengan Gambar)

Video: Ringankan Saya !: 20 Langkah (dengan Gambar)

Video: Ringankan Saya !: 20 Langkah (dengan Gambar)
Video: Cara bina badan 2024, November
Anonim
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!
Ringankan Saya!

ahli pasukan projek

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Bagaimana jika anda boleh menyentuh dan merancang lampu? Bagaimana rasanya jika anda mempunyai corak cahaya yang indah yang anda reka sendiri dengan animasi yang menarik? Cahaya saya akan menjadi buku lakaran menarik yang menyentuh dan merancang cahaya itu sendiri dan membuat corak menarik! Projek ini mempunyai beberapa segitiga yang membentuk bentuk heksagon. Oleh itu, anda boleh membuat corak stereoskopik mengikut cara anda merancang cahaya! Cukup tekan setiap bahagian dan pelbagai warna akan digradasi, dan apabila warna yang anda inginkan keluar, tekan tangan yang anda tekan dan ia akan terus bersinar dengan indah dengan warna yang anda mahukan! Projek ini menggunakan kira-kira 312 segitiga, tetapi ia boleh mencipta cahaya yang bagus yang berfungsi dengan baik dengan 6 segitiga. Sekarang mari saya tunjukkan cara membuatnya dengan enam segitiga. Ikuti langkah-langkahnya dan anda akan mempunyai karya hebat anda sendiri!

Bekalan

Perkakasan: Arduino (saya menggunakan arduino mega 2560), Akrilik (jelas, putih), Jalur LED (NeoPixel), Filem Penyebar, butang, Penyambung 4 pin, Kawat, Papan Litar, Bekalan Kuasa

Alatan: Mesin Pemotong Berpandukan Laser, Pencetak 3D

Langkah 1: Mari Buat

Mari Buat!
Mari Buat!
Mari Buat!
Mari Buat!
Mari Buat!
Mari Buat!

Mari buat kepingan heksagon comel ini dengan saya!

Light Me Up dibuat menggunakan 312 segitiga, tetapi bahkan 6 segitiga dapat merancang cahaya yang indah. Sekiranya anda ingin membuatnya dalam skala yang lebih besar, anda boleh membuatnya dengan merujuk pada fail yang dilampirkan di bawah.

Langkah 2: Penyediaan Bahan

Penyediaan Bahan
Penyediaan 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 bahagian depan dan belakang setiap bahagian. Warna akrilik di bahagian belakang boleh menjadi apa sahaja yang anda mahukan, tetapi pastikan anda menggunakan akrilik lutsinar kerana bahagian depannya harus redup! Sekiranya anda menggunakan warna akrilik selain lutsinar, anda tidak akan melihat cahaya dengan baik.

Langkah 4: Buat Sisi Dengan Pencetak 3D

Buat Sisi Dengan Pencetak 3D
Buat Sisi Dengan Pencetak 3D
Buat Sisi Dengan Pencetak 3D
Buat Sisi Dengan Pencetak 3D
Buat Sisi Dengan Pencetak 3D
Buat Sisi Dengan Pencetak 3D

Kini tiba masanya untuk membuat sisi setiap bahagian. Mari buat! Fail pemodelan 3D di sebelahnya dilampirkan di bawah. Kami menggunakan PLA untuk membuat sisi. PLA lebih kuat dan kurang kontraksi daripada ABS, jadi filamen dianjurkan untuk menggunakan PLA.

Langkah 5: Penggambaran

Penggambaran
Penggambaran
Penggambaran
Penggambaran
Penggambaran
Penggambaran

Sekarang mari kita letakkan filem resapan cahaya pada akrilik di bahagian depan. Sekiranya anda meletakkan filem di atasnya, filem itu akan tersebar dan bersinar lebih cantik. Pertama, potong filem itu ke bentuk segitiga. (Sebaiknya potong filem lebih besar daripada akrilik yang dipotong) Mudah meletakkan filem seperti filem pelindung di telefon anda. Sekiranya anda ingin memberi petua di sini, anda boleh menggunakan kad untuk menolaknya supaya kad itu tersekat dengan kemas!

Langkah 6: Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar

Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar
Pasang Jalur LED + Jalur LED Pematerian (NeoPixel) Dengan Wayar

Sekiranya anda sudah pandai menyolder jalur LED, sudah tiba masanya untuk meletakkan jalur LED di bahagian belakang. Pertama, pasangkan pistol gam atau pita dua sisi di bahagian belakang jalur LED. Dan pertama-tama keluarkan wayar dari kedua sisi wayar pematerian melalui lubang di kedua-dua belah pihak. Akhirnya, pasangkan jalur LED ke akrilik belakang dan sudah habis!

Ini masa pematerian! sediakan jalur LED, penyambung 4-pin (penyambung atau wayar) dan apa yang anda perlukan untuk pematerian. Saya menggunakan LED dalam tiga unit. Anda boleh menggunakan satu atau dua LED jika anda mahu, tetapi saya cadangkan menggunakan tiga. Apabila semua bahan sudah siap, pateri wayar di kedua-dua garis data, garis 5v, dan garis tanah jalur LED.

Langkah 7: Suis Tact Soldering Dengan Wayar

Suis Tact Soldering Dengan Wayar
Suis Tact Soldering Dengan Wayar
Suis Tact Soldering Dengan Wayar
Suis Tact Soldering Dengan Wayar

Langkah 8: Pemasangan - Masukkan Bolt di Sisi = ①

Pemasangan -Masukkan Bolt di Sisi = ①
Pemasangan -Masukkan Bolt di Sisi = ①
Pemasangan -Masukkan Bolt di Sisi = ①
Pemasangan -Masukkan Bolt di Sisi = ①

Sekarang ia adalah bahagian yang sangat mudah! Letakkan satu baut pada setiap tiga sisi cetak 3D. Sebab mengapa menggunakan butang bolt seperti menggunakan bolt struktur dan mur akan dapat dibuat. Apabila kepingan selesai, saya akan meletakkan kepingan itu ke dalam casing dan menyelesaikannya dengan kacang.

Langkah 9: Pasang Ⓛⓣ ke Ⓒ = ②

Lampirkan Ⓛⓣ ke Ⓒ = ②
Lampirkan Ⓛⓣ ke Ⓒ = ②
Lampirkan Ⓛⓣ ke Ⓒ = ②
Lampirkan Ⓛⓣ ke Ⓒ = ②

Langkah 10: Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③

Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③
Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③
Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③
Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③
Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③
Perhimpunan -Gunakan a Ⓦ dan Ⓝ untuk Gabungkan ① dan ② = ③

Langkah 11: Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④

Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④
Pemasangan -Lampirkan Ⓐⓔ dan ③ Menggunakan Ikatan Akrilik = ④

Sekiranya anda meletakkan baut di sisi, kami akan meletakkannya di sisi dan bahagian depan. Bahagian depannya adalah akrilik, jadi anda harus memakainya dengan ikatan akrilik khusus. Sekiranya anda melekatkan akrilik pada ikatan biasa, ia akan meninggalkan tanda.

Langkah 12: Lampirkan Ⓢ hingga Ⓓ = ⑤

Lampirkan Ⓢ hingga Ⓓ = ⑤
Lampirkan Ⓢ hingga Ⓓ = ⑤
Lampirkan Ⓢ hingga Ⓓ = ⑤
Lampirkan Ⓢ hingga Ⓓ = ⑤

Langkah 13: Perhimpunan C Gabungkan ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥

Perhimpunan -Gabungkan ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥
Perhimpunan -Gabungkan ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥
Perhimpunan -Bombol ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥
Perhimpunan -Bombol ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥
Perhimpunan -Gabungkan ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥
Perhimpunan -Gabungkan ④ dan ⑤ Menggunakan Ⓦ dan Ⓝ = ⑥

Langkah 14: Pemasangan Piece Lengkap

Pemasangan Piece Lengkap
Pemasangan Piece Lengkap
Pemasangan Piece Lengkap
Pemasangan Piece Lengkap
Pemasangan Piece Lengkap
Pemasangan Piece Lengkap

Langkah 15: Penampilan Projek yang Bekerja

Image
Image

Langkah 16: NeoPixel, Pendawaian Penyambung

NeoPixel, Pendawaian Penyambung
NeoPixel, Pendawaian Penyambung
NeoPixel, Pendawaian Penyambung
NeoPixel, Pendawaian Penyambung
NeoPixel, Pendawaian Penyambung
NeoPixel, Pendawaian Penyambung

Langkah 17: Pendawaian NeoPixel dan Arduino

Pendawaian NeoPixel dan Arduino
Pendawaian NeoPixel dan Arduino

Langkah 18: Program Arduino

timer0_millis panjang tidak stabil yang tidak stabil;

#sertakan

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

batal persediaan () {

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

gelung kosong () {

untuk (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } untuk (int i = 0; i <6; i ++) {Wire.requestFrom (i + 1, 1); sementara (Wire.available ()) {int x = Wire.read (); // Serial.println (x); jika (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} /////////////////////////////////////////////// /////// if (ani_mode == 0) {untuk (int i = 1; i 3000) {preM1 = current1; untuk (int i = 1; i 5000) {preM2 = current2; untuk (int i = 1; i 3000) {preM3 = current3; // pemasa0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("pemasa semula"); untuk (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

Langkah 19:

timer0_millis panjang tidak stabil yang tidak menentu;

#sertakan

#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; warna int [num] [3]; int hue [num]; int sat [num]; int terang [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, 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]; 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, 1}; #include #define BTNNUM 1 int f_v = 1; preMillis1 panjang yang tidak ditandatangani; praM panjang yang tidak ditandatangani; int ani_mode = 0; int ani2_Counter = 0; kaunter int = 0; /////////////////////////////////////////// batal persediaan () {Wire. bermula (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (menerimaEvent); untuk (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); jalur.begin (); } ///////////////////////////////////////////

gelung kosong () {

jika (f_v == 1) {untuk (int i = 0; i <num; i ++) {hue = 50; sat = 95; terang = 100; } f_v = 0; } ////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = salah; untuk (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////////////////// suis (ani_mode) {kes 0: ani0 (); rehat; kes 1: ani1 (); ani_mode = 0; ani2_Counter = 0; rehat; kes 2: ani2_Counter = 1; ani_mode = 0; rehat; kes 3: ani3 (); ani_mode = 0; ani2_Counter = 0; rehat; lalai: readyState (); rehat; } jika (ani2_Counter == 1) {ani2 (); } setPixels (bilangan); }

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

batal terimaEvent (int howMany) {int x = Wire.read (); jika (x == 5) {// Serial.println ("diterima 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////////////////// batalkan permintaanEvent () {

jika (btnMode == benar) {

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

}

batal ani0 () {

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

batal ani1 () {

// Serial.println ("1"); if (pNumber == 0) {untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; untuk (int a = 0; a <2; a ++) {hue [a1 [a] = 100; sat [a1 [a] = 95; terang [a1 [a] = 100; } untuk (int b = 0; b <2; b ++) {hue [b1 = 200; sat [b1 = 95; terang [b1 = 100; } untuk (int c = 0; c <2; c ++) {hue [c1 [c] = 300; sat [c1 [c] = 95; terang [c1 [c] = 100; } // Serial.println ("0"); } lain jika (pNumber == 1) {untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; untuk (int a = 0; a <8; a ++) {hue [a2 [a] = 26; sat [a2 [a] = 95; terang [a2 [a] = 100; } untuk (int d = 0; d <4; d ++) {hue [d2 [d] = 63; sat [d2 [d] = 95; terang [d2 [d] = 100; } // Serial.println ("1"); } lain jika (pNumber == 2) {// corak kubus gergasi untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // kuning 06 untuk (int a = 0; a <6; a ++) {hue [a14 [a] = 35; sat [a14 [a] = 95; terang [a14 [a] = 100; }} lain jika (pNumber == 3) {untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // kuning untuk (int a = 0; a <6; a ++) {hue [a3 [a] = 53; sat [a3 [a] = 95; terang [a3 [a] = 100; }} lain jika (pNumber == 4) {untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a4 = {34, 35}; // kuning int b4 = {47}; // biru int c4 = {48}; // ungu

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

untuk (int b = 0; b <1; b ++) {hue [b4 = 210; sat [b4 = 95; terang [b4 = 100; } untuk (int c = 0; c <1; c ++) {hue [c4 [c] = 307; sat [c4 [c] = 95; terang [c4 [c] = 100; }} lain jika (pNumber == 5) {untuk (int i = 0; i <num; i ++) {terang = 0; gValue = 1; } int a5 = {34, 35, 46, 47, 48, 49};

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

jika (pNumber == 14) {

pNombor = 0; }}

batal ani2 () {

// Serial.println ("2"); curM panjang tidak bertanda = milis ();

jika (curM - preM> = 10) {

preM = curM; untuk (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } hue = hue + gValue ; } kaunter ++; if (counter == 360) {// Serial.print ("kaunter:"); // Serial.println (kaunter); // Serial.println (curM); pembilang = 0; ani2_Counter = 0; }}}

batal ani3 () {

// Serial.println ("3"); } /////////////////////////////////////////// batal siapState () {/ / Serial.println ("siap"); } /////////////////////////////////////////// batal btnEvent (int b_interval) {curMillis1 panjang yang tidak ditandatangani = milis ();

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

jika (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; untuk (int i = 0; i = 360) {hueV = -1; } lain jika (hue <= 0) {hueV = 1; } hue = hue + hueV ; terang = 100; }}}} /////////////////////////////////////////// batal setPixels (int k) {untuk (int i = 0; i <k; i ++) {H2R_HSBtoRGB (rona , sat , terang , warna ); int num1 = i * 3; strip.setPixelColor (bilangan 1, warna [0], warna [1], warna [2]); strip.setPixelColor (num1 + 1, warna [0], warna [1], warna [2]); strip.setPixelColor (num1 + 2, warna [0], warna [1], warna [2]); } strip.show (); }

Langkah 20: Corak

Corak!
Corak!
Corak!
Corak!

Projek ini mempunyai beberapa segitiga yang membentuk bentuk heksagon. Oleh itu, anda boleh membuat corak stereoskopik mengikut cara anda merancang cahaya! Cukup tekan setiap bahagian dan pelbagai warna akan digradasi, dan apabila warna yang anda inginkan keluar, tekan tangan yang anda tekan dan ia akan terus bersinar dengan indah dengan warna yang anda mahukan!

Disyorkan: