Cuprins:

Muire: Efecte optice sensibile la sunet: 5 pași
Muire: Efecte optice sensibile la sunet: 5 pași

Video: Muire: Efecte optice sensibile la sunet: 5 pași

Video: Muire: Efecte optice sensibile la sunet: 5 pași
Video: M.G.L. - "CONTACT FATAL 2" (Official Music Video) 2024, Iulie
Anonim
Muire: Efecte optice sensibile la sunet
Muire: Efecte optice sensibile la sunet

Este posibil să fi văzut un model de val în zona în care plasa de țânțari se suprapune atunci când soarele strălucește. Când mutați plasa de țânțari din apropiere sau modificați unghiul, se deplasează și modelul de undă. Dacă modelul cu intervale regulate, precum și plasele de pat se suprapune în mod repetat, acest model poate apărea oriunde. Acesta se numește fenomenul Muirre (Moire), iar modelul care apare se numește modelul Muirre.

PROIECT_MUIRE PATTERN

Modelele Muir au multe tipuri de modele și caracteristici. Acest model este utilizat pentru a crea nouă sectoare și 11 tipuri diferite de modele de acostare pentru a produce o varietate de efecte optice, în funcție de dimensiunea sunetului, pe cadre de structură de cadru dreptunghiulară.

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

PROIECT_MUIRE PATTERN

무 아르 패턴 은 다양한 종류 의 패턴 과 특징 을 가지고 있다. 이 패턴 을 9 개 섹터 와 11 개의 각기 다른 만든 무 아르 패턴 을 이용 하여 직사각형 의 액자형 구조 에 소리 의 크기 에 따라, 각기 다른 무 아르 패턴 의 다양한 착시 효과 체험 을 연출 한다.

Pasul 1: Ce materiale vor fi necesare?

Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?
Ce materiale vor fi necesare?

1. Corpul modelului Moire

acrilic alb 5T [940 mm X 840 mm]

Imprimare acrilică [cerneală acrilică]

2. Model Moire - tipuri în formă

Tipul de rotație

un tip de formă plană

Tipul de hardware

Tip gaură neagră

Efect de micșorare / extindere

un efect de flacără

3. Circuit electric

Arduino Uno x 11

Pană de pâine x 1

Motor pas cu pas_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무 아뢰 패턴 바디

  • 아크릴 5T (acrilic alb) 940mm X 840mm
  • Ink 인쇄 (cerneală neagră)

2. 무 아뢰 패턴 의 종류

  • 회 전형
  • 일자형
  • 하드웨어 형
  • 빨려 들어가는 효과
  • 수축 / 팽창 하는 효과
  • 아지랑이 효과

3. 회로 구성

  • 아두이 도 나노 보드 (arduino UNO)
  • 스텝 모터 (28BYJ-48)
  • 스텝 모터 드라이브 (ULN2003A)
  • Microfon 사운드 센서 (max9814)
  • 빵판 (Pâine)
  • 외부 전원 (sursa de alimentare 5V 25A)

Pasul 2: Figura plană

Figura plană
Figura plană
Figura plană
Figura plană
Figura plană
Figura plană

1. Tăierea figurii plane

Acrilic alb 5T (940mm x 840mm) X 2

Acrilic transparent 5T (940mm x 840mm) X 1

Acrilic transparent 3T (940mm x 840mm) X 1

2. Tipărirea figurilor plane

Tipărire acrilică

1. 도면 커팅

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

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

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

2. 도면 인쇄

아크릴 인쇄

Pasul 3: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului
Diagrama circuitului
Diagrama circuitului
Diagrama circuitului
Diagrama circuitului

hardware Principiul de funcționare

PUTERE -> Arduino UNO -> Senzor amplificare sunet microfon -> Motor Dirver -> Motor pas cu pas

Pasul 4: Codificare

Codificare
Codificare
Codificare
Codificare

Descrierea codificării Arduino

1. Conexiune motor pas cu pas

Odată ce am primit semnalul, am controlat numărul de pași la 180 de grade, conectați la motorul pas. Setați numărul INT pentru a vă conecta la unghiul de rotație al motorului pas.

2. În funcție de valoarea dimensiunii sunetului, controlați viteza motorului pas cu pas

Emite pinul A0 asociat senzorului de microfon, setează valoarea durerii la ieșirea pe monitorul serial și dacă senzorul folosește sintaxa pentru a crește viteza de rotație a motorului pas cu 30 când valoarea durerii depășește 50.

3. Viteza și direcția de rotație a motoarelor pas cu pas care răspund la muzică

Când viteza este de 10 grade, iar zgomotul constant este crescut, acesta se rotește la 30 de grade, inducând diferitele tipare de rotații să arate diferit.

CORDARE ARDUINO

#include // motor pas cu pas- Biblioteca

const int sampleWindow = 50; // Timp de eșantionare 50ms valoare int nesemnată; // Valoarea senzorului de detectare a amplificării sunetului a primit variabileconst int stepsPerRevolution = 2048; // Scăderea acestuia vă va încetini și vă va crește mai repede

Stepper myStepper (stepsPerRevolution, 11, 9, 10, 8); // Pinul motorului pas cu pas int # 1 la Arduino digital 11, 9, 10, 8.

configurare nulă () {

Serial.begin (9600); // Porniți monitorul serial, viteza 9600

}

bucla nulă () {

unsigned long startMillis = millis (); // Timp de eșantionare nesemnat int peakToPeak = 0; // Amplitudinea semnalului vocal

unsigned int signalMax = 0; // Setați dimensiunea maximă la zero inițial nesemnat int signalMin = 1024; // Setați dimensiunea minimă la 1024 inițial

while (milis () - startMillis <sampleWindow) {valoare = analogRead (A0); // preluați datele senzorului de sunet dacă (valoare signalMax) // Mărimi de dimensiuni maxime signalMax = valoare; // Mărime maximă signalMax salvați altceva dacă (valoare <signalMin) // Mărimi minime dimensiune signalMin = valoare; // Dimensiune minimă sigmalMin save}}

peakToPeak = signalMax - signalMin; // Maxim- Min = Valoare amplitudine dublu volți = (peakToPeak * 5.0) / 1024; // Convert to Volts = Convertiți la dimensiunea sunetului

int Viteză = hartă (peakToPeak, 0, 600, 1, 30); // Limitați valoarea peakToPeak de la 0 la 600 la 1 la 30.

// Dacă peakToPeak depășește 600, se pierde // Păstrează valoarea maximă.

myStepper.setSpeed (Speed); // Rotiți viteza motorului pas cu pas la valoarea făcută de funcția hartă (1-30) myStepper.step (stepsPerRevolution / 100); // Unghiul de mișcare al motorului pasului (stepsPerRevolution = 2048) analogWrite (stepsPerRevolution, Speed * 3);

Serial.println (Speed); // Verificați viteza motorului cu monitorul serial

}

}

1. 스텝 모터 연결

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

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

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

microfon 센서 와 연결된 A0 핀 을 출력 하고, 시리얼 모니터 에 소리 값 이 출력 되 게끔 설정 후, dacă 구문 을 사용 하여 센서 에서 소리 값 이 50 이 넘어갈 때 스텝 모터 회전 속도 가 가 30 이 증가 하여, 소리 에 따라 스텝 모터 의 속도 가 제어 되게 함.

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

10 만큼 의 속도 가 진행 되다가, 일정 소리 가 커 지게 되면 30 의 속도 로 회전 하여 각기 다른 패턴 의 회전 들이 달리 보이게 연출 되는 것을 유도함.

CORDARE ARDUINO

#include // motor pas cu pas 의 라이브러리

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

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

configurare oid () {

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

}

bucla nulă () {

unsigned long startMillis = millis (); // 샘플링 시작 unsigned int peakToPeak = 0; // 음성 신호 의 진폭

unsigned int signalMax = 0; // 최대 크기 를 초기 에는 0 으로 설정 unsigned int signalMin = 1024; // 최소 크기 를 초기 에는 1024 로 설정

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

peakToPeak = signalMax - signalMin; // 최대 - 최소 = 진폭 값 dublu volți = (peakToPeak * 5.0) / 1024; // 전압 단위 로 변환 = 소리 크기 로 변환

int Viteză = hartă (peakToPeak, 0, 600, 1, 30); // 0 부터 600 까지 뜨는 peakToPeak 값 을 1 부터 30 까지 로 한정

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

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

}

Recomandat: