WELT —> COMPUTER

ÜBERSETZUNG DER WELT IN DEN COMPUTER

Diese Übung ist eine Einführung in das Übersetzen von Dingen aus der physischen Welt in die elektrische Welt von Arduino (via Sensoren). Und dann wiederum eine übersetzung aus dem Elektrischem zurück in die physische Welt (via Aktuatoren).

ARDUINO
Arduino ist eine Plattform (Hard- und Software), die das Programmierung von Mikrocontrollern für Menschen zugänglich macht, die nicht viel Wissen über Elektrotechnik oder das Schreiben von Code haben.

Arduino Uno Pinbelegung:

(+) = plus = positiv = VCC
(-) = minus = negativ = GND (Masse) = Erdung

Arduino Code Struktur:

Warum würde ich einen Mikrocontroller programmieren wollen?
Ein beliebter Grund ist es, Informationen über die physische Welt durch analoge und digitale Sensoren zu sammeln, diese Informationen in Zahlen zu übersetzen, mit diesen Zahlen zu rechnen, einige Entscheidungen zu treffen und dann etwas in der Welt zu tun, indem man einen Aktuator auslöst. Ein solcher Prozess wird auch als „physical computing“ bezeichnet.

Zum Beispiel: Wir haben einen gestrickten dehnungs Sensor, der in den Bauchbereich unseres Lieblings-Weihnachtspullovers eingebettet ist, und wir wollen, dass eine rote LED-Leuchte blinkt, wenn wir so viel gegessen haben, dass unser Bauch den Sensor dehnt ab eineem bestimmtem Schwellwert (threshold).

Arduino wird mit vielen Codebeispielen geliefert. Bevor wir versuchen, unseren eigenen Code zu schreiben, schauen wir uns zwei Beispiele an:

BLINK Beispiel
File —> Examples —> 01.Basics —> “Blink”
Das Beispiel „Blink“ blinkt alle 1 Sekunde (1000 Millisekunden) eine LED ein und aus.

Blink Schaltplan:

GRAPH Beispiel
File —> Examples —> 04.Communication —> “Graph“
Das Beispiel „Graph“ liest den Wert eines analogen Sensors und druckt diesen Wert über die serielle Schnittstelle aus, so dass du ihn im seriellen Monitor des Arduino sehen kannst.

! ! ! ACHTUNG! ! !
Der gestrickte Dehnungssensor ist ein „variabler Widerstand“. Es ändert seinen elektrischen Widerstand beim Dehnen, da die Fasern im Garn beim Zusammendrücken einen besseren Kontakt haben.
Arduino kann jedoch nur Spannungsänderungen lesen/erkennen, nicht aber den Widerstand.
Wenn wir wollen, dass der Arduino den Wert unseres Sensors liest, müssen wir zuerst übersetzen: WIDERSTAND –> SPANNUNG. Dazu bauen wir einen Spannungsteiler:

DER SPANNUNGSTEILER

Das Spannungsteiler Diagram ist vielleicht das einzige was du in diesem Kurs in- und auswendig lernen solltest.

Wenn du vergessen hast was der Spannungsteiler macht, gehe nochmals diese Übung durch:

Graph Schaltplan:

GRAPH + BLINKEN
Sobald du verstanden hast, wie diese beiden Beispiele funktionieren, versuche sie so zu kombinieren, dass die LED blinkt, wenn der Sensor gestreckt ist.

Benütze dazu die if-Funktion:

if( x < y == true) {

// was in der {} Klammer steht

// wird gemacht wenn die gleichung in der () wahr ist

}

TIP: mit rechts-klick auf einem teil vom Code kannst du „in Referenz finden“ auswählen um mehr zu dazu herauszufinden.

Dein Code könnte etwa so aussehen:

// GRAPH + BLINK EXAMPLE
// declare variables:
char LEDpin = 13;
char SENSORpin = A0;
char SENSORvalue = 0;

void setup() {
pinMode(LEDpin, OUTPUT);
pinMode(SENSORpin, INPUT);
Serial.begin(9600); // initialize the serial communication:
}

void loop() {
SENSORvalue = analogRead(SENSORpin); // read the sensor value and store in the variable
Serial.println(SENSORvalue); // send the value of analog input 0

if (SENSORvalue < 500 == true) {
digitalWrite(LEDpin, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LEDpin, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
else {
digitalWrite(LEDpin, LOW);
}
}

GRAPH + BLINK Schaltplan:

TONE Erweiterung

Jetzt wollen wir auch noch, dass der Pullover einen Ton von sich gibt wenn die LED blinkt, damit wir es auf jeden Fall mitbekommen wenn unser Bauch zu voll ist!

Benütze hierzu diese funktionen:

tone(pin#, frequency);

noTone(pin#);