Kleine IT-Projekte


Physical Computing mit Mikrocontrollern

In unserer Gesellschaft ist nach wie vor der eindruck stark verbreitet, dass sich die Informatik vor allem mit Desktop-Computern und entsprechender Büro-Software befassen. Dabei wird häufig übersehen, wie sehr die Steuerung von Geräten, die unseren Alltag begleiten, inzwischen von Infformatiksystemen realisiert wird.

Seit einigen Jahren existieren verschiedene Möglichkeiten, zu geringen Kosten und mit geringen Vorkenntnissen eigene kleine Experimente zu eingebetteten Informatiksystemen zu entwickeln, darunter die LEGO MINDSTORMS Robotik-Baukästen, Pico- oder Scratchboards und die vielseitig einsetzbaren und bei kreativen Bastlern sehr populären Arduino-Boards. Im Folgenden finden sich ein paar kleine Ideen. Zum Einstieg in die Programmierung eines Arduinos mit S4A habe ich eine kleine Anleitung erstellt (getting started with Arduino and S4A).

 

Ampel mit Scratch4Arduino

Das folgende Video zeigt die Implementierung einer Ampel mit abwechselnden Grünphasen. Das Projekt wurde mit einerm Arduino Uno realisiert, der mit Scratch4Arduino (S4A) programmiert wurde:

Quellcode:   TrafficLight.sb (Screenshot von TrafficLight.sb),
                    Schaltung alsFritzing-Datei (Screenshot der Schaltung)

Das folgende Video zeigt die Implementierung einer Bedarfsampel für Fußgänger, die nur geschaltet wird, wenn ein Fußgänger den entsprechenden Schalter betätigt. Das Projekt wurde mit einerm Arduino Uno realisiert, der mit Scratch4Arduino (S4A) programmiert wurde:

Quellcode:   TrafficLightForPedestrianCrossing.sb
                    (Screenshot von TrafficLightForPedestrianCrossing.sb),
                    Schaltung alsFritzing-Datei, (Screenshot der Schaltung)



Pong

Ich habe den Game-Klassiker Pong in zwei Versionen realisiert: Zum einen werden die Balken über an einen Arduino Uno angeschlossene Potentiometer, in der zweiten Variante an einen LEGO MINDSTORMS NXT Roboter angeschlossene in die Motoren des NXTs integrierte Rotationssensoren gesteuert.

Das folgende Video zeigt eine Implementation von Pong, bei der die Balken links und rechts mit einem Potentiometer gesteuert werden, das an ein Arduino Uno Board angeschlossen ist. Der aktuelle Widerstand der Potentiometer wird von einem Scratch4Arduino-Skript wiederholt ermittelt und für die Balken-Objekte als Variablenwert zur Verfügung stellt:

Quellcode:   PongArduino.sb (Screenshots der Skripte Arduino, LeftBar, RightBar, Ball)

Das folgende Video zeigt eine Implementation von Pong, bei der die Balken links und rechts mit den Motor-Bausteinen eines LEGO Mindstorms NXT Roboters gesteuert werden. Die Gradzahl, um die der Motor aktuell gedreht ist, wird von einem Enchanting-Skript ermittelt, das die Werte an die Scratch-Implementation von Pong weiterleitet. Im Gegensatz zu Scratch4Arduino muss beim Einsatz von Enchanting das eigentliche Spiel in einem separaten Scratch-Projekt realisiert werden, das die Variablenwerte des Enchantingprojekts als "entfernte Sensorwerten" übernimmt, da das Enchanting-Script selbst später auf dem NXT-Baustein selbst läuft.

Quellcode:   Pong.chant (Screenshot),
                    PongNXT.sb (Screenshot Skript BallScreenshot Skript LeftBar


RFID-Zugangskontrolle mit LEGO Mindstorms-Roboter und LeJOS

Unter Verwendung der LeJOS-Bibliotheken zur Programmierung von LEGO Mindstorms NXT-Robotern mit Java und RFID-Chips habe ich eine Zugangskontrolle realisiert:

Quellcode:   AccessControl.java

 

Lautstärkegraph mit Picoboard ermitteln

Das folgende Video zeigt, wie das Mikrophon eines Picoboards verwendet wird, um die Entwicklung der Lautstärke über die Zeit mittels der Turtle-Funktionen von Scratch in einem Graphen darzustellen. Die Lautstärke des abgespielten Samples lässt sich dabei über den Regler des Picoboards einstellen.

Quellcode:   VolumeGraph.sb (Screenshot von Volumepgraph.sb)


Eieruhr mit CSS, JavaScript und HTML




 

Das Projekt Eieruhr wird realisiert, indem eine JavaScript-Funktion in Sekunden-Intervallen durch Manipulation der CSS-Eigenschaft transform die Grafik eines Zeigers vor dem Uhrblatt dreht.




3D Browsergames mit VRML, JavaScript und HTML

Die beiden 3D-Browsergames Sublife und Murmansk wurde mit VRML, JavaScript und HTML realisiert. Zum Betrachten der Welten ist die Installation eines VRML-Browserplugins wie BS Contact erforderlich.


 
 

SubLife - Tauchen Sie ein in das mystische Tunnelsystem einer Untergrundbahn, deren Fahrstühle zu merkwürdigen Orten führen. Sammeln Sie dabei wertvolle Informationen um das SubLife-Quizz zu lösen.


 

Murmansk - genießen Sie ein aufregendes Abenteuer un einem verlassenen russischen U-Boot-Hafen. Sammeln Sie dabei Punkte um auf die Highscore-Liste zu kommen!


 


Java-Applet zu verketteten Datenstrukturen


 

QueueStackPro - ein Java-Applelt zur Demonstration der zwei bedeutsamsten verketteten Datenstrukturen zur Verwaltung von Mengen: Schlange (Queue) und Stapel (Stack).


 


Java-Applet zu nicht-sequentiellen Methodenaufrufen


 

Concert - ein Java-Applet zur Demonstration von Syncronisation als Realisierung gegenseitigen Ausschlusses (mutual exclusion) in einer verteilten Anwendung.

 

created 16.11.2000, last change 27.03.2016