Daftar Isi:

Muire: Efek Optik yang peka terhadap suara: 5 Langkah
Muire: Efek Optik yang peka terhadap suara: 5 Langkah

Video: Muire: Efek Optik yang peka terhadap suara: 5 Langkah

Video: Muire: Efek Optik yang peka terhadap suara: 5 Langkah
Video: Belajar hipnotis hanya 30 detik #shorts 2024, Juli
Anonim
Muire: Efek Optik yang peka terhadap suara
Muire: Efek Optik yang peka terhadap suara

Anda mungkin pernah melihat pola gelombang di area tempat kelambu tumpang tindih saat matahari bersinar. Saat Anda memindahkan kelambu terdekat atau mengubah sudut, pola gelombang juga bergerak. Jika pola dengan interval teratur seperti halnya kelambu yang tumpang tindih berulang kali, pola ini dapat terjadi di mana saja. Ini disebut fenomena Muirre (Moire), dan pola yang terjadi disebut pola Muirre.

POLA PROJECT_MUIRE

Pola muir memiliki berbagai macam corak dan karakteristik. Pola ini digunakan untuk membuat sembilan sektor dan 11 jenis pola tegalan yang berbeda untuk menghasilkan berbagai efek optik, tergantung pada ukuran suara, pada bingkai struktur bingkai persegi panjang.

… (모아레, Moire),.

POLA PROJECT_MUIRE

. 9개 11개의,.

Langkah 1: Bahan Apa yang Akan Dibutuhkan?

Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?
Bahan Apa yang Akan Dibutuhkan?

1. Tubuh Pola Moire

akrilik putih 5T [940 mm X 840 mm]

Pencetakan akrilik [tinta akrilik]

2. Pola Moire - tipe berbentuk

Tipe rotasi

tipe bentuk datar

Jenis perangkat keras

Jenis lubang hitam

Kecilkan / Memperluas efek

efek menyala

3. Sirkuit listrik

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
  • (tinta hitam)

2

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

3

  • (arduino UNO)
  • (28BYJ-48)
  • (ULN2003A)
  • Mikrofon (maks9814)
  • (Papan Roti)
  • (Sumber daya 5V 25A)

Langkah 2: Gambar Planar

Gambar Planar
Gambar Planar
Gambar Planar
Gambar Planar
Gambar Planar
Gambar Planar

1. Pemotongan figur planar

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

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

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

2. Pencetakan gambar planar

Pencetakan akrilik

1

5T (940mm x 840mm) X 2

5T (940mm x 840mm) X 1

3T (940mm x 840mm) X 1

2

아크릴 인쇄

Langkah 3: Diagram Sirkuit

Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit
Diagram Sirkuit

Prinsip operasi perangkat keras

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

Langkah 4: Pengkodean

Pengkodean
Pengkodean
Pengkodean
Pengkodean

Deskripsi pengkodean Arduino

1. Koneksi Motor Stepper

Setelah kami menerima sinyal, kami mengontrol jumlah langkah 180 derajat, terhubung ke motor langkah. Atur nomor INT untuk menghubungkan ke sudut putaran motor langkah.

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

Mengeluarkan pin A0 yang terkait dengan sensor mikrofon, menetapkan nilai nyeri ke output pada monitor serial, dan jika sensor menggunakan sintaks untuk meningkatkan kecepatan putaran motor langkah sebesar 30 ketika nilai nyeri melebihi 50.

3. Kecepatan dan arah putaran motor langkah yang merespon musik

Ketika kecepatannya 10 derajat, dan kebisingan konstan meningkat, ia berputar pada 30 derajat, mendorong pola rotasi yang berbeda agar terlihat berbeda.

ARDUINO CORDING

#include // motor stepper- Library

const int sampleWindow = 50; // Waktu pengambilan sampel 50 mdtk nilai int yang tidak ditandatangani; // Nilai sensor penginderaan amplifikasi suara yang diterima variabelconst int stepsPerRevolution = 2048; //Menurunkannya akan memperlambatmu dan meningkatkanmu lebih cepat

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

batalkan pengaturan() {

Serial.begin(9600); // Mulai monitor serial, kecepatan 9600

}

lingkaran kosong() {

unsigned long startMillis = milis(); // Waktu pengambilan sampel tidak ditandatangani int peakToPeak = 0; // Amplitudo sinyal suara

unsigned int signalMax = 0; // Setel ukuran maksimum ke nol awalnya unsigned int signalMin = 1024; // Setel ukuran minimum ke 1024 pada awalnya

while (millis() - startMillis < sampleWindow) { nilai = analogRead(A0); // mengambil data sensor suara if (nilai signalMax) // Ukuran Maksimum Pengukuran signalMax = nilai; // Ukuran Maksimum signalMax save else if (nilai < signalMin) // Ukuran Minimum Pengukuran signalMin = nilai; // Ukuran Minimum sigmalMin simpan } }

peakToPeak = signalMax - signalMin; // Maksimum- Min = Nilai Amplitudo volt ganda = (peakToPeak * 5.0) / 1024; // Konversi ke Volt = Konversi ke Ukuran Suara

int Kecepatan = peta(peakToPeak, 0, 600, 1, 30); // Batasi nilai peakToPeak dari 0 hingga 600 hingga 1 hingga 30.

//Jika peakToPeak melebihi 600, itu hilang // Pertahankan nilai maksimum.

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

Serial.println(Kecepatan); //Periksa kecepatan motor dengan monitor serial

}

}

1

180도, INT

2.,

mikrofon 연결된 A0, 소리값이 출력되게끔, jika 사용하여 센서에서 소리값이 50 넘어갈때 스텝모터 30 이, 따라.

3.음악에

10만큼의, 30의.

ARDUINO CORDING

#include // motor stepper의

const int sampleWindow = 50; // 50ms nilai int tidak ditandatangani; // const int langkahPerRevolusi = 2048; //***************여길

Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); //스텝모터 int 1번 11, 9, 10, 8

pengaturan oid() {

Serial.begin(9600); //, 9600

}

lingkaran kosong() {

unsigned long startMillis = milis(); // unsigned int peakToPeak = 0; //

unsigned int signalMax = 0; // 0으로 unsigned int signalMin = 1024; // 1024로

while (millis() - startMillis < sampleWindow) { // 50ms마다 while문 value = analogRead(A0); // if (nilai signalMax) // signalMax = nilai; // signalMax에 else if (nilai < signalMin) // signalMin = nilai; // sigmalMin에 } }

peakToPeak = signalMax - signalMin; // - = volt ganda = (peakToPeak * 5.0) / 1024; // =

int Kecepatan = peta(peakToPeak, 0, 600, 1, 30); // 0 600까지 peakToPeak값을 1부터 30까지로

// peakToPeak의 600을 // myStepper.setSpeed(Kecepatan); // peta함수로 값으로 (1-30) myStepper.step(stepsPerRevolution / 100); //스텝모터가 (stepsPerRevolution=2048) analogWrite(stepsPerRevolution, Speed*3);

Serial.println(Kecepatan); //시리얼

}

Direkomendasikan: