Мазмуну:

Мени жарык кыл!: 20 кадам (Сүрөттөр менен)
Мени жарык кыл!: 20 кадам (Сүрөттөр менен)

Video: Мени жарык кыл!: 20 кадам (Сүрөттөр менен)

Video: Мени жарык кыл!: 20 кадам (Сүрөттөр менен)
Video: Ойлонордон мурда бул ВИДЕОНУ КӨРҮҢҮЗ! 2024, Ноябрь
Anonim
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!
Мени жарык кыл!

долбоордун мүчөлөрү

(Hyewon Shin, Eunjeong Ko, Junsung Yi)

Жарыкка тийип, дизайн жасай алсаңызчы? Эгерде сизде өзүңүздү кызыктуу анимация менен ойлоп тапкан кооз жарык үлгүсү болсо, анда кандай сезимде болмоксуз? Мени жарыктандырыңыз, бул жарыктын өзүнө тийип, аны иштеп чыккан жана кызыктуу моделдерди жасаган кызыктуу эскиз китеп болот! Бул долбоордо бир нече үч бурчтуктар бар. алты бурчтуу форма. Ошентип, сиз стереоскопиялык үлгүлөрдү жарыкты кантип жасооңузга жараша түзө аласыз! Жөн эле ар бир бөлүктү басыңыз жана ар кандай түстөр бааланат, жана сиз каалаган түс чыкканда, баскан колуңузга тийип, ал сиз каалаган түс менен сонун жаркырай берет! 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 Strip + Soldering LED Strip (NeoPixel) менен зымдарды тиркеңиз

Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз
Зымдар менен LED Strip + Soldering LED Strip (NeoPixel) тиркеңиз

Эгерде сиз LED лентасын ширетүүдө абдан жакшы болсоңуз, анда LED тилкесин арт жагына коюуга убакыт келди. Биринчиден, LED тилкесинин артына клей пистолетин же эки тараптуу лента чаптаңыз. Жана адегенде эки тараптын тешиктери аркылуу ширетүүчү зымдын эки тарабынан алынган зымдарды алып салыңыз. Акырында, LED тилкесин арткы акрилге бекиңиз жана ал бүттү!

Бул ширетүү убактысы! LED тилкелерин, 4-пин коннекторлорду (туташтыргыч же зымдар) жана ширетүү үчүн керектүү нерселерди даярдаңыз. Мен LEDдерди үч бирдикте колдондум. Кааласаңыз, бир же эки LEDди колдонсоңуз болот, бирок мен үчөөнү колдонууну сунуштайм. Бардык материалдар даяр болгондо, зымдарды эки сызыкка, 5в линиясына жана LED тилкесинин жер сызыктарына кошуңуз.

7 -кадам: Зымдарды кошуу

Зымдар менен ширетүүчү такт
Зымдар менен ширетүүчү такт
Зымдар менен ширетүүчү такт
Зымдар менен ширетүүчү такт

8 -кадам: Ассамблея -Болтту капталга салыңыз = ①

Ассамблея -Болтту капталга салыңыз = ①
Ассамблея -Болтту капталга салыңыз = ①
Ассамблея -Болтту капталга салыңыз = ①
Ассамблея -Болтту капталга салыңыз = ①

Эми бул чыныгы оңой бөлүк! 3D басылган үч тараптын ар бирине бир болт коюңуз. Болт баскычын структуралык болттор менен гайкаларды колдонуу сыяктуу кылуунун себеби болот. Кесим бүткөндөн кийин мен аны корпуска салып, жаңгак менен бүтүрөм.

9 -кадам: Ⓛⓣ = ② га Ⓛⓣ тиркеңиз

Ⓛⓣ = ② га Ⓛⓣ тиркеңиз
Ⓛⓣ = ② га Ⓛⓣ тиркеңиз
Ⓛⓣ = ② га Ⓛⓣ тиркеңиз
Ⓛⓣ = ② га Ⓛⓣ тиркеңиз

10 -кадам: Ассамблея -менен Ⓝди колдонуу менен ① жана ② = ③ бириктиргиле

Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз
Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз
Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз
Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз
Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз
Ассамблея ① жана Ⓝ = ③ бириктирүү үчүн Ⓦ жана Ⓝ колдонуңуз

11 -кадам: Ассамблея -Акрил Бондун жардамы менен тиркелүү = ④

Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④
Ассамблея -Акрил облигациясын колдонуу менен ③ тиркөө = ④

Эгер капталына болт койсоңуз, биз аны капталына жана алдыңкы жагына коёбуз. Алдыңкы бети акрил, андыктан аны атайын акрил байланышы менен кийишиңиз керек. Эгерде сиз акрилди кадимки байланышка чаптасаңыз, анда ал из калтырат.

12 -кадам: Ⓢ = ⑤ га Ⓢ тиркеңиз

Ⓢ = ⑤ га тиркөө
Ⓢ = ⑤ га тиркөө
Ⓢ = ⑤ га тиркөө
Ⓢ = ⑤ га тиркөө

13 -кадам: Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирилсин

Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү
Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү
Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү
Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү
Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү
Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирүү

14 -кадам: Complete Piece Ассамблеясы

Complete Piece Assembly
Complete Piece Assembly
Complete Piece Assembly
Complete Piece Assembly
Complete Piece Assembly
Complete Piece Assembly

15 -кадам: Долбоордун жумушчу көрүнүшү

Image
Image

16 -кадам: NeoPixel, Connector Wiring

NeoPixel, Connector Wiring
NeoPixel, Connector Wiring
NeoPixel, Connector Wiring
NeoPixel, Connector Wiring
NeoPixel, Connector Wiring
NeoPixel, Connector Wiring

