Мазмуну:
- Жабдуулар
- 1 -кадам: Келгиле, жасайбыз
- 2 -кадам: Материалды даярдоо
- 3 -кадам: акрил кесүү
- 4 -кадам: 3D принтерлер менен тараптарды түзүңүз
- 5 -кадам: Тасмага тартуу
- 6 -кадам: LED Strip + Soldering LED Strip (NeoPixel) менен зымдарды тиркеңиз
- 7 -кадам: Зымдарды кошуу
- 8 -кадам: Ассамблея -Болтту капталга салыңыз = ①
- 9 -кадам: Ⓛⓣ = ② га Ⓛⓣ тиркеңиз
- 10 -кадам: Ассамблея -менен Ⓝди колдонуу менен ① жана ② = ③ бириктиргиле
- 11 -кадам: Ассамблея -Акрил Бондун жардамы менен тиркелүү = ④
- 12 -кадам: Ⓢ = ⑤ га Ⓢ тиркеңиз
- 13 -кадам: Ассамблея ④ жана ⑤ ⑤ жана Ⓝ = ⑥ колдонуу менен бириктирилсин
- 14 -кадам: Complete Piece Ассамблеясы
- 15 -кадам: Долбоордун жумушчу көрүнүшү
- 16 -кадам: NeoPixel, Connector Wiring
- 17 -кадам: NeoPixel жана Arduino Wiring
- 18 -кадам: Arduino программасы
- 19 -кадам:
- 20 -кадам: Үлгүлөр
Video: Мени жарык кыл!: 20 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
долбоордун мүчөлөрү
(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 моделдөө файлдары төмөндө тиркелет. Биз PLAны тараптарды жасоо үчүн колдодук PLA ABSке караганда күчтүү жана аз жыйрылуу, андыктан жиптерге PLAны колдонуу сунушталат.
5 -кадам: Тасмага тартуу
Эми маңдайдагы акрилге жеңил диффузиялык пленканы коёлу. Эгер пленканы койсоңуз, ал жайылып, алда канча сулуу болот. Биринчиден, пленканы үч бурчтук кылып кесиңиз. (Тасманы акрилден чоңураак кылып кессеңиз жакшы болот) Фильмди телефонуңузга коргоочу пленка сыяктуу коюу оңой. Эгерде сиз бул жакка учкуңуз келсе, анда аны тыкан илип коюу үчүн картаны колдонсоңуз болот!
6 -кадам: 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 Ассамблеясы
15 -кадам: Долбоордун жумушчу көрүнүшү
16 -кадам: NeoPixel, Connector Wiring
17 -кадам: 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 -кадам: Үлгүлөр
Бул долбоордо алты бурчтуу формага ээ болгон бир нече үч бурчтуктар бар. Ошентип, сиз стереоскопиялык үлгүлөрдү жарыкты кантип жасооңузга жараша түзө аласыз! Жөн гана ар бир бөлүктү басыңыз жана ар кандай түстөр бааланат, жана сиз каалаган түс чыкканда, баскан колуңузга тийип, ал сиз каалаган түс менен кооз жаркырай берет!
Сунушталууда:
SMD ICs Breadboard достук кыл!: 10 кадам (сүрөттөр менен)
SMD ICs Breadboard достук кыл!: Бул биздин сүйүктүү IC SMD пакетинде гана жеткиликтүү болгон учурлар көп кездешет жана аны нан тактасында сынап көрүүгө мүмкүнчүлүк жок. Ошентип, мен бул кыска нускамада SMD IC үчүн өзүмө кичинекей адаптер жасагандыгымды көрсөтмөкмүн
Ушундай кыл! Star Trek TNG Mini Engineering Computer: 11 кадам (сүрөттөр менен)
Ушундай кыл! Star Trek TNG Mini Engineering Computer: Обзор Мен Star Trek: The Next Generation тасмасын көрүп чоңойдум. Мен ар дайым Star Trek тематикалык түзүлүшүн кургум келген, ошондуктан акыры Star Trek дисплей терминалын жасоо үчүн эски долбоорлорумдун бирин оңдоп чыктым
"Көбүрөөк кыл" таймери, Кейси Нейстаттан шыктанган: 4 кадам (сүрөттөр менен)
More Do' Таймери, Кейси Нейстаттан шыктандырылган: Жай, нерселер боло турган сонун мезгил. Бирок кээде убакытты унутуп калабыз. Ошентип, калган убакытты эстетүү үчүн, мен бул Кейси Нейстаттын "Дагы жаса" DIY ардуино менен иштөөчү таймерин иштеп чыктым, ал каалаган убакыттан калган убакытты көрсөтүү үчүн программаланышы мүмкүн
Которулуучу жарык сезгич түнкү жарык: 8 кадам (сүрөттөр менен)
Которулуучу жарыкты сезүүчү түнкү жарык: Бул көрсөтмө мен түнкү жарык сенсорун кантип кол менен өчүрүп койгондугумду көрсөтөт. Кылдаттык менен окуңуз, ачык болгон бардык схемаларды эске алыңыз жана бирдикти тестирлөөдөн мурун, керек болсо, аймакты өчүрүп коюңуз
DC MOTOR тунук кыл: 4 кадам (сүрөттөр менен)
DC MOTORду тунук кылыңыз: Салам достор, мен бул көрсөтмөдө Toy DC Motorду Transparent DC Motorга кантип өзгөртүү керектигин көрсөтөм жана бул жерде бир өзгөчө нерсе - бул сиздин үйүңүздө жеткиликтүү болушу үчүн керектүү материалдар:) Бул идеалдуу долбоор илим жарманкеси үчүн