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

MATLAB powered NXT omniwheel robot

Kurz vor Weihnachten beendeten wir unser Erstsemsterprojekt „MATLAB meets LEGO Mindstorms“ an der RWTH Aachen.

Während dieser Pflichtveranstaltung sollten wir die Lerninhalte der Vorlesung „Mathematische Methoden der Elektrotechnik“ durch Steuerung von LEGO Mindstorms NXT Robotern unter MATLAB vertiefen. Das Projekt ist eine Pflichtveranstaltung im 1. Semester meines Studienganges (Elektrotechnik, Informationstechnik und Technische Informatik) und wird durch alle Lehrstühle unserer Fakultät als 10-tägige Blockveranstaltung vor Weihnachten durchgeführt.

Ich wurde dem Institut für vernetzte System (MOBNETS) zugeteilt. Etwas verwundert war ich dann am ersten Tag, als wir auf Englisch begrüßt wurden. Aber naja, später werden wir vermutlich sowieso dazu gezwungen werden.

Während der ersten Woche lernten wir die eigens für das Projekt entwickelte „RWTH Mindstorms NXT-Toolbox“ kennen und haben an einigen vorgegebenen Versuchen gearbeitet.

In der zweiten Hälfte des Projektes durften wir dann in einem Wahlversuch selber kreativ werden und einen eigenen Roboter konstruieren.

Meine beiden Kollegen und ich haben uns für einen Roboter mit omnidirektionalem Antrieb entschieden. Das Prinzip dieses etwas außergewöhnlichen Antriebes wird das folgende Video deutlich.

Die Konstruktion der „Omniwheels“ war komplizierter als Anfangs angenommen. Dafür sind wir glücklicherweise recht schnell auf den nötigen Zusammenhang zwischen Fahrtrichtung und den drei Motorgeschwindigkeiten gekommen.

Als Projektabschluss mussten alle Gruppen ihren Roboter präsentieren. Unsere Präsentationsfolien gibts hier.

Features

  • Omniwheel-Antrieb
    • Bewegungsfreiheit in 360°
    • Drehen auf der Stelle
  • intuitive Fernsteuerung über zweiten NXT-Brick
    • durch Neigung des Controllers (Beschleunigungssensoren)
    • Schalter zur Steuerung des Programmablaufs
  • Signal-Hupe
  • akustischer Abstandswarner

Bilder

Conway’s Game of Life

Als Übung für meine Informatik Vorlesung an der RWTH Aachen habe ich diese C Implementation von Conways Game of Life geschrieben.

Dieses simple „zero player“ Game wird komplett im Terminal ausgeführt. Mit Mausunterstützung und Farben wurden mit libncurses realisiert.

Den Quelltext findet ihr inklusive eines Makefiles in meinem git-Repository.

Hints & Shortcuts

  • p“ pausiert das Spiel
  • q“ beendet das Spiel
  • c“ leert das Spielfeld
  • die Leertaste setzt eine Zelle
  • die Pfeiltasten bewegen den Cursor
  • die Maus kann zum Bewegen des Cursors genutzt werden
  • 0“ fügt ein chaotisches Anfangsmuster ein
  • 1“ fügt einen Glider in das Spielfeld ein
  • 2“ fügt einen Segler in das Spielfeld ein
  • 3“ fügt einen Buffer in das Spielfeld ein
  • +“ erhöht die Anzahl der Generationen pro Sekunde (frames per second)
  • “ erniedrigt die Anzahl der Generationen pro Sekunde (frames per second)

Ausblick

Jetzt schreibe ich mal wieder etwas über mich, diesen Blog und meine Zukuft 😉

Bevor ich jedoch damit beginnen kann muss ich erst einmal die Vergangenheit aufholen:

  • Mein freiwilliges ökologisches Jahr ist so gut wie vorbei. Ich komme gerade von meinem letzten Seminar in Overath. Nun habe ich nur noch zwei Wochen Arbeit in Köln vor mir.
  • Vor knapp vier Monaten Ich habe eine neue WG gefunden und so langsam wird es endlich mal wieder etwas wärmer in Köln 🙂
  • Die SIGINT Konferenz 2010 war ein echter Knaller. Viel neues kennen gelernt und neue Bekanntschaften geknüpft.
  • Ich war auf dem Hurricane in Scheeßel, dem c/o Pop und habe Phoenix live gesehn 😉 Endlich mal wieder etwas Musik in Köln 😉
  • Ich habe mich entschieden an der RWTH Aachen Elektrotechnik, Kommunikationstechnik und Technische Informatik zu studieren und befinde mich gerade mitten in der Wohnungssuche.
  • Im August gehts erst mal nach Island 🙂