‹ Zur Startseite

Dokumentation

GPG – OpenPGP

GNU Privacy Guard (GPG) ist die OpenSource-Implementierung des asymmetrischen Verschlüsselungsverfahrens PGP, das vorrangig zum Versand von verschlüsselten und signierten E-Mails verwendet wird. Damit kann jeder verschlüsselte Mails versenden und empfangen, die nach heutigen Maßstäben als sicher gelten können, auch vor neugierigen Geheimdiensten.

Für die Ausgabe 01/14 des Neologismus habe ich einen Artikel zur Einrichtung der Thunderbird-Erweiterung Enigmail veröffentlicht, der auch die Grundlagen des Verschlüsselungsverfahrens erläutert. Ich würde mich freuen, wenn einige sich diesen Text als Anreiz nehmen oder auch auf anderem Wege zur GPG-Gemeinde stoßen, sodass in Zukunft mehr verschlüsselte Mails in meinem Postfach eintreffen.
Eine PDF-Version des Artikels kann man hier herunterladen: Sicher ist sicher
Der Artikel bezieht sich jedoch auf die damals (2014) aktuelle Enigmail-Version. Inzwischen wurde die Oberfläche einigen Stellen überarbeitet; die grundlegende Funktionsweise ist jedoch unverändert.

Ich selbst bin unter meiner üblichen Mail-Adresse mail@mhthies.de natürlich auch mit verschlüsselten Mails erreichbar. Meinen öffentlichen Schlüssel findet man auf Key-Servern oder hier.

Software-Projekte

Sightly Robot

Im Wintersemester 2015/16 habe ich für die Pflichtveranstaltung Software-Projekt (SWP) der Leibniz Universität Hannover in einem Team von Informatik-Studenten ein Demonstrations-Spiel entwickelt, in dem sich reale Roboter auf einem projezierten Spielfeld bewegen und virtuelle Rohstoffe einsammeln um Punkte zu erhalten. Die Roboter werden durch einen Algorithmus gesteuert und können gegen andere Hardware-Roboter oder virtuelle (aufs Spielfeld projezierte) Roboter an.

+ Features

Als Hardware-Roboter kommt die auf dem Raspberry Pi basierende Roboter-Plattform Pi2Go zum Einsatz. Die verschiedenen Software-Komponenten zur Projektion und Steuerung der Roboter kommunizieren über das Netzwerk-Protokoll MQTT. Dabei ist ein komplexes Protokoll notwendig, um Felder des Spielfelds zu reservieren und so Kollisionen der unabhängig agierenden Roboter zu verhindern. In der Implementierung meines Teams, die den Namen »Sightly Robot« trägt, sind auch alle weiteren Komponenten, wie der Spiel-Server, der die vorhandenen Ressourcen und Punktestände verwaltet, und virtuelle Roboter, ebenfalls über MQTT angebunden und können somit auf verschiedenen Computern ausgeführt werden.

»Sightly Robot« verwendet zur Darstellung des Spielfelds die Grafik-Bibliothek libGDX. Dafür sind mehrere Themes verfügbar, die z.B. eine Graslandschaft mit Blumen, dunklen Boden mit Pilzen oder eine abstrakt-futuristische Strategie-Karte. Die Kontroll-Oberfläche wurde mit Apache Pivot und dient zum Laden der Map, Initialisieren der Roboter, Starten, Stoppen und Überwachen des Spiels, sowie zur Konfiguration der verbundenen Visualisierungs-Oberflächen.

Als zusätzliches Feature wählt die Software eindeutige Namen und Farben zur Identifikation der Roboter aus. Die Hardware-Roboter verwenden ihre LEDs, um auf Wunsch ihre Farbe anzuzeigen oder die Scheinwerfer und Blinker eines Fahrzeugs zu simulieren. Weiterhin existiert eine Android-App, die sich über MQTT mit dem System verbindet und die Kontrolle über einen der Roboter übernehmen kann.

Der gesamte Quellcode ist auf GitHub zu finden, die Lizenz kann, obwohl dort nicht angegeben, als MIT-Lizenz angenommen werden.

+ Video

LEGO-Segway

Im Rahmen des Hardware-Praktikums im Wintersemester 2014/15 musste ich gemeinsam mit drei Kommilitonen beim Miniprojekt Mobile Serviceroboter einen LEGO-Mindstorms-Roboter konstruieren und programmieren, der auf zwei Rädern balancieren und auf diese Weise einen Parcours durchqueren und einen Ball abliefern kann.

Als Basis kam der damals aktuelle LEGO-Roboter EV3 zum Einsatz, der mit der alternativen Software LeJos betrieben und programmiert wurde.

Eine ausführliche Dokumentation habe ich im Neologismus 02/2015 veröffentlicht. Unten sind einige Fotos und ein Video von einem erfolgreichen und zahlreichen fehlgeschlagenen Versuchen zu sehen. Bei Interesse am verwendeten Code kann gerne Kontakt mit mir aufgenommen werden.

+ Fotos

+ Video

Hardware-Projekte

LED-Tisch

Gemeinsam mit Arjun Sarin habe ich nach dem Vorbild von Mario Lukas zwei LED-Tische gebaut. Die Tische basieren auf einem LACK Beistelltisch von IKEA, in dessen obere Platte eine LED-Matrix mit 12x12 Pixeln eingelassen ist, wobei jede LED einzeln ansteuerbar ist.

Als LEDs kommen Streifen von digitalen RGB-LEDs mit WS2811-Chip zum Einsatz. Diese werden über Zuleitungen an 4 Stellen von einem unter dem Tisch verbauten 50W-Netzteil mit Strom versorgt. Ein Teensy Microcontroller schickt über einen Pegelshifter-IC zwei Steuersignale, um jeweils eine Hälfte der Matrix anzusteuern. Auf der Steuerplatine ist zudem ein HC05-Bluetooth-Modul verbaut, sodass später Befehle vom Computer oder Android-Handys an den Tisch gesendet werden können.

Die Software für den Controller bildet Matrix-Koordinaten auf die durchnummerierten LEDs ab und verwendet dann wahlweise die FastLED-Library oder die OctoWS2811-Library, um die LEDs anzusteuern. So können verschiedene Programme intern abstrahiert in Koordinaten auf die Matrix zugreifen. Bislang sind nur verschiedene Show-Programme, wie bewegte Farbübergänge und sich ausbreitende "Lichtwellen" implementiert, prinzipiell sollen aber später auch Spiele (wie TETRIS oder Snake) auf dem Tisch funktionieren.

+ Fotos