Nach langem hin und her, habe ich nun endlich mein Thema für die Masterarbeit gefunden. Es ist ein sehr komplexes Thema, welches sich in verschiedene Bereiche aufteilen wird. Das genaue Thema lautet: „Konzeption und prototypische Entwicklung einer System-Toolchain für Arduino-kompatible ChipKIT-Boards“

Im Folgenden werden immer wieder neue Erkenntnisse zu den Themen, welche die Arbeit betreffen, erläutert…

Was soll einem der Titel sagen?
Auf den ersten Blick scheint der Titel der Masterarbeit ein wenig verwirrend…gut auf den zweiten sicherlich auch, aber wenn man erstmal weiß um was es geht, dann erschließt sich der Titel einigermaßen.

Arduino
Arduino mag dem einen oder anderen ein Begriff sein. Es beschreibt eine quelloffene Entwicklungsplattform, welche Künstlern den Zugang zu Mikrocontrollern erleichtern soll.
Beim Arduino-System gibt es eine Grundplatine, welche durch verschiedene Aufsätze (sogenannte „Shields“) erweitert werden kann. Das eigentliche Merkmal, welches Mikrocontroller für viele unzugänglich macht ist die zum Teil recht komplexe Programmierung. Für Arduino wurde Programmiersprache entworfen, welche plattformübergreifend durch einfache Befehle den Großteil der Arbeit abnimmt.

Weitere Informationen zu Arduino:
http://arduino.cc/en/

ChipKIT
Arduino-Boards arbeiten mit einem Mikrocontroller der Firma Atmel. Ein weiterer großer Hersteller von Mikrocontrollern ist die Firma Microchip, mit welcher ich auch viel an der Hochschule zu tun habe. Die Firma Digilent hat es sich zur Aufgabe gemacht, die Grundplatine mit einem Microchip-Controller umzusetzen. Dabei wird die volle Pinkompatibilität mit dem Original-Board angestrebt. Der Gedanke hinter dem Projekt ist, dass die vielen Erweiterungen auch mit der komplexeren Entwicklungsumgebung von Microchip programmiert werden kann. Dadurch sind ambitionierteren Hobbybastlern fast keine Grenzen gesetzt.

System-Toolchain
Laut Wikipedia ist eine „Toolchain“ eine systematische Sammlung von Werkzeug-Programmen, welche zur Erzeugung eines Produktes Verwendung findet.

Was hat es damit nun auf sich in Bezug auf die Arbeit?
An der Hochschule gibt es unter anderem Kurse, bei denen Studenten an das Thema Mikrocontroller-Programmierung herangeführt werden sollen, aber keinerlei Vorkenntnisse besitzen. Des Weiteren sollen Grundkenntnisse in den Bereichen Schaltplan- und Layouterstellung vermittelt werden.
Zu diesem Zwecke gibt es die Software „Fritzing“ geschrieben. Diese soll Entwicklern helfen einen Prototyp in ein fertiges Produkt umzusetzen. Dafür gibt es verschiedene Bibliotheken, welche z.B. die Arduino-Boards visualisieren. Die im Tool vorgenommenen Verdrahtungen werden dann automatisch in ein Schaltplan umgesetzt und nach dem setzen der Bauteile gibt es auch ein fertiges Platinenlayout. An dieser Stelle setzt meine Masterarbeit an. Da es bis jetzt nur Bibliotheken für Arduino gibt, soll eine weitere Bibliothek für die ChipKIT-Boards entwickelt werden. Somit können dann z.B. weitere Shields entworfen und umgesetzt werden.
Da die fertige Hardware aber nur ein Teil des Systems ist, muss noch die entsprechende Software angepasst werden. Für die ChipKIT-Board gibt es eine eigene Entwicklungsumgebung namens „MPIDE“. Auch diese Software ist OpenSource und kann somit frei erweitert werden. Ziel ist es, dass Software für die ChipKIT-Boards geschrieben und für die neuen Shields angepasst werden kann.
Da diese Prozesse alle ineinander greifen wäre es außerdem denkbar, eine Art Framework zu schreiben, welches die verschiedenen Tools unter einen Hut bringt und die Erstellung eigener Komponenten samt zugehöriger Software erleichtert.

Komplexbeispiel
Um das ganze Projekt abzurunden, soll am Ende mit Hilfe der erweiterten Bibliothek und eigener Software ein Komplexbeispiel umgesetzt werden. Wie genau dies aussehen wird, steht zum jetzigen Zeitpunkt noch nicht fest, aber es könnte sich um die Erstellung eines eigenen „Shields“ handeln, welches eine Funkkommunikation zur Verfügung stellt. Dieses könnte als Zentrale für ein Sensornetzwerk dienen. Dazu ist es dann noch notwendig eine Treibersoftware, sowie eine Oberfläche für den PC zu schreiben. Der Umfang ist dabei abhängig von den erzielten Ergebnissen bei der Umsetzung der Toolchain.


Neues von der Arbeit
Mittlerweile stecke ich schon mittendrin in der Arbeit. Und man glaubt es kaum, aber ich habe sogar schon die ersten Seiten für meine Arbeit verfasst. Den ersten praktischen Teil den ich bis jetzt umgesetzt habe, befasst sich mit der Software Fritzing. Diese Software wurde an der Fachhochschule Potsdam entwickelt und bis jetzt sind dort hauptsächlich die Arduino-Boards vertreten. Am heutigen Tage (15.05.2012 - Erscheinungstag Diablo 3 und ich studiere immer noch ;-) )habe ich für diese Software das chipKIT-Board designed und verfügbar gemacht. Leider konnte ich noch nicht ausführlich testen, wie das fertige Board dann in der Wirklichkeit aussieht, aber ich hoffe dazu demnächst ein Gespräch mit meinem betreuenden Professor machen zu können.
Und so sieht das ganze aus:

ChipKit_Uno32

Erstellt wurde die Grafik mit Hilfe des Freeware-Tools Inkscape, welche für mehrere Plattformen erhältlich ist. Mit dieser Software können Vektorgrafiken erzeugt werden, welche dann in Fritzing eingebunden und als Bauteil verfügbar gemacht werden.

Eine weitere erfreuliche Nachricht ist, dass mir von Seiten Microchips umfangreicher Support für die nun bald folgende Programmieraufgabe zugesichert worden ist. Ein Mitarbeiter, der selber sehr fasziniert ist von Fritzing, hat sich bereit erklärt mir quasi Tag und Nacht (werde ich hoffentlich nicht brauchen) zur Verfügung zu stehen und bei größeren Problemen sogar nach Berlin zu kommen. Sobald es von dieser Stelle Neuigkeiten gibt, wird hier wohl wieder ein neuer Eintrag erscheinen.