Mundarija:

Cheksiz oyna bilan harakatlanuvchi panjara: 7 qadam
Cheksiz oyna bilan harakatlanuvchi panjara: 7 qadam

Video: Cheksiz oyna bilan harakatlanuvchi panjara: 7 qadam

Video: Cheksiz oyna bilan harakatlanuvchi panjara: 7 qadam
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Iyul
Anonim
Image
Image

bu videolar video va harakatlanuvchi video.

Biz tebranayotgan bo'shliqni harakatlanuvchi panjara va Infinity Mirror orqali ko'rsatmoqchi bo'ldik, bu esa bo'shliq tuyg'usini yanada samarali ko'rsatdi.

Bizning ishimiz ikkita akril plastinkadan iborat: old va orqa panellar, ular odamlarga to'g'ridan -to'g'ri qo'zg'alish usulini ko'rsatadi va orqa plitalarda harakatni ishlab chiqaradigan 25 pog'onali dvigatellar mavjud.

Ish old paneldan iborat bo'lib, u bo'shliqni yoritadi, o'rta harakatni bajaradigan yog'och tayoq, tayoqlar uchun qo'llanma va 25 pog'onali dvigatellar orqali harakatni yaratuvchi orqa panel.

25 pog'onali dvigatelga ulangan tarmoqning 25 ta cho'qqisi belgilangan kodlash qiymatlariga muvofiq turli naqshlarni chiqaradi. Bundan tashqari, kompaniya shaffof akrilni yarim oynali plyonka, orqa oynasi va qora chiroqli Infinity oynasi bilan birlashtirib, maydonni maksimal darajada oshirmoqchi edi. Suv to'lqinlari asosida yaratilgan to'lqinlar va dabdabalar asosida animatsiyaning turli naqshlari yaratilgan.

Ta'minotlar

Ta'minotlar

1. 12V 840 sm uzunlikdagi UV LED

2. Kauchuk oq 12 mm 750 sm

3. Arduino mega 2560 x2

4. Motor haydovchi x25

5. Step motor x25

6. X25 qadamli dvigatel uchun bipolyar kabel

7. Yog'och silindrli x25

8. PVX (9 mm) x25

9. Bahor x 25

10. akril 700 mm*700 mm

11. Yarim oyna plyonkasi 1524mm * 1M

12. Baliq ovlash liniyasi

13. Quvvat 12V 12.5A, 12V 75A

14. vaqt kasnagi (3d bosma) x 25

1 -qadam: Katta tizimni rejalashtiring

Katta tizimni rejalashtiring
Katta tizimni rejalashtiring

Ishni boshlaganimizda, biz katta ramka tuzishimiz va chizishimiz kerak. Shunday qilib, biz akril umumiy ramka va vaqt kasnagining stl fayli uchun pdf faylini tayyorladik (biz ularni yog'ochdan yasalgan tayoqni tortib oladigan shamol iplari uchun pog'onali dvigatel oldiga qo'ydik).

umumiy akril ramka va vaqt kasnagi bilan biz birinchi navbatda stl faylini va 3d chop etishimiz kerak.

2 -qadam: Uskuna yaratish

Uskuna ishlab chiqarish
Uskuna ishlab chiqarish
Uskuna ishlab chiqarish
Uskuna ishlab chiqarish
Uskuna ishlab chiqarish
Uskuna ishlab chiqarish

quti 1

1. Erga 2T akril qora (No1) qo'ying va ustiga 5T akril qora tomonini (No2) mahkamlang. 5T akril qora panjara qo'shing (3 -son) va uni akril bog'lovchi yordamida biriktiring.

quti2

2. Akril shaffof plastinkaga suv sepib, ustiga yarim oynali plyonka soling. Yarim oyna pufakchadan saqlanish uchun kartani o'radi. Yonni (2) va akril shaffoflikni (1) ulang. Birlashtirilgan akril protrusion va akril oynalarni (1 -son) yon tomondan mahkamlamang. Vaqtincha lenta bilan mahkamlang (baliq ovlash chizig'ini ta'mirlash yoki ichki qismini yangilash uchun).

3 -qadam: tarmoq yaratish

Grid yaratish
Grid yaratish
Grid yaratish
Grid yaratish
Grid yaratish
Grid yaratish

1. Yog'och ustun 12 mm o'lchamda. Baliq chizig'iga kirishga ruxsat berish uchun oxirida teshik qiling.

2. Akril plitalarni yopishqoq yordamida teshilgan yog'och ustunning boshqa tomoniga mahkamlang.

3. Yog'och ustunning orqa qismidan rezina tasma soling va ichiga buloq soling.

4. Umumiy shakli

4 -qadam:

Rasm
Rasm
Rasm
Rasm
Rasm
Rasm

1. Arduino Mega 2560 pinli ulanish raqami

2. elektrni ikki qismga bo'ling

3. Step motor va dvigatel haydovchisi davri

4. Ikki Arduino mega2560s ketma -ket aloqa uchun TX va RX orqali kesishgan.

5 -qadam: kod

#qo'shing

Ko'p qadamli qadam (200, 2, 3, 4, 5); // qadamli dvigatelning raqamlanishi StepMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti step5 (200, A4, A5, A6, A7); StepperMulti step6 (200, 22, 23, 24, 25); StepperMulti step7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (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 soni = 0; int init_set_speed

bo'sh o'rnatish ()

Seriya 1. boshlanishi (115200); // ketma -ket aloqa 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); step7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); qadam11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SPEED = 200; // dvigatel tezligining bo'shligi pastadir () {///////////////////////////////////// (millis () - set_timer1 <6000) {// Step 13 dvigateli 1500 dan 6000 sekundgacha harakat qiladi. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } if if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) teskari aylanishni bildiradi} else if if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } if if (millis () - on_timer 1000) {Serial1.write (0x01); hisoblash = 1; }} /////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (Tezlik); stepper8.setStep (SPEED); stepper9.setStep (SPEED); step12.setStep (SPEED); } if if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); qadam12.setStep (-SPEED); } if if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); step12.setStep (SPEED); } if if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); qadam12.setStep (-SPEED); } boshqa {stepper7.setStep (0); qadam 8.setStep (0); qadam9.setStep (0); qadam12.setStep (0); }} boshqa {stepper7.setStep (0); qadam8.setStep (0); qadam9.setStep (0); qadam12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); step5.setStep (-SPEED); step6.setStep (SPEED); step7.setStep (SPEED); } if if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); step5.setStep (SPEED); step6.setStep (-SPEED); qadam7.setStep (-HIZMAT); } if if (millis () - on_timer <5500) {stepper2.setStep (SPEED); step5.setStep (-SPEED); step6.setStep (SPEED); step7.setStep (SPEED); } if if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); step5.setStep (SPEED); step6.setStep (-SPEED); qadam7.setStep (-HIZMAT); } boshqa {stepper2.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam7.setStep (0); }} boshqa {stepper2.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam7.setStep (0); } ////////////////////////////////////////////////////////////// agar millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); step2.setStep (SPEED); step3.setStep (SPEED); step4.setStep (SPEED); step5.setStep (SPEED); step6.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); } if if (millis () - on_timer <5000) {stepper.setStep (-SPEED); step2.setStep (-SPEED); step3.setStep (-SPEED); step4.setStep (-SPEED); step5.setStep (-SPEED); step6.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); } if if (millis () - on_timer <6500) {stepper.setStep (SPEED); step2.setStep (SPEED); step3.setStep (SPEED); step4.setStep (SPEED); step5.setStep (SPEED); step6.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); } if if (millis () - on_timer <8000) {stepper.setStep (-SPEED); step2.setStep (-SPEED); step3.setStep (-SPEED); step4.setStep (-SPEED); stepper5.setStep (-SPEED); step6.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); } boshqa {stepper.setStep (0); qadam2.setStep (0); stepper3.setStep (0); step4.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam (10); qadam11.setStep (0); }} boshqa {stepper.setStep (0); qadam2.setStep (0); stepper3.setStep (0); step4.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam (10); qadam11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); step4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); step12.setStep (SPEED); stepper13.setStep (SPEED); } if if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); step4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); qadam12.setStep (-SPEED); stepper13.setStep (-SPEED); } if if (millis () - on_timer <6500) {stepper3.setStep (SPEED); step4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); step12.setStep (SPEED); stepper13.setStep (SPEED); } if if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); step4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); qadam12.setStep (-SPEED); stepper13.setStep (-SPEED); } boshqa {stepper3.setStep (0); step4.setStep (0); qadam 8.setStep (0); Qadam (0); qadam (10); qadam11.setStep (0); qadam12.setStep (0); stepper13.setStep (0); }} boshqa {stepper3.setStep (0); step4.setStep (0); qadam 8.setStep (0); Qadam (0); qadam (10); qadam11.setStep (0); qadam12.setStep (0); stepper13.setStep (0); } /////////////////////////////////// stepper.moveStep (); step2.moveStep (); stepper3.moveStep (); step4.moveStep (); step5.moveStep (); step6.moveStep (); step7.moveStep (); step8.moveStep (); step9.moveStep (); qadam 10.moveStep (); step11.moveStep (); stepper12.moveStep (); qadam 13.moveStep (); }

frist kodlash

va..

#qo'shing

Ko'p qadamli qadam (200, 2, 3, 4, 5); StepperMulti step2 (200, 6, 7, 8, 9); StepperMulti step3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti step5 (200, A4, A5, A6, A7); StepperMulti step6 (200, 22, 23, 24, 25); StepperMulti step7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (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 soni = 0; int init_set_speed = 10; void setup () Serial1.begin (115200); 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); step7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); qadam11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SPEED = 200; void loop () {

/////////////////////////////////////

if (millis () - set_timer1 <6000) {if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } if if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } if if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } if if (millis () - on_timer 1000) {Serial1.write (0x01); hisoblash = 1; }} /////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (tezlik); stepper8.setStep (SPEED); stepper9.setStep (SPEED); step12.setStep (SPEED); } if if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); qadam12.setStep (-SPEED); } if if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); step12.setStep (SPEED); } if if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); qadam12.setStep (-SPEED); } boshqa {stepper7.setStep (0); qadam8.setStep (0); qadam9.setStep (0); qadam12.setStep (0); }} boshqa {stepper7.setStep (0); qadam8.setStep (0); Qadam (0); qadam12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); step5.setStep (-SPEED); step6.setStep (SPEED); step7.setStep (SPEED); } if if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); step5.setStep (SPEED); step6.setStep (-SPEED); qadam7.setStep (-HIZMAT); } if if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); step6.setStep (SPEED); step7.setStep (SPEED); } if if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); step5.setStep (SPEED); step6.setStep (-SPEED); qadam7.setStep (-HIZMAT); } boshqa {stepper2.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam7.setStep (0); }} boshqa {stepper2.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam7.setStep (0); } ////////////////////////////////////////////////////////////// agar millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); step2.setStep (SPEED); step3.setStep (SPEED); step4.setStep (SPEED); step5.setStep (SPEED); step6.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); } if if (millis () - on_timer <5000) {stepper.setStep (-SPEED); step2.setStep (-SPEED); step3.setStep (-SPEED); step4.setStep (-SPEED); step5.setStep (-SPEED); step6.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); } if if (millis () - on_timer <6500) {stepper.setStep (SPEED); step2.setStep (SPEED); step3.setStep (SPEED); step4.setStep (SPEED); step5.setStep (SPEED); step6.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); } if if (millis () - on_timer <8000) {stepper.setStep (-SPEED); step2.setStep (-SPEED); step3.setStep (-SPEED); step4.setStep (-SPEED); step5.setStep (-SPEED); step6.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); } boshqa {stepper.setStep (0); qadam2.setStep (0); stepper3.setStep (0); step4.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam (10); qadam11.setStep (0); }} boshqa {stepper.setStep (0); qadam2.setStep (0); stepper3.setStep (0); step4.setStep (0); qadam 5.setStep (0); qadam 6.setStep (0); qadam (10); qadam11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); step4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); step12.setStep (SPEED); stepper13.setStep (SPEED); } if if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); step4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); qadam12.setStep (-SPEED); stepper13.setStep (-SPEED); } if if (millis () - on_timer <6500) {stepper3.setStep (SPEED); step4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); step11.setStep (SPEED); step12.setStep (SPEED); stepper13.setStep (SPEED); } if if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); step4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); step10.setStep (-SPEED); step11.setStep (-SPEED); qadam12.setStep (-SPEED); stepper13.setStep (-SPEED); } boshqa {stepper3.setStep (0); step4.setStep (0); qadam 8.setStep (0); Qadam (0); qadam (10); qadam11.setStep (0); qadam12.setStep (0); stepper13.setStep (0); }} boshqa {stepper3.setStep (0); step4.setStep (0); qadam8.setStep (0); Qadam (0); qadam (10); qadam11.setStep (0); qadam12.setStep (0); stepper13.setStep (0); } /////////////////////////////////// stepper.moveStep (); step2.moveStep (); step3.moveStep (); step4.moveStep (); step5.moveStep (); step6.moveStep (); step7.moveStep (); step8.moveStep (); step9.moveStep (); qadam 10.moveStep (); step11.moveStep (); step12.moveStep (); qadam 13.moveStep (); }

ikkinchi kodlash

6 -qadam: Kodlashdan oldin …

Kodlashdan oldin …
Kodlashdan oldin …

Bosqichli motorlar bilan bog'liq yangi kutubxona qo'shishingiz kerak.

Shunday qilib, siz ushbu saytga kirasiz va yangi kutubxonani yuklab olasiz.

blog.danggun.net/2092

7 -qadam: ketma -ket aloqa

Siz ikkita arduino mega-telekommunikatsiyasini qilishingiz kerak.

agar (start_count == 0) {

int Ma'lumotlar = Serial1.read (); Serial.println (Ma'lumotlar); agar (Ma'lumotlar == 0x01) {start_count = 1; }

Avvalo, biz bu kodni Maine Arduino Mega -ga muhtojmiz.

if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); hisoblash = 1; }

Arduino Mega, ketma -ket aloqalarni oladi, bu kodlashga muhtoj.

Birinchi kodlash ikkinchi aduino harakatlanishi kerak bo'lgan joyga qo'yiladi.

Tavsiya: