FANDOM


Das personenerkennende Haus

Jahrgangsstufe

ab der 10. Klasse

informatischer Inhalt

Kodierung - Dekodierung

Baukasten

My Interactive Garden

Materialkosten

ca. 30 € pro Modell

2014-08-20 13.17.41

So könnte z.B. ein solches Haus von außen aussehen.

Das Ziel des Projektes soll es sein, ein Modell von einem Haus zu bauen, dass auf verschiedene Personen unterschiedlich reagiert. Dabei kann es sich beispielsweise um ein Wohnhaus handeln, das beim Betreten eines jeden Bewohners eine andere LED zu leuchten bringt. Die Figuren sollen durch Strichcodes, die sich auf ihrem Rücken befinden, durch Lichtsensoren vom Haus identifiziert werden. Hiermit soll der informatische Inhalt des Kodierens und Dekodierens von Informationen vermittelt werden.

KonzeptBearbeiten

Dieses Projekt basiert auf dem Konzept des Konstruktionismus und soll darüber hinaus die Kreativität und Teamfähigkeit fördern.

Zum Konstruktionismus Bearbeiten

Die Lerntheorie des Konstruktionismus geht davon aus, dass Lernen besonders erfolgreich ist, wenn der Lernende aktiv beteiligt ist und etwas produziert. Dieses Produkt ist in diesem Fall das Modellhaus sowie das Programm, das es steuert. Lernen ist nach dem Konstruktionismus zudem besonders erfolgreich, wenn die Lernenden einen persönlichen Zugang zu dem Thema haben und es dadurch nicht so abstrakt wirkt. Auch dies ist hier durch die konkrete Anwendung gegeben. Die Konstruktion ist deshalb so gut geeignet, weil sich Probleme direkt aus dem Projekt selbst heraus stellen, die gelöst werden müssen. Ansonsten werden Probleme häufig abstrakt vorgegeben, wodurch die Schülerinnen und Schüler weniger an einer Lösung interessiert sind, als wenn sich ihnen das Problem real stellt.

Zu Kreativität und Teamarbeit Bearbeiten

In diesem Projekt soll des Weiteren die Kreativität und Teamfähigkeit der Schülerinnen und Schüler gefördert werden.

Ist Kreativität gefordert, motiviert dies die Schülerinnen und Schüler, da sie gestalterisch tätig werden können und eigene Ideen einbringen können. Im besten Fall führt dies dazu, dass sie sich von dem Projekt gar nicht mehr losreißen können und in einen so genannten Flow geraten. Zudem können die Schülerinnen und Schüler das Projekt stark auf ihre eigenen Interessen zuschneiden, da sie selbst entscheiden können, welchem Zweck das Haus dient und wer es betritt. Durch diesen persönlichen Zuschnitt des Projekts auf die Schülerinnen und Schüler soll ebenfalls die Motivation gefördert werden.

Teamarbeit spielt in diesem Projekt eine große Rolle, da es in kleinen Gruppen von 2-3 Schülern durchgeführt werden soll. In vielen Projekten findet Teamarbeit statt, daher ist Teamfähigkeit eine wichtige Kompetenz, die in der Schule gefördert werden sollte. Die Schülerinnen und Schüler sollen zudem Freude an dem Projekt haben und ich denke, dies ist in kleinen Gruppen besser möglich.

Informatische GrundlagenBearbeiten

Kodierungen werden genutzt, um Informationen in ein geeignetes Format für eine bestimmte Anwendung zu bringen. Das Thema Kodierung und Dekodierung spielt im Alltag der Schülerinnen und Schüler, vermutlich unbewusst, eine wichtige Rolle (siehe weiterführende Themen). Strichcodes sind im Supermarkt auf allen Produkten zu finden und stellen damit ein besonders alltägliches Beispiel für Kodierung dar und sind daher für dieses Projekt sehr geeignet.

Strichcodes sind in binären Zeichen (schwarz oder weiß) verschlüsselt und können mit Lesegeräten entschlüsselt werden. Dies kann entweder geschehen, in dem ein Lesegerät die Stellen hintereinander ausliest oder indem es alle Stellen gleichzeitig ausliest. Die ausgelesenen Stellen werden nun in eine Zahl oder ein Zeichen umgewandelt und so wird der Strichcode entschlüsselt. Es gibt verschiedene Arten von Strichcodes, so können manche nur die Zahlen 1 bis 9 darstellen, andere hingegen das ganze Alphabet inklusive Sonderzeichen. Auf die verschiedenen Arten von Strichcodes soll in diesem Projekt jedoch nicht weiter eingegangen werden, vielmehr soll die allgemeine Funktionsweise von Strichcodes vermittelt werden.

Barcodes verfügen in der Regel über ein Anfangs- und ein Endzeichen, zwischen denen sich die eigentlichen Informationen befinden. Die Breite des schmalsten Strichs im Strichcode bestimmt die Dichte des Barcodes, die angibt, wie viele Informationen auf einem bestimmten Bereich des Barcodes erfasst werden können.

In unserem Projekt möchten wir auf Anfangs- und Endzeichen jedoch verzichten und uns lediglich Strichcodes mit drei lesbaren Stellen beschäftigen. Die Dichte ist bei unseren Barcodes deshalb klein, weil sich im Vergleich zu handelsüblichen Barcodes nicht sehr viele Informationen in einem Bereich von beispielsweise 1 cm befinden. In der folgenden Tabelle wird eine mögliche Entschlüsselung von Strichcodes mit drei Stellen demonstriert.

Strichcode Zahl Begründung
Www
0 0*2⁰ + 0*2¹ + 0*2²
Wws
1 1*2⁰ + 0*2¹ + 0*2²
Wsw
2 0*2⁰ + 1*2¹ + 0*2²
Wss
3 1*2⁰ + 1*2¹ + 0*2²
Sww
4 0*2⁰ + 0*2¹ + 1*2²
Sws
5 1*2⁰ + 0*2¹ + 1*2²
Ssw
6 0*2⁰ + 1*2¹ + 1*2²
Sss
7 1*2⁰ + 1*2¹ + 1*2²

Außerdem sollen schon vorhandene Grundkenntnisse über das Programmieren vertieft werden. Das Programmieren ist eine der wichtigsten Arbeitsweisen in der Informatik.

Des Weiteren werden Kenntnisse über den Umgang mit Sensoren und Aktoren vermittelt. Dies ist interessant, weil die Informatik nicht nur im Computer stattfindet, sondern zum Anfassen ist.

Voraussetzungen und KompetenzenBearbeiten

Was müssen Schülerinnen und Schüler bereits an Vorwissen und Kompetenzen besitzen? Bearbeiten

Die Schülerinnen und Schüler sollen bereits das Programmieren in einer textbasierten Programmiersprache erlernt haben, idealerweise von Java, C oder C++. Hierbei sollen sie vertraut sein mit den verschiedenen Datentypen (Integer, Boolean, ...), mit Kontrollstrunkturen (if-Abfragen und while-Schleifen), dem Einbinden von Bibliotheken sowie mit Methoden und Funktionen.

Welche Kompetenzen sollen die Schülerinnen und Schüler erwerben? Bearbeiten

Während des Projekts sollen die Schülerinnen und Schüler folgende Kompetenzen erlernen:

  • Sie sollen erklären können, wie Strichcodes funktionieren.
  • Sie sollen die Erkennung von vereinfachten Strichcodes mithilfe der Lichtsensoren mit dem Arduino implementieren können.
  • Sie sollen verschiedene Sensoren und Aktoren wie Lichtsensoren, LEDs und Motoren mit dem Arduino ansprechen können.
  • Die Kompetenz des eigenverantwortlichen Arbeitens sowie das gute Zusammenarbeiten in Gruppen soll gestärkt werden.

Fundierung mit den Bildungsstandards (EPA) Bearbeiten

Ich werde im folgenden kurz auf die Bedeutung der vier Kompetenzbereiche in diesem Projekt eingehen, die in der EPA Informatik verankert sind.

Erwerb und Strukturierung informatischer Kenntnisse: Kodierung und Dekodierung ist ein informatisches Themengebiet, das im Alltag der Schüler eine große Rolle spielt. In diesem Projekt soll das Verständnis für die Funktionsweise von Strichcodes aufgebaut werden.

Kennen und Anwenden informatischer Methoden: Das Programmieren ist eine sehr wichtige Methode der Informatik, die in diesem Projekt vertieft werden soll. Auch das Arbeiten in Projekten spielt in der Informatik eine wichtige Rolle und soll hier ausprobiert werden.

Kommunizieren und Kooperieren: Da dieses Projekt in Gruppen durchgeführt wird, ist die Kommunikation und Kooperation innerhalb der Gruppen von entscheidener Bedeutung für das Gelingen des Modells und daher wird diese Kompetenz ebenfalls gestärkt.

Anwenden informatischer Kenntnisse, Bewerten von Sachverhalten und Reflexion von Zusammenhängen: Die zuvor von den Schülerinnen und Schülern erworbenen theoretischen Kenntnisse über Strichcodes sollen innerhalb des Projektes umgesetzt werden. Des Weiteren sollen die Schülerinnen und Schüler sich überlegen, welche Reaktionen des Hauses mit den gegebenen Mitteln wie umsetzbar sind.

BaumaterialBearbeiten

Für den Prototyp habe ich folgendes Material benötigt:

Bastelmaterial: Bearbeiten

  • dicke, weiße Pappe (4 x A3-Bogen)
  • Modelliermasse
  • Bastelkleber, Heißklebepistole, Klebestreifen
  • Schere, Cuttermesser
  • Dekoartikel: Alufolie, Motivpappe, bedrucktes Papier, Styroporringe, Holzstäbchen, Stoff, Lego
  • Figuren (aus Mädchen-Lego, es sind aber auch andere Figuren z.B. aus Playmobil möglich) (4 Figuren kosten ca. 10 Euro)
  • schwarzer Edding
  • Taschenlampe (kostet ca. 3 Euro)

Aus dem Baukasten: Bearbeiten

  • 3 Lichtsensoren
  • 1 Button
  • 4 kleine LEDs
  • 1 große LED
  • 1 Servomotor
  • Stromkabel
  • 1 Arduino mit Aufsatz
  • Kabel

VorbereitungBearbeiten

Es wird für die Vorführung der Videos ein Computer mit Beamer und Lautsprecher benötigt. Des Weiteren sollten die benötigten Baukästen (My Ineractive Garden und eventuell Bestandteile aus dem Tinkerkit-Baukasten) und Arbeitsmaterialien sowie die Arbeitsblätter in ausreichender Form vorhanden sein. Außerdem sollten die Lehrenden ein wenig Vorkenntnisse in der Programmierung mit dem Arduino besitzen, um den Schülern Hilfestellungen geben zu können.

Die Durchführung des Projektes kann im Unterricht oder im Rahmen einer Projektwoche erfolgen. Wenn das Projekt im Unterricht durchgeführt werden soll, dann müssen dafür in etwa 7-11 Doppelstunden veranschlagt werden. Soll es im Rahmen einer Projektwoche bearbeitet werden, empfehlen sich 2-4 Projekttage.

DurchführungBearbeiten

1. Einführung in das Projekt (ca. 20 Minuten)

Das Ziel des Projekts wird anhand des entwickelten Prototyps verdeutlicht. (1. Video)

Der verwendete Baukasten und die Möglichkeiten, die er bietet, werden vorgestellt.

2. Funktionsweise von Strichcodes (ca. 45 Minuten)

Die Funktionsweise von herkömmlichen Strichcodes wird erklärt. (2. Video)

Um das Verständnis zu festigen, bearbeiten die Schülerinnen und Schüler daraufhin in Einzelarbeit ein Arbeitsblatt zu dem Thema. (1. Arbeitsblatt)

Die Ergebnisse werden im Anschluss mit der gesamten Gruppe im Gespräch verglichen.

3. Einführung in die Programmierung mit dem Arduino (ca. 135 Minuten)

Die Schülerinnen und Schüler bilden kleine Gruppen (2-3 Schüler), in denen sie von nun an für das gesamte Projekt zusammenarbeiten sollen.

Gemeinsam bearbeiten sie ein Arbeitsblatt, dass sie in die Programmierung mit dem Arduino einführen soll. Hierbei werden kleine Programmieraufgaben gelöst, die für das Projekt hilfreich sein sollen. (2. Arbeitsblatt)

4. Planung des Hauses (ca. 90 Minuten)

Die Schülerinnen und Schüler beginnen in ihren Gruppen mit der Planung ihres Modells. Hierzu werden Fragen auf einem Arbeitsblatt beantwortet. (3. Arbeitsblatt)

Die verschiedenen Gruppen präsentieren ihre Projektideen in einem Kurzvortrag (ca. 5 Minuten).

5. Programmierung (ca. 180 Minuten)

Die Gruppen beginnen mit der Programmierung für ihr Modell. Dafür vervollständigen sie einen vorgegebenen Quellcode. (4. Arbeitsblatt)

6. Gestaltung des Hauses (ca. 180 Minuten)

In Gruppen werden die Modelle gebaut. Die Technik wird in die Modelle integriert. Die Abschlusspräsentation wird vorbereitet. (5. Arbeitsblatt)

7. Abschlusspräsentation (ca. 45 Minuten)

Jede Gruppe präsentiert ihr Modell in einem kurzen Vortrag (ca. 10 Minuten). Die Funktionsweise und die Implementierung des Modells werden vorgestellt. Dabei wird auch darauf eingegangen, welche Probleme bei der Umsetzung aufgetreten sind und welche Erfolge die Gruppe hatte.

ArbeitsmaterialienBearbeiten

  • Baumaterialien und eventuell zusätzliche Bastelmaterialien
  • Baukasten
  • Prototyp
  • Videos:
1. Vorstellung des Prototyps http://youtu.be/imU4riFCaD4
2. Sendung mit der Maus, Thema: Strichcodes https://www.youtube.com/watch?v=Bl2yo15Z8gw
  • Arbeitsblätter:
1. Strichcodes Datei:StrichcodesArbeitsblatt.pdf
2. Programmieren mit dem Arduino Datei:Programmiersprache.pdf
3. Planung des Modells Datei:PlanungHaus.pdf
4. Programmierung des Modells Datei:ProgrammierenHaus.pdf
5. Abschlusspräsentation Datei:AbschlusspräsentationPlanung.pdf

PrototypBearbeiten

HausInnen

So sieht das Haus von innen aus.

In meiner Umsetzung gehört das Haus einer vierköpfigen Familie, bestehend aus Mutter, Vater und zwei Kindern, die Charlotte und Tom heißen.

Das Haus selbst besteht aus dicker Pappe, die mit Motivpappe beklebt ist. Es gibt nur wenig Möbel in dem Haus, damit man leicht hineingreifen kann. So gibt es nur einen Esstisch mit 4 Stühlen und eine Bank. Außerdem gibt es eine Lampe über dem Esstisch, einen Fernseher und LEDs, die anzeigen, wer gerade zu Hause ist.

Wenn eine Person nach Hause kommt oder geht, stellt sie sich vor die Lichtsensoren, die sie erkennen und auf sie reagieren.

Die Initialisierung der Pins und die Setup-Methode Bearbeiten

Da ich für mein Projekt einen Motor benötige, wird zunächst die Motorbibliothek importiert und ein Objekt vom Typ Motor erzeugt.

# include <Servo.h>

Servo motor

Als nächstes wird festgelegt, welcher Pin für was benötigt wird. Des Weiteren werden Variablen deklariert und initialisiert, in denen gespeichert wird, wer gerade zu Hause ist und wer von den Sensoren erkannt wurde.

//Pins

//Output

int ledGross = 5; // Große LED über dem Esstisch

int ledVater = 13; //LED, die angeht, wenn der Vater nach Hause kommt

int ledMutter = 11;

int ledCharlotte = 9;

int ledTom = 10;

int servopin = 12; //Motor für den Fernseher

//Input

int lightpin1 = A2; //Lichtsensoren

int lightpin2 = A1;

int lightpin3 = A0;

int button = 2; //Druckknopf, der Erfassung startet

//Speichervariablen

int person = 0;

boolean mamaDa = false; //Ist die Mutter gerade zu Hause?

boolean papaDa = false;

boolean charlotteDa = false;

boolean tomDa = false;

In jedem Programm für den Arduino gibt es die Setup-Methode, in der für digitale Pins definiert wird, welche Ausgänge und welche Eingänge sind. Außerdem wird hier der Motor deklariert.

void setup()
{

   pinMode(ledGross, OUTPUT); //ledGross wird als Ausgang definiert
   pinMode(ledVater, OUTPUT);
   pinMode(ledMutter, OUTPUT);
   pinMode(ledCharlotte, OUTPUT);
   pinMode(ledTom, OUTPUT);
   motor.attach(servopin); //servopin wird als Motor definiert
   pinMode(button, INPUT);   //button wird als Eingang definiert
}

Die Erkennung der Personen Bearbeiten

Damit das Haus die Personen erkennen kann, trägt jede einen aus drei Strichen bestehenden Strichcode auf dem Rücken. Hierbei steht der Strichcode für eine Binärzahl. Schwarze Striche stehen für eine 1, weiße für eine 0. So hat beispielsweise Charlotte einen schwarzen gefolgt von zwei weißen Strichen auf dem Rücken. Dies entspricht der Binärzahl 100, also ist die Zahl, mit der das Programm Charlotte erkennt eine 4.

2014-08-20 13.27.35

Charlotte mit Strichcode auf dem Rücken

Für die Erkennung wird der Strichcode auf dem Rücken vor drei Lichtsensoren gehalten. Jeder Sensor erfasst eine Stelle des Strichcodes und gibt zurück, ob sie hell oder dunkel ist. Die erfassten Stellen werden in eine Dezimalzahl umgewandelt und in der Integer-Variablen person gespeichert.

void erkennung()

{
  person = 0;         //person wird zurueckgesetzt
  if (analogRead(lightpin1) < 600){   //ist 1. lichtsensor dunkel
    person = person + 1;
  }
  if (analogRead(lightpin2) > 900){   //ist 2. lichtsensor dunkel
    person = person + 2;
  }
  if (analogRead(lightpin3) < 600){   //ist 3. lichtsensor dunkel
    person = person + 4;
  }
}

Nun wird überprüft, welcher Person die in person gespeicherte Zahl entspricht. So ist dem Vater die Zahl 1, der Mutter die Zahl 2, Charlotte die Zahl 3 und Tom die Zahl 4 zugeordnet. Je nachdem, welche Person erkannt wurde, reagiert das Haus verschieden.

void reagieren()

{
  if (person == 1){papa();} //Vater wurde erkannt, die Methode papa() wird nun ausgeführt
  if (person == 2){mama();} //Mutter wurde erkannt, die Methode mama() wird nun ausgeführt
  if (person == 3){tom();} //Tom wurde erkannt, die Methode tom() wird nun ausgeführt
  if (person == 4){charlotte();}   //Charlotte wurde erkannt, die Methode charlotte() wird nun ausgeführt
  jemand(); //Die Methode überprüft, ob überhaupt noch jemand zu Hause ist
}

HeyWiki

Charlotte und ihre Mutter sind zu Hause. Es läuft der Kinderkanal.

Das Reagieren auf Personen Bearbeiten

Ist eine Person erkannt, wird die Methode mit ihrem Namen aufgerufen. Hier steht, was passieren soll, wenn diese Person nach Hause kommt.

Nehmen wir z.B. Charlotte. Kommt sie nach Hause, leuchtet die LED neben ihrem Namen auf und der Kinderkanal wird eingeschaltet. Außerdem wird die boolsche Variable charlotteDa auf true gesetzt.

Geht Charlotte wieder erlischt auch die LED neben ihrem Namen und charlotteDa wird auf false gesetzt.

So ähnlich funktioniert das auch bei den anderen Personen, nur das bei den Erwachsenen der Fernseher die Nachrichten einschaltet.

//Papa erkannt
void papa()

{
  if (papaDa == false){digitalWrite(ledVater,HIGH); papaDa = true; motor.write(0);}
  else {digitalWrite(ledVater,LOW); papaDa = false;}
}

//Mama erkannt
void mama()
{
  if (mamaDa == false){digitalWrite(ledMutter,HIGH); mamaDa = true; motor.write(0);}
  else {digitalWrite(ledMutter,LOW); mamaDa = false;}
}

//Tom erkannt
void tom()
{
  if (tomDa == false){digitalWrite(ledTom,HIGH); tomDa = true; motor.write(180);}
  else {digitalWrite(ledTom,LOW); tomDa = false;}
}

//Charlotte erkannt
void charlotte()
{
  if (charlotteDa == false){digitalWrite(ledCharlotte,HIGH); charlotteDa = true; motor.write(180);}
  else {digitalWrite(ledCharlotte,LOW); charlotteDa = false;}
}

Schließlich wird überprüft, ob überhaupt jemand zu Hause ist. Ist jemand da, ist die große LED über dem Esstisch an. Ist hingegen niemand zu Hause, wird diese LED abschaltet und auch der Fernseher wird schwarz.

void jemand()
{

  if (papaDa == false && mamaDa == false && tomDa == false && charlotteDa == false){digitalWrite(ledGross,LOW); motor.write(90);}
  else {digitalWrite(ledGross,HIGH); }
}

Die Endlosschleife Bearbeiten

In der Endlosschleife werden nun folgende Anweisungen durchgegangen:

  • Ist der Knopf gedrückt, ...
    • ...startet die Erfassung des Strichcodes, ...
    • ... daraufhin wird die Person erkannt und auf sie reagiert.
    • Das Programm wartet nun kurz, damit nicht die gleiche Person zwei mal erfasst wird und das Programm somit denkt, sie sei gekommen und gleich wieder gegangen.
void loop()

{
  if (digitalRead(button) == HIGH){
    erkennung();
    reagieren();
    delay(1000);
  }
}

Weiterführende ThemenBearbeiten

Als weiterführendes Thema ist es möglich, andere Wege der Personenerkennung zu besprechen, beispielsweise Fingerabdruckscans oder Gesichtserkennung.

Ebenso bietet es sich an mit dem Thema Verschlüsslung und Entschlüsslung fortzufahren und verschiedene Verschlüsslungsverfahren für Daten zu besprechen.

Auch die Themen Datenschutz und Datensicherheit bieten sich im Anschluss an, den solch ein intelligentes Haus speichert selbstverständlich auch viele sensible Daten, die sehr viel über die Bewohner aussagen können und deshalb schützenswert sind.