Isi kandungan:

Muire: Kesan Optik yang peka bunyi: 5 Langkah
Muire: Kesan Optik yang peka bunyi: 5 Langkah

Video: Muire: Kesan Optik yang peka bunyi: 5 Langkah

Video: Muire: Kesan Optik yang peka bunyi: 5 Langkah
Video: ОТКРЫЛИ ПОРТАЛ В МИР МЕРТВЫХ ✟ ПРОВЕЛИ СТРАШНЫЙ РИТУАЛ И ПРИЗВАЛИ ПРИЗРАКОВ ✟ TERRIBLE RITUAL 2024, Julai
Anonim
Muire: Kesan Optik yang sensitif terhadap bunyi
Muire: Kesan Optik yang sensitif terhadap bunyi

Anda mungkin pernah melihat corak gelombang di kawasan di mana kelambu bertindih ketika matahari bersinar. Apabila anda menggerakkan kelambu berdekatan atau menukar sudut, corak gelombang juga bergerak. Sekiranya corak dengan selang waktu tetap serta jaring tidur berulang kali bertindih, corak ini boleh berlaku di mana sahaja. Ini disebut fenomena Muirre (Moire), dan corak yang berlaku disebut corak Muirre.

POLA PROJEK_MUI

Corak Muir mempunyai banyak jenis corak dan ciri. Corak ini digunakan untuk membuat sembilan sektor dan 11 jenis corak moor yang berbeza untuk menghasilkan pelbagai kesan optik, bergantung pada ukuran suara, pada bingkai struktur bingkai segi empat tepat.

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

POLA PROJEK_MUI

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

Langkah 1: Bahan Apa yang Diperlukan?

Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?
Bahan Apa Yang Akan Diperlukan?

1. Badan Corak Moire

akrilik putih 5T [940 mm X 840 mm]

Percetakan akrilik [dakwat akrilik]

2. Corak Moire - jenis berbentuk

Jenis putaran

jenis bentuk rata

Jenis perkakasan

Jenis lubang hitam

Mengecilkan / Meluaskan kesan

kesan menyala

3. Litar elektrik

Arduino Uno x 11

Papan Roti x 1

Stepper Motor_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무 아뢰 패턴 바디

  • 아크릴 5T (Akrilik putih) 940mm X 840mm
  • Ink 인쇄 (dakwat hitam)

2. 무 아뢰 패턴 의 종류

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

3. 회로 구성

  • 아두이 도 나노 보드 (arduino UNO)
  • 스텝 모터 (28BYJ-48)
  • 스텝 모터 드라이브 (ULN2003A)
  • Mikrofon 사운드 센서 (max9814)
  • 빵판 (Papan Roti)
  • 외부 전원 (Bekalan kuasa 5V 25A)

Langkah 2: Rajah Planar

Rajah Planar
Rajah Planar
Rajah Planar
Rajah Planar
Rajah Planar
Rajah Planar

1. Pemotongan angka planar

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

Akrilik Lutsinar 5T (940mm x 840mm) X 1

Akrilik Lutsinar 3T (940mm x 840mm) X 1

2. Pencetakan angka satah

Percetakan akrilik

1. 도면 커팅

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

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

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

2. 도면 인쇄

아크릴 인쇄

Langkah 3: Rajah Litar

Rajah Litar
Rajah Litar
Rajah Litar
Rajah Litar
Rajah Litar
Rajah Litar

Prinsip operasi perkakasan

POWER -> Arduino UNO -> Sensor penguat suara mikrofon -> Motor Dirver -> Motor stepper

Langkah 4: Pengekodan

Pengekodan
Pengekodan
Pengekodan
Pengekodan

Penerangan pengekodan Arduino

1. Sambungan Motor Stepper

Sebaik sahaja kami menerima isyarat, kami mengawal bilangan langkah 180 darjah, disambungkan ke motor langkah. Tetapkan nombor INT untuk menyambung ke sudut putaran motor langkah.

2. Bergantung pada nilai ukuran suara, kendalikan kelajuan motor stepper

Mengeluarkan pin A0 yang dikaitkan dengan sensor mikrofon, menetapkan nilai sakit menjadi output pada monitor bersiri, dan jika sensor menggunakan sintaks untuk meningkatkan kelajuan putaran motor langkah sebanyak 30 ketika nilai sakit melebihi 50.

3. Kelajuan dan arah putaran motor langkah yang bertindak balas terhadap muzik

Apabila kelajuan 10 darjah, dan bunyi berterusan meningkat, ia berputar pada 30 darjah, menyebabkan corak putaran yang berbeza kelihatan berbeza.

PENGATURAN ARDUINO

#masuk // motor stepper- Perpustakaan

const int sampleWindow = 50; // Masa persampelan 50ms nilai int yang tidak ditandatangani; // Nilai sensor penderiaan penguat suara diterima berubah-ubah antara langkah-langkahPerRevolution = 2048; // Menurunkannya akan melambatkan anda dan meningkatkan anda lebih cepat

Stepper myStepper (stepPerRevolution, 11, 9, 10, 8); // Pin motor stepper int # 1 ke Arduino digital 11, 9, 10, 8.

batal persediaan () {

Serial.begin (9600); // Mulakan monitor bersiri, kelajuan 9600

}

gelung kosong () {

permulaan panjang yang tidak ditandatanganiMillis = millis (); // Masa persampelan tidak ditandatangani int puncakToPeak = 0; // Amplitud isyarat suara

signal int MaxMax = 0; // Tetapkan ukuran maksimum ke sifar isyarat awal yang tidak ditandatanganiMin = 1024; // Tetapkan ukuran minimum hingga 1024 pada mulanya

while (millis () - startMillis <sampleWindow) {nilai = analogRead (A0); // mengambil semula data sensor bunyi jika (nilai signalMax) // Pengukuran Ukuran Maksimum signalMax = nilai; // Isyarat Saiz MaksimumMaksimumkan yang lain jika (nilai <signalMin) // Pengukuran Ukuran MinimumMin = nilai; // Ukuran minimum sigmalMin save}}

puncakToPeak = signalMax - signalMin; // Maksimum- Min = Nilai Amplitud ganda volt = (puncakToPeak * 5.0) / 1024; // Tukar ke Volt = Tukar ke Saiz Bunyi

int Speed = peta (puncakToPeak, 0, 600, 1, 30); // Hadkan nilai puncakToPeak dari 0 hingga 600 hingga 1 hingga 30.

// Jika puncakToPeak melebihi 600, hilang // Simpan nilai maksimum.

myStepper.setSpeed (Kelajuan); // Putar kelajuan motor stepper ke nilai yang dibuat oleh fungsi peta (1-30) myStepper.step (stepPerRevolution / 100); // Sudut pergerakan motor langkah (stepPerRevolution = 2048) analogWrite (stepPerRevolution, Speed * 3);

Serial.println (Kelajuan); // Periksa kelajuan motor dengan monitor bersiri

}

}

1. 스텝 모터 연결

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

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

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

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

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

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

PENGATURAN ARDUINO

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

const int sampleWindow = 50; // int 한 50ms nilai int yang tidak ditandatangani; // 소리 증폭 감지 센서 값 받는 변수 const int stepsPerRevolution = 2048; // *************** 여길 낮추면 느려지고 높이면 빨라짐

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

persediaan oid () {

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

}

gelung kosong () {

permulaan panjang yang tidak ditandatanganiMillis = millis (); // 샘플링 시작 int puncakToPeak yang tidak ditandatangani = 0; // 음성 신호 의 진폭

signal int MaxMax = 0; // 최대 크기 를 초기 에는 0 으로 설정 isyarat int yang tidak ditandatanganiMin = 1024; // 최소 크기 를 초기 에는 1024 로 설정

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

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

int Speed = peta (puncakToPeak, 0, 600, 1, 30); // 0 부터 600 까지 뜨는 puncakToPeak 값 을 1 부터 30 까지 로 한정

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

Serial.println (Kelajuan); // 시리얼 모니터 로 모터 의 속도 를 확인 하겠다

}

Disyorkan: