Make Magazin 3/2020
S. 88
Community-Projekte
Aufmacherbild

Mechanische Tastatur

Sasha Solomon hat eine mechanische Tastatur selbst programmiert und 3D-gedruckt und gibt einen Einblick in die komplexe Welt der Tastaturen.

Sobald man sich mit mechanischen Tastaturen beschäftigt, fällt man schnell in ein Kaninchenloch: Wie laut sollen die Tasten klicken? Wie stark darf der Widerstand beim Tippen sein? Von welchem Hersteller ist das Gehäuse, von welchem die Tasten? Programmiererin Sasha Solomon wollte nur ein hübsches und ergonomisches Keyboard haben und ist dabei in genau dieses Kaninchenloch gefallen. Ihr Fazit: Man lernt am meisten, wenn man alles selbst baut. Sie hat ihren Bauprozess zum fertigen ergonomischen Keyboard mit zweigeteiltem Layout dokumentiert, damit andere daraus lernen können.

Vor dem Programmieren sollte man die Tastaturbelegung gut planen.

Bei den Tasten spielen zwei Komponenten eine Rolle: Die Schalter und die Kappen. Die Schalter bestimmen, wie sich die Tastatur beim Tippen anfühlt – sanft und geräuschlos, oder mit spürbarem Widerstand und lautem Klicken. Der Schaltertyp ist mit einem einheitlichen Farbsystem kodiert. Solomon hat sich für rote Schalter entschieden – ohne Klicken, aber mit leichtem Widerstand. Die Tastaturkappen sind dagegen primär was fürs Auge, mit vielen Motiven und Farben. Allerdings muss man darauf achten, welche Wölbungen sie haben. Nicht jede Tastenkappe passt zu jedem Tastaturgehäuse.

Das Gehäuse ist aufgrund der komplexen Form nicht ganz sauber gedruckt, mit etwas Nachbearbeitung ist es aber einsatzbereit.

Um die Tastatur zu programmieren, hat Solomon zwei Pro Micro Development Boards verbaut – je eins pro Tastaturhälfte. Die beiden Hälften sind über Klinke verbunden. Die Elektronik hat sie komplett von Hand gelötet: Nachdem die Schalter an ihren Plätzen positioniert sind, muss man sie reihen- und spaltenweise verlöten. Der Schalter gibt beim Drücken der Taste seinen Standort mit Angabe von Reihe und Spalte an den Mikrocontroller weiter. Die Verbindungen werden daher zum Mikrocontroller geführt, außerdem gibt es einen Anschluss zum Klinkenstecker.

Wenn alles verlötet ist, kann man die einzelnen Tastaturelemente zusammenstecken und die Elektronik im Inneren verstecken.

Schließlich hat Solomon die Firmware QMK installiert und ihr individuelles Tastaturlayout programmiert. Die Tastenbelegung ist wie üblich mit Ebenen umgesetzt. Auf der ersten Ebene befinden sich die Tasten, die man am häufigsten benötigt. Bei QWERTZ sind das zum Beispiel das Alphabet in Kleinbuchstaben und die wichtigsten Satzzeichen. Auf der zweiten Ebene liegen Großbuchstaben und viele der spezielleren Sonderzeichen. Solomon hat als Basis das QWERTY-Layout genommen und sich dazu eigene Tasten ausgedacht – wie den HYPER-Key, mit dem sie zwischen Programmen wechseln kann. Auf Ebene zwei sind zum Beispiel die Lautstärkeregelung und ein Zahlenblock. Zum Abschluss musste sie nur noch ihre Tastenkappen aufsetzen, und schon war die personalisierte Tastatur einsatzbereit. rehu

Aufmacherbild

Bobby-Car mit Hoverboard-Antrieb

Mit Hoverboards fährt kaum noch jemand – ihre Bestandteile vom Akku bis zum motorisierten Rad lassen sich aber prima in andere Gefährte wie Bobby-Cars einbauen.

Mit ein paar Dutzend defekter Hoverboards, die ich zufällig bekam, fing alles an. Die motorisierten Bretter mit zwei Rädern waren 2016 eine Zeit lang sehr beliebt, zeigten aber schnell ihre Schwächen und sind als „Ersatzteilspender“ für unter 50 Euro zu bekommen. Interessant zur Weiterverwendung sind die Akkus, Teile der Elektronik und die Räder mit eingebautem Motor. So kam ich über den Raddurchmesser auf eine Idee, denn die Räder von Bobby-Cars sind nur wenige Millimeter kleiner. Kurz darauf nannte ich ein rotes Lauflernfahrzeug mein Eigen.

Der Antrieb des E-Bobby-Cars stammt aus einem Hoverboard.

Grundlage des Projekts ist der Hoverboard-Firmware-Hack von Nico Stute, Niklas Fauth und Rene Hopf, mit dem Hoverboard-Hardware in zahlreichen Gefährten zweitverwendet werden kann. Der Hack basiert auf Reverse Engineering und einem Leak der vorinstallierten Firmware des STM32-Mikrocontrollers. Damit kann man das Mainboard weiterverwenden, auf dem die Electronic Speed Controller (ESC) sitzen, die wiederum die bürstenlosen Motoren in den Rädern steuern. Um sie noch leiser und effizienter zu betreiben, gibt es auch einen Fork von Emanuel Feru, der die Firmware um Vektorregelung (Field Oriented Control, FOC) erweitert.

Als Gashebel dient ein Eigenbau mit Hallsensor. Eine Xbox-Schultertaste habe ich als Bremse konfiguriert.

Da ich mir unsicher war, ob sich auf einem für Erwachsene eher unbequemen Bobby-Car Fahrspaß einstellen würde, habe ich mit dem Austausch der Hinterräder begonnen. Die Achse der Räder muss man dafür, wie beim Hoverboard, durch je einen Halteblock an einer Grundplatte befestigen. Außerdem musste ich eine große Öffnung in den Rumpf des Fahrzeugs schneiden, um in dem Hohlraum die Elektronik unterzubringen. Die Mindestausstattung sind die Hoverboardplatine zum Betreiben der Motoren, ein Akku sowie die Verkabelung. Nach den ersten Testfahrten war es schwierig, das Grinsen wieder aus dem Gesicht zu bekommen. Zur besseren Gewichtsverteilung und Lenkung ersetzte ich nun die Vorderräder, wobei ein Neubau der Achsschenkel nötig war. Die im Vergleich zum Original besseren Lager und Gummireifen lohnen den Aufwand. Ein weiterer Umbau ist die Verlängerung der Lenksäule auf Erwachsenengröße.

Als Grundplatte habe ich eine kleine, stabile Aluminiumleiste genommen und mit einigen Kanthölzern fest im Inneren des Bobby-Cars montiert. Dort ist außerdem die Elektronik untergebracht.

Denn mit einer Maximalgeschwindigkeit von etwa 30 km/h ist dies kein Kinderspielzeug mehr. Für den besonderen Fahrspaß sorgt die Beschleunigung, denn die Leistung von grob 2kW muss erst einmal „auf die Straße“ gebracht werden. Das Fahren ist in Deutschland nur auf Privatgeländen legal, wobei ich das Driften auf Hallenböden sehr empfehle. Eine Dokumentation des Projekts mit vielen Fotos ist auf meiner Website zu finden. Dort werde ich zukünftige Erweiterungen und Erfahrungen veröffentlichen. hch

Aufmacherbild

Folding@Home-Anzeige

Wer besonders stolz auf seine Folding@Home-Leistung ist, kann mit diesem Display die eigene Statistik per API abrufen und anzeigen.

Seit Beginn der Corona-Krise kann man bei Folding@Home an der Erforschung des Virus mitarbeiten, indem man dem Projekt seine ungenutzte Rechenpower von CPU und GPU zur Verfügung stellt. Man kann anonym beitragen, ein Donor-Konto einrichten oder mit seinem Konto ein Team unterstützen. Mittlerweile gibt es auch ein Folding@Home-Team von Heise, die „Heise-Falter“. Für errechnete Workunits (WUs) bekommt man Punkte. Da man mehrere Rechner unter einem Konto betreiben kann, werden die Punkte zentral gespeichert. Über ein Webinterface kann man sie abrufen. Dafür habe ich ein Display gebaut, das meine Statistiken mithilfe eines Raspberry Pi Zero W abfragt und auf zwei Display-Modulen mit einfarbigen 8×8-LEDs anzeigt. Die Module verwenden den Treiberbaustein MAX7219.

Modul mit festgelöteten Eingangspins, Kabel und Ausgangspins zum Selberanlöten

Die passende Bibliothek für die Displays ist die luma.led_matrix auf Github. Wenn man nur ein Display-Modul verwenden möchte, kann man mit meinem Beispielprogramm direkt loslegen. Da die Module elektrisch und softwareseitig einfach kaskadierbar sind, kann man auch mehrere Module hintereinanderschalten. In der Initialisierungsroutine muss lediglich die entsprechende Anzahl 8×8-Matrizen mitgegeben werden. Bei einem Modul sind es vier, bei zwei sind es acht und so weiter.

Die Eingangspins wurden nach unten umgebogen und von oben in die Lötstellen des ersten Moduls eingesteckt.

Unter Umständen muss man die Displays mit einer eigenen Spannungsquelle verbinden, damit der Raspi nicht in die Knie geht. Wenn man sich die Module anschaut, sieht man, dass an einer Seite eine abgewinkelte Pinleiste angelötet ist. Um die Module nahtlos zu verbinden, biegt man die Pins eines Displays nach unten. Dann kann man sie auf dem zweiten Modul von oben durch die Platine schieben und auf der Rückseite festlöten. Vorher muss man noch das letzte LED-Modul vorsichtig aus den Sockeln der Platine ziehen und beim späteren Einsetzen auf die Ausrichtung achten.

Die umgebogenen Pins wurden an der Unterseite des Moduls verlötet.

Danach benötigt man die Daten von Folding@Home. Das Konzept ist simpel: Der Aufruf https://stats.foldingathome.org/api/donor/IhrDonorName liefert ein JSON-Dokument zurück, das sich in Python in seine Bestandteile zerlegen lässt. Probieren Sie den Aufruf einfach mal im Browser aus und schauen Sie sich das Ergebnis an. Mein Programm fragt über API die Statistiken für das eigene Donor-Konto ab und baut aus verschiedenen Inhalten einen String, der als Laufschrift auf den Displays ausgegeben wird. Dabei ist es wichtig, in der URL das eigene Konto einzutragen. Die Schritte sind im Programm dokumentiert. Mehr Erläuterungen zum Bau und zur Programmierung sowie den kompletten Code gibt es online. rehu