Donnerstag, 4. Februar 2010

Mike's LED Matrix

Seit längerem haben Mike und ich das vorhaben, in die Frontblende dieses MP3-Player's eine LED Matrix ein zu bauen. Diese Matrix soll dann per Microkontroller gesteuert werden, der wiederum seine anzuzeigenden Daten per USB von dem ThinClient aus dem MP3-Player erhält. Es geht bei diesem Projekt übrigens um 441 blaue, ultrahelle 3mm LED's die mit 441 Halterungen in die 5mm Löcher der Blende befestigt werden .

Als Referenzprojekt verwenden wir die LED-Cube und den Borg3d Würfel.

Da die Liste der Bauteile aber bei beiden Projekten teils unvollständig oder nicht zufriedenstellend war gibt es unsere Liste hier online bei Reichelt. Die LED's und die Halterungen wurden jeweils bei 2 anderen Shops online bestellt.

Jetzt könnte man sich fragen wieso man als Referenz eine 3D Anordnung für eine 2D Matrix verwendet. Ganz einfach, bei einem 8x8x8 Würfel gibt es 512 LED's zum ansteuern. Unsere Matrix besitzt nur 21 x 21 = 441 LED's, was übrigens an der Optik in der Frontblende liegt. Es fällt also eine gesamte 8x8 Ebene aus der Würfeldarstellung weg. Zudem wird die 7te Ebene nicht vollständig ausgenutzt, was aber keinen Nachteil ergibt. Die überschüssige 8te Ebene wird dann vor der Inbetriebnahme aus der Software entsprechend heraus gepatcht. Die Ebenen werden einfach Schachbrett-Artig nebeneinander angeordnet. Bei dem rechten und unteren Rand muss jedoch ein wenig getrickst werden.

Als Firmware wird die des LED-Cube's verwendet, da diese gut strukturiert ist, und vor allem einfacher zu verstehen war da der Code extrem kurz, gut dokumentiert und anpassungsfähig ist.

Nun zum ansteuern der Matrix. Sie wird per Multiplexing angesteuert, wie das ganze funktioniert ist sehr gut auf diesen beiden Videos dargestellt. [#1] [#2]
Kurz: Damit wird ermöglicht jede einzelne LED auch einzeln leuchten zu lassen.

Mike arbeitet bereits an einer auf QT basierenden Software mit der man die einzelnen Frames für die Matrix "klicken" kann.
Jetzt fehlt nur noch die Hardware. Bestellt ist alles, aber noch nicht ausgeliefert...

Sobald das Projekt komplett aufgebaut und die Software fertig ist gibt es hier dazu mehr.

Mittwoch, 27. Januar 2010

Shakes & Fidget Bot

Schneller als gedacht wäre der SFBot also wieder am laufen gewesen... ;)

Dass alle Aktionen des Spielers seit dem Update per HTTP-GET an den Server gesendet wurden war sofort ersichtlich. Und die Session und das Passwort für den Login, sahen auf den ersten Blick einer MD5-Summe doch sehr ähnlich. Glücklicherweise sieht man einer vermeintlichen MD5-Summe aber auch so gut an, dass die Entwickler des Spiels doch tatsächlich das vom Benutzer eingegebenen Passwort erst in UTF-8 umwandeln, bevor die MD5-Summe daraus gebildet wird...

Der Dekompilier-Vorgang einer SWF-Datei dauert ja nur wenige Sekunden, mal davon abgesehen, dass der dabei herauskommende ActionScript-Code recht gut lesbar ist.

Ich habe zwar noch nie den Code einer Methode zur Bildung einer MD5-Summe gesehen, aber da bereits am Anfang der Aufruf stand, der den übergebenen String in UTF-8 wandelte, war das Problem sofort erkannt!

Der Rest war reine Fleißarbeit...

Das Video zeigt die grundlegenden Funktionen des Bot's.



Für alle die jetzt noch fragen was der Bot denn nun alles kann:
Er erledigt Quest's, kämpft in Dungeons und der Arena, meldet sich zu Gilden-Kämpfen an und wenn nichts weiter getan werden kann, schickt er den Held automatisch in die Stadtwache (arbeiten). Das ganze läuft auf jeder Kommandozeile. Benötigt wird nur ein Java Interpreter.

Veröffentlichen werde ich den Quellcode des Bots allerdings aus vielerlei Gründen nicht!
Gegen horrende PayPal Spenden, um meine Arbeit zu unterstützen, habe ich jedoch nichts einzuwenden. ;)


Freitag, 22. Januar 2010

klaute's HackStick (v0b00000010)

Lange ist es her das ich über den Stick geschrieben habe, es hat sich auch nicht all zu viel getan.

Die Firmware hat ein paar neue Features bekommen und wurde, gerade was die Performance und Speichernutzung angeht, optimiert.

Eine wesentliche Änderung ist eine kleine Platine die auf den Stick gesteckt wird und die Pegelwandlung von den +5V des AVR's auf die bipolaren Spannungen einer RS232 Schnittstelle angleicht.

Oder kurz und einfach gesagt, ich habe einen MAX232 angeschlossen ;-)

Im Moment arbeite ich an dem Fuzzer und demnächst wird der ATMega8-16PU (8kB flash) durch einen ATMega168-20 ersetzt, wodurch sich der Flashspeicher verdoppelt und die Taktfrequenz von 16MHz auf 20MHz erhöht. Der neue Mikrocontroller sollte ein gutes Stück weniger mit der USB-Verbindung ausgelastet sein als vorher und zudem steht das doppelte an Flash zur Verfügung. Allerdings ist die Firmware mittlerweile ~8 kB groß, was mich auf die Idee zum wechseln gebracht hatte... ;)

Shakes & Fidget Browsergame

Wer jetzt denkt ich stelle hier ein Browsergame vor, irrt sich. Ganz davor drücken möchte ich mich dennoch nicht. Shakes & Fidget ist eine Online Comic Bilderserie über zwei Figuren die sich humorvoll und planlos ihren Weg durch World of Warcraft kämpfen. Mehr dazu hier. - http://www.shakes-and-fidget.com

Seit einer ganzen Weile gibt es zu dieser Web Comic-Reihe auch ein Browsergame. Da ich aber nicht die Zeit habe das Spiel zu spielen, geht es mir wie auch in vielen anderen Spielen, ich müsste Cheaten, oder mir zumindest einen Weg finden mit selbst den Zeitverlust zu mindern.

Nach ein paar Stunden Entwicklungszeit könnte man ja fast einen Java-Client für die Konsole schreiben, der das Spiel automatisch und wesentlich effizienter spielt als man das als Mensch könnte. Wenn das nicht verboten wäre... ;-)

Das Spiel basiert übrigens auf Flash und kommuniziert(e) plain text über eine unverschlüsselte Socketverbindung mit dem Server.

Vor ein paar Tagen wurde jedoch ein Update des Flash-Clients online gestellt, in dem die Verbindung zum Server auf HTTP umgestellt wurde. Verbessert wurde dadurch nichts merklich, nur das die Bilder noch langsamer geladen werden als vorher.

Aber zum Glück habe ich diesen Bot nicht geschrieben sonst würde das Reverse Engineering schon wieder von vorne losgehen... :D

Dienstag, 12. Januar 2010

GarbageBot v0.4

Wie auf dem Bild zu sehen ist besitzt der Roboter nun 2 weitere LED's, die über denen liegen, welche ich bereits in meinem letzten Blogeintrag über den Bot beschrieben hatte.

Diese beiden neuen LED's können gemeinsam vom AVR-Controller ein-/ausgeschaltet werden und dienen als zusätzliche Lichtquelle um die Reflexionen auf Hindernissen zu erhöhen.

Sie werden jedoch nur bei Nacht oder dämmernden Lichtverhältnissen benötigt, da die Empfindlichkeit der ursprünglichen normalen, roten LED's leider nicht ausreichend hoch gewesen ist um auch bei Nacht sinnvolle Messintervalle realisieren zu können.

Diese normalen LED's wurden jedoch mittlerweile durch ultra-helle rote ersetzt, welche im Vergleich zu den Vorgängern eine viel höhere Empfindlichkeit ausweisen.

Die Firmware besitzt nun auch einen rudimentären Autopiloten und einen Programm-Modus in dem der GarbageBot über die IR Fernbedienung frei konfiguriert/gesteuert werden kann. Ist der Auto-Pilot aktiv, wird die Umgebung im Alleingang "erkundet". Da die Messungen der LED's jedoch noch nicht ganz fehlerfrei ist, sind Kollisionen quasi an der Tagesordnung...

Freitag, 27. November 2009

EZ430-Chronos/Tools die man bedingungslos besitzen muss...

Wer wie ich schon immer eine program-
mierbare Uhr besitzen wollte, am 12. Dezember 2009 ist es soweit.

Texas
Instruments präsentiert die EZ430-Chronos.


Hier noch ein paar Google Video-Ergebnisse.

Donnerstag, 12. November 2009

GarbageBot v0.3

Kurzes Update zum GarbageBot... Die Firmware wurde überarbeitet und ist nun in der lage die neu angebrachten LED's als Sensoren abzufragen. Unter dem Link wird gezeigt wie man mittels Mikrocontroller, LED's als lichtempfindlichen Sensor (wie z.B einen Fotowiderstand) verwenden kann. Diese Technik bzw. diese Eigenschaft von LED's wird oft in Reaktivlichtern beim Geocaching verwendet.
Das ganze ist in meinem Roboter zwar noch nicht ganz ausgereift, aber mit ein paar weiteren Stunden Arbeit wird der kleine Roboter sicher irgendwann vor einer Wand anhalten, oder sogar einer Lichtquelle folgen...

Beim mechanischen Aufbau des GarbageBot hat sich auch etwas getan. Die Halterungen für die LED's sind dazu gekommen das Gestell ist insgesamt stabiler geworden. Die Hauptplatine ist nun abnehmbar, ohne den Lötkolben auspacken zu müssen. Was noch fehlt im Moment ist eine bessere "Bereifung" der Motorwellen und eine ISP-Schnittstelle für den µC.

Hier noch ein 2tes Bild von vorne.
Und ein Video im dunklen mit den neuen LED-Sensoren/Beleuchtung...

PowerMgr in der Praxis: PV, Batterie, Kühlung und Hauszustand steuern

PowerMgr in der Praxis: PV, Batterie, Kühlung und Hauszustand steuern PowerMgr geht über eine Sammlung von Gerätetreibern hinaus. Der inte...