Zurück zur StartseiteInformatik · Realschule 10 · Fach wechseln
Kostenlos starten
Realschule 10 · Informatik
Programmierung und Robotik · Steuerung und Robotik

Mikrocontroller und Roboter

Die Platine, die ihr im Informatikraum habt, ist kein Spielzeug: Sie ist ein vollständiger Computer, nur winzig und für eine einzige Aufgabe gebaut. Mit ihr baust du Ampeln, Schranken und Roboter, die ihre Umgebung wirklich wahrnehmen. Am Ende dieser Seite kannst du erklären, wie so eine Parkplatzschranke „denkt“.

Der Mikrocontroller: ein winziger Computer

Auch ein Mikrocontroller folgt dem EVA-Prinzip: Eingabe (Sensoren) – Verarbeitung (Programm im Mikrocontroller) – Ausgabe (Aktoren). Den Aufbau mit Prozessor und Speicher kennst du schon aus dem Von-Neumann-Modell von früher, nur ist hier alles auf einem Chip vereint.

Vergleich: Desktop-Computer mit Bildschirm, Tastatur und Netzstecker gegenüber einem Mikrocontroller, einem kleinen Chip mit Ein- und Ausgabe-Pins, der mit Batterien läuft Desktop-Computer viele Aufgaben gleichzeitig Mikrocontroller eine feste Aufgabe Internet Steckdose teuer, groß Eingabe Ausgabe Ein-/Ausgabe-Pins Batterien günstig, klein

Vom Sketch auf die Platine

Das Programm für die Platine heißt Sketch. Du schreibst es am Computer in einer Entwicklungsumgebung (bei Arduino in C++). Beim Hochladen über das USB-Kabel wird der Quelltext zuerst vom Computer in Maschinencode übersetzt (kompiliert) und dann in den Speicher der Platine geschrieben. Dieser Speicher behält das Programm auch ohne Strom. Deshalb arbeitet die Platine danach allein, ohne Computer: Sie führt das Programm immer wieder von vorn aus.

Jeder Sketch hat zwei Teile:

void setup() {

  // läuft einmal beim Start: Pins einrichten

}

void loop() {

  // läuft danach immer wieder von vorn

}
Üben★☆☆Nicht begonnen
Erkläre, was ein Mikrocontroller ist (ein vollständiger, aber kleiner Computer auf einer Platine), und nenne zwei Unterschiede zu einem Desktop-Computer: Was kann jeder…

Erkläre, was ein Mikrocontroller ist (ein vollständiger, aber kleiner Computer auf einer Platine), und nenne zwei Unterschiede zu einem Desktop-Computer: Was kann jeder und wofür wird er verwendet?

Lösen
Üben★☆☆Nicht begonnen
Erkläre, wie ein Programm auf die Platine kommt: Wo wird es geschrieben, was passiert beim „Hochladen“ über das Kabel und warum arbeitet die Platine danach allein, ohne…

Erkläre, wie ein Programm auf die Platine kommt: Wo wird es geschrieben, was passiert beim „Hochladen“ über das Kabel und warum arbeitet die Platine danach allein, ohne Computer, und führt das Programm in einer Schleife aus?

Lösen

Pins: Hier wird alles angeschlossen

Schema: Taster an einem digitalen Eingang, LDR an einem analogen Eingang, LED an einem digitalen Ausgang und Servo an einem Ausgang einer Platine Platine ⏺ Taster digitaler Eingang ☀ LDR analoger Eingang LED digitaler Ausgang ⚙ Servo Ausgang (Winkel)

Im Sketch legst du in setup() mit pinMode fest, was ein Pin tut. Mit digitalRead liest du einen digitalen Eingang, mit digitalWrite setzt du einen Ausgang auf HIGH (5 V) oder LOW (0 V), mit analogRead liest du einen analogen Eingang (Werte von 0 bis 1023).

int ledPin = 13;      // LED an Pin 13

int tasterPin = 2;    // Taster an Pin 2

void setup() {

  pinMode(ledPin, OUTPUT);    // Ausgang

  pinMode(tasterPin, INPUT);  // Eingang

}
Üben★☆☆Nicht begonnen
Die Abbildung zeigt eine Mikrocontroller-Platine mit beschrifteten Pingruppen, bis auf eine. Der verdeckte Pin ist der gemeinsame Bezugspunkt, zu dem alle an die Platine…

Die Abbildung zeigt eine Mikrocontroller-Platine mit beschrifteten Pingruppen, bis auf eine.

Placa microcontroladora con pines digitales, pines analógicos y pines de alimentación; uno de ellos está tapado con una interrogación Digitale Pins D2–D13 USB Mikrocontroller Analoge Pins A0–A5 5 V 3,3 V ?

Der verdeckte Pin ist der gemeinsame Bezugspunkt, zu dem alle an die Platine angeschlossenen Stromkreise zurückführen. Nenne ihn und erkläre, wozu er dient, welcher Unterschied zwischen den digitalen Pins (alles oder nichts) und den analogen Pins (lesen kontinuierliche Werte) besteht und wofür der USB-Anschluss verwendet wird.

Lösen
Üben★☆☆Nicht begonnen
Ordne diese Bauteile danach ein, ob sie an einen Eingangspin oder einen Ausgangspin der Platine angeschlossen werden, und begründe je eines pro Typ: ein Taster, eine…

Ordne diese Bauteile danach ein, ob sie an einen Eingangspin oder einen Ausgangspin der Platine angeschlossen werden, und begründe je eines pro Typ: ein Taster, eine LED, eine LDR, ein Summer und ein Potenziometer.

Lösen
Üben★☆☆Nicht begonnen
Gib an, ob diese Aussagen wahr oder falsch sind, und begründe jede Antwort: (a) Die Platine führt das Programm genau so aus, wie wir es geschrieben haben, ohne es vorher…

Gib an, ob diese Aussagen wahr oder falsch sind, und begründe jede Antwort: (a) Die Platine führt das Programm genau so aus, wie wir es geschrieben haben, ohne es vorher zu übersetzen; (b) die Pins der Platine halten jeden Strom aus, also kann die LED ohne Widerstand betrieben werden; (c) ein Servo kann vom Programm auf einen bestimmten Winkel gestellt werden; (d) die Platine merkt sich das letzte Programm, auch wenn sie vom Strom getrennt wird.

Lösen

Sensoren und Aktoren des Roboters

Blockdiagramm: Ultraschall- und Infrarotsensor senden Signale an die Platine, die Platine sendet Befehle an Servo, Motor und Summer EINGABE VERARBEITUNG AUSGABE Platine Ultraschall Infrarot Servo Motor Summer
Sensor misst … Einsatz
Ultraschallsensor Entfernung Abstandswarner, Einparkhilfe
LDR Helligkeit Dämmerungsschalter
Temperatursensor Temperatur Gewächshaus, Thermometer
Infrarot-Linienfolger hell/dunkel am Boden Linienfolger-Roboter
Aktor Wirkung
LED leuchtet oder leuchtet nicht
Summer gibt einen Ton aus
Servo dreht bis zu einem befohlenen Winkel und bleibt dort stehen
Gleichstrommotor dreht ununterbrochen, mehr oder weniger schnell
Üben★☆☆Nicht begonnen
Die Abbildung zeigt einen mobilen Roboter von oben, mit beschrifteten Bauteilen und einem mit Fragezeichen verdeckten „Gehirn“. Nenne das verdeckte Bauteil, erkläre,…

Die Abbildung zeigt einen mobilen Roboter von oben, mit beschrifteten Bauteilen und einem mit Fragezeichen verdeckten „Gehirn“.

Robot móvil visto desde arriba con ruedas con motor, LED, zumbador, sensor de ultrasonidos y batería rotulados, y una pieza central tapada con un interrogante ? Batterie Räder mit Motor Ultraschallsensor Summer LED

Nenne das verdeckte Bauteil, erkläre, welche Informationen es von den Sensoren erhält und welche Befehle es an die Aktoren sendet, und ordne die beschrifteten Elemente (Räder mit Motor, Ultraschallsensor, Summer, LED, Batterie) als Eingang, Ausgang oder Energiequelle ein.

Lösen
Üben★☆☆Nicht begonnen
Gib an, was jeder Sensor misst, den du an die Platine anschließen kannst, und nenne ein Projekt, in dem du ihn einsetzen würdest: Ultraschallsensor (Entfernung), LDR…