17 -кадам: NeoPixel жана Arduino Wiring

NeoPixel жана Arduino Wiring
NeoPixel жана Arduino Wiring

18 -кадам: Arduino программасы

extern volatile unsigned long timer0_millis;

#кошуу

#define MODEBTNNUM 3 int ani_mode = 0; белгисиз узак preM1, preM2, preM3;

жараксыз орнотуу () {

Wire.begin (); for (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; } үчүн (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_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 -кадам:

extern volatile unsigned long timer0_millis;

#кошуу

#кошуу #аныктоо PIN 12 #аныктоо NUMPIXELS 162 Adafruit_NeoPixel тилкеси = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int түстөрү [num] [3]; int hue [num]; int sat [num]; int bright [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}; 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}; #include #define BTNNUM 1 int f_v = 1; белгисиз узак preMillis1; кол коюлбаган узак preM; int ani_mode = 0; int ani2_Counter = 0; int counter = 0; ///////////////////////////////////////////////////// void setup () {Wire. баштоо (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 (); тыныгуу; Case 1: ani1 (); ani_mode = 0; ani2_Counter = 0; тыныгуу; 2 -абал: ani2_Counter = 1; ani_mode = 0; тыныгуу; 3 -жагдай: ani3 (); ani_mode = 0; ani2_Counter = 0; тыныгуу; демейки: readyState (); тыныгуу; } if (ani2_Counter == 1) {ani2 (); } setPixels (num); }

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

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; отурду [a1 [a] = 95; жарык [a1 [a] = 100; } үчүн (int b = 0; b <2; b ++) {hue [b1 = 200; отурду [b1 = 95; ачык [b1 = 100; } үчүн (int c = 0; c <2; c ++) {hue [c1 [c] = 300; отур [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; отурду [a2 [a] = 95; жарык [a2 [a] = 100; } үчүн (int d = 0; d <4; d ++) {hue [d2 [d] = 63; отур [d2 [d] = 95; ачык [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// gigant cube pattern for (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; отур [a14 [a] = 95; жарык [a14 [a] = 100; }} else if (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; отурду [a3 [a] = 95; жарык [a3 [a] = 100; }} else if (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; отурду [a4 [a] = 95; жарык [a4 [a] = 100; }

үчүн (int b = 0; b <1; b ++) {hue [b4 = 210; отурган [b4 = 95; ачык [b4 = 100; } үчүн (int c = 0; c <1; c ++) {hue [c4 [c] = 307; отур [c4 [c] = 95; ачык [c4 [c] = 100; }} else if (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; отурду [a5 [a] = 95; жарык [a5 [a] = 100; }} else if (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; отурду [a6 [a] = 95; жарык [a6 [a] = 100; }} else if (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; отур [c7 [c] = 95; ачык [c7 [c] = 100; }} else if (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; отур [c8 [c] = 95; ачык [c8 [c] = 100; }} else if (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; отур [c9 [c] = 95; ачык [c9 [c] = 100; }} else if (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; отур [c10 [c] = 95; ачык [c10 [c] = 100; }} else if (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; отур [c11 [c] = 95; ачык [c11 [c] = 100; }} else if (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; отур [c12 [c] = 95; ачык [c12 [c] = 100; }} else if (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; отурган [a13 [a] = 95; жарык [a13 [a] = 100; } үчүн (int b = 0; b <1; b ++) {hue [b13 = 210; отурган [b13 = 95; жарык [b13 = 100; } үчүн (int c = 0; c <1; c ++) {hue [c13 [c] = 307; отур [c13 [c] = 95; ачык [c13 [c] = 100; }} pNumber = pNumber + 1;

эгер (pNumber == 14) {

pNumber = 0; }}

void ani2 () {

// Serial.println ("2"); белгисиз узун curM = millis ();

эгер (curM - preM> = 10) {

preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } түс = түс + gValue ; } counter ++; if (counter == 360) {// Serial.print ("counter:"); // Serial.println (эсептегич); // Serial.println (curM); counter = 0; ani2_Counter = 0; }}}

void ani3 () {

// Serial.println ("3"); } ////////////////////////////////////////////////steadState () {/ / Serial.println ("даяр"); } ///////////////////////////////////////////////////////////////// жараксыз btnEvent (int b_interval) {unsigned long curMillis1 = millis ();

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

эгер (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1; for (int i = 0; i = 360) {hueV = -1; } else if (hue <= 0) {hueV = 1; } түс = түс + hueV ; ачык = 100; }}}} ///////////////////////////////////////////////////////////////////// жараксыз SetPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (түс , отурган , ачык , түстөр ); int num1 = i * 3; strip.setPixelColor (сан 1, түстөр [0], түстөр [1], түстөр [2]); strip.setPixelColor (num1 + 1, түстөр [0], түстөр [1], түстөр [2]); strip.setPixelColor (num1 + 2, түстөр [0], түстөр [1], түстөр [2]); } strip.show (); }

20 -кадам: Үлгүлөр

Үлгү!
Үлгү!
Үлгү!
Үлгү!

Бул долбоордо алты бурчтуу формага ээ болгон бир нече үч бурчтуктар бар. Ошентип, сиз стереоскопиялык үлгүлөрдү жарыкты кантип жасооңузга жараша түзө аласыз! Жөн гана ар бир бөлүктү басыңыз жана ар кандай түстөр бааланат, жана сиз каалаган түс чыкканда, баскан колуңузга тийип, ал сиз каалаган түс менен кооз жаркырай берет!

Сунушталууда: