kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Chaos on Arduino

(EN google-translate)

(PL google-translate)

The Arduino Micro is introduced here:

Arduino Micro

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.

r==3.5

Bild 0-1: r==3.5

r==3.98

Bild 0-2: r==3.98

chaos01.zip -- sketch folder of chaos01

2) Kontrolle der Tonhöhe mit Hilfe der Chaosfunktion

circuit.

Bild 0-3: circuit.

Schauen Sie sich auch die Referenz zur tone Funktion auf den Arduino Seiten an:

tone auf Arduino.
Circuit to set up.

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.

chaos02.zip -- sketch folder

3) Steuern eines digitalen Ausgangs mit Hilfe der Chaos Funktion

circuit.

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

chaos03.zip -- sketch folder

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

chaos05.zip -- sketch folder
Circuit with distance sensor.

Bild 0-6: Circuit with distance sensor.

circuit.

Bild 0-7: circuit.

6) Erzeugen von Rauschen mittels der Chaos Funktion

circuit.

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.

chaos06.zip -- sketch folder

7) R2D2

circuit.

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

chaos07.zip -- sketch folder
Ü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
Sensorkit with code examples.