Spisu treści:

Muire: Efekty optyczne wrażliwe na dźwięk: 5 kroków
Muire: Efekty optyczne wrażliwe na dźwięk: 5 kroków

Wideo: Muire: Efekty optyczne wrażliwe na dźwięk: 5 kroków

Wideo: Muire: Efekty optyczne wrażliwe na dźwięk: 5 kroków
Wideo: Muira Puama / co to jest / właściwości / działanie 2024, Lipiec
Anonim
Muire: Efekty optyczne wrażliwe na dźwięk
Muire: Efekty optyczne wrażliwe na dźwięk

Być może widziałeś wzór fal na obszarze, w którym moskitiera zachodzi na siebie, gdy świeci słońce. Kiedy przesuwasz pobliską moskitierę lub zmieniasz kąt, wzór fal również się porusza. Jeśli wzór w regularnych odstępach, a także moskitiery są wielokrotnie nakładane, wzór ten może wystąpić wszędzie. Nazywa się to zjawiskiem Muirre'a (Moire'a), a występujący wzór nazywa się wzorem Muirre'a.

WZÓR PROJEKTU_MUIRE

Wzory Muir mają wiele rodzajów wzorów i cech. Ten wzór jest używany do tworzenia dziewięciu sektorów i 11 różnych typów wzorów torfowisk w celu wytworzenia różnych efektów optycznych, w zależności od wielkości dźwięku, na ramkach o prostokątnej konstrukcji ramowej.

… Niesamowita gra (Moire) w języku angielskim, w którym możesz grać w tę grę.

WZÓR PROJEKTU_MUIRE

..

Krok 1: Jakie materiały będą potrzebne?

Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?
Jakie materiały będą potrzebne?

1. Ciało wzoru mory

biały akryl 5T [940 mm X 840 mm]

Druk akrylowy [tusz akrylowy]

2. Wzór mory - typy w kształcie

Typ rotacyjny

płaska forma

Typ sprzętu

Typ czarnej dziury

Efekt kurczenia się / rozszerzania

płonący efekt

3. Obwód elektryczny

Arduino Uno x 11

Deska do chleba x 1

Silnik krokowy_28BYJ-48 x 11

ULN2003A x 11

MAX9814 x 11

1. 무아뢰 패턴 바디

  • 아크릴5T (biały akryl) 940mm X 840mm
  • 아크릴 인쇄 (czarny tusz)

2. 무아뢰 패턴의 종류

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

3

  • 아두이도 나노 보드 (arduino UNO)
  • (28BYJ-48)
  • 모터 (ULN2003A)
  • Mikrofon 사운드 센서 (max9814)
  • 빵판 (deska chlebowa)
  • 외부전원 (zasilanie 5V 25A)

Krok 2: Płaska figura

Płaska figura
Płaska figura
Płaska figura
Płaska figura
Płaska figura
Płaska figura

1. Planarne cięcie figur

Biały akryl 5T (940mm x 840mm) X 2

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

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

2. Drukowanie figur planarnych

Druk akrylowy

1

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

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

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

2

아크릴 인쇄

Krok 3: Schemat obwodu

Schemat obwodu
Schemat obwodu
Schemat obwodu
Schemat obwodu
Schemat obwodu
Schemat obwodu

sprzęt Zasada działania

ZASILANIE -> Arduino UNO -> Czujnik wzmocnienia mikrofonu -> Motor Dirver -> Silnik krokowy

Krok 4: Kodowanie

Kodowanie
Kodowanie
Kodowanie
Kodowanie

Opis kodowania Arduino

1. Połączenie silnika krokowego

Po odebraniu sygnału kontrolowaliśmy ilość kroków 180 stopni podłączonych do silnika krokowego. Ustawić liczbę INT, aby połączyć się z kątem obrotu silnika krokowego.

2. W zależności od wartości wielkości dźwięku, kontroluj prędkość silnika krokowego

Wyprowadza pin A0 skojarzony z czujnikiem mikrofonu, ustawia bolesną wartość na wyjście na monitorze szeregowym i jeśli czujnik używa składni do zwiększenia prędkości obrotowej silnika krokowego o 30, gdy bolesna wartość przekroczy 50.

3. Prędkość i kierunek obrotów silników krokowych reagujących na muzykę

Gdy prędkość wynosi 10 stopni, a stały hałas jest zwiększony, obraca się o 30 stopni, powodując, że różne wzorce obrotów wyglądają inaczej.

Sznurowanie ARDUINO

#include // silnik krokowy- Biblioteka

const int sampleWindow = 50; // Czas próbkowania 50ms unsigned int value; // Wzmocnienie dźwięku odbiera wartość czujnika zmiennaconst int stepsPerRevolution = 2048; //Obniżenie go spowolni i szybciej zwiększy

Stepper myStepper(krokiPerRevolution, 11, 9, 10, 8); // Pin silnika krokowego int #1 do Arduino digital 11, 9, 10, 8.

pusta konfiguracja () {

Serial.początek(9600); // Uruchom monitor szeregowy, prędkość 9600

}

pusta pętla () {

unsigned long startMillis = millis(); // Czas próbkowania unsigned int peakToPeak = 0; // Amplituda sygnału głosowego

unsigned int signalMax = 0; // Ustaw maksymalny rozmiar na zero początkowo unsigned int signalMin = 1024; // Początkowo ustaw minimalny rozmiar na 1024

while (millis() - startMillis < sampleWindow) { value = analogRead(A0); // pobierz dane czujnika dźwięku, jeśli (wartość signalMax) // Maksymalny rozmiar pomiarów signalMax = wartość; // Maksymalny rozmiar signalMax save else if (wartość < signalMin) // Minimalne pomiary rozmiaru signalMin = wartość; // Minimalny rozmiar sigmalMin zapisz } }

peakToPeak = signalMax - signalMin; // Maksimum- Min = Wartość amplitudy podwójne wolty = (peakToPeak * 5.0) / 1024; // Konwertuj na wolty = Konwertuj na rozmiar dźwięku

int Prędkość = mapa(peakToPeak, 0, 600, 1, 30); // Ogranicz wartość peakToPeak od 0 do 600 do 1 do 30.

//Jeśli peakToPeak przekroczy 600, zostanie utracone // Zachowaj maksymalną wartość.

myStepper.setSpeed(Prędkość); // Obróć prędkość silnika krokowego do wartości określonej przez funkcję map (1-30) myStepper.step(stepsPerRevolution / 100); //Kąt ruchu silnika krokowego (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);

Serial.println(Prędkość); //Sprawdź prędkość silnika za pomocą monitora szeregowego

}

}

1

한번 신호를 받을때 180도, 스텝모터와

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

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

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

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

10 minut do gry, dowiesz się, jak grać w 30 minut, aby uzyskać więcej informacji.

Sznurowanie ARDUINO

#include // silnik krokowy의 라이브러리

const int sampleWindow = 50; // 샘플링한 시간 50ms unsigned int wartość; // 소리 증폭 감지 센서 값 받는 변수 const int kroki na obrót = 2048; //***************여길 낮추면

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

oid setup() {

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

}

pusta pętla () {

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

unsigned int signalMax = 0; // 최대 크기를 초기에는 0으로 설정 unsigned int signalMin = 1024; // 최소 크기를 초기에는 1024로 설정

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

peakToPeak = signalMax - signalMin; // 최대- 최소 = 진폭값 podwójne wolty = (peakToPeak * 5.0) / 1024; // 전압 단위로 변환 = 소리 크기로 변환

int Prędkość = mapa(peakToPeak, 0, 600, 1, 30); // 0 부터 600까지 뜨는 PeakToPeak값을 1부터 30까지로 한정

// peakToPeak의 최대값이 600을 넘어가면 끊김 // 최대값을 잘 잡아주어야함 myStepper.setSpeed(Speed); // 스텝모터의 스피드를 위 mapa함수로 만들어준 값으로 회전시킨다 (1-30) myStepper.step(stepsPerRevolution / 100); //스텝모터가 움직이는 각 (kroki na obrót=2048) analogWrite(kroki na obrót, prędkość*3);

Serial.println(Prędkość); //시리얼 모니터로 모터의 속도를 확인하겠다

}

Zalecana: