Სარჩევი:

Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები: 5 ნაბიჯი
Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები: 5 ნაბიჯი

ვიდეო: Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები: 5 ნაბიჯი

ვიდეო: Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები: 5 ნაბიჯი
ვიდეო: დაკრძალვის დროს კუბოზე ყორანი იჯდა. შემდეგ მოხდა რაღაც წარმოუდგენელი! 2024, ივლისი
Anonim
Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები
Muire: ხმის მგრძნობიარე ოპტიკური ეფექტები

თქვენ ალბათ გინახავთ ტალღის ნიმუში იმ ადგილას, სადაც მწერების ბადე გადაფარავს მზის ამოსვლისას. როდესაც თქვენ ახორციელებთ ახლომდებარე კოღოს ბადის გადაადგილებას ან კუთხის შეცვლას, ტალღის ნიმუშიც მოძრაობს. თუ ნიმუში რეგულარული ინტერვალებით, ისევე როგორც საწოლის ბადეები არაერთხელ არის გადახურული, ეს ნიმუში შეიძლება მოხდეს სადმე. ამას ეწოდება მუირრის (მოირის) ფენომენი, ხოლო წარმოქმნილ ნიმუშს ეწოდება მუირრის ნიმუში.

PROJECT_MUIRE PATTERN

მუირის ნიმუშებს აქვთ მრავალი სახის ნიმუში და მახასიათებელი. ეს ნიმუში გამოიყენება ცხრა სექტორისა და 11 სხვადასხვა ტიპის მურის ნიმუშების შესაქმნელად, ოპტიკური ეფექტების მრავალფეროვნების შესაქმნელად, ხმის ზომიდან გამომდინარე, ჩარჩოს სტრუქტურის ჩარჩოებზე.

… 이 를 무아레 (모아레, Moire) 이라고 부르고, 이때 무늬 를.

PROJECT_MUIRE PATTERN

. 패턴 을 9 개 섹터 와 와 와 와

ნაბიჯი 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. 아뢰 바디

  • T 5T (თეთრი აკრილის) 940 მმ X 840 მმ
  • Black Black (შავი მელანი)

2. 아뢰 종류

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

3

  • Ar 도 나노 ar (arduino UNO)
  • 모터 (28BYJ-48)
  • 모터 U (ULN2003A)
  • მიკროფონი max max (max9814)
  • B (პურის დაფა)
  • Power 전원 (კვების ბლოკი 5V 25A)

ნაბიჯი 2: პლანარული ფიგურა

პლანარული ფიგურა
პლანარული ფიგურა
პლანარული ფიგურა
პლანარული ფიგურა
პლანარული ფიგურა
პლანარული ფიგურა

1. პლანარული ფიგურის ჭრა

თეთრი აკრილის 5T (940 მმ x 840 მმ) X 2

გამჭვირვალე აკრილის 5T (940 მმ x 840 მმ) X 1

გამჭვირვალე აკრილის 3T (940 მმ x 840 მმ) X 1

2. პლანერის ფიგურის ბეჭდვა

აკრილის ბეჭდვა

1

T T 5T (940 მმ x 840 მმ) X 2

T 5T (940 მმ x 840 მმ) X 1

T 3T (940 მმ x 840 მმ) X 1

2

아크릴 인쇄

ნაბიჯი 3: სქემის დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა
Წრიული დიაგრამა

ტექნიკის მუშაობის პრინციპი

POWER -> Arduino UNO -> მიკროფონის ხმის გამაძლიერებელი სენსორი -> Motor Dirver -> სტეპერიანი ძრავა

ნაბიჯი 4: კოდირება

კოდირება
კოდირება
კოდირება
კოდირება

Arduino კოდირების აღწერა

1. სტეპერი ძრავის კავშირი

მას შემდეგ რაც სიგნალი მივიღეთ, ჩვენ ვაკონტროლებთ ნაბიჯების რაოდენობას 180 გრადუსზე, რომელიც დაკავშირებულია საფეხურის ძრავასთან. დააყენეთ INT ნომერი საფეხურის ძრავის ბრუნვის კუთხესთან დასაკავშირებლად.

2. ხმის ზომის მიხედვით, აკონტროლეთ სტეპერიანი ძრავის სიჩქარე

გამოაქვს მიკროფონის სენსორთან დაკავშირებული A0 პინი, ადგენს მტკივნეულ მნიშვნელობას სერიულ მონიტორზე და თუ სენსორი იყენებს სინტაქსს საფეხურის ძრავის ბრუნვის სიჩქარის გასაზრდელად 30 -ით, როდესაც მტკივნეული მნიშვნელობა 50 -ს აჭარბებს.

3. საფეხურიანი ძრავების ბრუნვის სიჩქარე და მიმართულება, რომლებიც პასუხობენ მუსიკას

როდესაც სიჩქარე არის 10 გრადუსი, და მუდმივი ხმაური იზრდება, ის ბრუნავს 30 გრადუსზე, რაც იწვევს ბრუნვის სხვადასხვა შაბლონებს განსხვავებულად.

ARDUINO CORDING

#მოიცავს // სტეპერ მოტორს- ბიბლიოთეკა

const int sampleWindow = 50; // შერჩევის დრო 50ms ხელმოუწერელი int ღირებულება; // ხმის გამაძლიერებელი მგრძნობიარე სენსორის მნიშვნელობა მიღებული ცვლადი // მისი დაწევა შენელდება და უფრო სწრაფად გაგიზრდება

სტეპერი myStepper (ნაბიჯები PerRevolution, 11, 9, 10, 8); // სტეპერიანი ძრავის pin int #1 Arduino ციფრული 11, 9, 10, 8.

void setup () {

სერიული.დაწყება (9600); // სერიული მონიტორის დაწყება, სიჩქარე 9600

}

ბათილი მარყუჟი () {

ხელმოუწერელი გრძელი დაწყება Millis = millis (); // აღების დრო ხელმოუწერელი int peakToPeak = 0; // ხმის სიგნალის ამპლიტუდა

ხელმოუწერელი int signalMax = 0; // დააყენეთ მაქსიმალური ზომა ნულამდე თავდაპირველად ხელმოუწერელი int signalMin = 1024; // თავდაპირველად დააყენეთ მინიმალური ზომა 1024 -მდე

while (millis () - startMillis <sampleWindow) {value = analogRead (A0); // ხმის სენსორის მონაცემების მიღება თუ (მნიშვნელობა signalMax) // მაქსიმალური ზომის გაზომვები signalMax = მნიშვნელობა; // მაქსიმალური ზომა signalMax შეინახეთ სხვა თუ (მნიშვნელობა <signalMin) // მინიმალური ზომის გაზომვები signalMin = მნიშვნელობა; // მინიმალური ზომის sigmalMin შენახვა}}

peakToPeak = signalMax - signalMin; // მაქსიმუმი- მინიმალური = ამპლიტუდის მნიშვნელობა ორმაგი ვოლტი = (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); // საფეხურის ძრავის მოძრაობის კუთხე (ნაბიჯებიPerRevolution = 2048) analogWrite (ნაბიჯებიPerRevolution, სიჩქარე*3);

Serial.println (სიჩქარე); // შეამოწმეთ ძრავის სიჩქარე სერიული მონიტორით

}

}

1. 모터 연결

수가 수가 수가 수가 수가, INT 넘버 를 스텝 모터 의 의

2. 크기 에 스텝, 스텝 제어

მიკროფონი 연결된 와 연결된 A0 핀 을 출력 하고, 시리얼 모니터 에 if if if if if if if,.

3. 에

10 의 되다가, 일정 되면 되면 되면 되면

ARDUINO CORDING

#ჩართეთ // სტეპერიანი ძრავა

const int sampleWindow = 50; // 샘플링 한 ms 50ms ხელმოუწერელი int მნიშვნელობა; // 소리 증폭 감지 센서 값 받는 변수 const int stepsPerRevolution = 2048; // *************** 여길 낮추면 느려지고 높이면

სტეპერი myStepper (ნაბიჯები PerRevolution, 11, 9, 10, 8); // 핀 모터 핀 int 1 번 부터 아두 이노 디지털, 11, 9, 10, 8 순 장착

oid კონფიგურაცია () {

სერიული.დაწყება (9600); // 시리얼 모니터 시작, 속도 는 9600

}

ბათილი მარყუჟი () {

ხელმოუწერელი გრძელი დაწყება Millis = millis (); // 샘플링 시작 ხელმოუწერელი int peakToPeak = 0; // 음성 신호 의

ხელმოუწერელი int signalMax = 0; // 최대 크기 를 초기 에는 0 으로 설정 ხელმოუწერელი int signalMin = 1024; // 최소 크기 를 초기 에는 24 1024 로

while (millis () - startMillis <sampleWindow) {// 데이터 ms 50ms 마다 모으는 ხოლო 문 მნიშვნელობა = analogRead (A0); // 소리 감지 센서 에 더 데이터 받아 오기 if (მნიშვნელობა signalMax) // 최대 크기 측정 signalMax = მნიშვნელობა; // 크기 signalMax 저장 저장 სხვა თუ (მნიშვნელობა <signalMin) // 최소 크기 측정 signalMin = მნიშვნელობა; // 크기 크기 sigmalMin 저장 저장}}

peakToPeak = signalMax - signalMin; // 최대- 최소 = 진폭 값 ორმაგი ვოლტი = (peakToPeak * 5.0) / 1024; // 단위 로 변환 = 소리 크기 로 변환

int სიჩქარე = რუკა (peakToPeak, 0, 600, 1, 30); // 0 부터 600 뜨는 뜨는 peakToPeak 을 1 부터 30 까지 한정

// peakToPeak 이 최대 값 이 600 을 넘어 가면 끊김 // 최대 값 을 함 함 함 myStepper.setSpeed (სიჩქარე); // 위 모터 의 스피드 를 위 위 1- 1- 1- 1- 1- 1- (1-30) myStepper.step (stepsPerRevolution / 100); // 스텝 모터 가 움직이는 steps (stepsPerRevolution = 2048) analogWrite (ნაბიჯები PerRevolution, სიჩქარე*3);

Serial.println (სიჩქარე); // 시리얼 모니터 로 모터 의 속도 속도 를

}

გირჩევთ: