İçindekiler:

Beni Yak!: 20 Adım (Resimlerle)
Beni Yak!: 20 Adım (Resimlerle)

Video: Beni Yak!: 20 Adım (Resimlerle)

Video: Beni Yak!: 20 Adım (Resimlerle)
Video: Sezen Aksu - Her Şeyi Yak (Official Audio) 2024, Kasım
Anonim
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!
Beni aydınlat!

proje ekibi üyeleri

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Ya ışığa dokunup tasarlayabilseydiniz? Kendinizi ilginç bir animasyonla tasarladığınız güzel bir ışık deseniniz olsaydı nasıl bir his olurdu?Light me up, ışığın kendisine dokunan, tasarlayan ve ilginç desenler oluşturan ilginç bir eskiz defteri olacak! altıgen şekil. Böylece ışığı nasıl tasarladığınıza göre stereoskopik desenler oluşturabilirsiniz! Sadece her parçaya basın ve çeşitli renkler derecelendirilecek ve istediğiniz renk çıktığında, bastığınız ele vurun ve istediğiniz renkle güzelce parlamaya devam edecek! Proje yaklaşık 312 üçgen kullandı, ancak oluşturabilirdi. 6 üçgenle iyi çalışan güzel bir ışık. Şimdi size altı üçgenle nasıl yapılacağını göstereyim. Adımları izleyin ve kendi harika işinize sahip olacaksınız!

Gereçler

Donanım: Arduino(Arduino mega 2560 kullandım), Akrilik(şeffaf, beyaz), LED Şerit(NeoPixel), Difüzör Film, buton, 4 pinli Konnektör, Tel, Devre Kartı, Güç Kaynağı

Araçlar: Lazer Güdümlü Kesim Makinesi, 3D Yazıcı

Adım 1: Hadi Yapalım

Hadi yapalım!
Hadi yapalım!
Hadi yapalım!
Hadi yapalım!
Hadi yapalım!
Hadi yapalım!

Hadi bu sevimli altıgen parçayı benimle yapalım!

Light Me Up, 312 üçgen kullanılarak yapılmıştır, ancak 6 üçgen bile harika bir ışık tasarlayabilir. Daha büyük ölçekte yapmak isterseniz aşağıdaki ekteki dosyaya başvurarak yapabilirsiniz.

Adım 2: Malzeme Hazırlığı

Malzeme hazırlama
Malzeme hazırlama

Adım 3: Akrilik Kesme

Akrilik Kesme
Akrilik Kesme
Akrilik Kesme
Akrilik Kesme
Akrilik Kesme
Akrilik Kesme
Akrilik Kesme
Akrilik Kesme

Her parçanın önünü ve arkasını kesmek için bir lazer kesici kullanın. Arkadaki akriliğin rengi istediğiniz herhangi bir şey olabilir, ancak şeffaf akrilik kullandığınızdan emin olun çünkü ön kısım karartılmalıdır! Şeffaf dışında bir renk akrilik kullanırsanız ışığı iyi göremezsiniz.

Adım 4: 3D Yazıcılarla Taraf Yapın

3D Yazıcılarla Taraf Yapın
3D Yazıcılarla Taraf Yapın
3D Yazıcılarla Taraf Yapın
3D Yazıcılarla Taraf Yapın
3D Yazıcılarla Taraf Yapın
3D Yazıcılarla Taraf Yapın

Şimdi her parçanın kenarlarını yapma zamanı. Hadi yapalım! Yandaki 3D modelleme dosyaları aşağıda ektedir. PLA'yı kenar yapmak için kullandık PLA, ABS'den daha güçlü ve daha az kasılmadır, bu nedenle PLA'yı kullanmak için filamentler önerilir.

Adım 5: Çekim

filme
filme
filme
filme
filme
filme

Şimdi ön taraftaki akriliğin üzerine hafif bir difüzyon filmi koyalım. Üzerine film koyarsanız, yayılır ve çok daha güzel parlar. İlk olarak, filmi bir üçgen şeklinde kesin. (Filmi kesilmiş akrilikten daha büyük kesmeniz daha iyi olur) Telefonunuza koruyucu bir film gibi film koymak kolaydır. Buraya bahşiş vermek isterseniz, itmek için bir kart kullanabilirsiniz, böylece düzgünce yapıştırılabilir!

Adım 6: LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın

LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın
LED Şerit + Lehimleme LED Şeritini (NeoPixel) Tellerle Takın

LED şeridi lehimlemede çok iyiyseniz, LED şeridi arkaya koymanın zamanı geldi. İlk olarak, LED şeridin arkasına bir tutkal tabancası veya iki taraflı bant yapıştırın. Ve önce lehim telinin her iki tarafındaki telleri her iki taraftaki deliklerden çıkarın. Son olarak, LED şeridi arka akriliğe takın ve bitti!

Lehimleme zamanı! LED şeritleri, 4 pinli konektörleri (konektör veya teller) ve lehimleme için ihtiyacınız olanı hazırlayın. LED'leri üç ünitede kullandım. İsterseniz bir veya iki LED kullanabilirsiniz, ancak üç tane kullanmanızı tavsiye ederim. Tüm malzemeler hazır olduğunda, LED şeridin her iki veri hattındaki, 5v hatlarındaki ve topraklama hatlarındaki telleri lehimleyin.

Adım 7: Tellerle Lehimleme Hassas Anahtarı

Teller ile Lehimleme Hassas Anahtarı
Teller ile Lehimleme Hassas Anahtarı
Teller ile Lehimleme Hassas Anahtarı
Teller ile Lehimleme Hassas Anahtarı

Adım 8: Montaj -Cıvatayı Kenara Yerleştirin= ①

Montaj -Cıvatayı Yana Yerleştirin= ①
Montaj -Cıvatayı Yana Yerleştirin= ①
Montaj -Cıvatayı Yana Yerleştirin= ①
Montaj -Cıvatayı Yana Yerleştirin= ①

Şimdi gerçekten kolay bir kısım! Üç 3B yazdırılan tarafın her birine bir cıvata yerleştirin. Cıvata düğmesini kullanmanın sebebini yapısal bir cıvata ve somun gibi kullanmak mümkün olacaktır. Parça bitince parçayı kutuya koyacağım ve bir somunla bitireceğim.

9. Adım: Ⓛⓣ öğesini Ⓒ= ② öğesine ekleyin

Ⓛⓣ öğesini Ⓒ= ② öğesine ekleyin
Ⓛⓣ öğesini Ⓒ= ② öğesine ekleyin
Ⓛⓣ öğesini Ⓒ= ② öğesine ekleyin
Ⓛⓣ öğesini Ⓒ= ② öğesine ekleyin

Adım 10: Montaj - ① ve ②= ③'yi birleştirmek için bir Ⓦ ve Ⓝ kullanın

Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın
Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın
Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın
Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın
Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın
Montaj - ① ve ②= ③'yi birleştirmek için Ⓦ ve Ⓝ kullanın

Adım 11: Montaj - Bir Akrilik Bağ Kullanarak Ⓐⓔ ve ③'yi Yapın= ④

Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④
Montaj - Ⓐⓔ ve ③'yi Akrilik Bağ Kullanarak Yapın= ④

Yana bir cıvata koyarsanız, onu yana ve öne takarız. Ön kısım akriliktir, bu yüzden özel bir akrilik bağ ile takmanız gerekir. Normal bir bağa akrilik eklerseniz, bir iz bırakacaktır.

Adım 12: Ⓢ öğesini Ⓓ= ⑤ öğesine ekleyin

Ⓢ öğesini Ⓓ= ⑤ öğesine ekleyin
Ⓢ öğesini Ⓓ= ⑤ öğesine ekleyin
Ⓢ öğesini Ⓓ= ⑤ öğesine ekleyin
Ⓢ öğesini Ⓓ= ⑤ öğesine ekleyin

Adım 13: Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin

Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin
Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin
Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin
Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin
Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin
Montaj - ④ ve ⑤'yi Ⓦ ve Ⓝ= ⑥ kullanarak birleştirin

Adım 14: Parça Montajını Tamamlayın

Komple Parça Montajı
Komple Parça Montajı
Komple Parça Montajı
Komple Parça Montajı
Komple Parça Montajı
Komple Parça Montajı

Adım 15: Bir Projenin Çalışma Görünümü

Image
Image

Adım 16: NeoPixel, Konektör Kablolaması

NeoPixel, Konektör Kablolaması
NeoPixel, Konektör Kablolaması
NeoPixel, Konektör Kablolaması
NeoPixel, Konektör Kablolaması
NeoPixel, Konektör Kablolaması
NeoPixel, Konektör Kablolaması

Adım 17: NeoPixel ve Arduino Kablolama

NeoPixel ve Arduino Kablolama
NeoPixel ve Arduino Kablolama

Adım 18: Arduino'yu Programlayın

extern uçucu imzasız uzun timer0_millis;

#Dahil etmek

#define MODEBTNNUM 3 int ani_mode = 0; imzasız uzun preM1, preM2, preM3;

geçersiz kurulum() {

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

boşluk döngüsü () {

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(); // Seri.println(x); if (x == 5) { ani_mode = 0; // Serial.println("x=5"); } } } ////////////////////////////////////////// /////// if (ani_mode == 0) { for (int i = 1; i 3000) { preM1 = akım1; for (int i = 1; i 5000) { preM2 = akım2; for (int i = 1; i 3000) { preM3 = akım3; // timer0_millis = 0; // önM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println("zamanlayıcı sıfırlama"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmission(i); } } } }

Adım 19:

extern uçucu imzasız uzun timer0_millis;

#Dahil etmek

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel şeridi = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int sayı = NUMPIXELS / 3; const int slaveNum = 1; int renkler[sayı][3]; int renk[sayı]; int sat[sayı]; int parlak[sayı]; int pNumara = 0; int gDeğeri[sayı] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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[sayı] = {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[sayı]; boolean btnMode; int hueV[sayı] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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; imzasız uzun preMillis1; imzasız uzun preM; int ani_mode = 0; int ani2_Counter = 0; int sayaç = 0; ///////////////////////////////////// void setup() { Tel. start(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(receiveEvent); for (int i = 0; i < num; i++) { pinMode(btnPin, INPUT_PULLUP); } //Serial.begin(9600); strip.begin(); } ////////////////////////////////////////

boşluk döngüsü () {

if (f_v == 1) { for (int i = 0; i < num; i++) { renk tonu = 50; sat = 95; parlak = 100; } f_v = 0; } ////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = YANLIŞ; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println(ani_mode); ////////////////////////////////// geçiş (ani_mode) { durum 0: ani0(); kırmak; durum 1: ani1(); ani_mode = 0; ani2_Counter = 0; kırmak; durum 2: ani2_Counter = 1; ani_mode = 0; kırmak; durum 3: ani3(); ani_mode = 0; ani2_Counter = 0; kırmak; varsayılan: readyState(); kırmak; } if (ani2_Counter == 1) { ani2(); } setPixels(sayı); }

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

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

if (btnMode == doğru) {

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

}

geçersiz ani0() {

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

geçersiz ani1() {

// Serial.println("1"); if (pNumber == 0) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { renk tonu[a1[a] = 100; sat[a1[a] = 95; parlak[a1[a] = 100; } for (int b = 0; b < 2; b++) { ton[b1 = 200; sat[b1 = 95; parlak[b1 = 100; } for (int c = 0; c < 2; c++) { ton[c1[c] = 300; sat[c1[c] = 95; parlak[c1[c] = 100; } // Serial.println("0"); } else if (pNumber == 1) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 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++) { renk tonu[a2[a] = 26; sat[a2[a] = 95; parlak[a2[a] = 100; } for (int d = 0; d < 4; d++) { renk tonu[d2[d] = 63; sat[d2[d] = 95; parlak[d2[d] = 100; } // Serial.println("1"); } else if (pNumber == 2) { //dev küp kalıbı for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a14 = {34, 35, 46, 47, 48, 49};//sarı 06 for (int a = 0; a < 6; a++) { renk tonu[a14[a] = 35; sat[a14[a] = 95; parlak[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a3 = {34, 35, 46, 47, 48, 49};//sarı for (int a = 0; a < 6; a++) { ton[a3[a] = 53; sat[a3[a] = 95; parlak[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a4 = {34, 35};//sarı int b4 = {47};//mavi int c4 = {48};//mor

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

for (int b = 0; b < 1; b++) { renk tonu[b4 = 210; sat[b4 = 95; parlak[b4 = 100; } for (int c = 0; c < 1; c++) { renk tonu[c4[c] = 307; sat[c4[c] = 95; parlak[c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a < 6; a++) { renk tonu[a5[a] = 100; sat[a5[a] = 95; parlak[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a6 = {34, 35, 46, 47, 48, 49};//sarı for (int a = 0; a < 6; a++) { renk tonu[a6[a] = 53; sat[a6[a] = 95; parlak[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c7 = {34, 35, 46, 47, 48, 49};//mor for (int c = 0; c < 6; c++) { ton[c7[c] = 307; sat[c7[c] = 95; parlak[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //mor for (int c = 0; c < 6; c++) { ton[c8[c] = 307; sat[c8[c] = 95; parlak[c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //mor for (int c = 0; c < 6; c++) { ton[c9[c] = 307; sat[c9[c] = 95; parlak[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //mor for (int c = 0; c < 6; c++) { ton[c10[c] = 307; sat[c10[c] = 95; parlak[c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //mor for (int c = 0; c < 6; c++) { ton[c11[c] = 307; sat[c11[c] = 95; parlak[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //mor for (int c = 0; c < 6; c++) { ton[c12[c] = 307; sat[c12[c] = 95; parlak[c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < num; i++) { parlak = 0; gDeğeri = 1; } int a13 = {34, 35}; //sarı int b13 = {47}; //mavi int c13 = {48}; //mor for (int a = 0; a < 2; a++) { ton[a13[a] = 53; sat[a13[a] = 95; parlak[a13[a] = 100; } for (int b = 0; b < 1; b++) { renk tonu[b13 = 210; sat[b13 = 95; parlak[b13 = 100; } for (int c = 0; c < 1; c++) { renk tonu[c13[c] = 307; sat[c13[c] = 95; parlak[c13[c] = 100; } } pNumara = pNumara + 1;

if (pNumara == 14) {

pNumara = 0; } }

geçersiz ani2() {

// Serial.println("2"); imzasız uzun curM = millis();

if (curM - preM >= 10) {

önM = curM; for (int i = 0; i < num; i++) { if (hue = 360) { gValue = -1; } renk tonu = renk tonu + gDeğeri; } sayaç++; if (sayaç == 360) { // Serial.print("sayaç: "); // Serial.println(sayaç); // Serial.println(curM); sayaç = 0; ani2_Counter = 0; } } }

geçersiz ani3() {

// Serial.println("3"); } ////////////////////////////////////// void readyState() { / / Serial.println("hazır"); } ////////////////////////////////////// void btnEvent(int b_interval) { imzasız uzun curMillis1 = millis();

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; } renk tonu = renk tonu + renk tonu; parlak = 100; } } } } ////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, parlak, renkler); int sayı1 = ben * 3; strip.setPixelColor(num1, renkler[0], renkler[1], renkler[2]); strip.setPixelColor(num1 + 1, renkler[0], renkler[1], renkler[2]); strip.setPixelColor(num1 + 2, renkler[0], renkler[1], renkler[2]); } şerit.göster(); }

Adım 20: Desenler

Desenler!
Desenler!
Desenler!
Desenler!

Bu projede altıgen bir şekil oluşturan birkaç üçgen var. Böylece ışığı nasıl tasarladığınıza göre stereoskopik desenler oluşturabilirsiniz! Sadece her parçaya basın ve çeşitli renkler derecelendirilecek ve istediğiniz renk çıktığında, bastığınız ele vurmanız yeterli ve istediğiniz renkle güzelce parlamaya devam edecek!

Önerilen: