Оглавление:

Подвижная сетка с бесконечным зеркалом: 7 шагов
Подвижная сетка с бесконечным зеркалом: 7 шагов

Видео: Подвижная сетка с бесконечным зеркалом: 7 шагов

Видео: Подвижная сетка с бесконечным зеркалом: 7 шагов
Видео: 👽Он хочет выглядеть как пришелец. Black Alien Project 2024, Июль
Anonim
Image
Image

эти видео делают видео и движущееся видео.

Мы хотели показать колеблющееся пространство через движущиеся сетки и зеркало бесконечности, чтобы более эффективно передать ощущение пространства.

Наша работа состоит из двух акриловых пластин, передней и задней, которые показывают людям, как они непосредственно волнуются, а на задних пластинах есть 25 шаговых двигателей, которые действительно производят движение.

Работа состоит из передней панели, которая покажет проблески пространства, деревянной палки, которая выполняет среднее движение, направляющей для стержней и щита, который создает движение с помощью 25 шаговых двигателей.

25 пиков сети, подключенной к 25 шаговым двигателям, создают разные шаблоны в соответствии с установленными значениями кодирования. Кроме того, компания хотела максимально увеличить пространство, объединив прозрачный акрил с передней полупрозрачной пленкой, задним зеркалом и зеркалом Infinity с черной подсветкой. Различные шаблоны анимации созданы на основе волн и серых полос, которые созданы на основе волн воды.

Запасы

Запасы

1. УФ светодиод 12 В 840 см

2. резина белая 12мм 750см

3. Arduino мега 2560 x2

4. драйвер двигателя x25

5. шаговый двигатель x25

6. биполярный кабель для шагового двигателя x25

7. деревянный цилиндр x25

8. ПВХ (9мм) x25

9. пружина x 25

10. акрил 700мм * 700мм

11. Полупрозрачная пленка 1524мм * 1м

12. леска

13. мощность 12В 12,5А, 12В 75А

14. Шкив ГРМ (3d печать) x 25

Шаг 1: спланируйте большой фреймворк

Планируйте большой фреймворк
Планируйте большой фреймворк

Когда мы начинаем, нам нужно спланировать и нарисовать большой каркас. Итак, мы подготовили файл в формате pdf для акриловой рамы и stl файла синхронизирующего шкива (который мы поместили перед шаговым двигателем для ветровой нити, которая может тянуть средний деревянный стержень).

С акриловой рамой и синхронизирующим шкивом нам нужно сначала сделать файл stl и выполнить 3D-печать.

Шаг 2: Изготовление оборудования

Изготовление оборудования
Изготовление оборудования
Изготовление оборудования
Изготовление оборудования
Изготовление оборудования
Изготовление оборудования

box1

1. Поместите 2-слойный черный акрил (№ 1) на пол и прикрепите 5-слойную черную акриловую сторону (№ 2) сверху. Добавьте 5T акриловую черную сетку (№ 3) и прикрепите ее с помощью акриловой связки.

box2

2. Обрызгайте водой прозрачную акриловую пластину и накройте полупрозрачной пленкой. Половина зеркала скручивает карточку, чтобы она не пузырилась. Прикрепите бортик (2) и акриловую прозрачную пленку (1). Не закрепляйте комбинированный акриловый выступ и акриловые зеркала (№ 1) сбоку. Временно закрепите его скотчем (для ремонта с лески или ремонта интерьера).

Шаг 3: создание сетки

Делаем сетку
Делаем сетку
Делаем сетку
Делаем сетку
Делаем сетку
Делаем сетку

1. Деревянная колонна размером 12 мм. Просверлите отверстие в конце, чтобы леска могла войти.

2. С помощью клея прикрепите акриловые пластины к другой стороне перфорированной деревянной колонны.

3. Проденьте резиновую ленту через заднюю часть деревянной стойки и вставьте в нее пружину.

4. общая форма

Шаг 4:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

1. Номер подключения Arduino Mega 2560 Pin

2. разделить электричество на две части

3. схема шагового двигателя и двигателя

4. Два Arduino mega2560 соединены перекрестием TX и RX для последовательной связи.

Шаг 5: Код

#включают

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

установка void ()

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) {// Шаговый двигатель 13 перемещается между 1500 и 6000 секундами. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } иначе, если (миллис () - таймер времени <3000) {stepper13.setStep (-SPEED); // (- 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.setStep (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-СКОРОСТЬ); } иначе, если (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-СКОРОСТЬ); } еще {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 (-СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper7.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <4000) {stepper2.setStep (-SPEED); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } иначе, если (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper7.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <7000) {stepper2.setStep (-SPEED); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } еще {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} еще {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// если (millis () - set_timer3 2000) {если (millis () - on_timer <3500) {stepper.setStep (СКОРОСТЬ); stepper2.setStep (СКОРОСТЬ); stepper3.setStep (СКОРОСТЬ); stepper4.setStep (СКОРОСТЬ); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); } else if (millis () - on_timer <6500) {stepper.setStep (СКОРОСТЬ); stepper2.setStep (СКОРОСТЬ); stepper3.setStep (СКОРОСТЬ); stepper4.setStep (СКОРОСТЬ); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); } иначе, если (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); } еще {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 (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); stepper13.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); stepper12.setStep (-СКОРОСТЬ); stepper13.setStep (-SPEED); } иначе, если (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); stepper13.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); stepper12.setStep (-СКОРОСТЬ); stepper13.setStep (-SPEED); } еще {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 (); }

кодирование

а также..

#включают

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 (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <3000) {stepper13.setStep (-SPEED); } else if (millis () - on_timer <4500) {stepper13.setStep (СКОРОСТЬ); } else if (millis () - on_timer 1000) {Serial1.write (0x01); count = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); } иначе, если (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-СКОРОСТЬ); } иначе, если (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-СКОРОСТЬ); } еще {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 (-СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper7.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <4000) {stepper2.setStep (-SPEED); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } иначе, если (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper7.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <7000) {stepper2.setStep (-SPEED); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } еще {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} еще {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } /////////////////////////////////////////////// если (millis () - set_timer3 2000) {если (millis () - on_timer <3500) {stepper.setStep (СКОРОСТЬ); stepper2.setStep (СКОРОСТЬ); stepper3.setStep (СКОРОСТЬ); stepper4.setStep (СКОРОСТЬ); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); } else if (millis () - on_timer <6500) {stepper.setStep (СКОРОСТЬ); stepper2.setStep (СКОРОСТЬ); stepper3.setStep (СКОРОСТЬ); stepper4.setStep (СКОРОСТЬ); stepper5.setStep (СКОРОСТЬ); stepper6.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper5.setStep (-СКОРОСТЬ); stepper6.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); } еще {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 (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); stepper13.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); stepper12.setStep (-СКОРОСТЬ); stepper13.setStep (-СКОРОСТЬ); } иначе, если (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (СКОРОСТЬ); stepper8.setStep (СКОРОСТЬ); stepper9.setStep (СКОРОСТЬ); stepper10.setStep (СКОРОСТЬ); stepper11.setStep (СКОРОСТЬ); stepper12.setStep (СКОРОСТЬ); stepper13.setStep (СКОРОСТЬ); } иначе, если (миллис () - таймер времени <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-СКОРОСТЬ); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-СКОРОСТЬ); stepper11.setStep (-СКОРОСТЬ); stepper12.setStep (-СКОРОСТЬ); stepper13.setStep (-СКОРОСТЬ); } еще {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 (Данные); если (Данные == 0x01) {start_count = 1; }

В первую очередь нам нужна эта кодировка на Maine Arduino Mega.

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

Arduino Mega, получающая последовательную связь, нуждается в этой кодировке.

Первая кодировка размещается там, где должен двигаться второй адуино.

Рекомендуемые: