Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zróbmy to
- Krok 2: Przygotowanie materiału
- Krok 3: Cięcie akrylu
- Krok 4: Zrób strony z drukarkami 3D
- Krok 5: Filmowanie
- Krok 6: Przymocuj pasek LED + pasek LED do lutowania (NeoPixel) za pomocą przewodów
- Krok 7: Przełącznik taktyczny lutowania z przewodami
- Krok 8: Montaż – włóż śrubę z boku= ①
- Krok 9: Dołącz Ⓛⓣ do Ⓒ= ②
- Krok 10: Montaż - użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
- Krok 11: Montaż – przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
- Krok 12: Dołącz Ⓢ do Ⓓ= ⑤
- Krok 13: Montaż - Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
- Krok 14: Kompletny montaż elementu
- Krok 15: Wygląd roboczy projektu
- Krok 16: NeoPixel, okablowanie złącza
- Krok 17: Okablowanie NeoPixel i Arduino
- Krok 18: Zaprogramuj Arduino
- Krok 19:
- Krok 20: Wzory
Wideo: Rozświetl mnie!: 20 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
członkowie zespołu projektowego
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Co by było, gdybyś mógł dotknąć i zaprojektować światło? Jak by to było, gdybyś miał piękny wzór światła, który sam zaprojektowałeś z ciekawą animacją? Rozświetl mnie będzie ciekawym szkicownikiem, który dotyka i projektuje samo światło i tworzy ciekawe wzory! Ten projekt ma kilka trójkątów, które tworzą sześciokątny kształt. Możesz więc tworzyć stereoskopowe wzory zgodnie z tym, jak projektujesz światło! Wystarczy nacisnąć każdy element, a różne kolory będą stopniowane, a gdy żądany kolor wyjdzie, po prostu uderz w naciśniętą dłoń, a będzie nadal pięknie świecić kolorem, który chciałeś! W projekcie wykorzystano około 312 trójkątów, ale mógł stworzyć ładne światło, które dobrze współpracuje z 6 trójkątami. Teraz pokażę ci, jak to zrobić z sześcioma trójkątami. Postępuj zgodnie z instrukcjami, a będziesz miał własną wspaniałą pracę!
Kieszonkowe dzieci
Sprzęt: Arduino (użyłem arduino mega 2560), akryl (przezroczysty, biały), pasek LED (NeoPixel), folia dyfuzorowa, przycisk, złącze 4-pinowe, przewód, płytka drukowana, zasilacz
Narzędzia: Maszyna do cięcia laserowego, drukarka 3D
Krok 1: Zróbmy to
Zróbmy ze mną ten uroczy sześciokątny kawałek!
Light Me Up składa się z 312 trójkątów, ale nawet 6 trójkątów może zaprojektować wspaniałe światło. Jeśli chcesz zrobić to na większą skalę, możesz to zrobić powołując się na załączony poniżej plik.
Krok 2: Przygotowanie materiału
Krok 3: Cięcie akrylu
Użyj wycinarki laserowej, aby wyciąć przód i tył każdej części. Kolor akrylu z tyłu może być dowolny, ale upewnij się, że używasz przezroczystego akrylu, ponieważ przód musi być przyciemniony! Jeśli użyjesz kolorowego akrylu innego niż przezroczysty, nie będziesz dobrze widzieć światła.
Krok 4: Zrób strony z drukarkami 3D
Teraz nadszedł czas na wykonanie boków każdego kawałka. Zróbmy to! Pliki modelowania 3D z boku są załączone poniżej. Użyliśmy PLA do wykonania boków PLA jest mocniejszy i mniej skurczy niż ABS, dlatego zaleca się stosowanie włókien z PLA.
Krok 5: Filmowanie
Teraz nałóżmy folię rozpraszającą światło na akryl na froncie. Jeśli nałożysz na nią folię, rozłoży się i błyszczy znacznie ładniej. Najpierw przytnij folię do kształtu trójkąta. (Lepiej przyciąć folię większą niż cięty akryl) Łatwo jest nałożyć folię, jak folię ochronną na telefon. Jeśli chcesz dawać napiwek, możesz użyć karty, aby ją popchnąć, aby dobrze się utknęła!
Krok 6: Przymocuj pasek LED + pasek LED do lutowania (NeoPixel) za pomocą przewodów
Jeśli byłeś tak dobry w lutowaniu paska LED, czas umieścić pasek LED z tyłu. Najpierw przymocuj pistolet do kleju lub taśmę dwustronną z tyłu paska LED. I najpierw usuń przewody z obu stron drutu lutowniczego przez otwory po obu stronach. Na koniec przymocuj pasek LED do tylnego akrylu i gotowe!
Czas na lutowanie! przygotuj paski LED, złącza 4-pinowe (złącze lub przewody) i co potrzebujesz do lutowania. Użyłem diod LED w trzech jednostkach. Możesz użyć jednej lub dwóch diod LED, jeśli chcesz, ale polecam użycie trzech. Gdy wszystkie materiały są gotowe, przylutuj przewody w obu liniach danych, liniach 5v i liniach uziemienia taśmy LED.
Krok 7: Przełącznik taktyczny lutowania z przewodami
Krok 8: Montaż – włóż śrubę z boku= ①
Teraz to naprawdę łatwa część! Umieść jedną śrubę na każdej z trzech stron wydrukowanych w 3D. Powód, dla którego użycie przycisku śruby, podobnie jak użycie śrub konstrukcyjnych i nakrętek, będzie w stanie zrobić. Kiedy kawałek będzie gotowy, włożę go do etui i dokończę nakrętką.
Krok 9: Dołącz Ⓛⓣ do Ⓒ= ②
Krok 10: Montaż - użyj Ⓦ i Ⓝ, aby połączyć ① i ②= ③
Krok 11: Montaż – przymocuj Ⓐⓔ i ③ za pomocą spoiwa akrylowego= ④
Jeśli założysz śrubę z boku, założymy ją z boku i z przodu. Front jest akrylowy, więc trzeba go założyć dedykowanym akrylowym spoiwem. Jeśli przymocujesz akryl do zwykłego wiązania, pozostawi ślad.
Krok 12: Dołącz Ⓢ do Ⓓ= ⑤
Krok 13: Montaż - Połącz ④ i ⑤ Używając Ⓦ i Ⓝ= ⑥
Krok 14: Kompletny montaż elementu
Krok 15: Wygląd roboczy projektu
Krok 16: NeoPixel, okablowanie złącza
Krok 17: Okablowanie NeoPixel i Arduino
Krok 18: Zaprogramuj Arduino
extern volatile unsigned long timer0_millis;
#włączać
#define MODEBTNNUM 3 int ani_mode = 0; bez znaku długi preM1, preM2, preM3;
pusta konfiguracja () {
Wire.początek(); for (int i = 0; i < MODEBTNNUM; i++) { pinMode(i + 2, INPUT_PULLUP); } //Serial.begin(9600); }
pusta pętla () {
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); jeśli (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 = prąd2; for (int i = 1; i 3000) { preM3 = prąd3; // timer0_milli = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println("resetowanie licznika"); for (int i = 1; i < 7; i++) { Wire.beginTransmission(i); Wire.write(ani_mode); //Serial.println("3000"); Wire.endTransmission(i); } } } }
Krok 19:
extern volatile unsigned long timer0_millis;
#włączać
#include #define PIN 12 #define LICZBA PIKSELÓW 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel(LICZBA PIKSELÓW, PIN, NEO_GRB + NEO_KHZ800); const int liczba = LICZBA PIKSELÓW / 3; const int slaveNum = 1; kolory int[liczba][3]; int odcień[liczba]; int sat[liczba]; int jasny[liczba]; int numer p = 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, 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[liczba]; wartość logiczna btnMode; int barwaV[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, 1 }; #include #define BTNNUM 1 int f_v = 1; bez znaku długi preMillis1; niepodpisany długi preM; int ani_mode = 0; int ani2_Counter = 0; int licznik = 0; ////////////////////////////////////////// void setup() { Wire. początek(slaveNum); Wire.onRequest(requestEvent); Wire.onReceive(odbierzZdarzenie); for (int i = 0; i < num; i++) { pinMode(btnPin, INPUT_PULLUP); } //Serial.begin(9600); strip.początek(); } //////////////////////////////////////////
pusta pętla () {
if (f_v == 1) { for (int i = 0; i < num; i++) { barwa = 50; sat = 95; jasny = 100; } f_v = 0; } ///////////////////////////////////// //버튼 입력 체크:멈춤신호 보내기 btnMode = fałszywe; for (int i = 0; i < num; i++) { if (!digitalRead(btnPin)) { btnMode = true; } } btnEvent(5); // Serial.println(ani_mode); ////////////////////////////////////// przełącznik (tryb_ani) { przypadek 0: ani0(); przerwa; przypadek 1: ani1(); tryb_ani = 0; ani2_Counter = 0; przerwa; przypadek 2: ani2_Counter = 1; tryb_ani = 0; przerwa; przypadek 3: ani3(); tryb_ani = 0; ani2_Counter = 0; przerwa; domyślnie: gotowyState(); przerwa; } if (licznik_ani2 == 1) { ani2(); } setPixels(liczba); }
///////////////////////////////////////////
void odbierzZdarzenie(int howMany) { int x = Wire.read(); if (x == 5) { // Serial.println("otrzymano 5"); tryb_ani = 0; } ani_mode = x; // Serial.println(ani_mode); } ////////////////////////////////////////// nieważne żądanieZdarzenie() {
if (btnMode == prawda) {
Drut.zapis(5); // Serial.println("5 보냄"); } else { Wire.write(0); }
}
nieważne ani0() {
// Serial.println("0"); }
nieważne ani1() {
// Serial.println("1"); if (pNumber == 0) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; for (int a = 0; a < 2; a++) { barwa[a1[a] = 100; sat[a1[a] = 95; jasny[a1[a] = 100; } for (int b = 0; b < 2; b++) { barwa[b1 = 200; sat[b1 = 95; jasny[b1 = 100; } for (int c = 0; c < 2; c++) { barwa[c1[c] = 300; sat[c1[c] = 95; jasny[c1[c] = 100; } // Serial.println("0"); } else if (pNumber == 1) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 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++) { barwa[a2[a] = 26; sat[a2[a] = 95; jasny[a2[a] = 100; } for (int d = 0; d < 4; d++) { barwa[d2[d] = 63; sat[d2[d] = 95; jasny[d2[d] = 100; } // Serial.println("1"); } else if (pNumber == 2) { //wielki wzór kostki for (int i = 0; i < num; i++) { bright = 0; gWartość = 1; } int a14 = {34, 35, 46, 47, 48, 49};//żółty 06 for (int a = 0; a < 6; a++) { barwa[a14[a] = 35; sat[a14[a] = 95; jasny[a14[a] = 100; } }else if (pNumber == 3) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a3 = {34, 35, 46, 47, 48, 49};//żółty dla (int a = 0; a < 6; a++) { barwa[a3[a] = 53; sat[a3[a] = 95; jasny[a3[a] = 100; } } else if (pNumber == 4) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a4 = {34, 35};//żółty int b4 = {47};//niebieski int c4 = {48};//fioletowy
for (int a = 0; a < 2; a++) { barwa[a4[a] = 53; sat[a4[a] = 95; jasny[a4[a] = 100; }
for (int b = 0; b < 1; b++) { barwa[b4 = 210; sat[b4 = 95; jasny[b4 = 100; } for (int c = 0; c < 1; c++) { barwa[c4[c] = 307; sat[c4[c] = 95; jasny[c4[c] = 100; } } else if (pNumber == 5) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a5 = {34, 35, 46, 47, 48, 49};
for (int a = 0; a < 6; a++) { barwa[a5[a] = 100; sat[a5[a] = 95; jasny[a5[a] = 100; } } else if (pNumber == 6) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int a6 = {34, 35, 46, 47, 48, 49};//żółty dla (int a = 0; a < 6; a++) { barwa[a6[a] = 53; sat[a6[a] = 95; jasny[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c7 = {34, 35, 46, 47, 48, 49};//fioletowy dla (int c = 0; c < 6; c++) { barwa[c7[c] = 307; sat[c7[c] = 95; jasny[c7[c] = 100; } } else if (pNumber == 8) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c8 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c8[c] = 307; sat[c8[c] = 95; jasny[c8[c] = 100; } } else if (pNumber == 9) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c9 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c9[c] = 307; sat[c9[c] = 95; jasny[c9[c] = 100; } } else if (pNumber == 10) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c10 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c10[c] = 307; sat[c10[c] = 95; jasny[c10[c] = 100; } } else if (pNumber == 11) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int c11 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c11[c] = 307; sat[c11[c] = 95; jasny[c11[c] = 100; } } else if (pNumber == 12) { for (int i = 0; i < liczba; i++) { bright = 0; gWartość = 1; } int c12 = {34, 35, 46, 47, 48, 49}; //fioletowy dla (int c = 0; c < 6; c++) { odcień[c12[c] = 307; sat[c12[c] = 95; jasny[c12[c] = 100; } } else if (pNumber == 13) { for (int i = 0; i < liczba; i++) { jasne = 0; gWartość = 1; } int a13 = {34, 35}; //żółty int b13 = {47}; //niebieski int c13 = {48}; //fioletowy dla (int a = 0; a < 2; a++) { hue[a13[a] = 53; sat[a13[a] = 95; jasny[a13[a] = 100; } for (int b = 0; b < 1; b++) { barwa[b13 = 210; sat[b13 = 95; jasny[b13 = 100; } for (int c = 0; c < 1; c++) { barwa[c13[c] = 307; sat[c13[c] = 95; jasny[c13[c] = 100; } } pNumer = pNumer + 1;
jeśli (pNumber == 14) {
pNumer = 0; } }
nieważne ani2() {
// Serial.println("2"); unsigned long curM = millis();
if (curM - preM >= 10) {
preM = curM; for (int i = 0; i < liczba; i++) { if (odcień = 360) { gWartość = -1; } barwa = barwa + gWartość; } licznik++; if (counter == 360) { // Serial.print("licznik: "); // Serial.println(licznik); // Serial.println(curM); licznik = 0; ani2_Counter = 0; } } }
nieważne ani3() {
// Serial.println("3"); } ////////////////////////////////////////// nieważne readyState() { / / Serial.println("gotowy"); } ///////////////////////////////////////// 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; dla (int i = 0; i = 360) { hueV = -1; } else if (hue <= 0) { hueV = 1; } barwa = barwa + barwaV; jasny = 100; } } } } ////////////////////////////////////////// void setPixels(int k) { for (int i = 0; i < k; i++) { H2R_HSBtoRGB(odcień, sat, jasne, kolory); int liczba1 = i * 3; strip.setPixelColor(num1, kolory[0], kolory[1], kolory[2]); strip.setPixelColor(num1 + 1, kolory[0], kolory[1], kolory[2]); strip.setPixelColor(num1 + 2, kolory[0], kolory[1], kolory[2]); } strip.show(); }
Krok 20: Wzory
Ten projekt ma kilka trójkątów, które tworzą sześciokątny kształt. Możesz więc tworzyć stereoskopowe wzory zgodnie z tym, jak projektujesz światło! Wystarczy nacisnąć każdy element, a różne kolory będą stopniowane, a gdy wyjdzie żądany kolor, po prostu naciśnij dłoń, którą nacisnąłeś, a będzie nadal pięknie świecić żądanym kolorem!
Zalecana:
Rozświetl piernikowy domek: 9 kroków (ze zdjęciami)
Rozświetlony domek z piernika: Tworzymy rozświetlony domek z piernika, w którym po dotknięciu szczytu komina domek rozświetli się w środku. Ten projekt to naprawdę zabawne wprowadzenie do obwodów i przeznaczone do demonstracji, zawierające zarówno trochę podstawowego tworzenia obwodów, jak i trochę
Testowanie czujników temperatury – który dla mnie?: 15 kroków (ze zdjęciami)
Testowanie czujników temperatury - który dla mnie?: Jednym z pierwszych czujników, które nowicjusze w dziedzinie komputerów fizycznych chcą wypróbować, jest urządzenie do pomiaru temperatury. Cztery z najpopularniejszych czujników to TMP36, który ma wyjście analogowe i wymaga przetwornika analogowo-cyfrowego, DS18B20, który
Rozświetl kasetę magnetofonową, baw się na imprezach rave.: 5 kroków (ze zdjęciami)
Rozświetl kasetę magnetofonową, podniecaj się na imprezach rave.: Co słychać! Oto Galden.Galden to ekipa, która proponuje hobbystyczną elektronikę dla dziewczyn, od dziewczyn. Pozwólcie, że przedstawię Wam, jak wykonać akcesoria LED, które będą idealnie pasować na imprezy rave.Co będzie wyglądało oświetlone po oświetleniu? Kiedy masz coś oświetlonego
ROZŚWIETL SWOJĄ KARTĘ ROBOTA: 7 kroków (ze zdjęciami)
ROZŚWIETL SWOJĄ KARTĘ ROBOTA: Cześć wszystkim! Niedawno wygrałem konkurs Instructables. Wysłali mi koszulkę z robotem Instructables, książkę, naklejki i zdjęcie robota Instructables. Z drugiej strony, kiedy myślałem o prostych pomysłach na obwody papierowe i chciałem zbudować
Zegar lokalizacji Ktoś mnie kocha: 6 kroków (ze zdjęciami)
Zegar lokalizacji Ktoś mnie kocha: Z bliskimi za granicą lub poza stanem nic nie mówi, że myślę o tobie lepiej niż zawsze wiem, która jest dla nich godzina! Moi emerytowani teściowie przygotowywali się do służby na misji kościelnej w Berlinie w Niemczech, a moja żona wymyśliła g