Mundarija:
- Ta'minotlar
- 1 -qadam: Katta tizimni rejalashtiring
- 2 -qadam: Uskuna yaratish
- 3 -qadam: tarmoq yaratish
- 4 -qadam:
- 5 -qadam: kod
- 6 -qadam: Kodlashdan oldin …
- 7 -qadam: ketma -ket aloqa
Video: Cheksiz oyna bilan harakatlanuvchi panjara: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
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
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
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:
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 …
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:
Cheksiz oyna soati yarating: 15 qadam (rasmlar bilan)
Cheksiz oyna soati yarating: Oldingi loyihada men cheksiz oynani qurgan edim, u erda mening asosiy maqsadim soatga aylantirish edi. (Rangli cheksizlik oynasini yarating) Men uni qurganimdan keyin buni ta'qib qilmadim, chunki u ajoyib ko'rinishga ega bo'lsa -da, unda bir nechta narsalar bor edi
LCD va IQ sensori bilan cheksiz oyna: 5 qadam
LCD va IQ sensori bilan cheksiz oyna: bu loyiha sizga cheksiz oynani qanday yasashni ko'rsatib beradi. Asosiy kontseptsiya shundaki, oynadagi LEDlar orqa oynadan oldingi oynaga o'tadigan yorug'lik hosil qiladi, u erda yorug'lik chiqib ketadi, shuning uchun biz ichkarini ko'rishimiz mumkin
Cheksiz oyna kubini yasang: 12 qadam (rasmlar bilan)
Cheksiz oyna kubini yarating: Men birinchi cheksiz oynani yaratishda ma'lumot qidirayotganimda, cheksiz kubiklar tasvirlari va videolariga duch keldim va, albatta, o'zimnikini yasashni xohladim. Meni ushlab turgan asosiy narsa, men buni boshqacha qilmoqchi edim
Interfaol cheksiz oyna: 9 qadam (rasmlar bilan)
Interfaol cheksiz oyna: Bu sinf uchun topshiriq oddiy, ammo murakkab edi: Arduino bilan interaktiv narsalarni yarating. U yaxshi ishlab chiqilgan bo'lishi kerak, texnik jihatdan etarlicha murakkab va original bo'lishi kerak, chunki asl g'oyalar Instructables kabi saytlarda. Fro
Cheksiz oyna soati: 5 qadam (rasmlar bilan)
Infinity Mirror Clock: Bu asosan bezatish uchun qo'lda ishlangan soat. Soatda bir nechta LED chiroqlar bor, u yoqilganda yotoqxona uchun ajoyib bezakdir. O'chirilganda, bu kichik oyna. Albatta, bu soatning o'zi