Turinys:
- Prekės
- 1 žingsnis: Padarykime tai
- 2 žingsnis: medžiagos paruošimas
- 3 žingsnis: akrilo pjovimas
- 4 žingsnis: sukurkite šonus naudodami 3D spausdintuvus
- 5 žingsnis: filmavimas
- 6 žingsnis: pritvirtinkite LED juostelę + litavimo LED juostelę („NeoPixel“) su laidais
- 7 žingsnis: litavimo taktinis jungiklis su laidais
- 8 žingsnis: Surinkimas -įstatykite varžtą šone = ①
- 9 veiksmas: pritvirtinkite Ⓛⓣ prie Ⓒ = ②
- 10 žingsnis: Surinkimas -Naudokite Ⓦ ir Ⓝ, kad sujungtumėte ① ir ② = ③
- 11 veiksmas: surinkimas -pritvirtinkite Ⓐⓔ ir ③ naudodami akrilo jungtį = ④
- 12 žingsnis: pritvirtinkite Ⓢ prie Ⓓ = ⑤
- 13 žingsnis: Surinkimas -Sujunkite ④ ir ⑤ Naudodami Ⓦ ir Ⓝ = ⑥
- 14 žingsnis: Užbaikite dalių surinkimą
- 15 žingsnis: Darbinė projekto išvaizda
- 16 žingsnis: „NeoPixel“, jungties laidai
- 17 žingsnis: „NeoPixel“ir „Arduino“laidai
- 18 veiksmas: užprogramuokite „Arduino“
- 19 žingsnis:
- 20 žingsnis: modeliai
Video: Apšviesk mane!: 20 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
projekto komandos nariai
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
O kas, jei galėtumėte paliesti ir suprojektuoti šviesą? Kaip jaustumėtės, jei turėtumėte gražų šviesos modelį, kurį sukūrėte su įdomia animacija? „Apšviesk mane“bus įdomi eskizų knygelė, kuri liečia ir kuria pačią šviesą bei kuria įdomius modelius! Šiame projekte yra keli trikampiai, kurie sudaro šešiakampė forma. Taigi galite sukurti stereoskopinius modelius pagal tai, kaip kuriate šviesą! Tiesiog paspauskite kiekvieną gabalėlį ir įvairios spalvos bus laipsniškos, o kai norima spalva pasirodys, tiesiog paspauskite ranką, kurią paspaudėte, ir ji ir toliau gražiai spindės norima spalva! Projekte buvo naudojamas apie 312 trikampių, tačiau jis galėjo sukurti graži šviesa, kuri puikiai tinka su 6 trikampiais. Dabar leiskite man parodyti, kaip tai padaryti su šešiais trikampiais. Atlikite veiksmus ir turėsite savo nuostabų darbą!
Prekės
Techninė įranga: „Arduino“(naudojau „arduino mega 2560“), akrilas (skaidrus, baltas), LED juostelė („NeoPixel“), difuzoriaus plėvelė, mygtukas, 4 kontaktų jungtis, viela, plokštė, maitinimo šaltinis
Įrankiai: pjovimo mašina lazeriu, 3D spausdintuvas
1 žingsnis: Padarykime tai
Padarykime šį mielą šešiakampį kūrinį su manimi!
„Light Me Up“sukurtas naudojant 312 trikampius, tačiau net 6 trikampiai gali sukurti nuostabią šviesą. Jei norite tai padaryti didesniu mastu, galite tai padaryti, remdamiesi žemiau esančiu failu.
2 žingsnis: medžiagos paruošimas
3 žingsnis: akrilo pjovimas
Naudokite lazerinį pjaustytuvą, kad pjaustytumėte kiekvienos dalies priekį ir nugarą. Nugaros akrilo spalva gali būti bet kokia, bet jūs turite naudoti skaidrų akrilą, nes priekis turi būti pritemdytas! Jei naudosite kitokį nei skaidrų akrilą, gerai nepamatysite šviesos.
4 žingsnis: sukurkite šonus naudodami 3D spausdintuvus
Dabar atėjo laikas padaryti kiekvieno gabalo šonus. Padarykime tai! 3D modeliavimo failai šone yra pridedami žemiau. Šonams gaminti naudojome PLA PLA yra stipresnė ir mažiau susitraukia nei ABS, todėl PLA rekomenduojama naudoti gijas.
5 žingsnis: filmavimas
Dabar uždėkime šviesos difuzinę plėvelę ant akrilo priekyje. Jei uždėsite plėvelę, ji pasiskirstys ir spindės daug gražiau. Pirma, supjaustykite plėvelę į trikampio formą. (Geriau supjaustykite plėvelę didesnę nei supjaustytas akrilas) Ant telefono paprasta uždėti plėvelę, pavyzdžiui, apsauginę plėvelę. Jei norite čia patarti, galite paspausti kortelę, kad ją būtų galima gražiai įklijuoti!
6 žingsnis: pritvirtinkite LED juostelę + litavimo LED juostelę („NeoPixel“) su laidais
Jei jums taip gerai pavyko lituoti LED juostelę, pats laikas uždėti LED juostą ant nugaros. Pirmiausia pritvirtinkite klijų pistoletą arba dvipusę juostą prie LED juostos galo. Ir pirmiausia nuimkite laidus iš abiejų litavimo laido pusių per skylutes abiejose pusėse. Galiausiai pritvirtinkite LED juostelę prie galinio akrilo ir viskas!
Tai litavimo laikas! paruoškite šviesos diodų juosteles, 4 kontaktų jungtis (jungtį ar laidus) ir tai, ko reikia litavimui. Aš naudoju šviesos diodus trijuose vienetuose. Jei norite, galite naudoti vieną ar du šviesos diodus, bet aš rekomenduoju naudoti tris. Kai visos medžiagos bus paruoštos, lituokite laidus abiejose šviesos diodų juostos duomenų linijose, 5 V linijose ir įžeminimo linijose.
7 žingsnis: litavimo taktinis jungiklis su laidais
8 žingsnis: Surinkimas -įstatykite varžtą šone = ①
Dabar tai tikrai lengva dalis! Uždėkite po vieną varžtą ant trijų 3D spausdintų pusių. Priežastis, kodėl naudojant varžto mygtuką, pavyzdžiui, naudojant konstrukcinius varžtus ir veržles, bus galima nustatyti. Kai gabalas bus baigtas, aš jį įdėsiu į dėklą ir užbaigsiu veržle.
9 veiksmas: pritvirtinkite Ⓛⓣ prie Ⓒ = ②
10 žingsnis: Surinkimas -Naudokite Ⓦ ir Ⓝ, kad sujungtumėte ① ir ② = ③
11 veiksmas: surinkimas -pritvirtinkite Ⓐⓔ ir ③ naudodami akrilo jungtį = ④
Jei uždėsite varžtą šone, mes jį įdėsime į šoną ir priekį. Priekis yra akrilo, todėl jį reikia uždėti specialiu akrilo ryšiu. Jei akrilą pritvirtinsite prie įprastos jungties, jis paliks žymę.
12 žingsnis: pritvirtinkite Ⓢ prie Ⓓ = ⑤
13 žingsnis: Surinkimas -Sujunkite ④ ir ⑤ Naudodami Ⓦ ir Ⓝ = ⑥
14 žingsnis: Užbaikite dalių surinkimą
15 žingsnis: Darbinė projekto išvaizda
16 žingsnis: „NeoPixel“, jungties laidai
17 žingsnis: „NeoPixel“ir „Arduino“laidai
18 veiksmas: užprogramuokite „Arduino“
išorinis nepastovus nepasirašytas ilgas laikmatis0_millis;
#įtraukti
#define MODEBTNNUM 3 int ani_mode = 0; nepasirašytas ilgas preM1, preM2, preM3;
void setup () {
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; } for (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); while (Wire.available ()) {int x = Wire.read (); // Serial.println (x); jei (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} //////////////////////////////////////////////////////////////// /////// if (ani_mode == 0) {for (int i = 1; i 3000) {preM1 = current1; (int i = 1; i 5000) {preM2 = srovė2; už (int i = 1; i 3000) {preM3 = current3; // laikmatis0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("laikmačio atstatymas"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
19 žingsnis:
išorinis nepastovus nepasirašytas ilgas laikmatis0_millis;
#įtraukti
#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 spalvos [num] [3]; int hue [num]; int sat [num]; int šviesus [num]; int pSkaičius = 0; int gVertė [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, 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]; loginis 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, 1, 1, 1, 1}; #include #define BTNNUM 1 int f_v = 1; nepasirašytas ilgas preMillis1; nepasirašytas ilgas preM; int ani_mode = 0; int ani2_Counter = 0; int skaitiklis = 0; /////////////////////////////////////////////////////////////////- start (slaveNum); Wire.onRequest (requestEvent); Wire.onRecept (ReceiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } ///////////////////////////////////////////////////////////
void loop () {
jei (f_v == 1) {už (int i = 0; i <num; i ++) {atspalvis = 50; sėdėjo = 95; šviesus = 100; } f_v = 0; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// klaidingas; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin ))) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); ////////////////////////// pertrauka; 1 atvejis: ani1 (); ani_mode = 0; ani2_Counter = 0; pertrauka; 2 atvejis: ani2_Counter = 1; ani_mode = 0; pertrauka; 3 atvejis: ani3 (); ani_mode = 0; ani2_Counter = 0; pertrauka; numatytasis: readyState (); pertrauka; } if (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
void ReceiveEvent (int howMany) {int x = Wire.read (); if (x == 5) {// Serial.println ("gavo 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } ////////////////////////////////////////////////////////////////-
if (btnMode == tiesa) {
Viela.rašyti (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; gVertė = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; už (int a = 0; a <2; a ++) {atspalvis [a1 [a] = 100; sėdėjo [a1 [a] = 95; šviesus [a1 [a] = 100; } už (int b = 0; b <2; b ++) {atspalvis [b1 = 200; sėdėjo [b1 = 95; šviesus [b1 = 100; } už (int c = 0; c <2; c ++) {atspalvis [c1 [c] = 300; sėdėjo [c1 [c] = 95; šviesus [c1 [c] = 100; } // Serial.println ("0"); } else if (pNumber == 1) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; už (int a = 0; a <8; a ++) {atspalvis [a2 [a] = 26; sėdėjo [a2 [a] = 95; šviesus [a2 [a] = 100; } už (int d = 0; d <4; d ++) {atspalvis [d2 [d] = 63; sėdėjo [d2 [d] = 95; šviesus [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// milžiniško kubo modelis (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // geltona 06, skirta (int a = 0; a <6; a ++) {atspalvis [a14 [a] = 35; sėdėjo [a14 [a] = 95; šviesus [a14 [a] = 100; }} else if (pNumber == 3) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // geltona spalva (int a = 0; a <6; a ++) {atspalvis [a3 [a] = 53; sėdėjo [a3 [a] = 95; šviesus [a3 [a] = 100; }} else if (pNumber == 4) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a4 = {34, 35}; // geltona int b4 = {47}; // mėlyna int c4 = {48}; // violetinė
už (int a = 0; a <2; a ++) {atspalvis [a4 [a] = 53; sėdėjo [a4 [a] = 95; šviesus [a4 [a] = 100; }
už (int b = 0; b <1; b ++) {atspalvis [b4 = 210; sėdėjo [b4 = 95; šviesus [b4 = 100; } už (int c = 0; c <1; c ++) {atspalvis [c4 [c] = 307; sėdėjo [c4 [c] = 95; šviesus [c4 [c] = 100; }} else if (pNumber == 5) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a5 = {34, 35, 46, 47, 48, 49};
už (int a = 0; a <6; a ++) {atspalvis [a5 [a] = 100; sėdėjo [a5 [a] = 95; šviesus [a5 [a] = 100; }} else if (pNumber == 6) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // geltona spalva (int a = 0; a <6; a ++) {atspalvis [a6 [a] = 53; sėdėjo [a6 [a] = 95; šviesus [a6 [a] = 100; }} else if (pNumber == 7) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // violetinė spalva (int c = 0; c <6; c ++) {atspalvis [c7 [c] = 307; sėdėjo [c7 [c] = 95; šviesus [c7 [c] = 100; }} else if (pNumber == 8) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // violetinė, skirta (int c = 0; c <6; c ++) {atspalvis [c8 [c] = 307; sėdėjo [c8 [c] = 95; šviesus [c8 [c] = 100; }} else if (pNumber == 9) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // violetinė, skirta (int c = 0; c <6; c ++) {atspalvis [c9 [c] = 307; sėdėjo [c9 [c] = 95; šviesus [c9 [c] = 100; }} else if (pNumber == 10) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // purpurinė (int c = 0; c <6; c ++) {atspalvis [c10 [c] = 307; sėdėjo [c10 [c] = 95; šviesus [c10 [c] = 100; }} else if (pNumber == 11) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // purpurinė (int c = 0; c <6; c ++) {atspalvis [c11 [c] = 307; sėdėjo [c11 [c] = 95; šviesus [c11 [c] = 100; }} else if (pNumber == 12) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // purpurinė (int c = 0; c <6; c ++) {atspalvis [c12 [c] = 307; sėdėjo [c12 [c] = 95; šviesus [c12 [c] = 100; }} else if (pNumber == 13) {for (int i = 0; i <num; i ++) {bright = 0; gVertė = 1; } int a13 = {34, 35}; // geltona int b13 = {47}; // mėlyna int c13 = {48}; // violetinė, skirta (int a = 0; a <2; a ++) {atspalvis [a13 [a] = 53; sėdėjo [a13 [a] = 95; šviesus [a13 [a] = 100; } už (int b = 0; b <1; b ++) {atspalvis [b13 = 210; sėdėjo [b13 = 95; šviesus [b13 = 100; } už (int c = 0; c <1; c ++) {atspalvis [c13 [c] = 307; sėdėjo [c13 [c] = 95; šviesus [c13 [c] = 100; }} pSkaičius = pSkaičius + 1;
jei (pSkaičius == 14) {
pSkaičius = 0; }}
void ani2 () {
// Serial.println ("2"); nepasirašytas ilgas curM = milis ();
if (curM - preM> = 10) {
preM = curM; už (int i = 0; i <num; i ++) {jei (atspalvis = 360) {gVertė = -1; } atspalvis = atspalvis + gVertė ; } skaitiklis ++; if (skaitiklis == 360) {// Serial.print ("skaitiklis:"); // Serial.println (skaitiklis); // Serial.println (curM); skaitiklis = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } ///////////////////////////////////////////////////////////////////////////, void readyState (), / Serial.println ("paruošta"); } ///////////////////////////////////////////////////////////////////////////, vo, 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; (int i = 0; i = 360) {hueV = -1; } else if (atspalvis <= 0) {hueV = 1; } atspalvis = atspalvis + hueV ; šviesus = 100; }}}} ///////////////////////////////////////////////////////////////////////////// void setPixels (int k) {už (int i = 0; i <k; i ++) {H2R_HSBtoRGB (atspalvis , sat , ryškus , spalvos ); int num1 = i * 3; strip.setPixelColor (num1, spalvos [0], spalvos [1], spalvos [2]); strip.setPixelColor (skaičius1 + 1, spalvos [0], spalvos [1], spalvos [2]); strip.setPixelColor (skaičius1 + 2, spalvos [0], spalvos [1], spalvos [2]); } strip.show (); }
20 žingsnis: modeliai
Šis projektas turi kelis trikampius, kurie sudaro šešiakampę formą. Taigi galite sukurti stereoskopinius modelius pagal tai, kaip kuriate šviesą! Tiesiog paspauskite kiekvieną gabalėlį ir įvairios spalvos bus graduojamos, o kai norima spalva pasirodys, tiesiog paspauskite ranką, kurią paspaudėte, ir ji toliau gražiai spindės norima spalva!
Rekomenduojamas:
5 viename „Arduino“robotas - Sekite mane - Eilutė po - Sumo - Piešimas - Vengti kliūčių: 6 žingsniai
5 viename „Arduino“robotas | Sekite mane | Eilutė po | Sumo | Piešimas | Vengti kliūčių: šioje roboto valdymo plokštėje yra mikrovaldiklis ATmega328P ir variklio tvarkyklė L293D. Žinoma, tai nesiskiria nuo „Arduino Uno“plokštės, tačiau ji yra naudingesnė, nes jai nereikia kito skydo varikliui valdyti! Tai nemokama šokinėti
Apšviesk mane! realaus laiko kelių platformų LED juostos valdymas: 5 žingsniai (su paveikslėliais)
Apšviesk mane! realaus laiko kelių platformų LED juostos valdymas: „LightMeUp“! yra mano sugalvota sistema, skirta realiuoju laiku valdyti RGB LED juostelę, išlaikant mažą kainą ir aukštą našumą. Serveris yra parašytas „Node.js“ir todėl yra tinkamas platformai. Mano pavyzdyje aš naudoju „Raspberry Pi 3B“ilgalaikiam naudojimui
„Kažkas mane myli“vietos laikrodis: 6 žingsniai (su nuotraukomis)
„Kažkas myli mane“buvimo vietos laikrodis: su artimaisiais užsienyje ar ne valstijoje niekas nesako, kad galvoju apie tave geriau, nei visada žinodamas, koks jiems laikas! Mano pensininkai uošviai ruošėsi tarnauti bažnyčios misijoje Berlyne, Vokietijoje, o mano žmona sugalvojo
Skrisk mane į dangų palydovinėje nuotraukoje .: 14 žingsnių
Skraidink mane į dangų palydovinėje nuotraukoje. Padarykime virtualią patirtį, kai ji žiūrės iš palydovinės nuotraukos iš lėktuvo
Apšviesk tą paveikslėlį!: 6 žingsniai (su nuotraukomis)
Apšviesk tą paveikslėlį!: Sveiki, tai gana paprastas projektas, kuriame mes padarome nedidelę nuotrauką ir paverčiame ją labai gražiu dekoratyviniu objektu, kad bet kuris berniukas, vyras, tėvas, putlininkas galėtų pasigrožėti :) Šio projekto kaina yra labai maža: -Štai ko mums reikia-1. Visas A4 arba didesnis spalvotas puslapis