Folgende "Projekte" d.h. elektronische Schaltungen und zugehörige Programme habe ich vorbereitet und können bearbeitet werden. Ziel ist, Projekte mit möglichst einfachen Schaltungen zu realisieren, damit während der Abendtermine weniger Verzögerungen wegen ihnen auftreten. So können wir uns besser auf die Programmierung konzentrieren.

Weitere Ziele sind:

  • Möglichst vollständige Abdeckung der wichtigen Strukturen d.h. Arduino API, C-Konstrukte, I/O Kanäle.
  • Von ziemlich leicht bis anspruchsvoll, damit für alle etwas dabei ist.
  • Theorie- und Praxis-Abschnitte wechseln sich ab.

Für jedes Projekt überlegen wir zunächst, welche Funktionen unsere Programme erfüllen müssen. Dann beginnen wir, den Hardware-Aufbau Schritt für Schritt in Betrieb zu nehmen und Funktionen hinzuzufügen. So gelangen wir schließlich nach einigen Stationen an unser Ziel. Ebenso wie Rom nicht an einem Tag erbaut wurde, schreibt man auch kein Software-Programm in einem Zug! In der englischen Fachsprache spricht man von "incremental and iterative development". Das Schöne daran ist, dass man am Ende genau weiß, was warum wo programmiert wurde. Dieses Verständnis ist unverzichtbar, will man ein Programm abwandeln oder ähnliche Programme von Grund auf schreiben.

So sieht mein Arduino UNO in natura aus:

ArdionoUNO-600.JPG

Um eine Vorstellung des Hardwareaufbaus zu bekommen, sind unten einige meiner Protoshields abgebildet. Diese werden zum Betrieb auf das Arduino-Board (siehe oben) gesteckt. Im Kurs arbeiten wir aber mit Steckbrettern; löten ist daher nicht erforderlich. Zu allen Projekten habe ich die entsprechenden Schaltpläne im Fritzing Format angehängt.
ACHTUNG: Die Dateinamen der Fritzing Schaltpläne enden mit ".fzz". Beim Download kann es je nach verwendetem Browser passieren, dass diese Endung auf ".zip" verändert wird. Dann muss man sie manuell wieder in ".fzz" zurückdrehen, um sie mit Fritzing öffnen zu können. Sorry.

Bitte beachtet in jedem Fall das Arduino UNO R3 pinout:
k-ArduinoUnoPin.jpg

Steckbrett

Lauflicht400.JPG

Idee: Das Betätigen eines Tasters lässt eine LED solange aufleuchten, wie der Taster gedrückt bleibt. (Keine Programmierung!)
Aspekte: Benutzung des Steckbretts, Fritzing-Schaubild, LED-Polarität, Vorwiderstand. Hier gibt's weitere Erläuterungen. Hier geht's zum Schaltplan.

Licht Ein-Aus

Idee: Das Betätigen eines Tasters lässt eine LED aufleuchten, erneute Betätigung löscht die LED.
Aspekte: pinMode(), digitalRead(), digitalWrite(), delay(), globale Variable, if/else, entprellen
Ablauf: Starte mit dem Einschalten, danach schrittweiser Ausbau
Erweiterungen: Lasse die LED so oft blinken, wie der Taster betätigt wurde
Hier geht's zum Schaltplan

Lauflicht

Idee: Ein Lichtpunkt wandert in 8 LEDs hin und her oder im Kreis. Abspielen beliebiger Muster. Einstieg mit Binärzähler in das Port-Konzept
Aspekte: C-Array, Bits und Bytes, eigene Funktion
Hier geht's zum Schaltplan
Siehe auch: Mehr LEDs mit 74HC595N, Französische Apothekenlichter, LED Cube, LED-Tisch 1, LED-Tisch 2

Count-Down a la James Bond

Idee: Nach Reset kreiseln zunächst die Segmente. Nach Drücken einer Taste zählt eine einstellige 7-Segmentanzeige auf Null zurück. Bei jeder Sekunde ein kurzer Pieps und am Ende starker Signalton mit blinkender Null. Anschließend Chaos.
Aspekte: Logik der 7-Segment-Anzeigen.
Hier geht's zum Schaltplan

Dimmer

Idee: Mit einem Poti eine LED dimmen, danach Steuerung mit LDR
Aspekte: Spannungsteiler, analogRead, analogWrite - PWM, Serielle Kommunikation, serieller Monitor.
Hier geht's zum Schaltplan

Theremin

Siehe: YouTube Video, sowie für Freunde von Maurice Ravel
Idee: Töne verschiedener Frequenz berührungslos mit Handbewegungen erzeugen. Theremin mit beliebigen Tonleitern.
Aspekte: Tonerzeugung prinzipiell, Timer, tone(), asynchrone Aufrufe, #include pitches.h, LDR, C-Array, Skalierung mit map-Funktion.
Hier geht's zum Schaltplan

Melodie400.JPG

Melodie und Rhythmus

Idee: Programmatisches Abspielen von Melodien
Aspekte: Umsetzung von Melodien auf Tonhöhe, Länge, Timing, Rhythmus, Hardware-Interrupt
Erweiterungen: Musikbox mit mehreren Melodien, Umschaltung per Taster. Später dann Geschwindigkeitssteuerung per Poti.
Hier geht's zum Schaltplan

Ampel

Idee: Funktion einer Fußgängerampel realisieren. Einmal rot/gelb/grüne LED für Autoampel, einmal rot/grün für Fußgänger sowie die Anzeige "Signal kommt" (rot). Start mit Taster.
Aspekte: Einfache Ablaufsteuerung mit delay()
Hier geht's zum Schaltplan

Ampel400.JPG

Küchenwecker

Wecker400.JPG

Idee: Rückwärtslaufende Uhr mit Tonsignal, komfortable Bedienung per Poti.
Aspekte: 4-fach 7-Segment-Anzeigen, LED-Multiplexing, Timer-Interrupt
Hier geht's zum Schaltplan

Einparkhilfe

Idee: Warnung vor Gegenständen hinter dem Fahrzeug, sobald der Rückwärtsgang eingelegt wird. Benutze einen Ultraschall Enfernungsmesser. Je näher die Gegenstände - z.B. ein anderes parkendes Auto - um so schneller werden Signaltöne hintereinander ausgegeben. Darstellung mit Processing.
Aspekte: pulseIn(), Floating-point Berechnung, Physik. Interaktion Arduino - Processing.
Hier geht's zum Schaltplan

Knock-Lock

Idee: Betätigung eines Riegels per Klopfzeichen. Damit das Schloss einen echten Schutz vor Unbefugten bietet, müssen die Klopfzeichen einem von uns programmierten zeitlichen Muster folgen, z.B. Tack-Pause-Tack-Tack-Tack. Die Pause muss mindestens eine, maximal zwei Sekunden dauern. Die letzten beiden Tacks müssen jeweils nach 200 ms - 400 ms folgen. Ein verpasstes oder frühzeitiges Tack setzt die Erkennungslogik zurück, sodass es schwierig wird, ohne Kenntnis des Codes das Schloss zu öffnen. Weitere Erschwerung: Hat man nach 20sec das Schloss nicht geöffnet, muss man eine Minute warten.
Aspekte: analogIn(), Servo, Muster-Erkennungs-Logik
Hier geht's zum Schaltplan

Im Video erkennt man folgenden Ablauf:

  1. Betätigt man den Reset-Knopf, geht der Riegel einmal hin und her und bleibt in geöffneter Stellung stehen. Die grüne LED leuchtet.
  2. Ein Druck auf den Taster (gelber Knopf) verriegelt das Schloss. Die rote LED leuchtet.
  3. Schläge mit dem Stift auf den Piezo-Summer werden erkannt (gelbe LED), führen aber nicht zur Entriegelung.
  4. Erst das richtig Timing ist erfolgreich: Das Schloss öffnet sich und die grüne LED leuchtet wieder.

Temperaturanzeige auf LCD

Dieses Projekt zeigt, wie man mit sehr wenig Programmierung ans Ziel kommt, wenn man die richtige Bibliothek einbindet, in diesem Fall LiquidCrystal.h.
Hier geht's zum Schaltplan

LcdTemperatur400.JPG

Tracker

Idee: Eine einfache Anordnung von 2 LDRs in Pappröhrchen liefert eine Zieleinrichtung für Lichtquellen. Auf einem Servo montiert, sucht sie nach Quellen, rastet auf sie ein und folgt ihren Bewegungen.
Aspekte: Zustandshaltung und Übergänge: Kalibrieren, suchen, folgen. Rückkopplung.
Eine ähnliche Regelung findet man hier. Aber was hat das Huhn mit dem Arduino gemein?
Hier geht's zum Schaltplan

Sonar (Arduino + Processing)

Siehe: YouTube Video
Idee: Erkundung der Umgebung wie mit einem selbsttätig schwenkenden Radar, jedoch mit Schallwellen
Aspekte: Servo, Ultraschall, Grafische Anzeige mit Processing
Hier geht's zum Schaltplan

Symmetrie (Processing)

Idee: Malt man mit der Maus eine Figur, so wird automatisch auch ihr Spiegelbild gezeichnet.
Aspekte: Einfache Zeichenfunktionen in Processing, starte mit Konfetti.

Ballonjagd (Processing)

Idee: So schnell wie möglich die plötzlich auftauchenden Ballone mit dem passenden Geräusch platzen lassen!
Aspekte: Ablaufsteuerung für eine simples Geschicklichkeitsspiel, Abspielen von Sound-Dateien.
Erweiterungen: Hall of Fame (Bestenliste), im Hintergrund ein Video abspielen, eine originelle grafische Gestaltung finden, mehrere bewegte Ballone gleichzeitig, der Fantasie sind keine Grenzen gesetzt…

Tracker600.JPG
SonarScreen500.jpg
Sonar400.JPG
ballonjagd.JPG
Symmetrie241.jpg