İçindekiler:

Muire: Sese Duyarlı Optik Efektler: 5 Adım
Muire: Sese Duyarlı Optik Efektler: 5 Adım

Video: Muire: Sese Duyarlı Optik Efektler: 5 Adım

Video: Muire: Sese Duyarlı Optik Efektler: 5 Adım
Video: Antiviral bağışıklık ayarı 2024, Temmuz
Anonim
Muire: Sese Duyarlı Optik Efektler
Muire: Sese Duyarlı Optik Efektler

Güneş parladığında cibinliğin üst üste geldiği alanda bir dalga deseni görmüş olabilirsiniz. Yakındaki cibinliği hareket ettirdiğinizde veya açıyı değiştirdiğinizde dalga deseni de hareket eder. Düzenli aralıklarla yapılan desen ve cibinlikler üst üste bindirilirse bu desen her yerde olabilir. Buna Muirre (Moire) fenomeni denir ve meydana gelen modele Muirre paterni denir.

PROJECT_MUIRE DESENİ

Muir desenleri birçok desen ve özelliğe sahiptir. Bu model, dikdörtgen çerçeve yapılı çerçeveler üzerinde sesin boyutuna bağlı olarak çeşitli optik efektler üretmek için dokuz sektör ve 11 farklı türde moor deseni oluşturmak için kullanılır.

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

PROJECT_MUIRE DESENİ

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

Adım 1: Hangi Malzemelere İhtiyaç Duyulacak?

Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?
Hangi Malzemelere İhtiyaç Duyulacak?

1. Hareli Desenin Gövdesi

beyaz akrilik 5T[940 mm X 840 mm]

Akrilik baskı [akrilik mürekkep]

2. Hareli Desen - şekilli tipler

Dönme tipi

düz bir form türü

Donanım türü

kara delik türü

Küçültme / Genişletme efekti

alev etkisi

3. Elektrik devresi

Arduino Uno x 11

Ekmek Tahtası x 1

Step Motor_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무아뢰 패턴 바디

  • 아크릴 5T(Beyaz akrilik) 940mm X 840mm
  • 아크릴 인쇄 (Siyah mürekkep)

2. 무아뢰 패턴의 종류

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

3. 회로구성

  • 아두이도 나노 보드 (arduino UNO)
  • 스텝모터 (28BYJ-48)
  • 스텝 모터 드라이브 (ULN2003A)
  • Mikrofon 사운드 센서 (max9814)
  • 빵판 (Ekmek Tahtası)
  • 외부전원 (Güç kaynağı 5V 25A)

Adım 2: Düzlemsel Şekil

Düzlemsel Şekil
Düzlemsel Şekil
Düzlemsel Şekil
Düzlemsel Şekil
Düzlemsel Şekil
Düzlemsel Şekil

1. Düzlemsel şekil kesme

Beyaz Akrilik 5T (940mm x 840mm) X 2

Şeffaf Akrilik 5T (940mm x 840mm) X 1

Şeffaf Akrilik 3T (940mm x 840mm) X 1

2. Düzlemsel şekil baskısı

Akrilik baskı

1. 도면 커팅

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

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

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

2. 도면 인쇄

아크릴 인쇄

Adım 3: Devre Şeması

Devre şeması
Devre şeması
Devre şeması
Devre şeması
Devre şeması
Devre şeması

donanım Çalışma prensibi

GÜÇ -> Arduino UNO -> Mikrofon ses yükseltme sensörü -> Motor Yönlendiricisi -> Adım motoru

Adım 4: Kodlama

kodlama
kodlama
kodlama
kodlama

Arduino kodlama açıklaması

1. Step Motor Bağlantısı

Sinyali aldıktan sonra adım motora bağlı 180 derecelik adım sayısını kontrol ettik. Adım motorun dönüş açısına bağlanmak için INT numarasını ayarlayın.

2. Ses boyutu değerine bağlı olarak, step motor hızını kontrol edin

Mikrofon sensörüyle ilişkili A0 pininin çıkışını verir, kesik değeri seri monitörde çıkış yapacak şekilde ayarlar ve sensör, boğaz değeri 50'yi aştığında adım motorun dönüş hızını 30 artırmak için sözdizimini kullanırsa.

3. Müziğe tepki veren step motorların hızı ve dönüş yönü

Hız 10 derece olduğunda ve sabit gürültü arttığında, 30 derecede dönerek farklı dönüş kalıplarının farklı görünmesine neden olur.

ARDUINO KODLAMA

#include // step motor- Kitaplık

const int örnekWindow = 50; // Örnekleme süresi 50ms unsigned int değeri; // Ses amplifikasyonu algılayan sensör değeri alınan değişkenconst int stepPerRevolution = 2048; //Düşürmek sizi yavaşlatır ve daha hızlı artırır

Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); // Step motor pin int #1 - Arduino dijital 11, 9, 10, 8.

geçersiz kurulum() {

Seri.başla(9600); // Seri izlemeyi başlat, hız 9600

}

boşluk döngüsü () {

imzasız uzun startMillis = millis(); // Örnekleme zamanı unsigned int peakToPeak = 0; // Ses sinyalinin genliği

imzasız int sinyalMax = 0; // Başlangıçta maksimum boyutu sıfıra ayarlayın unsigned int signalMin = 1024; // Başlangıçta minimum boyutu 1024 olarak ayarla

while (millis() - startMillis < sampleWindow) { değer = analogRead(A0); // eğer (değer sinyaliMax) ses sensörü verilerini al // Maksimum Boyut Ölçümleri sinyalMax = değer; // Maksimum Boyut sinyaliMax başka kaydet if (değer < sinyalMin) // Minimum Boyut Ölçümleri sinyalMin = değer; // Minimum Boyut sigmalMin save } }

peakToPeak = sinyalMax - sinyalMin; // Maksimum- Min = Genlik Değeri double volt = (peakToPeak * 5.0) / 1024; // Volta Dönüştür = Ses Boyutuna Dönüştür

int Hız = map(peakToPeak, 0, 600, 1, 30); // PeakToPeak değerini 0 ile 600 ile 1 ile 30 arasında sınırlayın.

//tepeToPeak 600'ü aşarsa kaybolur // Maksimum değeri koru.

myStepper.setSpeed(Hız); // Step motorun hızını harita fonksiyonu tarafından yapılan değere döndürün (1-30) myStepper.step(stepsPerRevolution / 100); //Adım motorun hareket açısı (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);

Seri.println(Hız); //Seri monitör ile motorun hızını kontrol edin

}

}

1. 스텝모터 연결

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

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

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

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

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

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

ARDUINO KODLAMA

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

const int örnekWindow = 50; // 샘플링한 시간 50ms imzasız int değeri; // 소리 증폭 감지 센서 값 받는 변수 const int stepPerRevolution = 2048; //***************여길 낮추면 느려지고 높이면 빨라짐

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

oid kurulum() {

Seri.başla(9600); // 시리얼 모니터 시작, 속도는 9600

}

boşluk döngüsü () {

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

imzasız int sinyalMax = 0; // 최대 크기를 초기에는 0으로 설정 unsigned int sinyalMin = 1024; // 최소 크기를 초기에는 1024로 설정

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

peakToPeak = sinyalMax - sinyalMin; // 최대- 최소 = 진폭값 çift volt = (peakToPeak * 5.0) / 1024; // 전압 단위로 변환 = 소리 크기로 변환

int Hız = map(peakToPeak, 0, 600, 1, 30); // 0 부터 600까지 뜨는 peakToPeak값을 1부터 30까지로 한정

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

Seri.println(Hız); //시리얼 모니터로 모터의 속도를 확인하겠다

}

Önerilen: