Mündəricat:
- Təchizat
- Addım 1: Gəlin Gəlin
- Addım 2: Materialın hazırlanması
- Addım 3: Akrilik kəsmə
- Addım 4: 3D Yazıcılarla Tərəflər yaradın
- Addım 5: Çəkiliş
- Addım 6: Tellər ilə LED Şeridi + Lehimləmə LED Şeridini (NeoPixel) bağlayın
- Addım 7: Tellərlə Lehimləmə Baxış Açarı
- Addım 8: Montaj -Bolutu yan tərəfə daxil edin = ①
- Addım 9: Ⓛⓣ Ⓒ = ② -ə qoşun
- Addım 10: Montaj -Ⓦ və Ⓝ = ③ birləşdirmək üçün Ⓦ və Ⓝ istifadə edin
- Addım 11: Montaj -Akril Bond istifadə edərək Ⓐⓔ və ③ əlavə edin = ④
- Addım 12: Ⓢ Ⓓ = ⑤ -ə əlavə edin
- Addım 13: Montaj -④ və ⑤ ⑤ və Ⓝ = ⑥ istifadə edərək birləşdirin
- Addım 14: Parça Montajını Tamamlayın
- Addım 15: Bir Layihənin İş Görünüşü
- Addım 16: NeoPixel, Bağlayıcı Kablolama
- Addım 17: NeoPixel və Arduino Kablolama
- Addım 18: Arduino proqramlaşdırın
- Addım 19:
- Addım 20: Nümunələr
Video: Məni Yandır!: 20 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
layihə qrupunun üzvləri
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
İşığa toxunub dizayn edə bilsəniz nə olar? Özünüzü maraqlı bir animasiya ilə hazırladığınız gözəl bir işıq nümunəsinə sahib olsanız nə hiss edərdiniz? İşığın özünə toxunan və dizayn edən və maraqlı naxışlar hazırlayan maraqlı bir eskiz kitabı olacaq məni işıqlandırın! Bu layihədə bir neçə üçbucaq var altıbucaqlı forma. Beləliklə, işığı necə dizayn etdiyinizə görə stereoskopik nümunələr yarada bilərsiniz! Sadəcə hər bir parçaya basın və müxtəlif rənglər dərəcələnəcək və istədiyiniz rəng çıxdıqda, basdığınız ələ vurun və istədiyiniz rənglə gözəl parlamağa davam edəcək! Layihə təxminən 312 üçbucaqdan istifadə etdi, ancaq yarada bilər 6 üçbucaqla yaxşı işləyən gözəl bir işıq. İndi bunu altı üçbucaqla necə edəcəyinizi sizə göstərim. Adımları izləyin və öz gözəl işinizə sahib olacaqsınız!
Təchizat
Avadanlıq: Arduino (arduino mega 2560 istifadə etdim), Akril (şəffaf, ağ), LED Şeridi (NeoPixel), Difüzor Film, düymə, 4 pinli Konnektor, Tel, Dövrə lövhəsi, Enerji təchizatı
Alətlər: Lazerlə idarə olunan kəsmə maşını, 3D printer
Addım 1: Gəlin Gəlin
Gəlin bu sevimli altıbucaqlı parçanı mənimlə birlikdə hazırlayaq!
The Light Me Up 312 üçbucaqdan hazırlanmışdır, lakin 6 üçbucaq belə gözəl işıq dizayn edə bilər. Daha geniş miqyasda etmək istəyirsinizsə, aşağıda əlavə olunan fayla istinad edərək edə bilərsiniz.
Addım 2: Materialın hazırlanması
Addım 3: Akrilik kəsmə
Hər hissənin ön və arxasını kəsmək üçün lazer kəsici istifadə edin. Arxadakı akril rəngi istədiyiniz hər şey ola bilər, ancaq şəffaf akril istifadə etdiyinizə əmin olun, çünki ön tərəfi qaraltmaq lazımdır! Şəffafdan başqa bir rəng akril istifadə etsəniz, işığı yaxşı görməyəcəksiniz.
Addım 4: 3D Yazıcılarla Tərəflər yaradın
İndi hər parçanın tərəflərini düzəltməyin vaxtı gəldi. Yan tərəfdəki 3D modelləşdirmə faylları aşağıda əlavə edilmişdir. PLA -nı tərəf etmək üçün istifadə etdik PLA, ABS -dən daha güclü və daha az sancılardır, buna görə də filamanların PLA -dan istifadə etməsi tövsiyə olunur.
Addım 5: Çəkiliş
İndi ön tərəfdəki akril üzərində yüngül bir diffuziya filmi qoyaq. Üzərinə film qoysanız, daha da gözəlləşir və yayılır. Əvvəlcə filmi üçbucaq şəklində kəsin. (Filmi akrildən daha böyük ölçüdə kəssəniz yaxşı olar) Filmi telefonunuza qoruyucu bir film kimi qoymaq asandır. Bura uçmaq istəyirsinizsə, səliqəli bir şəkildə yapışdırmaq üçün onu itələmək üçün bir kart istifadə edə bilərsiniz!
Addım 6: Tellər ilə LED Şeridi + Lehimləmə LED Şeridini (NeoPixel) bağlayın
LED şeridini lehimləməkdə çox yaxşı idinizsə, LED şeridi arxa tərəfə qoymağın vaxtı gəldi. Birincisi, LED şeridinin arxasına bir yapışqan silahı və ya iki tərəfli bant bağlayın. Və əvvəlcə hər iki tərəfdəki deliklərdən lehimləmə telinin hər iki tərəfindəki telləri çıxarın. Nəhayət, LED şeridini arxa akrilə yapışdırın və bitdi!
Lehimləmə vaxtıdır! LED şeritləri, 4 pinli bağlayıcıları (bağlayıcı və ya tellər) və lehimləmə üçün lazım olanları hazırlayın. LEDləri üç hissədə istifadə etdim. İstəyirsinizsə bir və ya iki LED istifadə edə bilərsiniz, amma üçü istifadə etməyi məsləhət görürəm. Bütün materiallar hazır olduqda, telləri hər iki məlumat xəttində, 5v xətlərində və LED şeridinin torpaq xətlərində lehimləyin.
Addım 7: Tellərlə Lehimləmə Baxış Açarı
Addım 8: Montaj -Bolutu yan tərəfə daxil edin = ①
İndi əslində asan bir hissədir! 3D çaplı üç tərəfin hər birinə bir bolt qoyun. Bolt düyməsini istifadə etmə səbəbi kimi struktur boltlar və qoz -fındıqlar edə biləcək. Parça bitdikdən sonra parçanı qutuya qoyub qozla bitirəcəyəm.
Addım 9: Ⓛⓣ Ⓒ = ② -ə qoşun
Addım 10: Montaj -Ⓦ və Ⓝ = ③ birləşdirmək üçün Ⓦ və Ⓝ istifadə edin
Addım 11: Montaj -Akril Bond istifadə edərək Ⓐⓔ və ③ əlavə edin = ④
Yan tərəfə bir bolt qoysanız, biz onu yan və ön tərəfə qoyacağıq. Ön tərəfi akrildir, buna görə xüsusi bir akril bantla taxmalısınız. Akrili adi bir bağa yapışdırsanız, iz buraxacaq.
Addım 12: Ⓢ Ⓓ = ⑤ -ə əlavə edin
Addım 13: Montaj -④ və ⑤ ⑤ və Ⓝ = ⑥ istifadə edərək birləşdirin
Addım 14: Parça Montajını Tamamlayın
Addım 15: Bir Layihənin İş Görünüşü
Addım 16: NeoPixel, Bağlayıcı Kablolama
Addım 17: NeoPixel və Arduino Kablolama
Addım 18: Arduino proqramlaşdırın
extern uçucu işarəsiz uzun timer0_millis;
#daxil edin
#define MODEBTNNUM 3 int ani_mode = 0; imzasız uzun preM1, preM2, preM3;
boş quraşdırma () {
Wire.begin (); for (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }
boşluq döngəsi () {
for (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } üçün (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); while (Wire.available ()) {int x = Wire.read (); // Serial.println (x); əgər (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 = cari2; for (int i = 1; i 3000) {preM3 = cari3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("taymer sıfırlanması"); for (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Wire.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
Addım 19:
extern uçucu işarəsiz uzun timer0_millis;
#daxil edin
#incine #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 rəngləri [sayı] [3]; int hue [sayı]; int oturdu [sayı]; int parlaq [sayı]; int pNumber = 0; int gValue [sayı] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 [sayı] = {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 [sayı]; boolean 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}; #include #define BTNNUM 1 int f_v = 1; imzasız uzun preMillis1; imzasız uzun preM; int ani_mode = 0; int ani2_Counter = 0; int sayğacı = 0; //////////////////////////////////////////////////// Void setup () {Wire. başlamaq (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); for (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } /////////////////////////////////////////////////////////////////////////
boşluq döngəsi () {
if (f_v == 1) {for (int i = 0; i <num; i ++) {hue = 50; oturdu = 95; parlaq = 100; } f_v = 0; }/ yalan; for (int i = 0; i <num; i ++) {if (! digitalRead (btnPin )) {btnMode = true; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////// keçid (ani_mode) {hal 0: ani0 (); fasilə; hal 1: ani1 (); ani_mode = 0; ani2_Counter = 0; fasilə; hal 2: ani2_Counter = 1; ani_mode = 0; fasilə; hal 3: ani3 (); ani_mode = 0; ani2_Counter = 0; fasilə; standart: readyState (); fasilə; } əgər (ani2_Counter == 1) {ani2 (); } setPixels (sayı); }
///////////////////////////////////////////
void receiveEvent (int howMany) {int x = Wire.read (); əgər (x == 5) {// Serial.println ("5 alındı"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } ////////////////////////////////////////////////////// Void requestEvent () {
əgər (btnMode == doğru) {
Wire.write (5); // Serial.println ("5 보냄"); } başqa {Wire.write (0); }
}
void ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); if (pNumber == 0) {for (int i = 0; i <num; i ++) {parlaq = 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; oturdu [a1 [a] = 95; parlaq [a1 [a] = 100; } üçün (int b = 0; b <2; b ++) {hue [b1 = 200; oturdu [b1 = 95; parlaq [b1 = 100; } üçün (int c = 0; c <2; c ++) {hue [c1 [c] = 300; otur [c1 [c] = 95; parlaq [c1 [c] = 100; } // Serial.println ("0"); } başqa əgər (pNumber == 1) {for (int i = 0; i <num; i ++) {parlaq = 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; oturdu [a2 [a] = 95; parlaq [a2 [a] = 100; } üçün (int d = 0; d <4; d ++) {hue [d2 [d] = 63; oturdu [d2 [d] = 95; parlaq [d2 [d] = 100; } // Serial.println ("1"); } else if (pNumber == 2) {// nəhəng kub nümunəsi (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // sarı 06 üçün (int a = 0; a <6; a ++) {hue [a14 [a] = 35; oturdu [a14 [a] = 95; parlaq [a14 [a] = 100; }} başqa əgər (pNumber == 3) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // sarı üçün (int a = 0; a <6; a ++) {hue [a3 [a] = 53; oturdu [a3 [a] = 95; parlaq [a3 [a] = 100; }} başqa əgər (pNumber == 4) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a4 = {34, 35}; // sarı int b4 = {47}; // mavi int c4 = {48}; // bənövşəyi
for (int a = 0; a <2; a ++) {hue [a4 [a] = 53; oturdu [a4 [a] = 95; parlaq [a4 [a] = 100; }
for (int b = 0; b <1; b ++) {hue [b4 = 210; oturdu [b4 = 95; parlaq [b4 = 100; } üçün (int c = 0; c <1; c ++) {hue [c4 [c] = 307; otur [c4 [c] = 95; parlaq [c4 [c] = 100; }} başqa if (pNumber == 5) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a5 = {34, 35, 46, 47, 48, 49};
for (int a = 0; a <6; a ++) {hue [a5 [a] = 100; oturdu [a5 [a] = 95; parlaq [a5 [a] = 100; }} başqa if (pNumber == 6) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // sarı üçün (int a = 0; a <6; a ++) {hue [a6 [a] = 53; oturdu [a6 [a] = 95; parlaq [a6 [a] = 100; }} başqa əgər (pNumber == 7) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c7 [c] = 307; otur [c7 [c] = 95; parlaq [c7 [c] = 100; }} başqa if (pNumber == 8) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c8 [c] = 307; otur [c8 [c] = 95; parlaq [c8 [c] = 100; }} başqa əgər (pNumber == 9) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c9 [c] = 307; oturdu [c9 [c] = 95; parlaq [c9 [c] = 100; }} başqa if (pNumber == 10) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c10 [c] = 307; otur [c10 [c] = 95; parlaq [c10 [c] = 100; }} başqa if (pNumber == 11) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c11 [c] = 307; otur [c11 [c] = 95; parlaq [c11 [c] = 100; }} başqa if (pNumber == 12) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // bənövşəyi üçün (int c = 0; c <6; c ++) {hue [c12 [c] = 307; otur [c12 [c] = 95; parlaq [c12 [c] = 100; }} başqa if (pNumber == 13) {for (int i = 0; i <num; i ++) {parlaq = 0; gValue = 1; } int a13 = {34, 35}; // sarı int b13 = {47}; // mavi int c13 = {48}; // bənövşəyi (int a = 0; a <2; a ++) {hue [a13 [a] = 53; oturdu [a13 [a] = 95; parlaq [a13 [a] = 100; } üçün (int b = 0; b <1; b ++) {hue [b13 = 210; oturdu [b13 = 95; parlaq [b13 = 100; } üçün (int c = 0; c <1; c ++) {hue [c13 [c] = 307; otur [c13 [c] = 95; parlaq [c13 [c] = 100; }} pNumber = pSayı + 1;
əgər (pSayı == 14) {
pSayı = 0; }}
void ani2 () {
// Serial.println ("2"); işarəsiz uzun curM = millis ();
əgər (curM - preM> = 10) {
preM = curM; for (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } rəng = rəng + gValue ; } sayğac ++; if (sayğac == 360) {// Serial.print ("sayğac:"); // Serial.println (sayğac); // Serial.println (curM); sayğac = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } /////////////////////////////////////////////////////// hazır hazırState () {/ / Serial.println ("hazır"); } ///////////////////////////////////////////////////////////////// etibarsız btnEvent (int b_interval) {işarəsiz uzun 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; } başqa əgər (rəng <= 0) {hueV = 1; } rəng = hue + hueV ; parlaq = 100; }}}} /////////////////////////////////////////////////////////////////// etibarsız setPixels (int k) {for (int i = 0; i <k; i ++) {H2R_HSBtoRGB (rəng , oturmuş , parlaq , rənglər ); int sayı1 = i * 3; strip.setPixelColor (sayı1, rənglər [0], rənglər [1], rənglər [2]); strip.setPixelColor (sayı1 + 1, rənglər [0], rənglər [1], rənglər [2]); strip.setPixelColor (sayı1 + 2, rənglər [0], rənglər [1], rənglər [2]); } strip.show (); }
Addım 20: Nümunələr
Bu layihə altıbucaqlı bir forma meydana gətirən bir neçə üçbucağa malikdir. Beləliklə, işığı necə dizayn etdiyinizə görə stereoskopik nümunələr yarada bilərsiniz! Sadəcə hər bir parçaya basın və müxtəlif rənglər dərəcələnəcək və istədiyiniz rəng çıxanda sadəcə basdığınız ələ vurun və istədiyiniz rənglə gözəl parlamağa davam edəcək!
Tövsiyə:
5 -i 1 Arduino Robotu - Məni izlə - Ardıcıllıq xətti - Sumo - Rəsm - Maneələrin qarşısını almaq: 6 addım
5 -i 1 Arduino Robotu | Məni izlə | Ardıcıllıq xətti | Sumo | Rəsm | Maneələrdən qaçınmaq: Bu robot idarəetmə lövhəsində ATmega328P mikrokontrolörü və L293D motor sürücüsü var. Əlbəttə ki, Arduino Uno lövhəsindən heç bir fərqi yoxdur, ancaq motoru idarə etmək üçün başqa bir qalxana ehtiyac olmadığı üçün daha faydalıdır! Atlamadan azaddır
Məni izləyin - Raspberry Pi Smart Drone Bələdçisi: 9 addım
Məni izləyin - Raspberry Pi Smart Drone Bələdçisi: Həmişə A -Z -dən bir pilotsuz təyyarə necə edəcəyinizi düşünürsünüzmü? Bu təlimat, hissələri satın alaraq hava robotunuzu ilk uçuşunda sınamağa qədər addım-addım 450 mm-lik bir kvadrokopterin necə ediləcəyini göstərir. Əlavə olaraq, bir Raspberry Pi və PiCamera ilə
Məni Oyandır - Ağıllı Zəngli Saat: 6 addım
Wake Me Up - Ağıllı Zəngli Saat: Məni oyandır ağıllı işıq kimi də istifadə edilə bilən ağıllı bir zəngli saatdır. Daxili ledstrip otağınıza daxil olan təbii işığı simulyasiya edir. Bu, gününüzə sakit və təbii bir şəkildə başlamağa imkan verir. Zəngli saat da 4*7 seqme ilə təchiz olunmuşdur
Kimsə Məni Sevir Yer Saatı: 6 addım (şəkillərlə)
Kimsə Məni Yer Saatını Sevər: Xaricdə və ya əyalət xaricində olan yaxınlarınızla heç nə demir ki, mən həmişə sizin üçün nə vaxt olduğunu bilməkdən daha yaxşı düşünürəm! Təqaüdçü qayınatalarım, Almaniyanın Berlin şəhərində bir kilsə missiyasına xidmət etməyə hazırlaşırdılar və həyat yoldaşım bu işlə tanış oldu
DIY Smart Kamera ilə məni izləyin (Arduino əsaslı): 22 addım (şəkillərlə)
DIY Smart Kamera ilə Məni İzləyin (Arduino əsaslı): Dronlar bu günlərdə çox məşhur oyuncaqlar və alətlərdir. Bazarda peşəkar və hətta yeni başlayan dronlar və uçan qurğular tapa bilərsiniz. Dörd dronum var (quadcopters və hexcopters), çünki uçan hər şeyi sevirəm, amma 200 -cü uçuş