Gib an, was jeder Sensor misst, den du an die Platine anschließen kannst, und nenne ein Projekt, in dem du ihn einsetzen würdest: Ultraschallsensor (Entfernung), LDR (Licht), Temperatursensor und Infrarot-Linienfolger (unterscheidet hell von dunkel auf dem Boden).

Lösen
Üben★☆☆Nicht begonnen
Gib an, was jeder an die Platine anschließbare Aktor tut, und nenne einen wesentlichen Unterschied zwischen ihnen: eine LED, ein Summer, ein Servo (dreht bis zur…

Gib an, was jeder an die Platine anschließbare Aktor tut, und nenne einen wesentlichen Unterschied zwischen ihnen: eine LED, ein Summer, ein Servo (dreht bis zur befohlenen Position) und ein Gleichstrommotor (dreht ununterbrochen mit mehr oder weniger Drehzahl).

Lösen
Üben★★☆Nicht begonnen
Um die Schranke eines Parkplatzes zu bewegen, kannst du einen Servo oder einen Gleichstrommotor verwenden. Vergleiche beide: Welcher erreicht eine genaue Position und…

Um die Schranke eines Parkplatzes zu bewegen, kannst du einen Servo oder einen Gleichstrommotor verwenden. Vergleiche beide: Welcher erreicht eine genaue Position und bleibt dann stehen, welcher dreht ununterbrochen, welcher braucht in diesem Projekt weniger zusätzliche Elektronik und warum?

Lösen
Üben★★☆Nicht begonnen
Die Motoren eines Roboters werden nicht von einem Pin der Platine versorgt, sondern von der Batterie über eine „Motortreiber“-Platine. Erkläre, warum (die Pins liefern…

Die Motoren eines Roboters werden nicht von einem Pin der Platine versorgt, sondern von der Batterie über eine „Motortreiber“-Platine. Erkläre, warum (die Pins liefern sehr wenig Strom und der Motor würde viel mehr verlangen), welche Aufgabe die Treiberplatine hat und welchen Zusammenhang das mit dem Relais in elektronischen Schaltungen hat.

Lösen
Üben★★★Nicht begonnen
Dein Team soll die Hardwareplattform für einen Smart-Home-Prototyp auswählen, der Rollläden mit Servomotoren steuert, Gaslecks und Anwesenheit in drei verschiedenen…

Dein Team soll die Hardwareplattform für einen Smart-Home-Prototyp auswählen, der Rollläden mit Servomotoren steuert, Gaslecks und Anwesenheit in drei verschiedenen Räumen erkennt und den Status auf einem LCD-Display anzeigt.

  1. a) Vergleiche die Eignung eines kompakten „Alles-in-einem“-Boards (mit Sensoren und LED-Anzeige direkt auf der Platine) mit einem modularen Entwicklungsboard mit Erweiterungspins und Steckplatine (Breadboard). Analysiere Aspekte wie die räumliche Verteilung der Sensoren in der Wohnung und die Verkabelung von Leistungsaktoren.
  2. b) Wenn ein Schüler beim Aufbau einen Fehler macht und den Temperatursensor durch Überspannung oder Verpolung zerstört, analysiere die technischen und finanziellen Folgen beim integrierten im Vergleich zum modularen Board.
  3. c) Begründe, welche der beiden Plattformen du für dieses abschließende Projekt zur Heimautomatisierung wählen würdest und für welche du eine zweistündige Einführungseinheit in die Programmierung reservieren würdest.
Lösen

Programmieren mit Bedingungen: lesen, vergleichen, handeln

Dieselbe Logik kannst du auf verschiedene Arten darstellen. Der Programmablaufplan (PAP) nach DIN 66001 zeigt den Ablauf mit Symbolen: Oval = Start/Ende, Rechteck = Anweisung, Raute = Verzweigung, Parallelogramm = Ein-/Ausgabe.

Programmablaufplan und Struktogramm für: Helligkeit lesen, mit dem Schwellenwert 300 vergleichen, LED ein- oder ausschalten Programmablaufplan Start w = analogRead w < 300? ja nein LED an LED aus Struktogramm wiederhole immer w ← analogRead(A0) w < 300 ? ja: LED an nein: LED aus

Im Struktogramm (Nassi-Shneiderman-Diagramm) stehen die Anweisungen in Kästen untereinander; Verzweigungen und Schleifen sind geschachtelte Kästen. Beide Darstellungen beschreiben denselben Algorithmus, den du hier als Sketch siehst:

int ldrPin = A0;        // LDR am analogen Eingang A0

int ledPin = 13;        // LED an Pin 13

int schwelle = 300;     // Schwellenwert

void setup() {

  pinMode(ledPin, OUTPUT);

}

void loop() {

  int wert = analogRead(ldrPin);   // lesen

  if (wert < schwelle) {           // vergleichen

    digitalWrite(ledPin, HIGH);    // handeln: dunkel -> LED an

  } else {

    digitalWrite(ledPin, LOW);     // hell -> LED aus

  }

  delay(100);                      // kurze Pause

}

Variablen haben einen Datentyp: int (ganze Zahl), float (Kommazahl, im Code mit Punkt geschrieben, z. B. 3.3), boolean bzw. bool (true oder false). Bedingungen kannst du mit logischen Operatoren verknüpfen: && (UND), || (ODER), ! (NICHT), wie bei den Logikgattern. Ein Logikgatter ist ein Baustein, der aus 0/1-Eingängen einen Ausgang bildet: Beim UND-Gatter ist der Ausgang nur 1, wenn alle Eingänge 1 sind; beim ODER-Gatter, wenn mindestens ein Eingang 1 ist; das NICHT-Gatter kehrt den Wert um. Beispiel Garagentor: Es öffnet, wenn (Fernbedienung gedrückt UND kein Hindernis) – im Code taste && !hindernis.

Eine eigene Funktion: Modularisierung

Wenn du eine Messung oft brauchst, packst du sie in eine eigene Funktion. So wird der Sketch übersichtlich und du kannst die Teile einzeln testen.

int abstandMessen() {

  // gibt die gemessene Entfernung in cm zurück

  // (Messung mit dem Ultraschallsensor)

  ...

  return entfernung;

}

void loop() {

  int d = abstandMessen();

  if (d < 20) {

    // Hindernis: anhalten

  }

}
Üben★★☆Nicht begonnen
Du möchtest, dass eine LED leuchtet, wenn das Licht im Zimmer unter einen bestimmten Wert sinkt. Erkläre, welchen Pin du zum Auslesen der LDR verwendest (einen…

Du möchtest, dass eine LED leuchtet, wenn das Licht im Zimmer unter einen bestimmten Wert sinkt. Erkläre, welchen Pin du zum Auslesen der LDR verwendest (einen analogen), was es bedeutet, im Programm einen „Schwellenwert“ festzulegen, und schreibe in Pseudocode die drei Schlüsselzeilen: lesen, vergleichen und handeln.

Lösen
Üben★★☆Nicht begonnen
Die Abbildung zeigt den Programmablaufplan der Steuerung einer Parkplatzschranke mit Ultraschallsensor, aber die Entscheidung ist verdeckt. Schreibe die Bedingung auf,…

Die Abbildung zeigt den Programmablaufplan der Steuerung einer Parkplatzschranke mit Ultraschallsensor, aber die Entscheidung ist verdeckt.

Start ? nein ja Schranke öffnen 5 s warten Schranke schließen Der Ultraschallsensor misst die Entfernung zum ankommenden Auto

Schreibe die Bedingung auf, die die Platine prüfen muss (ist die gemessene Entfernung kleiner als ein bestimmter Wert, ist ein Auto da), erkläre, was die Schleife tut, solange niemand kommt, und was passieren würde, wenn die Schranke ohne einige Sekunden Wartezeit herunterginge.

Lösen
Üben★★☆Nicht begonnen
Entwirf eine Ampel mit der Platine: Entscheide, wie viele Ausgangspins du brauchst und wofür, schreibe die Abfolge der Zustände mit ihren Zeiten auf (Grün $4\ \text{s}$,…

Entwirf eine Ampel mit der Platine: Entscheide, wie viele Ausgangspins du brauchst und wofür, schreibe die Abfolge der Zustände mit ihren Zeiten auf (Grün $4\ \text{s}$, Gelb $1\ \text{s}$, Rot $4\ \text{s}$) und erkläre, warum das Programm als Schleife geschrieben wird, die nie endet.

Lösen
Üben★★★Nicht begonnen
Du sollst das autonome Steuerungssystem für einen Bibliotheks-Botenroboter entwerfen, der Bücher zwischen zwei Stationen (Tisch 1 und Tisch 2) transportiert und sich…

Du sollst das autonome Steuerungssystem für einen Bibliotheks-Botenroboter entwerfen, der Bücher zwischen zwei Stationen (Tisch 1 und Tisch 2) transportiert und sich dabei an einer Linie am Boden orientiert. Der gesamte Ablauf besteht aus: per Taster auf den Startbefehl warten, der Linie folgen, bis eine Stopp-Querlinie erkannt wird, anhalten und 3 s lang mit einem Summer signalisieren, warten, bis die Nutzerin oder der Nutzer das Buch entnimmt (erkannt durch einen Anwesenheits- oder Gewichtssensor), und zu Tisch 1 zurückfahren, wobei eine Drehung um 180° ausgeführt wird, damit er für den nächsten Auftrag bereit ist.

  1. a) Bestimme die erforderlichen Sensoren und Aktoren und ordne jeweils ein, ob es sich um Eingabe- oder Ausgabegeräte handelt.
  2. b) Entwirf den Zustandsautomaten oder Programmablaufplan des Systems und gib genau die verschiedenen Zustände des Roboters an sowie die Bedingung, die den Übergang in den nächsten Zustand auslöst.
  3. c) Ergänze den Entwurf um ein reaktives Sicherheitskonzept: Welchen Sensor musst du einbauen und wie muss die Hauptschleife reagieren, wenn ein Schüler weniger als 20 cm vor dem fahrenden Roboter kreuzt?
Lösen

Ultraschallsensor und Linienfolger

Animation des Ultraschallsensors: Ein Impuls läuft zum Hindernis und das Echo kommt zurück; die Zeit für Hin- und Rückweg misst die Entfernung. Sensor Impuls (Hinweg) Echo (Rückweg) Hindernis

Der Sensor kann versagen: Weiche Gegenstände (z. B. Stoff, Kissen) schlucken den Schall, schräge Flächen lenken das Echo vom Sensor weg. Dann misst er zu große oder gar keine Entfernungen.

Die Sensoren des Linienfolgers sitzen in einem sinnvollen Abstand: Sind sie enger als die Linienbreite, sehen beide gleichzeitig Schwarz. Sind sie viel weiter auseinander, sehen sie die Linie erst, wenn der Roboter schon weit abgekommen ist.

Üben★★☆Nicht begonnen
Der Ultraschallsensor misst Entfernungen wie eine Fledermaus. Erkläre das Prinzip (er sendet einen Schallimpuls aus und misst, wie lange das Echo zurück braucht), warum…

Der Ultraschallsensor misst Entfernungen wie eine Fledermaus. Erkläre das Prinzip (er sendet einen Schallimpuls aus und misst, wie lange das Echo zurück braucht), warum er zwei „Augen“ hat (eines sendet, das andere hört) und zwei Situationen, in denen er versagen kann: weiche Gegenstände, die den Schall schlucken, und schräge Flächen, die das Echo ablenken.

Lösen
Üben★★☆Nicht begonnen
Beschreibe das Verhalten eines Hindernis umfahrenden Roboters auf hoher Ebene: Was misst der Frontsensor, was tut der Roboter, wenn alles frei ist, und welche Abfolge…

Beschreibe das Verhalten eines Hindernis umfahrenden Roboters auf hoher Ebene: Was misst der Frontsensor, was tut der Roboter, wenn alles frei ist, und welche Abfolge führt er aus, wenn er etwas in der Nähe erkennt (anhalten, drehen, erneut prüfen)? Was würde passieren, wenn er nur den nach vorn gerichteten Sensor hätte?

Lösen
Üben★★★Nicht begonnen
Du entwirfst die Kalibrierung und den Aufbau eines Linienfolgerroboters, der eine weiße Strecke mit einer 2 cm breiten schwarzen Linie abfährt. Der Roboter hat zwei…

Du entwirfst die Kalibrierung und den Aufbau eines Linienfolgerroboters, der eine weiße Strecke mit einer 2 cm breiten schwarzen Linie abfährt. Der Roboter hat zwei Infrarot-Reflexsensoren ($S_I$ links und $S_D$ rechts), die vorn montiert sind, sowie einen Differentialantrieb mit zwei unabhängigen Motoren.

  1. a) Sage voraus, welches Fehlverhalten der Roboter zeigt, wenn du die Sensoren nur 1 cm voneinander entfernt montierst (Abstand kleiner als die Linienbreite). Und wenn du sie 6 cm auseinander setzt? Begründe, wie groß der optimale geometrische Abstand sein muss.
  2. b) Entwirf die Entscheidungstabelle des Roboters mit dem Zustand jedes Motors (vorwärts, Stopp oder rückwärts) für jede der 4 möglichen Messkombinationen (Weiß/Schwarz).
  3. c) In einer engen Linkskurve neigt der Roboter dazu, aus Trägheit von der Linie abzukommen, wenn er nur den linken Motor abschaltet und den rechten vorwärts laufen lässt. Begründe, welche Änderung bei der Motorsteuerung nötig ist, um eine deutlich engere Drehung auf der Stelle zu erreichen.
Lösen
Üben★★★Nicht begonnen
Zur Steuerung einer Zufahrtsschranke mit Not-Halt-Taster programmiert ein Schüler die folgende Sequenz: Bei den Tests reagiert das System nicht, wenn der…

Zur Steuerung einer Zufahrtsschranke mit Not-Halt-Taster programmiert ein Schüler die folgende Sequenz:

schranke_öffnen();

warten(5000); // feste Pause von 5 s mit delay

schranke_schließen();

Bei den Tests reagiert das System nicht, wenn der Not-Halt-Pilztaster während der 5-s-Pause oder während des Absenkens der Schranke betätigt wird, und setzt seinen Ablauf fort, sodass es zu einem Aufprall kommt.

  1. a) Erkläre auf der Ebene der Programmausführung des Mikrocontrollers, warum der feste Warte-Befehl (delay) die Reaktionsfähigkeit auf den Notfall blockiert.
  2. b) Entwirf die algorithmische Struktur (als Pseudocode oder Diagramm), die die Schranke 5 s geöffnet hält, dabei aber ständig den Stopp-Taster abfragt, um den Motor sofort anzuhalten.
  3. c) Du brauchst zusätzlich einen Summer, der in 0,5-s-Abständen piept, während sich die Schranke bewegt. Begründe, warum diese Anforderung mit blockierenden Pausen nicht umsetzbar ist und wie man das Problem löst.
Lösen

Planen, testen und Fehler finden

Zyklischer Ablauf in drei Phasen für einen mobilen Roboter Linie folgen Marke erkennen Melden Die Hauptschleife wiederholt die drei Phasen ohne Pause

Zielgerichtetes Testen

Du testest mit einer Testtabelle: Du legst vorher fest, welche Eingabe du erwartest und was passieren soll, und vergleichst mit dem Ergebnis.

Testfall Eingabe erwartete Ausgabe beobachtet
1 Entfernung 50 cm Roboter fährt geradeaus
2 Entfernung 10 cm Roboter hält an und dreht
3 Hand direkt vor dem Sensor Roboter hält an

Fehler suchen

Es gibt zwei Arten von Fehlern:

  • Syntaxfehler: Der Quelltext verletzt die Regeln der Sprache (z. B. fehlendes Semikolon ; oder eine Klammer). Der Compiler zeigt eine Fehlermeldung mit Zeilennummer, und das Programm wird gar nicht erst hochgeladen. Lies die Meldung und die angegebene Zeile (oft auch die davor).

  • Logische Fehler: Das Programm läuft, tut aber etwas anderes als gewollt (z. B. < statt >). Es gibt keine Fehlermeldung. Hier helfen Testfälle und das Prüfen der Teile einzeln.

Der Begriff Syntax meint die Regeln, wie ein Programm aufgeschrieben wird. Semantik meint, was es bedeutet und bewirkt. digitalWrite(13, HIGH); ist syntaktisch korrekt; die Semantik ist: Pin 13 bekommt $5\,\mathrm{V}$.

Üben★★☆Nicht begonnen
Dein Programm sollte eine LED beim Drücken eines Tasters einschalten, aber es passiert das Gegenteil: Sie leuchtet und geht beim Drücken aus. Erkläre zwei mögliche…

Dein Programm sollte eine LED beim Drücken eines Tasters einschalten, aber es passiert das Gegenteil: Sie leuchtet und geht beim Drücken aus. Erkläre zwei mögliche Ursachen (die Logik des Programms ist invertiert oder der Taster ist verkehrt herum verdrahtet, „active low“) und wie du jede überprüfen würdest.

Lösen
Üben★★★Nicht begonnen
Eine Gruppe von Schülerinnen und Schülern hat eine Fußgängerampel mit Taster nach folgender Logik programmiert: Sobald der Fußgänger den Knopf drückt, springt die…

Eine Gruppe von Schülerinnen und Schülern hat eine Fußgängerampel mit Taster nach folgender Logik programmiert: Sobald der Fußgänger den Knopf drückt, springt die Fahrzeugampel sofort von Grün auf Rot und die Fußgängerampel wird für 15 s grün. Beim Test an einem Straßenmodell beobachten sie ruckartiges Abbremsen der Fahrzeuge und dauernde Staus, wenn mehrere Fußgänger wiederholt den Knopf drücken.

  1. a) Begründe zwei Mängel dieses ersten Programms in Bezug auf Sicherheit und Verkehrsfluss.
  2. b) Entwirf den korrigierten Programmablaufplan oder den zeitlichen Ablauf (mit Angabe von Eingängen, Ausgängen und empfohlenen Zeiten), um beide Probleme zu lösen. Berücksichtige dabei eine Übergangsphase (Gelb) und stelle eine Mindestdauer für durchgehendes Grün für Autos sicher, bevor eine weitere Fußgängeranforderung bedient wird.
  3. c) Du möchtest während der letzten 3 s der Fußgängergrünphase ein intermittierendes akustisches Signal für sehbehinderte Menschen hinzufügen. Wie musst du die Zeitsteuerung dieses Ausgangs ändern?
Lösen
Üben★★★Nicht begonnen
Bei einem Parkplatz mit 10 Stellplätzen und Schranke schlägt ein Schüler diesen Algorithmus vor: „Der Eingangssensor erhöht die Anzahl der Autos auf dem Parkplatz um 1,…

Bei einem Parkplatz mit 10 Stellplätzen und Schranke schlägt ein Schüler diesen Algorithmus vor: „Der Eingangssensor erhöht die Anzahl der Autos auf dem Parkplatz um 1, sobald er ein Fahrzeug erkennt, und öffnet die Schranke; der Ausgangssensor zieht beim Ausfahren 1 ab; erreicht die Anzahl der Autos 10, leuchtet die Anzeige BELEGT und die Schranke öffnet nicht mehr.“ In der ersten Testwoche zeigt das System BELEGT an, obwohl Plätze frei sind, und manchmal schlägt die Schranke auf das Autodach.

  1. a) Analysiere und nenne zwei reale physikalische Situationen, durch die der Zähler im Laufe der Stunden falsche Werte liefert (Hinweise: Fahrzeuge, die nach dem Überfahren des Sensors umkehren, Fußgänger, Fehlerkennungen).
  2. b) Entwirf die vollständige Steuerungslogik (mit Bedingungen für Eingangssensor, Schranke und Ausgangssensor), sodass die Zählung zuverlässig ist und nicht von einer einzigen Momentanmessung abhängt.
  3. c) Welche Sicherheitsbedingung muss in der Programmierung absoluten Vorrang haben, damit die Schranke niemals schließt, solange ein Hindernis oder Fahrzeug darunter ist?
Lösen
Üben★★★Nicht begonnen
Du sollst das Steuerungs- und Aufzeichnungssystem einer Umweltstation für ein Schulgewächshaus mithilfe eines programmierbaren Mikrocontrollers entwerfen. a) Wähle drei…

Du sollst das Steuerungs- und Aufzeichnungssystem einer Umweltstation für ein Schulgewächshaus mithilfe eines programmierbaren Mikrocontrollers entwerfen.

  1. a) Wähle drei geeignete Sensoren zur Überwachung der Pflanzenbedingungen aus, ordne sie als analog oder digital ein und begründe die jeweils passende Abtastrate (argumentiere, warum eine Temperaturmessung alle 10 ms ein technischer Fehler wäre und warum eine Messung einmal pro Tag nicht ausreichen würde).
  2. b) Schreibe die boolesche Bedingung, die gleichzeitig die Lüftung und die automatische Bewässerung aktiviert, wenn die Temperatur 32 °C überschreitet und die Bodenfeuchte unter 30 % fällt.
  3. c) Bei der Durchsicht der täglichen grafischen Aufzeichnung stellst du fest, dass um 13:00 Uhr der Helligkeitswert maximal ist, der Temperaturfühler aber plötzlich 15 Minuten lang 0 °C anzeigt, bevor er wieder auf 28 °C zurückgeht. Deute diese Auffälligkeit und begründe, ob sie auf ein Wetterphänomen oder auf einen Geräteausfall (Verkabelung/Sensor) zurückzuführen ist.
Lösen
Üben★★★Nicht begonnen
Ein mit Arduino programmierter mobiler Roboter funktioniert einwandfrei, solange er per USB-Kabel am Computer hängt (die Räder drehen sich in der Luft und das Programm…

Ein mit Arduino programmierter mobiler Roboter funktioniert einwandfrei, solange er per USB-Kabel am Computer hängt (die Räder drehen sich in der Luft und das Programm führt die gesamte Sequenz aus). Wenn man jedoch das USB-Kabel abzieht, ihn mit einem Batteriehalter mit 4 AA-Batterien (6 V) versorgt, der sowohl das Board als auch die Motoren speist, und ihn auf den Boden stellt, passiert Folgendes: Genau in dem Moment, in dem die Motoren versuchen anzulaufen, um die Reibung zu überwinden, flackert die Betriebs-LED des Boards kurz, der Roboter macht einen kleinen Ruck und das Programm startet in einer Endlosschleife immer wieder ab der ersten Zeile neu.

  1. a) Deute und begründe die physikalisch-elektrische Ursache dieses Fehlers: Was passiert beim Anlaufen mit dem Strombedarf der Motoren und wie wirkt sich das auf die Spannung aus, die der Mikrocontroller erhält?
  2. b) Warum zeigte sich dieses Problem nicht, als der Roboter per USB mit Rädern in der Luft getestet wurde?
  3. c) Schlage zwei technische Änderungen an der Stromversorgung vor und begründe sie, um das Problem dauerhaft zu lösen und die Stabilität des Mikrocontrollers sicherzustellen.
Lösen

Abtastrate: wie oft messen?

Die Abtastrate (das Messintervall) gibt an, wie oft die Platine einen Sensor liest. Du wählst sie danach, wie schnell sich die Größe ändert: Die Temperatur in einem Raum ändert sich über Minuten, also genügt eine Messung alle paar Sekunden bis Minuten. Alle $10\,\mathrm{ms}$ wäre unnötig und füllt den Speicher mit fast gleichen Werten. Ein Hindernis vor einem Roboter taucht dagegen in Bruchteilen von Sekunden auf, hier brauchst du viele Messungen pro Sekunde. Misst du zu selten, verpasst du wichtige Änderungen.

Soll die Station die Werte auch aufzeichnen, speicherst du jede Messung mit Zeitpunkt (Datenlogging), z. B. auf einer SD-Karte oder im Seriellen Monitor. Eine passende Abtastrate hält die Datenmenge klein und trotzdem aussagekräftig. Die Sensoren ordnest du als analog (z. B. LDR, Temperatur, Bodenfeuchte) oder digital (z. B. Taster) ein.

Zurück zum Anfang: Die Schranke „denkt“ so: Der Ultraschallsensor liefert die Entfernung (Eingabe), der Sketch vergleicht sie mit einem Schwellenwert (Verarbeitung), der Servo hebt die Schranke und senkt sie nach einer Wartezeit wieder ab (Ausgabe), und das alles in einer Endlosschleife.

Auf einen Blick

Alle Aufgaben zu diesem Abschnitt anzeigen