İçindekiler:

Sonsuzluk Aynalı Hareketli Izgara: 7 Adım
Sonsuzluk Aynalı Hareketli Izgara: 7 Adım

Video: Sonsuzluk Aynalı Hareketli Izgara: 7 Adım

Video: Sonsuzluk Aynalı Hareketli Izgara: 7 Adım
Video: Apple Watch Alınca İlk Yapılması Gerekenler ! 2024, Temmuz
Anonim
Image
Image

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

Büyük Bir Çerçeve Planlayın
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ı

Donanım Yapımı
Donanım Yapımı
Donanım Yapımı
Donanım Yapımı
Donanım Yapımı
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

Izgara Yapmak
Izgara Yapmak
Izgara Yapmak
Izgara Yapmak
Izgara Yapmak
Izgara Yapmak

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:

resim
resim
resim
resim
resim
resim

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…

Kodlamadan Önce…
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: