kramann.info
© Guido Kramann

Login: Passwort:










3.4 Chaos on Arduino

3.4 Chaos on Arduino (EN google-translate)

3.4 Chaos na Arduino (PL google-translate)

The Arduino Micro is introduced here:

The Arduino Micro is introduced here:

Arduino Micro zostało wprowadzone tutaj:

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.

As a first application for an Arduino Micro, becomes the chaos function y_new = r * y_old * (1-y_old) used to create sounds.

Jako pierwsza aplikacja dla Arduino Micro, staje się funkcją chaosu y_new = r * y_old * (1-y_old) używane do tworzenia dźwięków.

1) Überprüfen der Ergebnisse der Chaos Funktion mit Hilfe der seriellen Schnittstelle

1) Check the results of the chaos function using the serial interface

1) Sprawdź wyniki funkcji chaosu za pomocą interfejsu szeregowego

//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 3.4-1: chaos001 -- Just controlling values from chaos function.

r==3.5

Bild 3.4-1: r==3.5

r==3.98

Bild 3.4-2: r==3.98

chaos01.zip -- sketch folder of chaos01

2) Kontrolle der Tonhöhe mit Hilfe der Chaosfunktion

2) Control the pitch using the chaos function

2) Kontroluj wysokość dźwięku za pomocą funkcji chaosu

circuit.

Bild 3.4-3: circuit.

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

Also check out the reference to the tone function on the Arduino pages:

Sprawdź również odwołanie do funkcji tonu na stronach Arduino:

tone auf Arduino.
Circuit to set up.

Bild 3.4-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 3.4-2: chaos02 -- Hearing the degree of chaos.

chaos02.zip -- sketch folder

3) Steuern eines digitalen Ausgangs mit Hilfe der Chaos Funktion

3) controlling a digital output using the chaos function

3) sterowanie wyjściem cyfrowym za pomocą funkcji chaosu

circuit.

Bild 3.4-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 3.4-3: chaos03 -- Controlling a digital output using the chaos function

chaos03.zip -- sketch folder

5) Steuern von tone mittels eines Abstands Sensors

5) controlling tone by means of a distance sensor

5) kontrolowanie dźwięku za pomocą czujnika odległości

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 3.4-4: chaos05 -- Controlling tone using a distance sensor

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

Bild 3.4-6: Circuit with distance sensor.

circuit.

Bild 3.4-7: circuit.

6) Erzeugen von Rauschen mittels der Chaos Funktion

6) Generate noise using the chaos function

6) Generuj hałas za pomocą funkcji chaosu

circuit.

Bild 3.4-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 3.4-5: Generating noise using the chaos function.

chaos06.zip -- sketch folder

7) R2D2

7) R2D2

7) R2D2

circuit.

Bild 3.4-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 3.4-6: R2D2

chaos07.zip -- sketch folder
Übung
exercise
ćwiczenie

Benutzen Sie den Entfernungssensor wie in Beispiel 5), aber kontrollieren Sie den Klang damit in anderer Weise.

Use the distance sensor as in example 5), but control the sound in a different way.

Użyj czujnika odległości jak w przykładzie 5), ale kontroluj dźwięk w inny sposób.

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.

Help: You could take example 7) and change the value of WAIT with the distance sensor. But there are many other variants possible.

Pomoc: Możesz weź przykład 7) i zmień wartość WAIT z czujnikiem odległości. Istnieje jednak wiele innych wariantów.

Weitere Sensoren
Other sensors
Inne czujniki

Neben dem Infrarot Entfernungssensor steht für den Kurs das Sensorkit "40 in 1 Sensorkit 4duino" zur Verfügung.

In addition to the infrared distance sensor stands for the course the sensor kit 40 to disposal.

Oprócz czujnika odległości w podczerwieni oznacza kurs zestawu czujników 40 dostępne.

Eine Übersicht findet sich hier:

An overview can be found here:

Przegląd można znaleźć tutaj:

Sensorkit
Sensorkit with code examples.