Projekte

C Klasen

Okt 2026Primzahlrechner

Mein erstes Programmierprojekt findet hier eine Fortsetzung. Ein Arduino ist kein schneller Prozessor, aber mit allen Tricks, die es so gibt, bin ich mit diesem Projekt doch ziemlich nah an dem, was idealerweise möglich ist.

Der Rechner besteht aus einem Arduino, dem LCD-Display, einem Displaycontroller, einem Akkucontroller und einem Li-Ion-Akku (als unterbrechungsfreie Stromversorgung). Er läuft seit dem 22.10.26 2:45 bisher störungsfrei auf meinem Schreibtisch und ab und zu freue ich mich, wenn es von 199.999.xxx auf 200.000.xxx umspringt.

Sep 2026 – JetztWebserver für Website, Spieleserver, Mail, Kalender usw.

Eine Website muss man immer pflegen. Aber jetzt ist erstmal der Grundstein gelegt. Ich habe häufiger gelesen, dass HTML und CSS keine Programmiersprachen sind und daher auf Menschen herabgeschaut wird, die sich damit beschäftigen. Ich fand es wirklich aufwändig, mich einzuarbeiten. Nach 12 Stunden Arbeit stand eine Website, die komplett selbstentworfen war.

In 12 Minuten hat Claude die Website überarbeitet, ABER mein Grundkonzept und die Grundstruktur stehen noch, sodass ich jetzt in der Lage bin, die Seite zu pflegen, und sie sieht gleichzeitig ordentlich aus.

Webdesign für Anfänger
Verständnis der Struktur ist mir erstmal sehr wichtig
Webdesign für Anfänger
Trotzdem ist das hier wenig optisch ansprechend

Aug 2026Spore-Klon

Vielleicht meine bisher beste Spielidee und relativ umfangreich. Ich stelle noch nichts weiter online, falls ich es noch auf Steam veröffentliche.

Die Spannung steigt.

Jul 2026Tischventilator mit weniger als 20 dB

Als Geburtstagsgeschenk ein sehr leiser Tischventilator, damit ein feines Gehör nicht gestört wird.

Ein schwingungsgedämpftes Gehäuse und ein Premium-Noctua-12-V-Industrielüfter sorgen für minimale Geräusche bei maximalem Luftzug.
Mit einem Arduino Nano habe ich den Ventilator nahe seiner Minimalgeschwindigkeit gut steuerbar gemacht. Der Lüfter arbeitet im unteren Drehzahlbereich mit hochfrequenter PWM besser als mit niederfrequenter. Daher und wegen der 12-V-Betriebsspannung wurde ein MOSFET zur Steuerung des Lüfters verwendet. Die hochfrequente Steuerung (relativ zur Taktgeschwindigkeit des Arduino) erfordert es, direkt auf das Register zuzugreifen, statt über die digitalWrite(x,y)-Abstraktion zu schalten.

Ventilator
Tischventilator mit Drehregler und einstellbarem Winkel

Aug 2026Wassermelonenzucht

Auf dem Balkon sind dieses Jahr einige neue Pflanzen dazugekommen. Es macht wahnsinnig Freude, einen Kern oder Samen, der nach dem Essen einer Frucht übrig bleibt, einfach mal in den Boden zu stecken und abzuwarten, ob daraus etwas erwächst.

Wenn das, was dann wächst, auch noch Früchte trägt, ist das natürlich besonders toll! Der Apfel von letztem Jahr hat den Winter knapp überlebt. Neu gewachsen sind: Wassermelone, Honigmelone, Tomate, Avocado und Erdbeere. Mögen sie lange leben! Aber ansonsten wartet eine Kartoffel bereits darauf, dass ein Blumentopf frei wird.

Mini-Wassermelone in meiner Hand
Mini-Wassermelone in meiner Hand

Jul 2026Abluftsystem für die Klimaanlage

Von dem Vater eines Freunds habe ich eine mobile Klimaanlage bekommen, da >40 °C in der Zeit, in der ich meine Masterarbeit schreibe, nicht akzeptabel ist.
Es ist jedoch nichts gewonnen, wenn 45 °C warme Luft gegen 45 °C warme Luft getauscht wird. Die Temperatur des Dachs habe ich an einem Tag mit 53 °C gemessen.
Die Abluft muss also bestmöglich abgedichtet werden, damit die Luft stattdessen aus dem Flur und der Lüftung im Bad kommt. Bei gekipptem Fenster kann mit meinem Modell und etwas Schaumstoff der obere und untere Teil des Kippfensters abgedichtet werden.
Dazu habe ich den Abluftschlauch mit Schaumstoff umwickelt und in die Dachfenster Isolationspaneele aus Styropor geklemmt. Auf die Weise konnte ich das Dachgeschoss 13 °C kühler halten als die Außentemperatur: 28 °C drinnen bei 41 °C draußen!

Bei der Konstruktion habe ich ebenfalls darauf geachtet, dass sich auch kein Regenwasser an dem geöffneten Fenster sammeln kann. Auch das fließt nach außen ab. Wegen der heißen Abluft und direkten Sonneneinstrahlung habe ich zudem PETG verwendet, was sich als ausreichend temperaturstabil erwies.

Abluftabdichtung im gekippten Dachfenster, von außen
Die Abdichtung im gekippten Dachfenster, von außen gesehen
CAD-Modell der Abluftabdichtung
CAD-Modell der Abdichtung

Jul 2026Audiosurf-Klon

Audiosurf war ein Spiel, bei dem man mit einem Fahrzeug auf einer Bahn farbige Blöcke im Rhythmus eines selbstgewählten Songs sammeln musste. Das Spiel habe ich relativ viel gespielt, aber es war mir immer zu wenig rhythmisch. Es passierte zu wenig. Die Weiterentwicklung hier ist daher von der Bahn weg in den Weltraum, wo man mit einem Raumschiff Asteroiden ausweicht.

Hier habe ich ausschließlich eine Gamedesigner-Rolle übernommen und Claude Code hat den Code geschrieben. Es ist noch nicht fertig. Wie es bei Vibecode-Projekten aber immer ist, ist die Identifikation mit dem Resultat gering. Spaß macht das Spiel aber in jedem Fall.

Raumschiff zwischen Asteroiden und Kristallen
Rechts unten das "Raumschiff" und die braunen Asteroiden und leuchtenden Kristalle
Flugstatistik
Die Flugstatistik: nur Gold erreicht. Nicht meine beste Leistung.

Apr 2026 – Jul 2026Reparatur einer Kaffeemaschine

Für einen Euro habe ich eine "defekte" Kaffeemaschine gekauft. Das Display zeigte in keinem Feld mehr das F-Segment der 7-Segment-Anzeige an und der Griff der Kanne war gebrochen.

Zusammen mit einem Freund habe ich die Kaffeemaschine zerlegt, das Layout des PCB analysiert und die Lötstellen geprüft. Wir haben dann den betreffenden Kontakt identifizieren können, durch den das F-Segment gesteuert werden sollte, und haben ihn nachgelötet.

Den Griff konnte ich zunächst mit Silikonkleber ausreichend kleben – bis es nicht mehr gereicht hat und ich meinen Kaffee überall verteilt habe. Daraufhin habe ich mir Polyamid-Filament für den 3D-Drucker bestellt und ein Modell entworfen. Das Polyamid zeigte jedoch starken Verzug, sodass ich in das Modell eine integrierte Stützstruktur am unteren Ende des Griffs eingebaut habe, die ich dann nach dem Druck abgesägt habe.

Display der Kaffeemaschine mit vollständiger Anzeige
Das Display zeigt wieder alle Segmente an

Mär 2026 – JetztPizza Racer

Stell dir vor, du verbindest einen Ressourcenmanager mit einem Racing-Game.

Heraus kommt die Idee für ein Spiel, an dem ich noch arbeite. Prinzipiell entscheidet man, welche Pizzen man produziert, fährt sie zu Kunden und kauft Zutaten ein. Man soll dabei abwägen, ob sich die Strecke zum Laden, der weiter weg liegt, lohnt oder ob man teuer in der Nähe kauft. Ich versuche alle Kosten und Preise realistisch zu halten, Steuern und Spritkosten werden berechnet. Bisher fehlt aber noch ein Gegenspieler oder sonst eine Herausforderung, denn die vielen Ausgaben motivieren irgendwie nicht...
Bei diesem Spiel habe ich ebenfalls darauf geachtet, nur Assets zu verwenden, die ich frei verwenden darf. Wenn das Spiel fertig ist, kann ich es also auch veröffentlichen.

Pizza Racer
Auf dem Weg zum Geschäft mit ein paar Zutaten

Jan 2026 – Feb 2026Kühlschrank-Türhebel

Ein hermetisch dichter Kühlschrank sorgt für einen Unterdruck, wenn die warme einströmende Luft beim Öffnen sich nach dem Schließen abkühlt und zusammenzieht. Das sorgt für einen Widerstand gegen das erneute Öffnen. In meinem Fall ist der Widerstand so groß, dass man den gesamten Kühlschrank zieht, bevor sich die Tür öffnet.

Ein Modell für den 3D-Drucker, das ich nach viel Suchen gefunden habe, ist wegen für 3D-Druck ungünstiger Auslegung für den Lastfall häufig kaputtgegangen – selbst als ich von PLA auf ABS umgestiegen bin! Daraufhin habe ich eine eigene Version entwickelt, die durch das leichte Anheben des Griffs erst die Tür gegen den Schrank aufhebelt. Der Griff liegt so auch nah an der Tür an und wird nicht zum Hindernis.

Das Modell habe ich zunächst in Inventor 2026 gebaut und dann nochmal in FreeCAD mit dem Gedanken, die gedruckte Version kommerziell zu vertreiben. Daraus ist bisher nichts geworden. Meine Marktanalyse hat ergeben, dass zwar jeder einen Kühlschrank hat – die Hersteller aber sehr bewusst auf Griffe verzichten. Wenige Menschen werden sich einen Griff an ihren Kühlschrank ankleben wollen.

Kühlschrankhebel mit Öffnungsmechanismus
Kühlschrankhebel mit Öffnungsmechanismus
Kühlschrankhebel in der Realität
Kühlschrankhebel in der Realität

Jan 2026 – Apr 2026Handyhalterung fürs Auto

Leicht zu unterschätzendes Projekt: Es gilt, Vibrationen, festen Halt, hohe Temperaturen und Sonneneinstrahlung, Lademöglichkeit und Bedienung zu berücksichtigen.
Zunächst war das Konzept ein Aufbau aus fest sitzender Klammer, Kunststofffeder und dann einer exakt passenden Form. Wenn das Handy in diese Form hineingeschoben wurde, war am unteren Ende ein Ladekabel exakt so positioniert, dass es in die Ladebuchse gerutscht ist. Leider war das Konstrukt dann insgesamt so schwer und hatte einen langen Hebel, dass es stark gewippt hat und die Feder immer wieder unter Last und Temperatur nachgegeben hat.
Aus einer Laune heraus habe ich dann eine minimalistische Halterung konstruiert mit dem Konzept, dass das Handy locker eingespannt ist und Vibrationsdämpfung aus dem Material selbst statt aus einer Feder kommt. Zusammen mit dem freundlichen Gesicht entstand die aktuelle Halterung.

Nov 2025 – Apr 2026Handyhülle mit Kartenhalter

Mein Portemonnaie und mein Haustürschlüssel sind an einer Kette aneinander. Mein Personalausweis, auf dem meine Adresse steht, sollte nicht zusammen mit dem Haustürschlüssel verloren gehen. Der Perso muss daher beim Handy sein – was auch den Vorteil hat: Sollte das Handy verloren gehen, gibt es einen Weg, mich zu kontaktieren.
Konventionelle Hüllen lassen entweder die Aufbewahrung von Karten gar nicht zu oder es sind lästige Klapphüllen. Daher habe ich eine Hülle konstruiert, die ein Fach hat, in das die Karte einrastet und nicht herausfallen kann. Dazu kommen Gimmicks, etwa dass das Fairphone-Logo auf der Rückseite noch zu lesen ist, die Ecken besser geschützt sind und die Hülle Richtung Display hervorsteht, um es besser zu schützen.

Handyhülle
Handyhülle

Sep 2025Mega-Tic-Tac-Toe

Ein bekanntes Spielprinzip verschärft durch mehr Auswahloptionen.

Das Spielfeld besteht aus einem großen 3×3-Tic-Tac-Toe-Feld. In jedem der neun Bereiche ist ein eigenes kleines Tic-Tac-Toe.
Man setzt dann sein Symbol in einem der kleinen Felder. Hat man in einem der kleinen Bereiche gewonnen, setzt man sein Symbol im großen Bereich an diese Stelle. Verschärft wird es dadurch, dass, wenn Spieler 1 in einem kleinen Bereich zum Beispiel unten links setzt, der Gegner im Spielfeld unten links des großen Rasters weiterspielt.
Ist der Bereich im großen Feld bereits entschieden, kann sich der Spieler im gesamten Feld aussuchen, wo er setzen möchte.

Dazu gibt es eine Übersetzung auf Englisch, verschiedene Hintergründe und einen Computergegner auf Basis einer Heatmap und eines Entscheidungsbaums.

Mega-Tic-Tac-Toe
Spielbeginn: Grün setzt oben rechts, Rot setzt im großen Feld oben rechts
Mega-Tic-Tac-Toe
Kann Rot noch gewinnen?

Spiel herunterladen (ZIP)

Aug 2025Distanzmessgerät mit Audioausgabe

Ein Projekt für einen einzelnen freien Tag, das dann doch länger gebraucht hat.

Die Idee ist, mit einem Ultraschall-Distanzsensor eine Entfernung zu messen und dann über einen Lautsprecher den Ton abzuspielen, dessen Wellenlänge der Distanz zum Objekt entspricht.
Wird also ein Objekt in 1 m Entfernung gemessen, rechnet der Mikrocontroller:
v(Schallgeschwindigkeit) / l(Entfernung) = f(Frequenz)
343 m/s / 1 m = 343 Hz. Ein einigermaßen tiefer Ton.
Prinzipiell kann man Entfernungen zwischen etwa 2 cm und 20 m auf diese Weise auditiv wahrnehmen.

In diesem Gerät steckt ein Arduino Uno, ein Lasermodul, ein Ultraschallsensor, ein Kippschalter und ein Lautsprecher aus einem defekten Fernseher.

Distanzmessgerät
Silberner Ultraschallsensor und goldener Laser zum Zielen

Feb 2025 – Jul 2025Avoid bad robots

Anhand eines Buchs habe ich die Techniken der Spieleentwicklung in Godot angewendet, um das Spiel Avoid bad robots zu programmieren. Es ist ein simples Spiel, bei dem böse, rote Roboter von außen durch den Bildschirm wandern, die man nicht berühren darf. Punkte bekommt man, indem man ihnen möglichst lange ausweicht und sie mit einem Angriff rammt.

Da das Spiel geschützte Inhalte enthält, kann ich es hier nicht veröffentlichen.

AvoidBadRobots-Spiel
Bedroht von bösen Robotern und weit vom Highscore entfernt

Sep 2024 – Jul 2025Energiesparende Filamentwaage

Wenn ich mit meinem 3D-Drucker Modelle drucke, muss ich wissen, wie viel Filament noch auf der Rolle ist. Das Filament bleibt auf der Waage stehen und ich möchte zu jeder Zeit spontan ohne Aufwand wissen, wie viel Filament noch da ist. Die Waage muss also permanent an sein. Sie soll energiesparend sein und nicht permanent leuchten und kann deshalb kein Display benutzen. Stattdessen wiegt sie alle 5 min und stellt dann analog mittels Servomotor einen Zeiger auf das entsprechende Gewicht ein. In der Zwischenzeit wird alle Peripherie abgeschaltet und Strom gespart. Der Stromverbrauch ist kleiner als mit einem Stromzähler messbar.

Jul 2024Prototyp eines Fischfang-Simulators

Erster Versuch einer Spieleentwicklung. Hier war der Wunsch, ein Spiel zu entwickeln, größer als der Plan, wie es umzusetzen ist. Daher ist es leider bei einem Prototyp geblieben.
Es gab allerdings schon Wellen, eine Animation für den Fischer, seine Angel zu werfen, und er konnte auf- und abfahren.

Fishing game
Fischer an seinem Steg

Jun 2024 – Jan 2025Erste "CAD"-Erfahrung

Modelle, gebaut mit dem Web-3D-Editor Figuro, aus Quadern, Kugeln, Zylindern und booleschen Operatoren. Figuro ist zwar sehr einsteigerfreundlich, die Positionierung der Würfel muss jedoch berechnet werden. Die Position der hellen Leiste am blauen Deckel wird berechnet, indem man die Breite der ersten Kiste + der Abstand für die y-Achse (blau) und die Länge des Deckels - die Dicke des Stabs für die x-Achse (rot) wählt. Das wird für aufwändigere Modelle schnell richtig kompliziert. Ein Hoch auf parametrische CAD-Tools!

Für das Modul Darstellende Geometrie habe ich mir die Formen, die gezeichnet werden sollten, erstellt und mit meinem 3D-Drucker gedruckt. Darüber hinaus habe ich das Gehäuse meiner Waage und eine Kiste für Spielkarten erstellt.

Eine Kartenkiste aus 19 Quadern
Eine Kartenkiste aus 19 Quadern

Jun 2024 – Aug 2026Roboterarmunterstützte Topfpflanzenbewässerung

Die für mich beste praktische Anwendung für C++ nach einem Primzahlrechner und Taschenrechner habe ich in der Steuerung von Mikrocontrollern gefunden. Da hat sich ein 5-DOF-DIY-Billig-Roboterarm angeboten. Eigentlich sollte der meinen Kaffee umrühren, er war allerdings zu schwach einen Löffel zu halten. Ich habe ihn dann umgebaut, zusätzlich zum 5-V-Schaltkreis einen 12-V-Schaltkreis für die Wasserpumpe installiert, eine Echtzeituhr und die Schlauchleitungen angebracht. Der Roboterarm fährt jetzt täglich meine Topfpflanzen ab und wässert sie.
Bisher ist die Steuerung anhand der Winkel der Servos geregelt. Der nächste Schritt wäre, die inverse Kinematik zu programmieren. Vielleicht in Zukunft, never change a running Bewässerungsroboter.

2018Erste Erfahrungen mit C++

Nach der Ausbildung habe ich mit einer App C++ programmieren gelernt.

Zunächst habe ich versucht einen Taschenrechner zu programmieren. Mein Anspruch war allerdings, dass der Rechner auch kompliziertere Rechenvorgänge wie 1/(-2/(-3/(-4+4))) beherrscht. Das hat allerdings meine Fähigkeiten bei Weitem überstiegen.

Stattdessen habe ich einen Primzahlrechner gebaut und dessen Berechnungsmethodik immer weiter optimiert.

Primzahltest:

  1. Teilen durch jede Zahl bis zur Zahl selbst
  2. Teilen durch jede Zahl bis zur Hälfte der Zahl selbst
  3. Teilen durch ungerade Zahlen bis zur Zahl selbst
  4. Teilen durch alle zuvor gefundenen Primzahlen bis zur Hälfte der Zahl selbst
  5. Verbesserung des Codes zur Teilbarkeit der Zahl

Leider habe ich den Quellcode nicht mehr gefunden, sonst hätte ich ihn in einem späteren Projekt verwendet.