Съдържание:

Light Me Up !: 20 стъпки (със снимки)
Light Me Up !: 20 стъпки (със снимки)

Видео: Light Me Up !: 20 стъпки (със снимки)

Видео: Light Me Up !: 20 стъпки (със снимки)
Видео: Камера-ЛАМПА с проследяване и идентификация на човек. 2024, Ноември
Anonim
Запали ме!
Запали ме!
Запали ме!
Запали ме!
Запали ме!
Запали ме!
Запали ме!
Запали ме!

членовете на екипа на проекта

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Ами ако можете да докоснете и проектирате светлината? Какво би било чувството, ако имате красив модел на светлина, който сами сте проектирали с интересна анимация? Light me up ще бъде интересен скицник, който докосва и проектира самата светлина и прави интересни модели! Този проект има няколко триъгълника, които образуват шестоъгълна форма. Така че можете да създавате стереоскопични модели според начина, по който проектирате светлината! Просто натиснете всяко парче и различните цветове ще бъдат градуирани, а когато желаният цвят излезе, просто натиснете ръката, която сте натиснали, и тя ще продължи да блести красиво с желания от вас цвят! Проектът използва около 312 триъгълника, но може да създаде хубава светлина, която работи добре с 6 триъгълника. Сега ще ви покажа как да го направите с шест триъгълника. Следвайте стъпките и ще имате своя прекрасна работа!

Консумативи

Хардуер: Arduino (използвах arduino mega 2560), акрил (прозрачен, бял), LED лента (NeoPixel), филм за дифузер, бутон, 4 пинов конектор, проводник, печатна платка, захранване

Инструменти: Машина за рязане с лазерно ръководство, 3D принтер

Стъпка 1: Нека успеем

Нека го направим!
Нека го направим!
Нека го направим!
Нека го направим!
Нека го направим!
Нека го направим!

Нека направим това сладко шестоъгълно парче с мен!

Light Me Up е направен с помощта на 312 триъгълника, но дори 6 триъгълника могат да проектират прекрасна светлина. Ако искате да го направите в по -голям мащаб, можете да го направите, като се обърнете към прикачения файл по -долу.

Стъпка 2: Подготовка на материала

Подготовка на материала
Подготовка на материала

Стъпка 3: Рязане на акрил

Рязане на акрил
Рязане на акрил
Рязане на акрил
Рязане на акрил
Рязане на акрил
Рязане на акрил
Рязане на акрил
Рязане на акрил

Използвайте лазерен нож, за да изрежете предната и задната част на всяка част. Цветът на акрила на гърба може да бъде всичко, което искате, но не забравяйте да използвате прозрачен акрил, защото предната част трябва да бъде затъмнена! Ако използвате цветен акрил, различен от прозрачен, няма да видите добре светлината.

Стъпка 4: Направете страни с 3D принтери

Направете страни с 3D принтери
Направете страни с 3D принтери
Направете страни с 3D принтери
Направете страни с 3D принтери
Направете страни с 3D принтери
Направете страни с 3D принтери

Сега е време да направите страните на всяко парче. Нека да успеем! Файловете за 3D моделиране отстрани са приложени по -долу. Използвахме PLA, за да направим страни. PLA е по -силен и с по -малко свивания от ABS, така че нишките се препоръчват за използване на PLA.

Стъпка 5: Заснемане

Заснемане
Заснемане
Заснемане
Заснемане
Заснемане
Заснемане

Сега нека сложим лек дифузионен филм върху акрила отпред. Ако поставите филм върху него, той се разпръсква и блести много по -красиво. Първо, изрежете филма под формата на триъгълник. (По -добре изрежете филма по -голям от изрязания акрил) Лесно е да поставите филм, например, защитен филм на телефона си. Ако искате да дадете бакшиш тук, можете да използвате карта, за да я натиснете, така че да може да се залепи добре!

Стъпка 6: Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници

Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници

Ако сте били толкова добри в запояването на LED лентата, време е да поставите LED лентата на гърба. Първо, прикрепете пистолет за лепило или двустранна лента към гърба на LED лентата. И първо отстранете проводниците от двете страни на запояващия проводник през отворите от двете страни. Накрая прикрепете LED лентата към задния акрил и всичко свърши!

Време е за запояване! подгответе LED ленти, 4-пинови конектори (конектор или проводници) и какво ви е необходимо за запояване. Използвах светодиоди в три единици. Можете да използвате един или два светодиода, ако искате, но препоръчвам да използвате три. Когато всички материали са готови, запоявайте проводниците в двете линии за данни, 5v линии и заземяващи линии на LED лентата.

Стъпка 7: Тактически превключвател за запояване с проводници

Тактически превключвател за запояване с проводници
Тактически превключвател за запояване с проводници
Тактически превключвател за запояване с проводници
Тактически превключвател за запояване с проводници

Стъпка 8: Монтаж -Вмъкнете болта отстрани = ①

Монтаж -Вмъкване на болт отстрани = ①
Монтаж -Вмъкване на болт отстрани = ①
Монтаж -Вмъкване на болт отстрани = ①
Монтаж -Вмъкване на болт отстрани = ①

Сега това е наистина лесна част! Поставете по един болт на всяка от трите 3D отпечатани страни. Причината, поради която използването на бутона на болта, като използването на конструктивни болтове и гайки, ще може да бъде направено. Когато парчето приключи, ще сложа парчето в кутията и ще го завърша с гайка.

Стъпка 9: Прикрепете Ⓛⓣ към Ⓒ = ②

Прикрепете Ⓛⓣ към Ⓒ = ②
Прикрепете Ⓛⓣ към Ⓒ = ②
Прикрепете Ⓛⓣ към Ⓒ = ②
Прикрепете Ⓛⓣ към Ⓒ = ②

Стъпка 10: Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③

Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③

Стъпка 11: Монтаж -Прикрепете Ⓐⓔ и ③ Използвайте акрилна връзка = ④

Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④
Монтаж -Прикрепете Ⓐⓔ и ③ Използвайки акрилна връзка = ④

Ако поставите болт отстрани, ние ще го поставим отстрани и отпред. Предната част е акрилна, така че трябва да я поставите със специална акрилна връзка. Ако прикрепите акрил към обикновена връзка, той ще остави следа.

Стъпка 12: Прикрепете Ⓢ към Ⓓ = ⑤

Прикрепете Ⓢ към Ⓓ = ⑤
Прикрепете Ⓢ към Ⓓ = ⑤
Прикрепете Ⓢ към Ⓓ = ⑤
Прикрепете Ⓢ към Ⓓ = ⑤

Стъпка 13: Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥

Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥

Стъпка 14: Пълно сглобяване на парче

Пълен монтаж на парче
Пълен монтаж на парче
Пълен монтаж на парче
Пълен монтаж на парче
Пълен монтаж на парче
Пълен монтаж на парче

Стъпка 15: Работен облик на проект

Image
Image

Стъпка 16: NeoPixel, окабеляване на конектора

NeoPixel, окабеляване на конектора
NeoPixel, окабеляване на конектора
NeoPixel, окабеляване на конектора
NeoPixel, окабеляване на конектора
NeoPixel, окабеляване на конектора
NeoPixel, окабеляване на конектора

Стъпка 17: NeoPixel и Arduino окабеляване

Окабеляване на NeoPixel и Arduino
Окабеляване на NeoPixel и Arduino

Стъпка 18: Програмирайте Arduino

външен летлив неподписан дълъг таймер0_millis;

#включва

#define MODEBTNNUM 3 int ani_mode = 0; неподписан дълъг preM1, preM2, preM3;

void setup () {

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

void loop () {

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); ако (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_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("нулиране на таймера"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}

Стъпка 19:

външен летлив неподписан дълъг таймер0_millis;

#включва

#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 цветове [номер] [3]; int hue [номер]; int sat [номер]; int bright [номер]; 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]; булев 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; неподписан дълъг preMillis1; неподписан дълъг preM; int ani_mode = 0; int ani2_Counter = 0; int брояч = 0; /////////////////////////////////////////////// void setup () {Wire. begin (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } /////////////////////////////////////////////////

void loop () {

if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; сат = 95; ярък = 100; } f_v = 0; } ////////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = невярно; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////// превключвател (ani_mode) {случай 0: ani0 (); прекъсване; случай 1: ani1 (); ani_mode = 0; ani2_Counter = 0; прекъсване; случай 2: ani2_Counter = 1; ani_mode = 0; прекъсване; случай 3: ani3 (); ani_mode = 0; ani2_Counter = 0; прекъсване; по подразбиране: readyState (); прекъсване; } ако (ani2_Counter == 1) {ani2 (); } setPixels (брой); }

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

void receiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("получено 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////////////////////// void requestEvent () {

if (btnMode == true) {

Wire.write (5); // Serial.println ("5 보냄"); } else {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; gValue = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a <2; a ++) {hue [a1 [a] = 100; sat [a1 [a] = 95; ярък [a1 [a] = 100; } for (int b = 0; b <2; b ++) {hue [b1 = 200; sat [b1 = 95; ярък [b1 = 100; } for (int c = 0; c <2; c ++) {hue [c1 [c] = 300; sat [c1 [c] = 95; ярък [c1 [c] = 100; } // Serial.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 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 ++) {hue [a2 [a] = 26; sat [a2 [a] = 95; ярък [a2 [a] = 100; } for (int d = 0; d <4; d ++) {hue [d2 [d] = 63; sat [d2 [d] = 95; ярък [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// модел на гигантски куб за (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // жълто 06 за (int a = 0; a <6; a ++) {hue [a14 [a] = 35; sat [a14 [a] = 95; ярък [a14 [a] = 100; }} иначе ако (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // жълто за (int a = 0; a <6; a ++) {hue [a3 [a] = 53; sat [a3 [a] = 95; ярък [a3 [a] = 100; }} иначе ако (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a4 = {34, 35}; // жълт int b4 = {47}; // син int c4 = {48}; // лилав

for (int a = 0; a <2; a ++) {hue [a4 [a] = 53; sat [a4 [a] = 95; ярък [a4 [a] = 100; }

за (int b = 0; b <1; b ++) {оттенък [b4 = 210; sat [b4 = 95; ярък [b4 = 100; } for (int c = 0; c <1; c ++) {hue [c4 [c] = 307; sat [c4 [c] = 95; ярък [c4 [c] = 100; }} иначе ако (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a5 = {34, 35, 46, 47, 48, 49};

for (int a = 0; a <6; a ++) {hue [a5 [a] = 100; sat [a5 [a] = 95; ярък [a5 [a] = 100; }} иначе ако (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // жълто за (int a = 0; a <6; a ++) {hue [a6 [a] = 53; sat [a6 [a] = 95; ярък [a6 [a] = 100; }} иначе ако (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c7 [c] = 307; sat [c7 [c] = 95; ярък [c7 [c] = 100; }} иначе ако (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c8 [c] = 307; sat [c8 [c] = 95; ярък [c8 [c] = 100; }} иначе ако (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c9 [c] = 307; sat [c9 [c] = 95; ярък [c9 [c] = 100; }} иначе ако (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c10 [c] = 307; sat [c10 [c] = 95; ярък [c10 [c] = 100; }} иначе ако (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c11 [c] = 307; sat [c11 [c] = 95; ярък [c11 [c] = 100; }} иначе ако (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // лилаво за (int c = 0; c <6; c ++) {hue [c12 [c] = 307; sat [c12 [c] = 95; ярък [c12 [c] = 100; }} иначе ако (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gValue = 1; } int a13 = {34, 35}; // жълт int b13 = {47}; // син int c13 = {48}; // лилаво за (int a = 0; a <2; a ++) {hue [a13 [a] = 53; sat [a13 [a] = 95; ярък [a13 [a] = 100; } for (int b = 0; b <1; b ++) {hue [b13 = 210; sat [b13 = 95; ярък [b13 = 100; } for (int c = 0; c <1; c ++) {hue [c13 [c] = 307; sat [c13 [c] = 95; ярък [c13 [c] = 100; }} pNumber = pNumber + 1;

if (pNumber == 14) {

pNumber = 0; }}

void ani2 () {

// Serial.println ("2"); без знаци дълъг curM = millis ();

if (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } hue = hue + gValue ; } брояч ++; if (counter == 360) {// Serial.print ("брояч:"); // Serial.println (брояч); // Serial.println (curM); брояч = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } /////////////////////////////////////////////// void readyState () {/ / Serial.println ("готов"); } /////////////////////////////////////////////// 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; for (int i = 0; i = 360) {hueV = -1; } else if (hue <= 0) {hueV = 1; } hue = hue + hueV ; ярък = 100; }}}} ///////////////////////////////////////////// пусто набор Пиксели (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (hue , sat , bright , цветове ); int num1 = i * 3; strip.setPixelColor (num1, цветове [0], цветове [1], цветове [2]); strip.setPixelColor (num1 + 1, цветове [0], цветове [1], цветове [2]); strip.setPixelColor (num1 + 2, цветове [0], цветове [1], цветове [2]); } strip.show (); }

Стъпка 20: Модели

Модели!
Модели!
Модели!
Модели!

Този проект има няколко триъгълника, които образуват шестоъгълна форма. Така че можете да създавате стереоскопични модели според начина, по който проектирате светлината! Просто натиснете всяко парче и различните цветове ще бъдат градуирани, а когато желаният цвят излезе, просто натиснете ръката, която сте натиснали, и тя ще продължи да блести красиво с желания от вас цвят!

Препоръчано: