İçindekiler:
- Gereçler
- Adım 1: Büyük Bir Çerçeve Planlayın
- Adım 2: Donanım Yapımı
- Adım 3: Izgara Yapma
- 4. Adım:
- Adım 5: Kod
- Adım 6: Kodlamadan Önce…
- Adım 7: Seri İletişim
Video: Sonsuzluk Aynalı Hareketli Izgara: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
bu videolar video yapıyor ve videoyu hareket ettiriyor.
Mekan hissini daha etkili bir şekilde göstermek için sallanan alanı hareketli ızgaralar ve Sonsuzluk Aynası ile göstermek istedik.
Çalışmamız, insanlara doğrudan hareket etme şeklini gösteren ön ve arka plakalar olmak üzere iki akrilik plakadan oluşuyor ve arka plakalarda aslında hareket üreten 25 step motor var.
Eser, uzayın ışıltısını gösterecek bir ön panel, orta hareketi yapan tahta bir çubuk, çubuklar için bir kılavuz ve 25 adet step motor ile hareket yaratan bir arkalıktan oluşuyor.
25 step motora şebekeye bağlı 25 tepe, ayarlanan kodlama değerlerine göre farklı desenler üretir. Ayrıca şirket, şeffaf akriliği ön yarım ayna filmi, arka ayna ve siyah ışıklı Sonsuzluk aynasıyla birleştirerek alanı en üst düzeye çıkarmak istedi. Dalgalara dayalı olarak çeşitli animasyon desenleri ve su dalgalarına dayalı olarak yapılan drablar yapılır.
Gereçler
Gereçler
1. UV LED 12V 840cm
2. Kauçuk beyaz 12mm 750cm
3. Arduino mega 2560x2
4. Motor sürücüsü x25
5. Step motor x25
6. step motor x25 için Bipolar kablo
7. Ahşap silindir x25
8.pvc (9mm) x25
9. Bahar x 25
10.akrilik 700mm*700mm
11. Yarım ayna filmi 1524mm * 1M
12. Olta
13. Güç 12V 12.5A, 12V 75A
14. zamanlama kasnağı (3d baskı) x 25
Adım 1: Büyük Bir Çerçeve Planlayın
Başladığımızda büyük bir çerçeve planlamamız ve çizmemiz gerekiyor. Bu nedenle, akrilik genel çerçeve ve zamanlama kasnağı stl dosyası için bir pdf dosyası hazırladık (orta tahta çubuğu çekebilen rüzgar ipliği için bunları step motorun önüne koyduk).
Akrilik genel çerçeve ve zamanlama kasnağı ile önce stl dosyasını ve 3d baskıyı yapmamız gerekiyor.
Adım 2: Donanım Yapımı
kutu1
1. 2T akrilik siyahı (No. 1) zemine yerleştirin ve 5T akrilik siyah tarafını (No. 2) üstüne takın. 5T akrilik siyah ızgara (No. 3) ekleyin ve akrilik bağ kullanarak yapıştırın.
kutu2
2. Akrilik şeffaf plaka üzerine su serpin ve yarı ayna filmi ile üstte. Yarım ayna, köpürmesini önlemek için bir kartı yuvarlar. Tarafı (2) ve akrilik şeffaflığı (1) takın. Kombine akrilik çıkıntı ve akrilik aynaları (No. 1) yanal olarak sabitlemeyin. Bantla geçici olarak sabitleyin (oltayı onarmak veya içini yenilemek için).
Adım 3: Izgara Yapma
1. Ahşap bir kolonun boyutu 12 mm'dir. Oltanın girmesine izin vermek için sonunda bir delik açın.
2. Akrilik plakaları yapıştırıcı kullanarak delikli ahşap kolonun diğer tarafına yapıştırın.
3. Ahşap bir sütunun arkasına bir lastik bant geçirin ve içine bir yay koyun.
4. Genel şekil
4. Adım:
1. Arduino Mega 2560 Pin Bağlantı Numarası
2. elektriği ikiye bölün
3. Step motor ve motor sürücü devresi
4. İki Arduino mega2560, seri iletişim için TX ve RX'i geçerek bağlanır.
Adım 5: Kod
#Dahil etmek
AdımÇoklu adım(200, 2, 3, 4, 5); // step motor numaralandırma StepperMulti step2(200, 6, 7, 8, 9); AdımÇoklu adım3(200, 10, 11, 12, 13); AdımÇoklu adım4(200, A0, A1, A2, A3); AdımÇoklu adım5(200, A4, A5, A6, A7); AdımÇoklu adım6(200, 22, 23, 24, 25); AdımÇoklu adım7(200, 26, 27, 28, 29); AdımÇoklu adım8(200, 30, 31, 32, 33); AdımÇoklu adım9(200, 34, 35, 36, 37); StepÇoklu step10(200, 38, 39, 40, 41); StepÇoklu step11(200, 42, 43, 44, 45); AdımÇoklu adım12(200, 46, 47, 48, 49); AdımÇoklu adım13(200, 50, 51, 52, 53); uint32_t on_timer = millis(); uint32_t set_timer1 = millis(); uint32_t set_timer2 = millis(); uint32_t set_timer3 = millis(); uint32_t set_timer4 = millis(); uint32_t set_timer5 = millis(); uint32_t set_timer6 = millis(); uint32_t set_timer7 = millis(); uint32_t set_timer8 = millis(); uint32_t set_timer9 = millis(); uint32_t set_timer10 = millis(); int sayı = 0; int init_set_speed
geçersiz kurulum()
Seri1.başlangıç(115200); //seri iletişim Serial.begin(9600); stepper.setSpeed(init_set_speed); stepper2.setSpeed(init_set_speed); stepper3.setSpeed(init_set_speed); stepper4.setSpeed(init_set_speed); stepper5.setSpeed(init_set_speed); stepper6.setSpeed(init_set_speed); stepper7.setSpeed(init_set_speed); stepper8.setSpeed(init_set_speed); stepper9.setSpeed(init_set_speed); stepper10.setSpeed(init_set_speed); stepper11.setSpeed(init_set_speed); stepper12.setSpeed(init_set_speed); stepper13.setSpeed(init_set_speed); } int HIZ = 200; // motor hızı void loop() { ///////////////////////////////// if (milis() - set_timer1 < 6000) { // Step motor 13 1500 ile 6000 saniye arasında hareket eder.< if (millis() - on_timer < 1500) { stepper13.setStep(SPEED); } else if (millis() - on_timer < 3000) { stepper13.setStep(-SPEED); //(-SPEED) ters dönüş anlamına gelir } else if (millis() - on_timer < 4500) { stepper13.setStep(SPEED); } else if (millis() - on_timer 1000) { Serial1.write(0x01); sayı = 1; } } ////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setStep (HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper12.setStep(SPEED); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } else if (millis() - on_timer < 5500) { stepper7.setStep(SPEED); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper12.setStep(SPEED); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } başka { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } } başka { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(HIZ); stepper7.setStep(HIZ); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep(HIZ); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } else if (millis() - on_timer < 5500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(HIZ); stepper7.setStep(HIZ); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep(HIZ); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } başka { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } /////////////////////////////////////////////// Eğer (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep(SPEED); stepper2.setStep(HIZ); stepper3.setStep(HIZ); stepper4.setStep(HIZ); stepper5.setStep(HIZ); stepper6.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-SPEED); stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper5.setStep(-SPEED); stepper6.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); } else if (millis() - on_timer < 6500) { stepper.setStep(SPEED); stepper2.setStep(HIZ); stepper3.setStep(HIZ); stepper4.setStep(HIZ); stepper5.setStep(HIZ); stepper6.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-SPEED); stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper5.setStep(-SPEED); stepper6.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); } başka { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } } başka { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } if (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper3.setStep(SPEED); stepper4.setStep(HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); stepper12.setStep(SPEED); stepper13.setStep(SPEED); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); stepper12.setStep(-SPEED); stepper13.setStep(-SPEED); } else if (millis() - on_timer < 6500) { stepper3.setStep(SPEED); stepper4.setStep(HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); stepper12.setStep(SPEED); stepper13.setStep(SPEED); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); stepper12.setStep(-SPEED); stepper13.setStep(-SPEED); } başka { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); } } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); }//////////////////////////////stepper.moveStep(); stepper2.moveStep(); stepper3.moveStep(); stepper4.moveStep(); stepper5.moveStep(); stepper6.moveStep(); stepper7.moveStep(); stepper8.moveStep(); stepper9.moveStep(); stepper10.moveStep(); stepper11.moveStep(); stepper12.moveStep(); stepper13.moveStep(); }
ilk kodlama
ve..
#Dahil etmek
AdımÇoklu adım(200, 2, 3, 4, 5); AdımÇoklu adım2(200, 6, 7, 8, 9); AdımÇoklu adım3(200, 10, 11, 12, 13); AdımÇoklu adım4(200, A0, A1, A2, A3); AdımÇoklu adım5(200, A4, A5, A6, A7); AdımÇoklu adım6(200, 22, 23, 24, 25); AdımÇoklu adım7(200, 26, 27, 28, 29); AdımÇoklu adım8(200, 30, 31, 32, 33); AdımÇoklu adım9(200, 34, 35, 36, 37); StepÇoklu step10(200, 38, 39, 40, 41); StepÇoklu step11(200, 42, 43, 44, 45); AdımÇoklu adım12(200, 46, 47, 48, 49); AdımÇoklu adım13(200, 50, 51, 52, 53); uint32_t on_timer = millis(); uint32_t set_timer1 = millis(); uint32_t set_timer2 = millis(); uint32_t set_timer3 = millis(); uint32_t set_timer4 = millis(); uint32_t set_timer5 = millis(); uint32_t set_timer6 = millis(); uint32_t set_timer7 = millis(); uint32_t set_timer8 = millis(); uint32_t set_timer9 = millis(); uint32_t set_timer10 = millis(); int sayı = 0; int init_set_speed = 10; geçersiz kurulum() Serial1.begin(115200); Seri.başla(9600); stepper.setSpeed(init_set_speed); stepper2.setSpeed(init_set_speed); stepper3.setSpeed(init_set_speed); stepper4.setSpeed(init_set_speed); stepper5.setSpeed(init_set_speed); stepper6.setSpeed(init_set_speed); stepper7.setSpeed(init_set_speed); stepper8.setSpeed(init_set_speed); stepper9.setSpeed(init_set_speed); stepper10.setSpeed(init_set_speed); stepper11.setSpeed(init_set_speed); stepper12.setSpeed(init_set_speed); stepper13.setSpeed(init_set_speed); } int HIZ = 200; boşluk döngüsü () {
/////////////////////////////////////
if (millis() - set_timer1 < 6000) { if (millis() - on_timer < 1500) { stepper13.setStep(SPEED); } else if (millis() - on_timer < 3000) { stepper13.setStep(-SPEED); } else if (millis() - on_timer < 4500) { stepper13.setStep(SPEED); } else if (millis() - on_timer 1000) { Serial1.write(0x01); sayı = 1; } } ////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setSte ㄴp(HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper12.setStep(SPEED); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } else if (millis() - on_timer < 5500) { stepper7.setStep(SPEED); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper12.setStep(SPEED); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper12.setStep(-SPEED); } başka { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } } başka { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(HIZ); stepper7.setStep(HIZ); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep(HIZ); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } else if (millis() - on_timer < 5500) { stepper2.setStep(SPEED); stepper5.setStep(-SPEED); stepper6.setStep(HIZ); stepper7.setStep(HIZ); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep(HIZ); stepper6.setStep(-SPEED); stepper7.setStep(-SPEED); } başka { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } /////////////////////////////////////////////// Eğer (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep(SPEED); stepper2.setStep(HIZ); stepper3.setStep(HIZ); stepper4.setStep(HIZ); stepper5.setStep(HIZ); stepper6.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-SPEED); stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper5.setStep(-SPEED); stepper6.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); } else if (millis() - on_timer < 6500) { stepper.setStep(SPEED); stepper2.setStep(HIZ); stepper3.setStep(HIZ); stepper4.setStep(HIZ); stepper5.setStep(HIZ); stepper6.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-SPEED); stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper5.setStep(-SPEED); stepper6.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); } başka { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } } başka { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } if (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper3.setStep(SPEED); stepper4.setStep(HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); stepper12.setStep(SPEED); stepper13.setStep(SPEED); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); stepper12.setStep(-SPEED); stepper13.setStep(-SPEED); } else if (millis() - on_timer < 6500) { stepper3.setStep(SPEED); stepper4.setStep(HIZ); stepper8.setStep(HIZ); stepper9.setStep(HIZ); stepper10.setStep(HIZ); stepper11.setStep(HIZ); stepper12.setStep(SPEED); stepper13.setStep(SPEED); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-SPEED); stepper8.setStep(-SPEED); stepper9.setStep(-SPEED); stepper10.setStep(-SPEED); stepper11.setStep(-SPEED); stepper12.setStep(-SPEED); stepper13.setStep(-SPEED); } başka { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); } } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); }////////////////////////////// stepper.moveStep(); stepper2.moveStep(); stepper3.moveStep(); stepper4.moveStep(); stepper5.moveStep(); stepper6.moveStep(); stepper7.moveStep(); stepper8.moveStep(); stepper9.moveStep(); stepper10.moveStep(); stepper11.moveStep(); stepper12.moveStep(); stepper13.moveStep(); }
ikinci kodlama
Adım 6: Kodlamadan Önce…
Step motorlarla ilgili yeni bir kütüphane eklemelisiniz.
Yani bu siteye girip yeni bir kütüphane indiriyorsunuz.
blog.danggun.net/2092
Adım 7: Seri İletişim
İki arduino mega telekomünikasyon yapmalısınız.
if (başlangıç_sayısı == 0) {
int Veri = Seri1.read(); Seri.println(Veri); if (Veri == 0x01) { start_count = 1; }
Öncelikle Maine Arduino Mega üzerinde bu kodlamaya ihtiyacımız var.
if (sayım == 0) { if (millis() - set_timer1 > 1000) { Serial1.write(0x01); sayı = 1; }
Seri haberleşme alan Arduino Mega'nın bu kodlamaya ihtiyacı vardır.
İlk kodlama, ikinci aduino'nun hareket etmesi gereken yere yerleştirilir.
Önerilen:
Bir TARDIS Sonsuzluk Kutusu Yapın: 9 Adım (Resimlerle)
TARDIS Infinity Box yapın: Daha önce bir TARDIS modeli yaptım. TARDIS'in belirleyici özelliklerinden biri, içinin dışından daha büyük olmasıdır. Açıkçası bunu yapamam, ancak bu Eğitilebilir Tabloda modeli denemek ve büyük görünmesini sağlamak için uyarlıyorum
Ucuz, Çift Taraflı, Izgara Tarzı Düzenleyici Pano: 4 Adım
Ucuz, Çift Taraflı, Izgara Tarzı Düzenleyici Panosu: Bu, satın alabileceğiniz daha parlak, güçlü ve genellikle daha iyi ızgaralı düzenleyicilerin basit ve ucuz bir versiyonudur. Orijinaline benzer bir yapı yapmaya karar verdim ve buna değmeyeceğine karar verdim, ancak bu sürüm kesinlikle hiçbir şeye mal olmadı (
Telefon/Tablet Kontrollü Pelet Izgara (Traeger): 4 Adım
Telefon/Tablet Kontrollü Pelet Izgara (Traeger): Bir ziyarette kardeşlerimin harika 1000$'lık Traeger solungaçlarını gördükten sonra kendiminkini yapmaya karar verdim. Benim için her şey elektronik, yeniden kullanım ve henüz kurtulmadığım eski ızgara ile ilgiliydi. Bu yapıda kaynak yapmayı öğrendim, ki bu çok
Modern Led Infinity Aynalı Masa Lambası: 19 Adım (Resimli)
Modern Led Sonsuz Ayna Masa Lambası: © 2017 techydiy.org Tüm hakları saklıdırBu talimatla ilişkili video veya görüntüleri kopyalayamaz veya yeniden dağıtamazsınız. Bu talimatta, aynı zamanda gerçekten işe yarayan modern tarzda bir sonsuzluk aynasının nasıl yapıldığını anlatacağım. hem de
IKEA Resim Çerçevesinde Sonsuz Aynalı Duvar Saati: 4 Adım
IKEA Resim Çerçevesinde Sonsuz Aynalı Duvar Saati: Merhabalar, hep bir duvar saati yapmak istemişimdir. IKEA gibi mağazalarda çok sayıda harika duvar saati var. Bu ticari saatlerle ilgili bazı sorunlarım vardı. Benim için çok gürültülüler (sürekli tic-tac rahatsız edici), akrepleri göremiyorum