Mikrocontroller AG

Vor drei Jahren war ich selber Teilnehmer der AG und habe diese dann für die vergangenen zwei Jahre mit Hilfe zweier weiterer Kommilitonen, Markus Hamm und Mats Markus, geleitet.

Als Abschluss meiner dortigen Arbeit schreibe ich nun meinen Bericht und möchte diesen hier kurz zusammenfassen. Den kompletten Tutoriumsbericht könnt ihr euch hier herunterladen.

Auch vergangene Beiträge in meinem Blog beziehen sich auf meine Arbeit in der AG:

Allgemeines

Das Institut für Mensch-Maschine-Interaktion (MMI) der RWTH bietet für Studenten des zweiten Semesters eine freiwillige AG zum Einstieg in die Mikrocontroller Programmierung an. Diese verknüpft theoretische Grundlagen der Vorlesung „Grundgebiete der Informatik 2“ von Prof. Roßmann mit praktischen Beispielen und Aufgaben aus dem Bereich der Mikrocontroller. Es handelt sich um eine freiwillige Veranstaltung, die für die Teilnehmer nicht als Studienleistung anerkannt werden kann. Wie auch in der Vorlesung werden die ATmega Mikrocontroller der Firma Atmel verwendet.

Platine

Komplett2Um die in der AG vermittelte Theorie auch praktisch anwenden zu können, erhalten alle Teilnehmer einen Bausatz. Dieser besteht aus einer speziell für die AG entwickelten Platine inklusive der dafür benötigten Bauelemente.

Unsere erste Aufgabe war das Überarbeiten, dieser Platine. Sie besteht aus sieben Modulen die zusammen auf einer Platine untergebracht sind: Hauptboard, Programmer, Matrixtastatur, zwei Spielwiesen sowie einem LC-Display.
Um die Kosten der Platine zu senken verkleinerten wir sie auf das Format einer Euro-Platine und entfernten ein paar Bauteile.

Skript

Mittlerweile betreue ich die AG in der 3. Generation. In den Jahren zuvor enstanden einige kleine Skripte, Primer und Hilfsblätter. Um diese Flut an Informationen etwas zu bündeln haben wir sie in einem Skript zusammen gefasst, das nun ca. 140 Seiten umfasst. Es behandelt alle in der AG vorstellten Themen und geht noch auf weitere Details in Hardware und Software ein. Zudem beschreibt es auch alle Module der Platine mit Anschlussbelegungen, Schaltplänen usw.

Erweiterungen

Neben dem Hauptboard, das alle Teilnehmer zu Beginn der AG erhalten, haben wir kleine Erweiterungsplatinen entworfen. Diese sind mit den Erweiterungsports des Hauptboards kompatibel und können zur Motoransteuerung, Ethernet- oder Funkkommunikation genutzt werden.

Ethernet BoardEthernet Addon

Das Ethernet-Addon ist aus der Arbeit zweier ehemaliger Teilnehmer entstanden. Neben einem Protoypen entwickelten sie einen leichtgewichtigen und flexiblen TCP/IP Stack, der auf dem ATmega16 des Hauptboards lauffähig ist. In Verbindung mit dem ethersex Betriebsystem können hier schnell eigene Internet Gadgets realisiert werden.

Funk Board

nrf24l01Das Funkboard war ursprünglich zur drahtlosen Kommunikation in einem Roboterschwarm gedacht. Mit dem Ziel möglichst simpel und günstig zu sein, ist unsere Wahl auf den NRF24L01+ Tranceiver von Nordic Semiconductors gefallen. Mit einem Preis von unter 1 € ist er preislich nicht zu schlagen.

Fazit

Einen schöneren HiWi-Job hätte ich mir nicht vorstellen können 🙂 Wir hatten viele Freiheiten, konnten uns unsere Arbeitszeit und -ort größtenteils selbst wählen und an eigenen interessanten Projekten arbeiten. Die Arbeit in der Lehre, also direkt mit seinen Kommilitonen, hat mir viel Spaß gemacht.
Trotzdem freue ich mich jetzt auch mal etwas in die Forschung schnuppern zu können: seit November ’13 arbeite ich am Lehrstuhl für Betriebssysteme an meiner Bachelorarbeit. Aber dazu gibts bestimmt auch nochmal einen kleinen Beitrag 🙂

Wer immer noch nicht genug hat, darf auch gerne meinen kompletten Tutoriumsbericht lesen. (Vielleicht orientieren sich ja auch meine Nachfolger daran :D)

Gallerie

RWTH uC Tetris

Neben der Informatik Vorlesung besuchte ich dieses Semester die Mikrocontroller AG. In dieser freiwilligen Veranstaltung lernten wir den aus der Vorlesung bekannten Mikrocontroller, ATMega zu benutzen.

Zusammen mit meinen Gruppenmitgliedern Annika, Maiwand & Christian bauten wir ein 8×16 LED-Dot Matrix Display auf dem wir Tetris spielen konnten:

RWTH uC Tetris weiterlesen

transcode

Ich sitze im Zug nach Hause. Komme von der letzten Vorlesung des 2. Semesters: Informatik. Eigentlich bin ich auf dem Weg in die Semester-„Ferien“, ständen da nicht für den nächsten Monat noch 4 Klausuren in meinem Kalender 😉

Informatik, Grundlagen des Digitalrechners. Klingt eigentlich recht trocken. Trotzdem ist es klar mein Favorit unter den Fächern dieses Semesters.
Als Ergänzung zur Vorlesung richtete unser Professor einen kleinen Wettbewerb aus.
Mein Beitrag zum Students Englightment Award ist ein Compiler Frontend für den GNU Compiler der Atmel AVRs.

Teil der Vorlesung war die Einführung des Mikrocontrollers ATMega8 von Atmel und dessen Programmierung mit Assembler. Dabei lernten wir zuerst die Schaltungstechnischen Grundlagen und die Minimierung von Schaltnetzen. Anschließend sind wir auf den Aufbau der Zentralen Recheneinheit eingegangen (Steuerwerk, ALU etc..).

transcode kompiliert/assembliert ANSI C und Assembler in Maschinencode und umgekehrt. Dabei wird mit Hilfe von Debugging Informationen ein Bezug zwischen Zeilen im C-Code und den Mnemonics hergestellt. Durch Auswählen von Zeilen werden Bezüge direkt durch Hervorhebungen dargestellt. Für die Darstellung des Maschinencodes lässt sich zwischen binär, dezimal & hexadezimaler Form wählen.

transcode weiterlesen