Chaos on Arduino
(EN google-translate)
(PL google-translate)
The Arduino Micro is introduced here:
Als eine erste Anwendung für einen Arduino Micro, wird die Chaos Funktion y_new = r*y_old*(1-y_old) verwendet, um damit Geräusche zu erzeugen.
1) Überprüfen der Ergebnisse der Chaos Funktion mit Hilfe der seriellen Schnittstelle
//Viewing effect of chaos function #define r 3.5 //#define r 3.8 //#define r 3.98 float y_old = 0.56; float y_new = 0.0; int value=0; void setup() { Serial.begin(9600); } void loop() { y_new = r*y_old*(1.0 - y_old); value = (int)(100.0*y_new); //Serial.println(y_new); Serial.println(value); y_old = y_new; delay(300); }
Code 0-1: chaos001 -- Just controlling values from chaos function.
Bild 0-1: r==3.5
Bild 0-2: r==3.98
2) Kontrolle der Tonhöhe mit Hilfe der Chaosfunktion
Bild 0-3: circuit.
Schauen Sie sich auch die Referenz zur tone Funktion auf den Arduino Seiten an:
Bild 0-4: Circuit to set up.
////Hearing degree of chaos #define r 3.5 //#define r 3.8 //#define r 3.98 float y_old = 0.56; float y_new = 0.0; int value=0; void setup() { Serial.begin(9600); } void loop() { y_new = r*y_old*(1.0 - y_old); value = (int)(100.0*y_new); //Serial.println(y_new); Serial.println(value); y_old = y_new; tone(13, 200 + 2*value); delay(300); }
Code 0-2: chaos02 -- Hearing the degree of chaos.
3) Steuern eines digitalen Ausgangs mit Hilfe der Chaos Funktion
Bild 0-5: circuit.
//Controlling a digital output. //#define r 3.5 //#define r 3.8 #define r 3.98 float y_old = 0.56; float y_new = 0.0; int value=0; int i; void setup() { pinMode(13, OUTPUT); } void loop() { y_new = r*y_old*(1.0 - y_old); value = (int)(100.0*y_new); y_old = y_new; for(i=0;i<value;i++) digitalWrite(13, HIGH); for(i=0;i<100-value;i++) digitalWrite(13, LOW); }
Code 0-3: chaos03 -- Controlling a digital output using the chaos function
5) Steuern von tone mittels eines Abstands Sensors
int sensor=0; int pitch=0; void setup() { } void loop() { sensor = analogRead(0); pitch+=30; pitch%=200+sensor; tone(13,100+pitch); delay(10); }
Code 0-4: chaos05 -- Controlling tone using a distance sensor
Bild 0-6: Circuit with distance sensor.
Bild 0-7: circuit.
6) Erzeugen von Rauschen mittels der Chaos Funktion
Bild 0-8: circuit.
#define r 3.99 void setup() { pinMode(13,OUTPUT); } int x=0; int i=0; float y_old = 0.56; float y_new = 0.0; int value=0; void loop() { y_new = r*y_old*(1.0 - y_old); y_old = y_new; value = (int)(100.0*y_new); for(i=0;i<value;i++) digitalWrite(13,HIGH); for(i=0;i<value;i++) digitalWrite(13,LOW); }
Code 0-5: Generating noise using the chaos function.
7) R2D2
Bild 0-9: circuit.
#define r 3.99 void setup() { pinMode(13,OUTPUT); } int x=0; int i=0; float y_old = 0.56; float y_new = 0.0; int value=0; int WAIT=70; int count=0; void loop() { count++; if(count==WAIT) { y_new = r*y_old*(1.0 - y_old); y_old = y_new; value = (int)(100.0*y_new); count=0; } for(i=0;i<value;i++) digitalWrite(13,HIGH); for(i=0;i<value;i++) digitalWrite(13,LOW); }
Code 0-6: R2D2
Übung
Benutzen Sie den Entfernungssensor wie in Beispiel 5), aber kontrollieren Sie den Klang damit in anderer Weise.
Hilfestellung: Sie könnten das Beispiel 7) nehmen und den Wert von WAIT mit dem Entfernungssensor verändern. Es sind aber viele andere Varianten denkbar.
Weitere Sensoren
Neben dem Infrarot Entfernungssensor steht für den Kurs das Sensorkit "40 in 1 Sensorkit 4duino" zur Verfügung.
Eine Übersicht findet sich hier:
Sensorkit with code examples.