Cubit - bring your prototype to life.
CUBIT ist ein Physical Computing Tool, das aus Soft- und Hardware besteht, die dem Anfänger das Programmieren und den Umgang mit Elektronik erleichtert.
Die Handhabung moderner Mikrocontroller ist heute deutlich einfacher als in der Vergangenheit. Dennoch bleibt das Erlernen einer vielseitigen Programmiersprache wie C/C++ sowie der Aufbau einer elektrischen Schaltung mit einigen Herausforderungen verbunden. Diese Prozesse erfordern viel Zeit, Übung und Geduld, um eigene Ideen erfolgreich umsetzen zu können.
Im Rahmen des CUBIT-Projekts wurden diese Problemfelder systematisch analysiert. Für jede identifizierte Schwierigkeit wurden im Designprozess gezielte Lösungen entwickelt, die den Einstieg in die Arbeit mit Mikrocontrollern und Programmiersprachen erheblich erleichtern sollen.
CUBIT ist mein Bachelor-Abschlussprojekt aus dem Jahr 2015, das den Lernprozess deutlich verkürzt, die Elektronik modularisiert und gleichzeitig die vorteilhafte Möglichkeit bietet, das Erlernte direkt in Funktionsmodelle zu integrieren.
Noch vor einigen Jahren war die Entwicklung funktionaler und technischer Prototypen eine weitaus größere Herausforderung. Mit der Einführung der Arduino-Plattform wurde die Komplexität erheblich reduziert, sodass auch Nichtspezialisten in der Lage sind, einfache Projekte zu realisieren.
Das Angebot an Arduino-Literatur hat in den letzten Jahren enorm zugenommen. Allerdings kann dieses Überangebot an Informationen Einsteiger schnell überfordern. Die Qualität der Tutorials variiert stark, und die benötigten Informationen sind oft fragmentiert über das Internet verstreut, was eine mühsame Suche und Zusammenstellung erfordert.
In vielen Arduino-Kits werden Breadboards verwendet, die das aufwendige und zeitintensive Verlöten einer Schaltung überflüssig machen. Obwohl Breadboards Vorteile wie den schnellen Aufbau und die Flexibilität bieten, haben sie auch Nachteile. Häufige Steckfehler und Wackelkontakte können zu Kurzschlüssen und damit zu defekten Bauteilen führen.
CUBIT zielt darauf ab, all diese Nachteile zu überwinden. Es bietet eine vereinfachte und modulare Herangehensweise, die es Anfängern erleichtert, Elektronikprojekte erfolgreich und ohne Frustration umzusetzen.
Die CUBIT-Hardware
Unsere Nutzer-Tests haben gezeigt, dass beim Verkabeln einer Schaltung mithilfe eines Breadboards häufig Fehler gemacht werden, was die Fehlersuche zeitaufwändig und frustrierend gestaltet. Eine zentrale Frage war daher, wie diese Fehler beim Aufbau einer Schaltung reduziert werden können. Unsere Antwort: durch Kodierungen und eindeutige Schnittstellen. Diese Kodierungen schaffen eine vereinfachte Entscheidungsumgebung, die es ermöglicht, komplexe Sachverhalte besser zu erfassen. So haben wir beispielsweise die Bedeutung der Signale ANALOG/DIGITAL und INPUT/OUTPUT in verschiedene Metaphern übersetzt: Farbe, Formschluss, Text, Magnete, Online-LEDs und Icons.
Die Hardware von CUBIT besteht aus zahlreichen Elektronik-Modulen, wie einem LED-Licht, einem Servomotor, einem Lichtsensor, einem Drehpotentiometer oder einem Piezo-Lautsprecher. Diese Module werden auf das CUBIT-Board aufgesteckt und mit Strom sowie Signalen versorgt. Die Module arbeiten entweder mit digitalen oder analogen Signalen. Der Mikrocontroller ist in das CUBIT-Board integriert, und die Programmier-Codes werden über ein USB-Kabel auf das Board übertragen.
Das Board selbst ist in zwei farblich gekennzeichnete Bereiche unterteilt: grün und orange. Der grüne Bereich umfasst die DIGITALEN Ports, die binäre Signale verarbeiten, also nur zwei Zustände kennen: an oder aus. Der orange Bereich umfasst die ANALOGEN Ports, die einen Wertebereich von 0 bis 1023 abdecken.
Jedes Elektronik-Modul ist mit einem Farbcode an den Seitenflächen versehen, der anzeigt, auf welchen Ports es auf dem Board platziert werden kann. So kann beispielsweise ein Drehpotentiometer, das ein analoges Signal verwendet, nur im orangen Bereich aufgesteckt werden. Zusätzlich zur Farbkennung wurden für die beiden Signaltypen unterschiedliche Formen definiert: ein Quadrat für DIGITAL und ein Kreis für ANALOG. Diese Formgebung zieht sich konsequent durch das gesamte System, sodass beispielsweise ein analoges Modul wie der Potentiometer nicht in einen digitalen Port im grünen Bereich passt (Formschluss).
Um das haptische Feedback noch weiter zu verbessern, wurden Magnet-Kombinationen implementiert. Diese Magnete dienen nicht nur der besseren Anbindung des Moduls an das Board, sondern erfüllen auch eine wichtige Sicherheitsfunktion. Die Magnete sind so kombiniert, dass sie sich abstoßen, wenn das Modul auf einen falschen Port gesteckt wird. Dadurch spürt der Benutzer bereits vor dem Aufstecken, ob er sich über dem richtigen Bereich befindet.
Es gibt auch Module, die sowohl analog als auch digital eingesetzt werden können, wie z.B. eine LED, die entweder blinken (digital) oder dimmen (analog) kann. Diese Module sind so gestaltet, dass sie auf beiden Bereichen des Boards aufgesteckt werden können, da sie sowohl die analogen als auch die digitalen Merkmale aufweisen.
Die CUBIT-Software
Die CUBIT-Entwicklungsumgebung vereint verschiedene nützliche Applikationen, darunter sowohl die textuelle als auch die visuelle Programmierung. Zudem bietet sie diverse zusätzliche Funktionen, wie die Dokumentation jedes Projekts, eine Toolbox, die Visualisierung des CUBIT-Boards in Echtzeit sowie das Auslesen der Daten im Serial Monitor. Diese Funktionen können individuell an die spezifischen Anforderungen jedes Projekts angepasst werden.
Ein besonderes Augenmerk lag darauf, eine durchgängige Gestaltung von Hard- und Software sicherzustellen. Daher spiegeln sich alle Kodierungen – sei es in Form, Farbe oder anderen Designelementen – konsequent auch im User Interface Design wider. Dies gewährleistet eine intuitive und konsistente Benutzererfahrung, die den Lernprozess weiter erleichtert und die Verbindung zwischen den physischen Komponenten und der Software nahtlos macht.
Die Visuelle Programmierumgebung
Die textuelle Programmierung kann für Anfänger einschüchternd wirken und schnell zu Überforderung führen. Unsere Usertests haben gezeigt, dass gerade in den Anfangsphasen die meisten Fehler in diesem Bereich auftreten. Die visuelle Programmierung bietet hier eine erhebliche Erleichterung, da sie die Fehleranfälligkeit deutlich reduziert. Schreibfehler (Syntaxfehler) werden von vornherein ausgeschlossen, wodurch die häufigsten Einstiegshürden beseitigt werden. Dennoch bleiben logische oder semantische Fehler möglich, die weiterhin ein gewisses Maß an Aufmerksamkeit und Verständnis erfordern.
In der CUBIT-Umgebung können Programmierbausteine per Drag & Drop einfach in die Codefläche gezogen werden. Dabei repräsentiert das orangefarbene Element analoge und das grünfarbene digitale Befehle. Mithilfe des visualisierten CUBIT-Boards kann der Nutzer jederzeit sehen, an welcher Stelle die Module auf dem Board platziert sind. Zusätzlich wird der aktuelle Wert des belegten Pins angezeigt, was eine präzise Kontrolle ermöglicht.
Die Elemente der visuellen Programmiersprache sind in verschiedene Gruppen unterteilt: Pins, Tests, mathematische Operationen, Variablen/Konstanten, Speicher und CUBIT. Diese Struktur erleichtert die Navigation und hilft dem Nutzer, schnell die benötigten Bausteine zu finden.
Gleichzeitig kann auch die textuelle Programmierung parallel angezeigt werden. Durch den direkten Vergleich von visuellem und textuellem Code kann der Nutzer eine Verbindung zwischen den beiden Ansätzen herstellen und dadurch ein tieferes Verständnis für die Programmierung entwickeln.
Die textuelle Programmierung
Fortgeschrittene Nutzer bevorzugen häufig die textuelle Programmierung, da sie kompakter und flexibler ist. In der CUBIT-Umgebung können sie durch Markieren und einen Rechtsklick auf einzelne Codezeilen zusätzliche Informationen abrufen. Für eine bessere Übersicht ist es zudem möglich, einzelne Zeilenabschnitte auszublenden, um sich auf relevante Teile des Codes zu konzentrieren.
Auch in der textuellen Programmierung bleiben die Farbcodierungen erhalten: Orange steht für analoge und Grün für digitale Befehle, was die Konsistenz zwischen den visuellen und textuellen Umgebungen sicherstellt. Ein neuer Code wird immer dann auf das Board übertragen, wenn das Board angeschlossen und der UPLOAD-Button gedrückt wurde, was einen nahtlosen Übergang von der Programmierung zur Ausführung gewährleistet.
Die Dokumentation
Das Dokumentationstool innerhalb der CUBIT-Umgebung ermöglicht es dem Nutzer, projektspezifische Informationen zu erstellen und zu verwalten. Diese Dokumentation beginnt, sobald ein neues Projekt angelegt wird, und dient sowohl als Arbeitsgrundlage als auch als Nachschlagewerk. Zu den dokumentierten Informationen gehören beispielsweise: Worum handelt es sich bei dem Projekt? Welche Module werden verwendet? An welchen Pins sind sie angeschlossen?
Der Code wird je nach Schwierigkeitslevel des Nutzers entweder ausführlich oder in kürzerer Form erklärt. Über einen zusätzlichen Tab können jederzeit weitere Informationen zu anderen Modulen oder Codebefehlen abgerufen werden. Dieses Tool unterstützt den Lernprozess und erleichtert es, komplexe Projekte zu verstehen und nachzuvollziehen.
Die Suche
Die Suchfunktion ermöglicht es, andere Projekte oder Module schnell und einfach über Stichwort-Tags zu finden. Sobald ein Stichwort eingegeben wird, werden die Ergebnisse in Echtzeit angezeigt. Die Anzahl der zu einem Modul gehörenden Projekte wird durch eine kleine Ziffer neben dem Modul angezeigt. Ein Filter erlaubt es zudem, die Suche nach verschiedenen Schwierigkeitslevels zu verfeinern, sodass Nutzer gezielt die für ihren Kenntnisstand passenden Projekte finden können.
Die Toolbox
Die Toolbox enthält eine Reihe von Funktionen, die bei Bedarf genutzt werden können. Ein Beispiel ist die Serial Monitor-Funktion, die es ermöglicht, den aktuellen Wert eines Pins auszulesen und gleichzeitig Befehle an das CUBIT-Board zu senden. Weitere nützliche Werkzeuge in der Toolbox sind ein Taschenrechner sowie die Möglichkeit, Shortcuts einzustellen und zu belegen. Diese Funktionen bieten zusätzlichen Komfort und erleichtern die Arbeit mit der CUBIT-Umgebung.
Vorgelegt von:
Fatih Aydemir, Cezmi Sürmeli, Halil Karacaoglu und Carina Häfner zur Erlangung des akademischen Grades Bachelor of Arts.
Betreut von:
Prof. Hans Krämer und Prof. Matthias Held
Hochschule für Gestaltung
Schwäbisch Gmünd University of Applied Sciences
Interaktionsgestaltung || Bachelor of Arts
Abschlussarbeit Wintersemester 2014/15
www.hfg-gmuend.de