Muire

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

PROJECT_MUIRE PATTERN

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

Step 1: Planar Figure

  • 무아르 패턴 제작에 필요한 재료
  • 아크릴 5T(White acrylic) 940mm X 840mm
  • 아크릴 인쇄 (Black ink)
  • 회로구성 및 구동을 위해 필요한 재료
  • 아두이도 나노 보드 ( arduino UNO )
  • 스텝모터 (28BYJ-48)
  • 스텝 모터 드라이브 (ULN2003A)
  • Microphone 사운드 센서 (max9814)
  • 빵판 (Bread Board)
  • 전선 (빨,검)
  • 외부전원 (Power supply 5V 25A)

Arduino Uno x 11

Bread Board x 1

Stepper Motor_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

Step 2: Planar Figure

-White Acrylic 5T (940mm x 840mm)

-Transparent Acrylic 5T

-Transparent Acrylic 3T

Step 3: Circuit Diagram

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

Step 4: Coding

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: Completion

Muire

Step 6: Making Film

Share

    Recommendations

    • Toys Contest

      Toys Contest
    • PCB Contest

      PCB Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018

    Discussions