Introduction: Muire : Sound-sensitive Optical Effects

You may have seen a wave pattern on the area where the mosquito net overlaps when the sun shines. When you move the nearby mosquito net or change the angle, the wave pattern also moves. If the pattern with regular intervals as well as the bed nets is repeatedly overlapped, this pattern can occur anywhere. This is called the Muirre (Moire) phenomenon, and the pattern that occurs is called the Muirre pattern.

PROJECT_MUIRE PATTERN

Muir patterns have many kinds of patterns and characteristics. This pattern is used to create nine sectors and 11 different types of moor patterns to produce a variety of optical effects, depending on the size of sound, on rectangular frame structure frames.

------------------------------------------------------------------------------------------------------------------------------------------------------

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

PROJECT_MUIRE PATTERN

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

Step 1: What Materials Will Be Needed?

1. Body of the Moire Pattern


  • white acrylic 5T[ 940 mm X 840 mm ]


  • Acrylic printing [ acrylic ink ]

2. Moire Pattern - shaped types

  • Rotational type
  • a flat form type
  • Hardware type
  • Black hole type
  • Shrink / Expanding effect
  • a flaming effect

3. Electric circuit

  • Arduino Uno x 11
  • Bread Board x 1
  • Stepper Motor_28BYJ-48 x 11
  • ULN2003A x 11
  • MAX9814 x 11

-------------------------------------------------------------------------------------------------------------------------------------------------

1. 무아뢰 패턴 바디

  • 아크릴 5T(White acrylic) 940mm X 840mm
  • 아크릴 인쇄 (Black ink)

2. 무아뢰 패턴의 종류

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

3. 회로구성

  • 아두이도 나노 보드 ( arduino UNO )
  • 스텝모터 (28BYJ-48)
  • 스텝 모터 드라이브 (ULN2003A)
  • Microphone 사운드 센서 (max9814)
  • 빵판 (Bread Board)
  • 외부전원 (Power supply 5V 25A)

Step 2: Planar Figure

1. Planar figure cutting
  • White Acrylic 5T (940mm x 840mm) X 2
  • Transparent Acrylic 5T (940mm x 840mm) X 1


  • Transparent Acrylic 3T (940mm x 840mm) X 1

2. Planar figure printing

  • Acrylic printing

------------------------------------------------------------------------------------------------------------------------------------------------------

1. 도면 커팅


  • 흰색 아크릴 5T (940mm x 840mm) X 2
  • 투명 아크릴 5T (940mm x 840mm) X 1
  • 투명 아크릴 3T (940mm x 840mm) X 1

2. 도면 인쇄


  • 아크릴 인쇄

Step 3: Circuit Diagram

  • hardware Operating principle


  • POWER -> Arduino UNO -> Microphone sound amplification sensor -> Motor Dirver -> Stepper motor

Step 4: Coding

Arduino coding description


1. Stepper Motor Connection

Once we received the signal, we controlled the number of steps 180 degrees, connected to the step motor.Set the INT number to connect to the rotation angle of the step motor.

2. Depending on the sound size value, control stepper motor speed

Outputs the A0 pin associated with the microphone sensor, sets the sore value to output on the serial monitor, and if the sensor uses the syntax to increase the rotational speed of the step motor by 30 when the sore value exceeds 50.

3. Speed and direction of rotation of step motors that respond to music

When the speed is 10 degrees, and the constant noise is increased, it rotates at 30 degrees, inducing the different patterns of rotations to look different.


ARDUINO CORDING


#include // stepper motor- Library

const int sampleWindow = 50; // Sampling time 50ms unsigned int value; // Sound amplification sensing sensor value received variableconst int stepsPerRevolution = 2048; //Lowering it will slow you down and increase you faster

Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); // Stepper motor pin int #1 to Arduino digital 11, 9, 10, 8.

void setup() {

Serial.begin(9600); // Start serial monitor, speed 9600

}

void loop() {

unsigned long startMillis = millis(); // Sampling time unsigned int peakToPeak = 0; // Amplitude of the voice signal

unsigned int signalMax = 0; // Set maximum size to zero initially unsigned int signalMin = 1024; // Set minimum size to 1024 initially

while (millis() - startMillis < sampleWindow) { value = analogRead(A0); // retrieve sound sensor data if (value < 1024) { // When the data received is less than or equal to 1024. if (value > signalMax) // Maximum Size Measurements signalMax = value; // Maximum Size signalMax save else if (value < signalMin) // Minimum Size Measurements signalMin = value; // Minimum Size sigmalMin save } }

peakToPeak = signalMax - signalMin; // Maximum- Min = Amplitude Value double volts = (peakToPeak * 5.0) / 1024; // Convert to Volts = Convert to Sound Size

int Speed = map(peakToPeak, 0, 600, 1, 30); // Limit peakToPeak value from 0 to 600 to 1 to 30.

//If peakToPeak exceeds 600, it is lost // Keep the maximum value.

myStepper.setSpeed(Speed); // Rotate the speed of the stepper motor to the value made by the map function (1-30) myStepper.step(stepsPerRevolution / 100); //Angle of movement of the step motor (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println(Speed); //Check the speed of the motor with the serial monitor

}

}

------------------------------------------------------------------------------------------------------------------------------------------------------


1. 스텝모터 연결

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

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

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

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

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

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


ARDUINO CORDING


#include // stepper motor의 라이브러리

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

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

oid setup() {

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

}

void loop() {

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

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

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

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

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

}

Step 5: Making Film

  • Making Film