Obsah:

Muire: Optické efekty citlivé na zvuk: 5 krokov
Muire: Optické efekty citlivé na zvuk: 5 krokov

Video: Muire: Optické efekty citlivé na zvuk: 5 krokov

Video: Muire: Optické efekty citlivé na zvuk: 5 krokov
Video: Часть 3 — Аудиокнига Эдит Уортон «Дом веселья» (Книга 1 — главы 11–15) 2024, Júl
Anonim
Muire: Optické efekty citlivé na zvuk
Muire: Optické efekty citlivé na zvuk

Možno ste videli vlnový vzor v oblasti, kde sa moskytiéra prekrýva, keď svieti slnko. Keď pohnete blízkou moskytiérou alebo zmeníte uhol, pohne sa aj vlnový obrazec. Ak sa vzor s pravidelnými intervalmi, ako aj posteľné siete opakovane prekrývajú, môže sa tento vzor vyskytnúť kdekoľvek. Toto sa nazýva fenomén Muirre (Moire) a vzor, ktorý sa vyskytuje, sa nazýva Muirreov vzor.

VZOR PROJECT_MUIRE

Vzory Muir majú mnoho druhov vzorov a vlastností. Tento vzor sa používa na vytváranie deviatich sektorov a 11 rôznych typov vlečných vzorov na vytváranie rôznych optických efektov v závislosti od veľkosti zvuku na rámcoch obdĺžnikovej rámovej štruktúry.

것이다 이 비칠 때 모기장 이 겹쳐 있는 부위 에 생긴 물결 무늬 를 를 본 적이 있을 것이다. 움직인다 모기장 을 상하 좌우 로 움직 이거나 각도 를 바꾸면 물결 무늬 무늬 움직인다. 있다 뿐만 아니라 일정한 간격 을 갖는 무늬 가 반복 해 겹쳐 지면 지면 어디 서든 무늬 가 생길 생길 있다 있다. 이 를 무아레 (모아레, Moire) 현상 이라고 부르고, 이때 생기는 무늬 를 무아레 무늬 라고 부른다.

VZOR PROJECT_MUIRE

있다 아르 패턴 은 다양한 종류 의 패턴 과 특징 을 가지고 있다. 개 패턴 을 9 개 섹터 와 11 개의 각기 다른 만든 무 아르 패턴 을 을 이용 직사각형 직사각형 액자형 구조 프레임 에 에 소리 크기 에 액자형 따라 따라 따라 따라 한다 한다 한다 한다 한다 한다 한다 한다 한다 한다

Krok 1: Aké materiály budú potrebné?

Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?
Aké materiály budú potrebné?

1. Telo vzoru Moire

biely akryl 5T [940 mm x 840 mm]

Akrylová tlač [akrylový atrament]

2. Moire Pattern - tvarované typy

Rotačný typ

plochý typ

Typ hardvéru

Typ čiernej diery

Efekt zmenšenia / rozšírenia

horiaci efekt

3. Elektrický obvod

Arduino Uno x 11

Chlebová doska x 1

Krokový motor_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무 아뢰 패턴 바디

  • 아크릴 5T (biely akryl) 940 mm x 840 mm
  • Black 인쇄 (čierny atrament)

2. 무 아뢰 패턴 의 종류

  • 전형 전형
  • 일자형
  • 형 형
  • 빨려 들어가는 효과
  • 수축 / 팽창 하는 효과
  • 효과 효과

3. 회로 구성

  • 아두이 도 나노 보드 (arduino UNO)
  • 스텝 모터 (28BYJ-48)
  • 드라이브 모터 드라이브 (ULN2003A)
  • Mikrofón 사운드 센서 (max. 9814)
  • 빵판 (Bread Board)
  • 전원 전원 (Napájanie 5V 25A)

Krok 2: Planárny obrázok

Planárna postava
Planárna postava
Planárna postava
Planárna postava
Planárna postava
Planárna postava

1. Rovinné rezanie postavy

Biely akryl 5T (940 mm x 840 mm) X 2

Priehľadný akryl 5T (940 mm x 840 mm) X 1

Priehľadný akryl 3T (940 mm x 840 mm) X 1

2. Rovinná tlač figúr

Akrylová tlač

1. 도면 커팅

아크릴 아크릴 5T (940 mm x 840 mm) X 2

아크릴 아크릴 5T (940 mm x 840 mm) X 1

아크릴 아크릴 3T (940 mm x 840 mm) X 1

2. 도면 인쇄

인쇄 인쇄

Krok 3: Schéma zapojenia

Schéma zapojenia
Schéma zapojenia
Schéma zapojenia
Schéma zapojenia
Schéma zapojenia
Schéma zapojenia

hardvér Princíp činnosti

NAPÁJANIE -> Arduino UNO -> Snímač zosilnenia zvuku mikrofónu -> Motor Dirver -> Krokový motor

Krok 4: Kódovanie

Kódovanie
Kódovanie
Kódovanie
Kódovanie

Popis kódovania Arduino

1. Pripojenie krokového motora

Akonáhle sme dostali signál, riadili sme počet krokov 180 stupňov, pripojených k krokovému motoru. Nastavte číslo INT na pripojenie k uhlu otáčania krokového motora.

2. V závislosti od hodnoty veľkosti zvuku ovládajte otáčky krokového motora

Vyvedie pin A0 spojený so snímačom mikrofónu, nastaví hodnotu bolesti na výstup na sériový monitor a ak senzor použije syntax na zvýšenie rýchlosti otáčania krokového motora o 30, keď hodnota bolesti presiahne 50.

3. Rýchlosť a smer otáčania krokových motorov, ktoré reagujú na hudbu

Keď je rýchlosť 10 stupňov a zvýšený je konštantný hluk, otáča sa o 30 stupňov, čo spôsobuje, že rôzne vzorce rotácií vyzerajú odlišne.

ARDUINO KÓDOVANIE

#include // krokový motor- knižnica

const int sampleWindow = 50; // Doba vzorkovania 50ms bez znamienka int hodnota; // Hodnota snímača zosilnenia zvuku prijatá premennáconst int krokyPerRevolution = 2048; // Jeho zníženie vás spomalí a zvýši rýchlejšie

Stepper myStepper (stepsPerRevolution, 11, 9, 10, 8); // Kolík krokového motora int #1 do Arduino digital 11, 9, 10, 8.

neplatné nastavenie () {

Serial.begin (9600); // Spustenie sériového monitora, rýchlosť 9600

}

prázdna slučka () {

nepodpísaný dlhý štartMillis = millis (); // Sampling time unsigned int peakToPeak = 0; // Amplitúda hlasového signálu

nepodpísaný int signálMax = 0; // Nastaviť maximálnu veľkosť na nulu na začiatku bez znamienka int signalMin = 1024; // Najprv nastavte minimálnu veľkosť na 1024

while (millis () - startMillis <sampleWindow) {value = analogRead (A0); // načítanie údajov zvukového senzora if (hodnota signalMax) // merania maximálnej veľkosti signalMax = hodnota; // Maximum Size signalMax save else if (hodnota <signalMin) // Minimal Size Measurements signalMin = hodnota; // Minimálna veľkosť sigmalMin save}}

peakToPeak = signalMax - signalMin; // Maximum- Min = Hodnota amplitúdy double volts = (peakToPeak * 5,0) / 1024; // Previesť na volty = Previesť na veľkosť zvuku

int Rýchlosť = mapa (peakToPeak, 0, 600, 1, 30); // Obmedzenie hodnoty peakToPeak od 0 do 600 až 1 až 30.

// Ak peakToPeak prekročí 600, stratí sa // Ponechá maximálnu hodnotu.

myStepper.setSpeed (rýchlosť); // Otočte rýchlosť krokového motora na hodnotu vytvorenú funkciou mapy (1-30) myStepper.step (stepsPerRevolution / 100); // Uhol pohybu krokového motora (stepsPerRevolution = 2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println (rýchlosť); // Otáčky motora skontrolujte pomocou sériového monitora

}

}

1. 스텝 모터 연결

수가 신호 를 받을 때 스텝 바퀴 수가 180 도 제어 를 하였고, 스텝 모터 와 연결 한

INT 넘버 를 설정 하여 스텝 모터 의 회전 각과 연결 진행

2. 소리 크기 값 에 따라, 스텝 모터 속도 제어

mikrofón 센서 와 연결된 A0 핀 을 출력 하고, 시리얼 모니터 에 소리 값 이 출력 되 게끔 if if 50 이 넘어갈 때 스텝 모터 회전 의 가 가 30 이 증가 하여, 소리 에 따라 함 모터 의 속도 가 제어 되게 함.

3. 음악 에 반응 하는 스텝 모터 의 속도 와 회전 방향

10 만큼 의 속도 가 진행 되다가, 일정 소리 가 커 되면 되면 의 의 되면 되면 되면 되면 되면 되면 되면 되면 되면 되면 되면 유도함 되면 유도함 되면 되면 되면 되면 되면 유도함

ARDUINO KÓDOVANIE

#include // krokový motor 의 라이브러리

const int sampleWindow = 50; // 샘플링 한 시간 50ms bez znamienka int hodnota; // 소리 증폭 감지 센서 값 받는 변수 const int stepsPerRevolution = 2048; // *************** 여길 낮추면 느려지고 높이면 빨라짐

Stepper myStepper (stepsPerRevolution, 11, 9, 10, 8); // 스텝 모터 핀 int 1 번 부터 아두 이노 디지털 11, 9, 10, 8 순 으로 장착

oid setup () {

Serial.begin (9600); // 시리얼 모니터 시작, 속도 는 9600

}

prázdna slučka () {

nepodpísaný dlhý štartMillis = millis (); // 샘플링 시작 nepodpísané int peakToPeak = 0; // 음성 신호 의 진폭

nepodpísaný int signálMax = 0; // 최대 크기 를 초기 에는 0 으로 설정 nepodpísaný int signalMin = 1024; // 최소 크기 를 초기 에는 1024 로 설정

while (millis () - startMillis <sampleWindow) {// 데이터 를 50ms 마다 모으는 while 문 value = analogRead (A0); // 소리 감지 센서 에 더 데이터 받아 오기 if (hodnota signalMax) // 최대 크기 측정 signalMax = hodnota; // 최대 크기 signalMax 에 저장 else if (hodnota <signalMin) // 최소 크기 측정 signalMin = hodnota; // 최소 크기 sigmalMin 에 저장}}

peakToPeak = signalMax - signalMin; // 최대- 최소 = 진폭 값 dvojité volty = (peakToPeak * 5,0) / 1024; // 전압 단위 로 변환 = 소리 크기 로 변환

int Rýchlosť = mapa (peakToPeak, 0, 600, 1, 30); // 0 부터 600 까지 뜨는 peakToPeak 값 을 1 부터 30 까지 로 한정

// peakToPeak 의 최대 값 이 600 을 넘어 가면 끊김 // 최대 값 을 잘 잡아 잡아 주어야 S myStepper.setSpeed (rýchlosť); // 스텝 모터 의 스피드 를 위 mapa 함수 로 만들어 준 값 으로 회전 시킨다 (1-30) myStepper.step (stepsPerRevolution / 100); // 스텝 모터 가 움직이는 각 (stepsPerRevolution = 2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println (rýchlosť); // 시리얼 모니터 로 모터 의 속도 를 확인 하겠다

}

Odporúča: