Съдържание:
- Консумативи
- Стъпка 1: Нека успеем
- Стъпка 2: Подготовка на материала
- Стъпка 3: Рязане на акрил
- Стъпка 4: Направете страни с 3D принтери
- Стъпка 5: Заснемане
- Стъпка 6: Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
- Стъпка 7: Тактически превключвател за запояване с проводници
- Стъпка 8: Монтаж -Вмъкнете болта отстрани = ①
- Стъпка 9: Прикрепете Ⓛⓣ към Ⓒ = ②
- Стъпка 10: Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
- Стъпка 11: Монтаж -Прикрепете Ⓐⓔ и ③ Използвайте акрилна връзка = ④
- Стъпка 12: Прикрепете Ⓢ към Ⓓ = ⑤
- Стъпка 13: Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
- Стъпка 14: Пълно сглобяване на парче
- Стъпка 15: Работен облик на проект
- Стъпка 16: NeoPixel, окабеляване на конектора
- Стъпка 17: NeoPixel и Arduino окабеляване
- Стъпка 18: Програмирайте Arduino
- Стъпка 19:
- Стъпка 20: Модели
Видео: Light Me Up !: 20 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
членовете на екипа на проекта
(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 моделиране отстрани са приложени по -долу. Използвахме PLA, за да направим страни. PLA е по -силен и с по -малко свивания от ABS, така че нишките се препоръчват за използване на PLA.
Стъпка 5: Заснемане
Сега нека сложим лек дифузионен филм върху акрила отпред. Ако поставите филм върху него, той се разпръсква и блести много по -красиво. Първо, изрежете филма под формата на триъгълник. (По -добре изрежете филма по -голям от изрязания акрил) Лесно е да поставите филм, например, защитен филм на телефона си. Ако искате да дадете бакшиш тук, можете да използвате карта, за да я натиснете, така че да може да се залепи добре!
Стъпка 6: Прикрепете LED лента + запояваща LED лента (NeoPixel) с проводници
Ако сте били толкова добри в запояването на LED лентата, време е да поставите LED лентата на гърба. Първо, прикрепете пистолет за лепило или двустранна лента към гърба на LED лентата. И първо отстранете проводниците от двете страни на запояващия проводник през отворите от двете страни. Накрая прикрепете LED лентата към задния акрил и всичко свърши!
Време е за запояване! подгответе LED ленти, 4-пинови конектори (конектор или проводници) и какво ви е необходимо за запояване. Използвах светодиоди в три единици. Можете да използвате един или два светодиода, ако искате, но препоръчвам да използвате три. Когато всички материали са готови, запоявайте проводниците в двете линии за данни, 5v линии и заземяващи линии на LED лентата.
Стъпка 7: Тактически превключвател за запояване с проводници
Стъпка 8: Монтаж -Вмъкнете болта отстрани = ①
Сега това е наистина лесна част! Поставете по един болт на всяка от трите 3D отпечатани страни. Причината, поради която използването на бутона на болта, като използването на конструктивни болтове и гайки, ще може да бъде направено. Когато парчето приключи, ще сложа парчето в кутията и ще го завърша с гайка.
Стъпка 9: Прикрепете Ⓛⓣ към Ⓒ = ②
Стъпка 10: Сглобяване -Използвайте a Ⓦ и Ⓝ, за да комбинирате ① и ② = ③
Стъпка 11: Монтаж -Прикрепете Ⓐⓔ и ③ Използвайте акрилна връзка = ④
Ако поставите болт отстрани, ние ще го поставим отстрани и отпред. Предната част е акрилна, така че трябва да я поставите със специална акрилна връзка. Ако прикрепите акрил към обикновена връзка, той ще остави следа.
Стъпка 12: Прикрепете Ⓢ към Ⓓ = ⑤
Стъпка 13: Сглобяване -Комбинирайте ④ и ⑤ Използвайки Ⓦ и Ⓝ = ⑥
Стъпка 14: Пълно сглобяване на парче
Стъпка 15: Работен облик на проект
Стъпка 16: NeoPixel, окабеляване на конектора
Стъпка 17: 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: Модели
Този проект има няколко триъгълника, които образуват шестоъгълна форма. Така че можете да създавате стереоскопични модели според начина, по който проектирате светлината! Просто натиснете всяко парче и различните цветове ще бъдат градуирани, а когато желаният цвят излезе, просто натиснете ръката, която сте натиснали, и тя ще продължи да блести красиво с желания от вас цвят!
Препоръчано:
BookWorm Light-Up Book Light и Bookmark: 13 стъпки (със снимки)
BookWorm Light-Up Book Light и Bookmark: Направете тази забавна отметка на Bookworm, която се удвоява и като книга! Ние ще го разпечатаме, изрежем, оцветим и украсим, а те ще го използват за осветяване на нощта, така че да можете да четете на тъмно. Той е направен само с няколко материала и прави страхотна първа ци
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Led Light Light: 7 стъпки (със снимки)
Led Shop Light: Това е за превръщане на стара халогенна лампа в модерна и много по -ярка LED версия. Списък на частите на снимката заедно с електрическа схема. Това е първият ми инструктаж, така че кажете ми къде мога да се подобря. Благодаря за четенето
Light Music Light Show (lpt Led): 6 стъпки (със снимки)
Light Music Light Show (lpt Led): Наистина просто & евтин лайт бар, захранван и контролиран от компютър (през lpt порт). Изграждането на това ще ви струва около 10-20 долара (имах безплатно кабела plexi и lpt, затова платих само 3 долара за факел и 3 долара за гайки и болтове) = убийте
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr