Мазмуну:
- Жабдуулар
- 1 -кадам: Чоң алкакты пландаңыз
- 2 -кадам: Аппаратты жасоо
- 3 -кадам: Тор түзүү
- 4 -кадам:
- 5 -кадам: Код
- 6 -кадам: Коддоодон мурун …
- 7 -кадам: Сериялык байланыш
Video: Infinity Mirror менен жылуучу тор: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
бул видеолор видеону тартып, жылдырып жатат.
Биз термелген мейкиндикти кыймылдуу торчолор аркылуу көрсөтүүнү кааладык жана мейкиндик сезимин эффективдүү көрсөтүү үчүн Infinity Mirror.
Биздин ишибиз эки акрил плитадан турат, алдыңкы жана арткы плиталар, алар адамдарга түздөн -түз козгогонун көрсөтүшөт, ал эми арткы плиталарда 25 кадам кыймылдаткычы бар.
Жумуш мейкиндиктин жаркыроосун көрсөтө турган алдыңкы панелден, ортоңку кыймылды аткаруучу жыгач таяктан, таяктар үчүн жол көрсөткүчтөн жана 25 тепкичтүү кыймылдаткычтар аркылуу кыймыл жаратуучу тактан турат.
25 баскычтуу моторлорго туташкан 25 чоку белгиленген коддоо баалуулуктарына ылайык ар кандай үлгүлөрдү чыгарат. Мындан тышкары, компания тунук акрилди алдыңкы жарым күзгү пленка, арткы күзгү жана кара жарыктандырылган Infinity күзгүсү менен айкалыштырып мейкиндикти максималдаштыргысы келген. Ар кандай анимация үлгүлөрү суу толкундарынын негизинде жасалган толкундардын жана тамчылардын негизинде жасалат.
Жабдуулар
Жабдуулар
1. UV LED 12V 840cm
2. Резина ак 12мм 750см
3. Arduino мега 2560 x2
4. Мотор айдоочу x25
5. Step мотор x25
6. stepper мотор x25 үчүн эки полярдуу кабель
7. жыгач цилиндр x25
8.pvc (9мм) x25
9. Жаз х 25
10. акрил 700мм*700мм
11. Жарым күзгү тасмасы 1524mm * 1M
12. Балык линиясы
13. Power 12V 12.5A, 12V 75A
14. убакыт шкиви (3d басма) x 25
1 -кадам: Чоң алкакты пландаңыз
Биз баштаганда, биз чоң алкакты пландап, чийишибиз керек. Ошентип, биз акрилдин жалпы алкагы жана убакыт шкафы stl файлы үчүн pdf файлын даярдадык (биз аларды орто жыгач таякчаны тарта турган шамал жип үчүн тепкич моторунун алдына койдук).
акрилдин жалпы алкагы жана убакыттын шкиви менен биз биринчи стл файлын жана 3d басып чыгарышыбыз керек.
2 -кадам: Аппаратты жасоо
куту1
1. 2T акрил кара (No1) полго коюп, үстүнө 5T акрил кара капталын (No2) тиркеңиз. 5T акрил кара торун (No3) кошуп, акрил байланышын колдонуп тиркеңиз.
куту2
2. Акрил тунук табакчасына суу чачып, жарым күзгү пленкасы бар. Жарты күзгү көбүктөнүп калбашы үчүн картаны тоголотот. Капталын (2) жана акрил тунуктугун (1) тиркеңиз. Айкалыштырылган акрил чыгышы менен акрил күзгүлөрүн (No1) капталынан бекитпеңиз. Убактылуу аны скотч менен оңдоңуз (балык линиясын оңдоо же интерьерди жаңыртуу үчүн).
3 -кадам: Тор түзүү
1. Жыгач мамычанын өлчөмү 12 мм. Балык кармоочу линиянын киришине уруксат берүү үчүн аягында тешик жасаңыз.
2. Акрил плиталарын желимди колдонуп тешилген жыгач мамычанын башка жагына жабыштырыңыз.
3. Жыгач мамынын артына резина боону салып, ичине пружина салыңыз.
4. Жалпы форма
4 -кадам:
1. Arduino Mega 2560 Pin Connection Number
2. электрди эки бөлүккө бөлүү
3. Stepper мотор жана мотор айдоочу схемасы
4. Эки Arduino mega2560s сериялык байланыш үчүн TX жана RX өтүү менен туташкан.
5 -кадам: Код
#кошуу
StepperMulti stepper (200, 2, 3, 4, 5); // stepper моторун номерлөө StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (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 = миллис (); uint32_t set_timer1 = миллис (); uint32_t set_timer2 = миллис (); uint32_t set_timer3 = миллис (); uint32_t set_timer4 = миллис (); uint32_t set_timer5 = миллис (); uint32_t set_timer6 = миллис (); uint32_t set_timer7 = миллис (); uint32_t set_timer8 = миллис (); uint32_t set_timer9 = миллис (); uint32_t set_timer10 = миллис (); int count = 0; int init_set_speed
жараксыз орнотуу ()
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); 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 SPEED = 200; // мотор ылдамдыгы боштук цикл () {//////////////////////////////////// if (millis () - set_timer1 <6000) {// Step 13 мотору 1500 менен 6000 секундага чейин кыймылдайт. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) тескери айланууну билдирет} else if if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); count = 1; }} /////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (ЫЛДАМДЫК); stepper8.setStep (SPEED); stepper9.setStep (SPEED); 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 (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} башка {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 (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} башка {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////////// if if (миллис () - set_timer3 2000) {if (millis () - on_timer <3500) {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 <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 (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } 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); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} башка {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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); 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); } 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); }} башка {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 (); }
frist коддоо
жана..
#кошуу
StepperMulti stepper (200, 2, 3, 4, 5); StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (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 = миллис (); uint32_t set_timer1 = миллис (); uint32_t set_timer2 = миллис (); uint32_t set_timer3 = миллис (); uint32_t set_timer4 = миллис (); uint32_t set_timer5 = миллис (); uint32_t set_timer6 = миллис (); uint32_t set_timer7 = миллис (); uint32_t set_timer8 = миллис (); uint32_t set_timer9 = миллис (); uint32_t set_timer10 = миллис (); int count = 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); 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 SPEED = 200; void loop () {
/////////////////////////////////////
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); count = 1; }} /////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); 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 (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} башка {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 (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} башка {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////////// if if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {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 <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 (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } 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); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} башка {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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); 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 (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); 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); } 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); }} башка {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 (); }
экинчи коддоо
6 -кадам: Коддоодон мурун …
Сиз кадам моторлоруна байланыштуу жаңы китепкана кошушуңуз керек.
Ошентип, сиз бул сайтка кирип, жаңы китепкананы жүктөп алыңыз.
blog.danggun.net/2092
7 -кадам: Сериялык байланыш
Сиз эки arduino мега-телекоммуникациясын жасашыңыз керек.
if (start_count == 0) {
int Data = Serial1.read (); Serial.println (Маалыматтар); if (Data == 0x01) {start_count = 1; }
Биринчиден, бул Мэн Ардуино Мегадагы коддоого муктажбыз.
if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); count = 1; }
Сериялык байланышты алган Ардуино Мега бул коддоого муктаж.
Биринчи коддоо экинчи адуино жылышы керек болгон жерге коюлат.
Сунушталууда:
Easy Infinity Mirror Arduino Gemma & NeoPixels менен: 8 кадам (сүрөттөр менен)
Easy Infinity Mirror Arduino Gemma & NeoPixels менен: Мына! Сыйкырдуу жана алдамчы жөнөкөй чексиздик күзгүсүнө терең караңыз! Жарык диоддордун бир тилкеси чексиз чагылуу эффектин түзүү үчүн күзгү сэндвичтин ичине жаркырайт. Бул долбоор менин Ардуин интросунун көндүмдөрүн жана ыкмаларын колдонот
Тор байлоочу инвертор: 10 кадам (сүрөттөр менен)
Grid Tie Inverter: Бул эттүү долбоор, андыктан бүктөңүз! Тармак инверторлору кубаттуулукту розеткага салууга мүмкүнчүлүк берет, бул укмуштуудай жөндөм. Мага алардын дизайнына кирген электрдик электроника жана башкаруу системалары кызыктуу көрүнөт, ошондуктан мен өзүмдү курдум. Бул отчет
Жылуучу FPV камерасы менен RC танкы: 9 кадам (сүрөттөр менен)
RC Tank Кыймылдуу FPV Камерасы менен: Hello.In бул нускамада мен сизге кантип FPV камерасы менен алыстан башкаруу танкасын курууну көрсөтөм. Башында мен FPV камерасы жок бир гана RC танкасын жасайм, бирок аны үйдө айдап жүргөндө мен анын кайда экенин көрө элекмин. Ошентип, мен кошумчалай турган нерсени ойлоп таптым
DIY 18650 Литий -Ион Клеткалары Заряддалуучу Тор: 7 Кадам (Сүрөттөр менен)
DIY 18650 литий -иондук клеткалардын заряддоо түйүнү: Мен велосипедди редукторлуу DC мотору менен моторлоштуруунун үстүндө иштеп келе жатам, эми ал үчүн батарейка керек. Батарея топтомун жасоо үчүн мен эки эски hoverboard батареясынан 18650 литий -ион клеткалары менен барууну чечтим
Ikea робототехникасы: жылуучу стол: 6 кадам (сүрөттөр менен)
Ikea Robotics: Moveing Table: * Мен бул долбоорду толугу менен кайра жаратууга аракет кылып жатам, бирок баардык байланышкан файлдарды таба элекмин. Мен муну аларды тапканымда жаңыртам. Долбоор стол жана отургучтан турган. Мен столдун көрсөтмөлөрүнөн баштайм жана андан кийин