สารบัญ:

Muire: เอฟเฟกต์แสงที่ไวต่อเสียง: 5 ขั้นตอน
Muire: เอฟเฟกต์แสงที่ไวต่อเสียง: 5 ขั้นตอน

วีดีโอ: Muire: เอฟเฟกต์แสงที่ไวต่อเสียง: 5 ขั้นตอน

วีดีโอ: Muire: เอฟเฟกต์แสงที่ไวต่อเสียง: 5 ขั้นตอน
วีดีโอ: How to Study the Bible | Dwight L Moody | Free Christian Audiobook 2024, กรกฎาคม
Anonim
Muire: เอฟเฟกต์แสงที่ไวต่อเสียง
Muire: เอฟเฟกต์แสงที่ไวต่อเสียง

คุณอาจเคยเห็นลายคลื่นตรงบริเวณที่มุ้งทับซ้อนกันเมื่อแสงแดดส่องถึง เมื่อคุณย้ายมุ้งที่อยู่ใกล้เคียงหรือเปลี่ยนมุม รูปแบบคลื่นก็จะเคลื่อนที่ด้วย หากรูปแบบที่มีระยะห่างสม่ำเสมอและตาข่ายคลุมเตียงซ้ำๆ กัน รูปแบบนี้สามารถเกิดขึ้นได้ทุกที่ สิ่งนี้เรียกว่าปรากฏการณ์ Muirre (Moire) และรูปแบบที่เกิดขึ้นเรียกว่ารูปแบบ Muirre

PROJECT_MUIRE PATTERN

รูปแบบ Muir มีรูปแบบและลักษณะหลายประเภท รูปแบบนี้ใช้เพื่อสร้างเก้าส่วนและรูปแบบทุ่ง 11 ประเภทที่แตกต่างกันเพื่อสร้างเอฟเฟกต์แสงที่หลากหลาย ขึ้นอยู่กับขนาดของเสียงบนเฟรมโครงสร้างกรอบสี่เหลี่ยม

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

PROJECT_MUIRE PATTERN

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

ขั้นตอนที่ 1: ต้องใช้วัสดุอะไรบ้าง?

ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?
ต้องใช้วัสดุอะไรบ้าง?

1. ร่างของลวดลายมัวร์

อะคริลิคสีขาว 5T[940 มม. X 840 มม.]

การพิมพ์อะครีลิค [หมึกอะครีลิค]

2. Moire Pattern - รูปทรงต่างๆ

ประเภทการหมุน

แบบแบน

ประเภทฮาร์ดแวร์

ประเภทหลุมดำ

ย่อ/ขยายผล

เอฟเฟกต์เปลวไฟ

3. วงจรไฟฟ้า

Arduino Uno x 11

เขียงขนมปัง x 1

สเต็ปเปอร์มอเตอร์_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무아뢰 패턴 바디

  • อาร์ค 5T(อะครีลิคสีขาว) 940mm X 840mm
  • 아크릴 인쇄 (หมึกดำ)

2. 무아뢰 패턴의 종류

  • 자형
  • 하어형
  • 어가는 효과
  • 수축 / 팽창 하는 효과
  • อาจี랑이효과

3. 회로구성

  • 아두이도 나노 보드 (arduino UNO)
  • 스텝모터 (28BYJ-48)
  • 스텝 드 드라이브 (ULN2003A)
  • ไมโครโฟน 사운드 센서 (max9814)
  • 빵판 (เขียงขนมปัง)
  • 외부전원 (แหล่งจ่ายไฟ 5V 25A)

ขั้นตอนที่ 2: รูประนาบ

รูประนาบ
รูประนาบ
รูประนาบ
รูประนาบ
รูประนาบ
รูประนาบ

1. การตัดรูประนาบ

อะคริลิคสีขาว 5T (940 มม. x 840 มม.) X 2

อะคริลิคใส 5T (940 มม. x 840 มม.) X 1

อะคริลิคใส 3T (940 มม. x 840 มม.) X 1

2. การพิมพ์ฟิกเกอร์ระนาบ

พิมพ์อะคริลิก

1. 도면 커팅

흰색 สีครีม 5T (940mm x 840mm) X 2

투명 สีคราม 5T (940mm x 840mm) X 1

투명 ชมพู 3T (940mm x 840mm) X 1

2. 도면 인쇄

อาร์ค릴อิน쇄

ขั้นตอนที่ 3: แผนภาพวงจร

แผนภูมิวงจรรวม
แผนภูมิวงจรรวม
แผนภูมิวงจรรวม
แผนภูมิวงจรรวม
แผนภูมิวงจรรวม
แผนภูมิวงจรรวม

ฮาร์ดแวร์ หลักการทำงาน

POWER -> Arduino UNO -> เซ็นเซอร์ขยายเสียงไมโครโฟน -> Motor Dirver -> Stepper motor

ขั้นตอนที่ 4: การเข้ารหัส

การเข้ารหัส
การเข้ารหัส
การเข้ารหัส
การเข้ารหัส

คำอธิบายการเข้ารหัส Arduino

1. การเชื่อมต่อสเต็ปเปอร์มอเตอร์

เมื่อเราได้รับสัญญาณ เราควบคุมจำนวนขั้นที่ 180 องศา เชื่อมต่อกับสเต็ปมอเตอร์ ตั้งค่าหมายเลข INT เพื่อเชื่อมต่อกับมุมการหมุนของสเต็ปมอเตอร์

2. ขึ้นอยู่กับค่าขนาดเสียง ควบคุมความเร็วของสเต็ปเปอร์มอเตอร์

ส่งออกพิน A0 ที่เชื่อมโยงกับเซ็นเซอร์ไมโครโฟน ตั้งค่าการเจ็บเป็นเอาต์พุตบนจอภาพอนุกรม และหากเซ็นเซอร์ใช้ไวยากรณ์เพื่อเพิ่มความเร็วในการหมุนของสเต็ปมอเตอร์ 30 เมื่อค่าเจ็บเกิน 50

3. ความเร็วและทิศทางการหมุนของสเต็ปมอเตอร์ที่ตอบสนองต่อเสียงเพลง

เมื่อความเร็วอยู่ที่ 10 องศา และเพิ่มเสียงรบกวนคงที่ มันจะหมุนไป 30 องศา ทำให้รูปแบบการหมุนต่างๆ ดูแตกต่างออกไป

ARDUINO CORDING

#include // stepper motor- Library

const int sampleWindow = 50; // เวลาในการสุ่มตัวอย่างค่า int ที่ไม่ได้ลงชื่อ 50ms; // ค่าเซ็นเซอร์ตรวจจับการขยายเสียงที่ได้รับ variableconst int stepsPerRevolution = 2048; //การลดลงจะทำให้คุณช้าลงและเพิ่มขึ้นเร็วขึ้น

Stepper myStepper (stepsPerRevolution, 11, 9, 10, 8); // Stepper motor pin int #1 ถึง Arduino digital 11, 9, 10, 8

การตั้งค่าเป็นโมฆะ () {

Serial.begin(9600); // เริ่มมอนิเตอร์แบบอนุกรม ความเร็ว 9600

}

วงเป็นโมฆะ () {

startMillis แบบยาวที่ไม่ได้ลงนาม = millis(); // เวลาสุ่มตัวอย่าง unsigned int peakToPeak = 0; // ความกว้างของสัญญาณเสียง

สัญญาณ int ที่ไม่ได้ลงนามสูงสุด = 0; // ตั้งค่าขนาดสูงสุดเป็นศูนย์เริ่มต้น int signalMin = 1024; // กำหนดขนาดขั้นต่ำเป็น 1024 เริ่มต้น

ในขณะที่ (มิลลิวินาที () - startMillis < sampleWindow) { ค่า = analogRead (A0); // ดึงข้อมูลเซ็นเซอร์เสียงถ้า (ค่าสูงสุดของสัญญาณ) // การวัดขนาดสูงสุด signalMax = ค่า; // ขนาดสัญญาณสูงสุด สูงสุดจะบันทึกเป็นอย่างอื่นหาก (ค่า < signalMin) // การวัดขนาดต่ำสุด signalMin = ค่า; // ขนาดขั้นต่ำ sigmalMin บันทึก } }

peakToPeak = สัญญาณสูงสุด - สัญญาณต่ำสุด; // สูงสุด- ต่ำสุด = ค่าแอมพลิจูด ดับเบิลโวลต์ = (peakToPeak * 5.0) / 1024; // แปลงเป็นโวลต์ = แปลงเป็นขนาดเสียง

int ความเร็ว = แผนที่ (peakToPeak, 0, 600, 1, 30); // จำกัดค่า peakToPeak จาก 0 ถึง 600 ถึง 1 ถึง 30

//ถ้า peakToPeak เกิน 600 จะสูญหาย // รักษาค่าสูงสุดไว้

myStepper.setSpeed(ความเร็ว); // หมุนความเร็วของสเต็ปเปอร์มอเตอร์ให้เป็นค่าที่สร้างโดยฟังก์ชันแผนที่ (1-30) myStepper.step(stepsPerRevolution / 100); //มุมการเคลื่อนที่ของสเต็ปมอเตอร์ (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println (ความเร็ว); //ตรวจสอบความเร็วของมอเตอร์ด้วยมอนิเตอร์แบบอนุกรม

}

}

1. ส텝모터 연결

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

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

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

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

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

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

ARDUINO CORDING

#include // สเต็ปเปอร์มอเตอร์ของ 라이브러리

const int sampleWindow = 50; // 샘플링한 시간 50ms ค่า int ที่ไม่ได้ลงชื่อ; // 소리 증폭 감지 센서 값 받는 변수 const int stepsPerRevolution = 2048; //******************여길 낮추면 느려지고 높이면 빨라짐

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

การตั้งค่าออยด์ () {

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

}

วงเป็นโมฆะ () {

startMillis แบบยาวที่ไม่ได้ลงนาม = millis(); // 샘플링 시작 int peakToPeak ที่ไม่ได้ลงชื่อ = 0; // 음성 신호의 진폭

สัญญาณ int ที่ไม่ได้ลงนามสูงสุด = 0; // 최대 크기를 초기에는 0으로 설정 unsigned int signal Min = 1024; // 최소 크기를 초기에는 1024 โร 설정

ในขณะที่ (มิลลิวินาที () - startMillis < sampleWindow) { // 데이터를 50ms마다 모으는 while문 value = analogRead (A0); // 소리 감지센서에더 데이터 받아오기 if (value signalMax) // 최대 크기 측정 signalMax = ค่า; // 최대 크기 signalMax에 저장 else if (value < signalMin) // 최소 크기 측정 signalMin = ค่า; // 최소 크기 sigmalMin에 저장 } }

peakToPeak = สัญญาณสูงสุด - สัญญาณต่ำสุด; // 최대- 최소 = 진폭값 ดับเบิ้ลโวลต์ = (peakToPeak * 5.0) / 1024; // 전압 단위로 변환 = 소리 크기로 변환

int ความเร็ว = แผนที่ (peakToPeak, 0, 600, 1, 30); // 0 부터 600까지 뜨는 peakToPeak값을 1부터 30까지로 한정

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

Serial.println(ความเร็ว); // 시리얼 모니터로 모터의 속도를 확인하겠다

}

แนะนำ: