Die Idee

„Und so begab er sich auf eine Suche, jene würde Ihn viele Jahre seines Lebens beschäftigen“: Die einen Suchen nach dem Sinn des Lebens, andere nach der richtigen Plattform für ein Projekt, was grade in Planung ist. Während erstere wohl füher oder später bei „42“ landen werden, gibt es für letzere nicht so viel Hilfe bei der Suche. Weil klar, jedes Projekt hat andere Anforderungen und Rahmenbedingungen, die die Entscheidung, ob jetzt ein Arduino, Raspberry Pi oder doch ein NodeMCU eingesetzt werden sollte nicht universell beantwortbar machen.

Um aber eine kleine Hilfe bei der Entscheidungsfindung zu liefern, habe ich als erstes Projekt des Jahres 2021 ein kleines Tool entwickelt, was zumindest einen Anhaltspunkt im Jungel der Entwicklungsplattformen liefern könnte.

Darkmode by default: Die Landingpage mit Spachauswahl

Weitere Entwicklungsplatformen für den PlatformPicker sind in Planung, siehe weiter unten in diesem Beitrag.

Die Bedinung des Tools gestalltet sich wie folgt: Nachdem man die Sprache ausgewählt hat, wird man zur Fragenseite weitergeleitet, bei der man bei 13 Fragen Stellung beziehen kann. Nach dem Bestätigen der Ergebnisse wird man automatisch auf eine der 16 unterseiten weitergeleitet, die alle unterschiedliche Microcontroller- oder Microprozessorboards beleuchten.

Die Detailseiten selber haben dann eine Kurzbeschreibung der (laut Tool) passendsten Plattform, dazu noch eine Tabelle mit den Eigenschaften des Boards. Die Tabelle beinhaltet unter anderem den Chip der Plattform, die Anzahl der I/O-Pins und Tipps, welche Programmiersprachen am häufigsten verwendet werden.

Als letztes finden sich noch Links zum Board (sowohl zu Shopseiten als auch zu weiteren Daten, sollten diese verfügbar sein) und einen Knopf, um die Seite neuzuladen.

Das Ergebnis

In der Version 1.0, die ich heute mit dem Pi and More Vortrag vorstelle, hat 13 Fragen und 16 Boards, die vorgeschlagen werden können: Verschiedene Mitglieder der Arduino-Familie, Raspberry Pis sowie Node MCUs und Teensy-Boards bilden die Startmenge des Werkzeuges. Von den kleinsten Atmel-Microcontrollern bis zum modernsten Armv8 Cortex-A72 (in Form des BCM2711 im Raspberry Pi 4) ist alles vorhanden, was das Entwicklerherz begehrt.

Die Verschiedenen Boards in der Version 1.0 im Überblick

Kurzgefasst: Die Technik hinter der Seite

Die Seite mit Bootstrap 5, in welche Javascript eingebettet ist. Die Tool läuft komplett ohne Backend, somit ist es möglich, die Seite auf GitHub-Pages zu hosten. Die Funktionalität wird mit JavaScript realisiert.

Die Fragelogik basiert in den Grundzügen auf einem Persönlichkeitstest von Danube Phan, dieser wurde aber sehr stark überarbeitet und im Stil vom Grund auf neu geschrieben, damit dieser Einsetzbar ist für das Projekt.

Ausblick: Was kommt als nächstes für den PlatformPicker?

Die Wunschliste ist lang, die Zeit knapp: Gerne würde ich noch die ganze Seite auf Englisch übersetzten, was aber erst nach einer kompletten Fertigstellung der deutschen Seite ist. Auf dieser habe ich vorallem noch vor, die Fragelogik deutlich zu verbessern: Ein Blick in den Sourcecode zeigt, dass vor allem die als „Unverzichtbar“ markierten Fragen in die Auswahl reinzählen, die anderen Fragen werden zur Zeit eher als Fallback verwendet. Außerdem würde ich gerne die Subseiten umbauen und am besten auslagern. Wenn das geschafft ist, ist der Weg zu weiteren Microcontrollern im Tool frei, im Moment ist die Anlegung der verschiedenen Subseiten mit recht viel Aufwand verbunden.

Deshlab ist mein Plan, sobald ich wieder etwas Zeit habe und einen extern gehosteten Server anzumieten, diese Subpages in ein Mediawiki zu übernehmen, meines Wissens nach gibt es im Moment noch keine solche zentrale Anlaufstelle für Microcontroller/Microprozessor-Boards.

Den Unterbau der Webseite sonst würde ich erstmal unangetastet lassen, dank Bootstrap V5 sollte dieser auch noch in den nächsten Jahren aktuell bleiben.

Du bist gefragt!

Ich freue mich um jede Mithilfe beim Weiterbringen des Tools, der komplette Quellcode ist -wie immer- vollständig offen. Bei GitHub einfach ein Pull Request erstellen, ich merge dann in der Regel innerhalb von ein paar Tagen den Code.

Post scriptum

Wie dem ein oder anderem findigen Leser des Beitrags vielleicht aufgefallen ist, springe ich häufiger zwischen den Begriffen „Harwareplattformen“, „Entwicklungsplattformen“ und einfach nur „Platform“. Das liegt daran, weil ich keinen eindeutigen Dachbegriff für diese Gattung der Entwicklungsplattformen finden konnte: Zugegebener Maßen liegt zwischen Raspberry Pi als Einplatinencomputer und einem Arduino Pro Mini als „microcontroller mit breakout-board“ Welten, jedoch werden beide Lösungen in der Makerszene für ähnliche Anwendungszwecke eingesetzt (LED-Streifen schalten kriegen beide gut hin, der Raspberry Pi kann dabei aber noch ein neuronales Netz trainieren und einen Webserver parallel laufen lassen) und sollten deshalb auch zu innerhalb eines Dachbegriff zusammengefasst werden können.