Inhaltsverzeichnis:
- Schritt 1: Welche Materialien werden benötigt?
- Schritt 2: Planare Figur
- Schritt 3: Schaltplan
- Schritt 4: Codierung
- Schritt 5: Film erstellen
Video: Muire: Schallempfindliche optische Effekte - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Möglicherweise haben Sie ein Wellenmuster in dem Bereich gesehen, in dem sich das Moskitonetz überlappt, wenn die Sonne scheint. Wenn Sie das Moskitonetz in der Nähe bewegen oder den Winkel ändern, bewegt sich auch das Wellenmuster. Wenn sich das Muster mit regelmäßigen Abständen sowie die Moskitonetze immer wieder überlappen, kann dieses Muster überall auftreten. Dies wird als Muirre (Moire)-Phänomen bezeichnet, und das auftretende Muster wird als Muirre-Muster bezeichnet.
PROJECT_MUIRE-MUSTER
Muir-Muster haben viele Arten von Mustern und Eigenschaften. Dieses Muster wird verwendet, um neun Sektoren und 11 verschiedene Arten von Moormustern zu erzeugen, um auf rechteckigen Rahmenstrukturrahmen verschiedene optische Effekte, abhängig von der Klanggröße, zu erzeugen.
비칠때 모기장이 겹쳐 있는 생긴 물결무늬를 본 적이 있을 것이다. 가까운 모기장을 상하좌우로 움직이거나 각도를 바꾸면 물결무늬도 움직인다. 아니라 일정한 간격을 갖는 반복해 겹쳐지면 어디서든 이런 무늬가 생길 수. (모아레, Moire), 무늬를.
PROJECT_MUIRE-MUSTER
무아르 패턴은 다양한 종류의 패턴과 특징을 가지고 있다. 패턴을 9개 섹터와 11개의 각기다른 만든 직사각형의 액자형.
Schritt 1: Welche Materialien werden benötigt?
1. Körper des Moiré-Musters
weißes Acryl 5T[940 mm X 840 mm]
Acryldruck [Acryltinte]
2. Moiré-Muster - geformte Typen
Rotationstyp
ein flacher Formulartyp
Hardwaretyp
Typ des Schwarzen Lochs
Schrumpf- / Expansionseffekt
ein flammender Effekt
3. Stromkreis
Arduino Uno x 11
Brotbrett x 1
Schrittmotor_28BYJ-48 x 11
ULN2003A x 11
MAX9814 x 11
1. 무아뢰 패턴 바디
- 아크릴 5T (weißes Acryl) 940 mm x 840 mm
- 아크릴 인쇄 (Schwarze Tinte)
2. 무아뢰 패턴의 종류
- 회 전형
- 일자형
- 하드웨어 형
- 빨려 들어가는 효과
- 수축 / 팽창 하는 효과
- 아지랑이 효과
3
- 아두이도 나노 보드 (arduino UNO)
- (28BYJ-48)
- 모터 드라이브 (ULN2003A)
- Mikrofon 사운드 센서 (max9814)
- 빵판 (Brotbrett)
- 외부전원 (Stromversorgung 5V 25A)
Schritt 2: Planare Figur
1. Planarer Figurenschnitt
Weißes Acryl 5T (940mm x 840mm) X 2
Transparentes Acryl 5T (940mm x 840mm) X 1
Transparentes Acryl 3T (940mm x 840mm) X 1
2. Planarer Figurendruck
Acryldruck
1. 도면 커팅
아크릴 5T (940mm x 840mm) X 2
아크릴 5T (940mm x 840mm) X 1
아크릴 3T (940mm x 840mm) X 1
2. 도면 인쇄
아크릴 인쇄
Schritt 3: Schaltplan
Hardware Funktionsprinzip
POWER -> Arduino UNO -> Mikrofon-Soundverstärkungssensor -> Motor Dirver -> Schrittmotor
Schritt 4: Codierung
Beschreibung der Arduino-Codierung
1. Schrittmotoranschluss
Sobald wir das Signal erhalten haben, haben wir die Anzahl der Schritte um 180 Grad gesteuert, die mit dem Schrittmotor verbunden sind. Stellen Sie die INT-Nummer ein, um eine Verbindung zum Drehwinkel des Schrittmotors herzustellen.
2. Steuern Sie die Schrittmotorgeschwindigkeit je nach Tongrößenwert
Gibt den A0-Pin aus, der dem Mikrofonsensor zugeordnet ist, legt den Wundwert für die Ausgabe auf dem seriellen Monitor fest und wenn der Sensor die Syntax verwendet, um die Drehzahl des Schrittmotors um 30 zu erhöhen, wenn der Wundwert 50 überschreitet.
3. Geschwindigkeit und Drehrichtung von Schrittmotoren, die auf Musik reagieren
Wenn die Geschwindigkeit 10 Grad beträgt und das konstante Geräusch erhöht wird, dreht es sich um 30 Grad, wodurch die verschiedenen Rotationsmuster unterschiedlich aussehen.
ARDUINO-KABELN
#include // Schrittmotor-Bibliothek
const int sampleWindow = 50; // Abtastzeit 50ms unsigned int value; // Tonverstärkungssensorwert empfangen variableconst int stepsPerRevolution = 2048; // Senken wird dich verlangsamen und dich schneller steigern
Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); // Schrittmotor-Pin int # 1 zu Arduino digital 11, 9, 10, 8.
Leere Einrichtung () {
Serial.begin (9600); // Seriellen Monitor starten, Geschwindigkeit 9600
}
Leere Schleife () {
unsigned long startMillis = millis(); // Abtastzeit unsigned int peakToPeak = 0; // Amplitude des Sprachsignals
unsigned int signalMax = 0; // Maximale Größe auf Null setzen, anfänglich ohne Vorzeichen int signalMin = 1024; // Setze die minimale Größe anfänglich auf 1024
Während (millis () - startMillis < SampleWindow) { Wert = analogRead (A0); // Schallsensordaten abrufen if (Wert signalMax) // Maximale Größenmessungen signalMax = value; // Maximale Größe signalMax save else if (value < signalMin) // Minimale Größe Messungen signalMin = value; // Mindestgröße sigmalMin speichern } }
peakToPeak = signalMax – signalMin; // Maximum- Min = Amplitudenwert double Volt = (peakToPeak * 5.0) / 1024; // In Volt umwandeln = In Tongröße umwandeln
int Geschwindigkeit = map(peakToPeak, 0, 600, 1, 30); // PeakToPeak-Wert von 0 bis 600 auf 1 bis 30 begrenzen.
//Wenn peakToPeak 600 überschreitet, geht es verloren // Behalte den Maximalwert.
myStepper.setSpeed (Geschwindigkeit); // Drehen Sie die Geschwindigkeit des Schrittmotors auf den Wert der Kartenfunktion (1-30) myStepper.step (stepsPerRevolution / 100); // Bewegungswinkel des Schrittmotors (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);
Serial.println (Geschwindigkeit); // Überprüfen Sie die Drehzahl des Motors mit dem seriellen Monitor
}
}
1. 스텝모터 연결
한번 신호를 받을때 스텝 바퀴수가 180도 제어를하였고, 스텝모터와 연결한
INT 넘버를 설정하여 스텝모터의 회전 각과 연결진행
2. 소리 크기 값에 따라, 스텝모터 속도 제어
Mikrofon 센서와 연결된 A0 핀을 출력하고, 시리얼 모니터에 소리값이 출력되게끔 설정후, wenn 구문을 사용하여 센서에서 소리값이 50 이 넘어갈때 스텝모터 회전의 속도가 30 이 증가 하여, 소리에 따라 스텝모터의 속도가 제어 되게함.
3.음악에 반응하는 스텝모터의 속도와 회전 방향
10만큼의, 30의 다른 것을.
ARDUINO-KABELN
#include // Schrittmotor의 라이브러리
const int sampleWindow = 50; // 샘플링한 시간 50ms unsigned int value; // 증폭 감지 센서 값 받는 변수 const int stepsPerRevolution = 2048; //****************여길 낮추면 느려지고 높이면 빨라짐
Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8); //스텝모터 핀 int 1번 부터 아두이노 디지털 11, 9, 10, 8 순으로 장착
oid-Setup () {
Serial.begin (9600); // 모니터 시작, 9600
}
Leere Schleife () {
unsigned long startMillis = millis(); // 샘플링 시작 unsigned int peakToPeak = 0; // 음성 신호의 진폭
unsigned int signalMax = 0; // 최대 크기를 초기에는 0으로 설정 unsigned int signalMin = 1024; // 최소 크기를 초기에는 1024로
while (millis() - startMillis < sampleWindow) {// 데이터를 50ms마다 모으는 while문 value = analogRead (A0); // 소리 감지센서에더 데이터 받아오기 if (Wert signalMax) // 최대 크기 측정 signalMax = Wert; // 최대 크기 signalMax에 저장 else if (Wert < signalMin) // 최소 크기 측정 signalMin = Wert; // 최소 크기 sigmalMin에 저장 } }
peakToPeak = signalMax – signalMin; // 최대- = 진폭값 Doppelvolt = (peakToPeak * 5,0) / 1024; // 전압 단위로 변환 = 소리 크기로 변환
int Geschwindigkeit = map(peakToPeak, 0, 600, 1, 30); // 0 부터 600까지 뜨는 peakToPeak값을 1부터 30까지로 한정
// peakToPeak의 600을 끊김 // 최대값을 myStepper.setSpeed(Speed); // 스텝모터의 스피드를 위 map함수로 만들어준 값으로 회전시킨다 (1-30) myStepper.step(stepsPerRevolution / 100); //스텝모터가 움직이는 각 (stepsPerRevolution=2048) analogWrite (stepsPerRevolution, Speed*3);
Serial.println (Geschwindigkeit); //시리얼 모니터로 모터의 속도를 확인하겠다
}