breadBUG

breadBUG PlatinebreadBUG“ ist ein kleines Mikrocontrollermodul, das direkt auf ein Breadboard aufgsteckt werden kann. Es ist als Prototyping-Werkzeug für tägliche Basteleien gedacht.

Es fasst das für den Mikrocontroller nötige „Vogelfutter“ auf einer kleinen Platine zusammen:

  • ATmega8 Controller
  • 16 MHz Quarz und Ladungskerkos
  • 5 V Festspannungsregler
  • Reset Taster
  • ISP Stecker
  • LED zur Spannungsüberwachung

breadBUG“ ist während meiner Arbeit für die Mikrocontroller-AG des MMIs entstanden. Einige Teilnehmer wünschten sich ein einfaches, kleines und günstiges Modul, das sie als Alternative zu dem von uns verwendeten Evaluationboard für eigene Projekte nutzen können.

Fast alle von uns in der AG verwendeten Erweiterungsmodule sind daher Pin-kompatibel mit dem „breadBUG“ Board. Bis auf den Controller selber haben wir nur Through-hole Komponenten verwendet um den Aufbau auch für Einsteiger möglichst einfach zu halten.

Das Board hat etwa eine Größe von 2,5x5cm, sodass im Mehrfachnutzen genau zwei Boards auf eine 5x5cm Platine von seeedstudio.com passen. Damit liegt der Preis für eine einzelne Platine bei weniger als 50 Cent.

breadBUG_layout

Download

Eagle Schematics und Gerber Dateien gibt es wieder auf GitHub:

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

mountL2P

l2p-3d-kleinVielleicht kennt ihr Sync-my-L2P? Es ist ein kleines Tool, das automatisiert Dateien vom Online Lernportal der RWTH herrunterlädt und syncronisieren kann.

Eigentlich eine super Sache! Entgegen meiner ursprünglichen Erwartung ist das Tool auch unter Linux lauffähig. Ich habe mich trotzdem dazu entschieden das ganze etwas anders, aus meiner Sicht deutlich simpler, zu lösen.

Mein Skript nutzt die Möglichkeit einzellne MS-Sharepoint Ordner (hier: L2P-Lernräume) via WebDav einzubinden. Dazu gibt es unter Linux zwei Varianten:

  1. davfs2 (nutzt FUSE, kompatibel mit mount und fstab)
  2. gvfs (stark in GNOME, Nautilus integriert, einfach)

Die zweite Variante ist für GNOME Nutzer deutlich einfacher, da hier nur eine entsprechende URI in die Adresszeile des Dateimanagers eingegeben werden muss.

Mein Tool hilft euch diese URIs zu finden, indem es sich unter eurem Namen im L2P einloggt und nachsieht in welchen Lernräumen ihr registiert seid.

Das Skript liegt bei GitHub und kann hier herruntergeladen werden.

usage: mountl2p.sh [-f FORMAT] [-s SEMESTER] [-u L2P_USER] [-p L2P_PASS]
 
  FORMAT is one of 'gvfs' or 'fstab'
  SEMESTER is an optional regex to filter the semester
  L2P_USER is your L2P account name like 'sv123242'
  L2P_PASS is your L2P account password

Um schnell auf die aktuellen Lernräume zugreifen zu können, bietet es sich an diese als Lesezeichen im Dateimanager zu registrieren:

$ ./mountl2p.sh -f gvfs -s "ws12|ss12" -u sv111090 >> ~/.gtk-bookmarks

l2pdav

Mikrocontroller & Elektronik CheatSheet

danielWie war nochmal die Pinbelegung des Festspannungsreglers?
Wie stark darf ich die Pins des Mikrocontrollers belasten?
Wie viel Volt fallen an dieser LED ab?

Häufig sind es diese kleine Fragen, die gerade Anfänger den Einstieg in die Welt Elektronik oder Mikrocontroller erschwert.

Um diesen etwas zu erleichtern und auch den erfahrenen Bastlern einen Spickzettel zur Verfügung zu stellen, habe ich folgendes CheatSheet zusammengestellt:

Download: Mikrocontroller CheatSheet

Anmerkungen, Hinweise zu Fehlern oder Ergänzungen nehme ich gerne auf. Bitte kontaktiert mich dazu einfach per Mail oder

HIDeKey

Als Abschlussprojekt und Vorbereitung auf meine Betreuertätigkeit für die Mikrocontroller-AG des MMI’s habe ich mich näher mit dem USB-Bus und dem darauf aufbauenden HID-Protokoll befasst.

HIDeKey ist ein kleiner USB-Stick, der als HID-Tastatur vom Rechner erkannt wird und beliebge Zeichenketten und Tastenkombinationen an den Host-Rechner senden kann.

Mein Ziel war es ein kleinen Hardware-Dongle zu entwickeln welcher Passwörter, TANs und Onetime-Tokens direkt an jeden beliebigen Rechner senden kann. Meine Passwörter sind im verschlüsselt EEPROM des Mikrocontrollers gespeichert. Beim Drücken, des Tasters auf dem Stick, wird das Passwort eingegeben.

Als Hardware nutze ich die zuvor vorgestellten USBasp Programmieradapter aus China, deren Firmware ich durch eine eigene ersetzt habe. Mit einem zusätzlichen Taster lässt sich so über ein kleines Menü zwischen 10 User-Passwort-Kombination wählen.

Neue Passwörter können mit einem kleinen Konsolen-Programm direkt über den Rechner einprogrammiert werden.

HIDeKey soll auch zur Generierung von One Time Passwords (OTP) genutzt werden können. Da er sich wie ein gewöhnliche USB-Tastatur verhält, kann er auch unterwegs am Schlüsselbund in Internet-Cafes und Rechner-Pools genutzt werden.

Sourcecode & Schaltpläne etc. gibt es wieder per git. In meinem Wiki ist auch noch etwas Dokumentation gesammelt.

HIDeKey ist wie die meisten meiner Prrojekte als OpenSource veröffentlicht. Ich freue mich über jede Verbesserung, Erweiterung oder andere Beiträge zu diesem Projekt 🙂