PIT Hackathon 2019

Auch dieses Jahr fand im HNF (Heinz Nixdorf Forum Computermuseum) der PIT Hackathon statt. Vom 20.-22.Sep haben 80 Schüler und Studenten zwischen 15-24 Jahren mit 24 Mentoren aus Paderborner Firmen an unterschiedlichsten Projekten gearbeitet.

Themen und Partnerschaften

Als Vorbereitung haben wir Mentoren natürlich Schwerpunkte setzen müssen. Weil wird schon letztes Jahr sehr gute Erfahrungen mit bestimmten Themen gemacht haben, wurden auch dieses Jahr die gleichen Themen angeboten:

  • Game Development
    https://GitHub.com/PIT-Hackathon/2019-Infos/blob/master/GameDevelopment/README.md
    Es braucht nur eine passende Idee zu einem Spiel, damit 2-6 Personen in einem Team dann in zwei Tagen ein fertiges Spiel programmieren. Auf Basis des Unity-Framework geht das sehr einfach und das Team benötigt unterschiedliche Fähigkeiten, z.B. Sounddesigner für Töne, Grafiker für Hintergründe und Objekte, Programmierer für die Mechanik und alle als Tester und zur Feinabstimmung der Belohnungen und Strafen, damit das Spiel nicht zu einfach oder schwer wird.
  • Mobile Development
    https://GitHub.com/PIT-Hackathon/2019-Infos/blob/master/MobileApp/README.md
    Das zweite Angebot ermöglichte den Teilnehmern ihre erste App für Android oder IOS zu entwickeln. Was die App leisten soll, wird nicht vorgegeben. Die Mentoren diskutieren am Anfang natürlich mit den Teilnehmern die Möglichkeiten, den Umfang und den Aufwand zu diskutieren.
  • IoT
    https://GitHub.com/PIT-Hackathon/2019-Infos/blob/master/IoT/README.md
    Alle Welt spricht vom Internet of Things. Mit Mikroprozessoren, Sensoren, LoRaWan, MQTT-Servern u.a. Komponenten konnten Teilnehmer erste Schritte in diese faszinierende Welt unternehmen oder ihre vorhandenen Ideen weiter entwickeln.
  • Code Camp (https://GitHub.com/PIT-Hackathon/2019-Infos/blob/master/CodeCamp/README.md)
    Dieser Bereich wurde eigens für Teilnehmer eingerichtet, die noch wenig oder kaum Vorkenntnisse haben aber neugierig auf "Hacken" sind oder die neue Techniken und Tricks erfahren wollen, die sie im klassischen Informatik-Unterricht nicht erhalten.

Als zusätzlicher Ideengeber für alle drei Bereiche diente zum einen die aktuelle Ausstellung "Aufbruch ins All – Raumfahrt erleben" im HNF (https://www.hnf.de/ausstellungen/aufbruch-ins-all-raumfahrt-erleben.html), die speziell beim "Game Development" aufgegriffen wurde. Durch das Aktionsprogramm "Digitale Heimat Paderborn" (https://digitale-heimat-pb.de/) ergaben sich ebenfalls Möglichkeiten, auf GIS-Daten und andere Quellen zuzugreifen.

Projekte 2019

Eine komplette Auflistung der Projekte würde ich gerne liefern, aber insgesamt haben sich 19 Teams gebildet, die unterschiedlichste Themen angegangen sind. Als Mentor für IoT habe ich quasi gar keine Zeit gehabt, auch noch bei Game oder App vorbei zu schauen. Allerdings durfte/musste am Sonntag, jedes Teams sein Projekt vor großem Publikum im HNF-Auditorium. Folgende Gruppen haben ihre Projekte in folgender zeitlichen Folge präsentiert:

Ich habe noch nicht alle Gruppen und ihre Themen zugeordnet.

Pos Teams Bereich  Beschreibung

1

smike

IoT

Bei diesem Projekt wurden exemplarisch Fahrradständer "smart" gemacht,

2

Dungeon Crawler

Game

 

3

Rasputeam

 

 

4

Team Parkplatz

App

Paderborner Parkplätze mit Frei/Belegt-Daten und Fahrradstellplätze (noch ohne Belegstatus)

5

SmInsys

Game

Der Spieler läuft durch ein Spielcasino und muss einarmige Banditen bekämpfen

6

White Horse

 

 

7

RCFG

 

 

8

Into Darkness

Game

 

9

Flattered Doctors

 

 

10

LPS

IoT

Kann ein Gerät seine Position im Raum feststellen, wenn in den Ecken entsprechende Bluetooth (BLE) Geräte (ESP32) Pakete senden und der Empfänger anhand der Signalstärke den Abstand errechnet?. Ja das geht tatsächlich.

11

Geo Cookie

Game

Smartphone App mit GPS und Karten um "Kekse" zu sammeln, die den Nutzer auch bei Paderborner Sehenswürdigkeiten vorbeiführen sollte

12

TuNell

 

 

13

Computer Entertainment

IoT

Zentrale LED-Licht-Steuerung. Ein ESP32 hat vier Tasten und ein Display angesteuert, womit verschiedene Lichteffekte ausgewählt und an einen MQTT-Server gesendet wurden Ein zweiter ESP8266 hat diese Informationen bekommen, um exemplarisch jede einzelne LED in einem LED-Band anzusteuern. Knight-Rider, Regenbogen, Stroboskop und andere Effekte wurden gezeigt

14

Romani Ite Domum

Code Camp

Der Team-Name wurde einem Monthy Python-Film entnommen. In einen Programmierprojekt wurde eine Umrechnung zwischen römischen und arabischen Zahlen umgesetzt.

15

Roastbeef

Game

In diesem 3D-Spiel laufen Dinosaurier, die auf der Rückseite des Monds überlebt haben durch Schluchten und sammeln Punkte

16

The Furry Whales

 

 

17

Infodisplay

IoT

Ein ESP32 hat ein Papier-White Display angesteuert, um aktuelle Informationen (Wetter, News aber auch Mails) anzuzeigen. Die Besonderheit war hier die Ansteuerung der Anzeige, die auch ohne Strom sichtbar ist.

18

Daily Dev Media

App

Das Team aus Bielefeld hat sich der Aufgabe angenommen die Webseiten ihrer Schule mit schwer lesbaren Vertretungsplänen (HTML-Seite mit Auto-Refresh) zu parsen und in einer App anzuzeigen.

19

Invisible Skeletons

Game

Ein 2D Spiel, bei dem ein Kämpfer ein Labyrinth durchlaufen muss und den Kontakt mit Gespenstern vermeiden sollte

Sie sehen also, dass die Themen sehr vielfältig sind und von den Teilnehmern selbst gewählt wurden.

IoT: Projekt smike

Als Mentor im Bereich IoT habe ich unter anderem Teilnehmern beim Projekt "Smike - Smarter Bike Abstellplatz" beraten. Die Stadt Paderborn stellt z.B. GIS-Daten mit den Fahrradstellplätzen in der Stadt bereit, die recht einfach auf eine Karte eingebunden werden können:

Allerdings fehlt hier natürlich noch die Anzeige der Belegung. Daher wurde überlegt, wie die Auslastung der Fahrradabstellplätze ermittelt, gespeichert und dargestellt werden kann. dabei gab es ganz viele Optionen. Es begann schon mit der Frage, wie ein belegter Fahrradständer zuverlässig erkannt werden könnte. Lichtschranke oder Hallsensor, Ultraschall-Abstandsmelder oder ein einfacher Schalter wurden diskutiert. Die erfassten Daten müssen gesammelt, auf Plausibilität geprüft und übertragen (WLAN, Bluetooth, LoRaWan) werden. Das ist nur ein Teil der Fragen, auf die Antworten gefunden werden mussten. Auch die die mechanische Ausführung der Erfassung an einem von der Stadt dankenswerterweise bereitgestellten Radständer hat viele Fragen aufgeworfen.

Smike als Lernkurve

Bei der Entwicklung wurden mehrere Stufen durchlaufen und die Komponenten wurden in kleinen inkrementellen Schritten aufgebaut. Gerade das IoT-Thema ist für die meisten Teilnehmer relativ neu und selbst wer schon auf dem PC mit PHP, Python, JavaScript und entsprechenden Entwicklungsumgebungen gearbeitet hat, lernt mit ESP8266, ESP32, Arduino und Code eine andere Seite der Entwicklung kennen.

Wenn Sie anfangen wollen, habe ich hier die Stufen in Kürze beschrieben.

  • Umgebung installieren
    Zuerst galt es die bereitgestellten Computer mit der Software zu versehen. Installiert wurde das Arduino Studio und der GIT-Client, Optional konnte auch Visual Studio Code und PlatformIO installiert werden.
  • ESP8266 und Beispiel Blinken
    Ein Mikro-Prozessor wurde auf dem Breadboard gesteckt, per USB mit dem PC verbunden und über das Beispiel "Blink" konnte die vorhandene LED zum Blinken gebracht werden. Auch wenn das eigentlich keine Leistung darstellt, ist es eine gute Basis um die grundlegende Funktion der Umgebung und des ESP8266/ESP32 zu testen.
  • Kontakt lesen und Debug-Ausgabe
    Die nächste Stufe bestand daraus, einfach mal einen digitalen Eingang zu lesen. Auch dafür gibt es ein Beispiel und die Ausgabe wird mit "serial.printf()" auf die Console geschrieben. Nun wissen die Teilnehmer, wie Sie später "Debug-Ausgaben" anzeigen können. Nebenbei lernen Sie den Unterschied zwischen "OUTPUT" und "OUTPUT_PULLUP" und warum ein offenes Kabel nicht immer einen klaren Status meldet.
  • WLAN-Client
    Nun nutzen wir die Samples eines einfachen HTTP-Clients, um eine Verbindung zum WLAN herzustellen und eine HTML-Datei zu laden und auszugeben. Auch dafür gibt es zwar ein fertiges Beispiel aber die Parameter für SSID/Kennwort und der Umgang mit einem neuen Modul ESP8266WiFi wurde so gelernt.
  • Optisches Feedback
    Die Funktion und den Status eines Sensors am Fahrradständer soll man natürlich auch direkt "sehen". Dazu wird zuerst die OnBoard-LED genutzt, um per Software den Status zu lesen und auf der LED auszugeben. Im zweiten Schritt wird eine RGB-LED oder Auch WS2812-LEDs können hier genutzt werden.
  • MQTT-Basics
    Die Kommunikation zwischen den verschiedenen Geräten übernimmt ein MQTT-Server (Mosquitto), der zentrale bereitgestellt wurde. Mit MQTT.fx konnten die Anwender erste Meldungen senden und empfangen und so das Grundprinzip MQTT verstehen.
  • MQTT-Meldung
    Nachdem Eingänge, Ausgaben und WLAN funktionieren, wurde eine MQTT-Library (PubSubClient) eingebunden, um vom ESP8277/ESP32 entsprechende MQTT-Meldungen zu senden. Dazu gehört, z.B. eine "Ich bin aktiv geworden" Meldung aber auch eine regelmäßige Zwischenmeldung "ich lebe noch".
  • Wechsel-Erkennung Retained Message
    Dann wurde auch der Status des Eingangs in eine MQTT-Message umgesetzt. Die Software liest den Status alle Sekunde aus und sehr schnell wurde klar, dass eine sekündliche Meldung an den MQTT-Server nicht sinnvoll ist. Es musste also ein "alter Status/Neuer Status-Vergleich angestellt werden. Dabei galt es aber auch eine erste Meldung zu senden und sich Gedanken über ein MQTT-Testament und das "Retained"-Flag zu machen. Denn wenn der Sensor nur Änderungen sendet, dann sollte der MQTT-Server die letzte Meldung für später anfragende Clients vorhalten.
  • MQTT Subscriber mit Ausgabe auf "Ampel
    Die Meldungen der Sensoren müssen natürlich auch dargestellt werden. Daher wurde mit einem ESP8266 und Neopixel LEDs eine Ampel umgesetzt, die anhand der freien und belegten Plätze eine entsprechende Farbe anzeigt.
  • Verknüpfen mit Node-RED
    Eine Meldung an Apps oder Webseiten wurde einfach aufgrund der beschränkten Zeit nicht mehr umgesetzt. Über Node-RED wurden aber die Daten ebenfalls abgegriffen und konnten zu anderen Diensten wie Twitter, Mail u.a. weiter gegeben werden

Das ist nur ein Beispiel, wie man selbst mit einem kleinen Projekt in mehreren Schritten einsteigen kann. Ähnliche Schritte haben auch andere Teams bei IoT aber auch die Teams bei Game und App gemacht.

Mein Feedback

Am meisten hat mich wieder mal fasziniert, dass so ein Hackathon eben nicht eine "Lehr-Veranstaltung" sondern ein "Teamwork"-Event ist. Und wenn jemand behauptet, dass sich die Schüler und Studenten von heute nicht mehr länger als 10Min auf eine Sache konzentrieren könnten, dann waren Sie noch nie bei einem PIT Hackathon. Am Samstag morgen waren die meisten Teilnehmer um 09:00 wieder dabei, obwohl Sie am Freitag abends kurz vor 23:00 Uhr das HNF verlassen haben. Mit dem Ehrgeiz ihr Projekt zu einem Abschluss zu bringen, haben die meisten Jugendlichen mit wenige Pausen fast 14h konzentriert gearbeitet.

Weitere Links