Inhoudsopgave:

Muire: Geluidsgevoelige optische effecten: 5 stappen
Muire: Geluidsgevoelige optische effecten: 5 stappen

Video: Muire: Geluidsgevoelige optische effecten: 5 stappen

Video: Muire: Geluidsgevoelige optische effecten: 5 stappen
Video: ScHoolboy Q - JoHn Muir (Official Music Video) 2024, November
Anonim
Muire: Geluidsgevoelige optische effecten
Muire: Geluidsgevoelige optische effecten

Je hebt misschien een golfpatroon gezien op het gebied waar de klamboe overlapt als de zon schijnt. Wanneer je de nabijgelegen klamboe verplaatst of de hoek verandert, beweegt ook het golfpatroon. Als het patroon met regelmatige tussenpozen evenals de muskietennetten elkaar herhaaldelijk overlappen, kan dit patroon overal voorkomen. Dit wordt het Muirre (Moire)-fenomeen genoemd en het patroon dat optreedt wordt het Muirre-patroon genoemd.

PROJECT_MUIRE PATTERN

Muir-patronen hebben veel soorten patronen en kenmerken. Dit patroon wordt gebruikt om negen sectoren en 11 verschillende soorten veenpatronen te creëren om een verscheidenheid aan optische effecten te produceren, afhankelijk van de grootte van het geluid, op rechthoekige framestructuurframes.

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

PROJECT_MUIRE PATTERN

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

Stap 1: Welke materialen zijn nodig?

Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?
Welke materialen zijn nodig?

1. Lichaam van het Moiré-patroon

wit acryl 5T [940 mm X 840 mm]

Acryldruk [acrylinkt]

2. Moiré-patroon - vormige typen

Rotatietype:

een plat formuliertype

Hardwaretype:

Type zwart gat

Krimp-/uitbreidingseffect

een vlammend effect

3. Elektrisch circuit

Arduino Uno x 11

Broodplank x 1

Stappenmotor_28BYJ-48 x 11"

ULN2003A x 11

MAX9814 x 11

1. 패턴 바디

  • 아크릴5T (Wit acryl) 940mm X 840mm
  • 아크릴 인쇄 (Zwarte inkt)

2. 패턴의 종류

  • 회 전형
  • 일자형
  • 하드웨어 형
  • 들어가는 효과
  • / 팽창 하는 효과
  • 효과

3

  • 나노 보드 (arduino UNO)
  • 스텝모터 (28BYJ-48)
  • 모터 드라이브 (ULN2003A)
  • Microfoon 사운드 센서 (max9814)
  • 빵판 (Broodplank)
  • 외부전원 (Voeding 5V 25A)

Stap 2: Vlakke figuur

vlakke figuur
vlakke figuur
vlakke figuur
vlakke figuur
vlakke figuur
vlakke figuur

1. Vlak figuur snijden

Wit acryl 5T (940 mm x 840 mm) X 2"

Transparant acryl 5T (940 mm x 840 mm) X 1"

Transparant acryl 3T (940 mm x 840 mm) X 1"

2. Vlakke figuur afdrukken

Acryl afdrukken

1

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

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

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

2. 인쇄

인쇄

Stap 3: Schakelschema

Schakelschema
Schakelschema
Schakelschema
Schakelschema
Schakelschema
Schakelschema

hardware Werkingsprincipe:

POWER -> Arduino UNO -> Microfoon geluidsversterkingssensor -> Motor Dirver -> Stappenmotor

Stap 4: Coderen

codering
codering
codering
codering

Arduino codering beschrijving:

1. Stappenmotoraansluiting

Nadat we het signaal hadden ontvangen, controleerden we het aantal stappen 180 graden, verbonden met de stappenmotor. Stel het INT-nummer in om verbinding te maken met de rotatiehoek van de stappenmotor.

2. Afhankelijk van de waarde van de geluidsgrootte, regelt u de snelheid van de stappenmotor;

Voert de A0-pin uit die is gekoppeld aan de microfoonsensor, stelt de pijnwaarde in op uitvoer op de seriële monitor en als de sensor de syntaxis gebruikt om de rotatiesnelheid van de stappenmotor met 30 te verhogen wanneer de pijnwaarde hoger is dan 50.

3. Snelheid en draairichting van stappenmotoren die reageren op muziek

Wanneer de snelheid 10 graden is en het constante geluid wordt verhoogd, roteert het op 30 graden, waardoor de verschillende rotatiepatronen er anders uitzien.

ARDUINO CORDING

#include // stappenmotor- Bibliotheek

const int sampleWindow = 50; // Samplingtijd 50ms unsigned int-waarde; // Sensorwaarde voor geluidsversterking ontvangen variabeleconst int stepsPerRevolution = 2048; // Als je het verlaagt, vertraag je en verhoog je je sneller

Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); // Stappenmotor pin int #1 naar Arduino digitaal 11, 9, 10, 8.

ongeldige setup() {

Serieel.begin(9600); // Start seriële monitor, snelheid 9600

}

lege lus() {

unsigned long startMillis = millis(); // Sampling tijd unsigned int peakToPeak = 0; // Amplitude van het spraaksignaal

unsigned int signaalMax = 0; // Stel de maximale grootte in op nul, aanvankelijk niet-ondertekend int signalMin = 1024; // Stel in eerste instantie de minimumgrootte in op 1024

while (millis() - startMillis <sampleWindow) {waarde = analogRead(A0); // haal geluidssensorgegevens op als (waardesignaalMax) // Maximale groottemetingen signaalMax = waarde; // Maximale grootte signalMax save else if (waarde < signalMin) // Minimale grootte metingen signalMin = waarde; // Minimale grootte sigmalMin opslaan } }

peakToPeak = signaalMax - signaalMin; // Maximum- Min = Amplitude Waarde dubbele volt = (peakToPeak * 5.0)/1024; // Converteren naar Volt = Converteren naar Geluidsgrootte

int Snelheid = kaart (piekToPeak, 0, 600, 1, 30); // Limiet peakToPeak-waarde van 0 tot 600 tot 1 tot 30.

//Als peakToPeak groter is dan 600, gaat het verloren // Bewaar de maximale waarde.

myStepper.setSpeed (Snelheid); // Draai de snelheid van de stappenmotor naar de waarde gemaakt door de kaartfunctie (1-30) myStepper.step (stepsPerRevolution / 100); // Bewegingshoek van de stappenmotor (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println (Snelheid); //Controleer de snelheid van de motor met de seriële monitor

}

}

1

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

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

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

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

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

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

ARDUINO CORDING

#inclusief // stappenmotor의 라이브러리

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

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

oid setup() {

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

}

lege lus() {

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

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

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

peakToPeak = signaalMax - signaalMin; // 최대- 최소 = 진폭값 dubbele volt = (peakToPeak * 5.0) / 1024; // 전압 단위로 변환 = 소리 크기로 변환

int Snelheid = kaart (piekToPeak, 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 (Snelheid); //시리얼 모니터로 모터의 속도를 확인하겠다

}

Aanbevolen: