
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04


эти видео делают видео и движущееся видео.
Мы хотели показать колеблющееся пространство через движущиеся сетки и зеркало бесконечности, чтобы более эффективно передать ощущение пространства.
Наша работа состоит из двух акриловых пластин, передней и задней, которые показывают людям, как они непосредственно волнуются, а на задних пластинах есть 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, получающая последовательную связь, нуждается в этой кодировке.
Первая кодировка размещается там, где должен двигаться второй адуино.
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов

Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Часы Vortex: наручные часы с зеркалом бесконечности: 10 шагов (с изображениями)

Часы Vortex: наручные часы с зеркалом бесконечности: целью этого проекта было создание носимой версии зеркальных часов бесконечности. Он использует свои светодиоды RGB для индикации времени, назначая часы, минуты и секунды красным, зеленым и синим светам соответственно и перекрывая эти оттенки t
Зарядная сетка для литий-ионных аккумуляторов DIY 18650: 7 шагов (с изображениями)

Зарядная сетка для литий-ионных элементов DIY 18650: я работал над моторизацией своего велосипеда с помощью мотор-редуктора постоянного тока, и теперь мне нужен аккумулятор для этого. Поэтому, чтобы сделать аккумуляторную батарею, я решил использовать популярные литий-ионные элементы 18650 из двух старых аккумуляторов для ховербордов
Очень забавный и самый маленький робот (сетка): 7 шагов

Очень забавный и самый маленький робот (сетка): это забавный проект