[77] 2013-11-24 10:06:02 - Gameboy Printer XI - Success

Nachdem meine Bilder irgendwie doch ziemlich falsch formatiert waren, habe ich mit php den Export nach den neuesten Erkenntnissen variiert.
Beim eintragen in den Arduino Code und übertragen sind mir meine zwei Import Nanos immer abgeschmiert, bis ich feststellen musste, dass die dann tatsächlich keine 30000 bytes sondern nur 6500 bytes speichern können. Im allgemeinen weniger ein Problem, da meine Skripte eh nicht so groß werden, aber doch schon ein wenig frech. Wer allerdings ein 5tel bezahlt, sollte sich über ein 5tel Leistung nicht beschweren. Mein erster Ansatz zum Bilder speichern erfolgte pro Zeile mit dem Wert 0,1,2,3 pro Pixel. Der Gameboy überträgt alles aber irgendwie anders. Ein 16 * 160 Block ist aufgeteilt in 2 Bytes * 8 Linien * 20 Blöcke * 2 Zeilen = 640 Bytes

[76] 2013-10-26 00:05:21 - ALPS Touchpad am Arduino

Während meiner Sortier und Aufräumaktionen, die meistens eher im Chaos oder der puren Verzweiflung enden, bin ich auf ein altes Touchpad aus meinem Notebook gestoßen. Ich muss wohl gedacht haben, wenn da nur vier Kontakte zum Notebook gehen, sollte man damit sicher noch mal was anfangen können.

Einleitung

Ein wenig schlau googlen und ich fand heraus, dass die meisten Touchpads wohl über PS / 2 kommunizieren. Ein Protokoll was ich des öfteren auf der Hackaday Seite in Benutzung mit Mikrocontrollern sah und schnell die ersten Projekte fand.

Pinbelegung

Anhand der unterschiedlichen ALPS Pads und dem Oscillator dessen Mittelbein gegen Masse geht und meinem Multimeter auf Widerstandsmessung eingestellt, konnte ich die Pinbelegung dann doch schnell bestimmen. Mein reaktiviertes Atmega8 Board, welches ich Arduino IDE fähig lötete sendet mir nun über die serielle Schnittstelle die X und Y Differenzen, die mein Fingerstreifen auslösen.

Die wichtigsten Links

Der Weg zur Arduino Bibliothek und dem Example Sketch - bei neueren Versionen der Arduino Umgebung muss noch eine Zeile in der Header Datei ps2.h geändert werdenHier soll "WProgram.h" mit "Arduino.h" ersetzt werden.
http://playground.arduino.cc/ComponentLib/Ps2mouse
Eine ausführliche Beschreibung des Protokolls (vielleicht für später interessant) - dank der vorhandenen Arduino Bibliothek aber zweitrangig.
http://www.marjorie.de/ps2/ps2_protocol.htm
http://www.computer-engineering.org/ps2mouse/

[75] 2013-10-18 20:59:04 - Simple SD Audio Player (mono) von ELM-chan.org

Eine Zeit lang habe ich interessante Projekte rund um die AVRs gesucht und bin während dessen auf den Audio Player von elm-chan.org gestoßen, der mit einem Attiny85 und einem SD Kartenslot auskommt. In der Fortsetzung beschreibe ich die Probleme auf die ich gestoßen bin und worauf eventuell zu achten ist.

0. Die Grundstimmung

Einfach ein gutes Gefühl, beim löten den Iron Man Soundtrack laufen zu lassen.

1. Der SD Karten Adapter

Die Zeichnung der Schaltung auf elm-chan.org bezieht sich auf die Anschlüsse eines MicroSD Adapters. Auf http://elasticsheep.com/ fand ich für meinen großen SD Kartenadapter, der gleichzeitig als Breadboardadapter herhalten sollte, die entsprechenden Anschlüsse. Nachdem ich alles dem entsprechend verkabelt hatte, viel mir auf, dass in der Schaltung ungünstiger Weise der Masse Draht mit 3,3V beschriftet war, sodass ich versehentlich mit dem Schalter die DO / PB0 Leitung auf Plus statt Masse gezogen habe. Beim Schreiben bemerke ich, dass das die Batterie Spannung kennzeichnen soll.

2. Die Programmierung

... sollte eigentlich ein alter Hut sein, da ich inzwischen berufsbedingt an einem Mac arbeiten muss und diesen auch privat verwende, galt es aber AVRdude und AVR Burn-o-mat - treue Linux Gefährten, nach zu installieren und einzurichten. Beim Programmieren des Attiny85 mit der vorkompilierten HEX File meckerte AVRdude aber, sodass ich wie auf der Seite vorgeschlagen die FUSE "Zeilen" per HEX Editor herausnehmen musste und nachträglich per AVRdude setzen sollte. Dabei half mir http://www.engbedded.com/fusecalc/ ungemein, da es mir die AVRdude Argumente gleich mit angab.

3. Die Soundfiles

Die einzigen Soundfiles, die bisher funktionieren sind von http://www2.research.att.com/~ttsweb/tts/demo.php erzeugt worden.

4. Missverständnisse vermeiden

Irgendwie habe ich die Funktionsweise erst falsch verstanden, da ich dachte, dass die Samples per Knopfdruck abgespielt werden. Tatsächlich werden diese aber immer abgespielt und der Knopfdruck wechselt nur zwischen den Dateien.

5. Verbesserungen

Man könnte sicherlich noch einen Verstärker zwischen Ausgang und Lautsprecher setzen, da das Signal doch sehr schwach wirkt. Ich habe nur den Mono Teil ausprobiert, da ich keinen HSVProgrammer besitze. Diesen benötigt man, wenn man den RESET PIN anderweitig benutzen möchte. Ein Tiefpass Filter wird noch empfohlen und ich sollte sicher nicht die 5V vom USB Adapter benutzen, sondern 3.3V wie skizziert benutzen.

[74] 2013-05-10 18:49:01 - Timelapse

Zum Herrentag 2014 sollen alle Taten nicht vergessen bleiben...

Als Basis dient die Schlüsselanhänger Kamera, bei eBay so ziemlich das günstigste Modell - rund 6 Euro. Mit einem durchgebrannten Arduino auf dem ein leicht abgewandeltes blink Script läuft, und zwei Widerständen und NPN Transistoren war es mir möglich die Kamera zu starten und alle 4 Sekunden ein Foto machen zu lassen. Mit einem größeren Akku sollte somit eine ziemlich Große Zeitspanne erfasst werden können. Der Arduino ist sicherlich noch overkill, aber ich hab eigentlich noch fünf Millionen andere Sachen zu tun... . ist ja noch ein Jahr hin. Zuerst musste ich herausfinden, wo Plus und Minus anliegt. Die Taster für das Ein- und Ausschalten und das Knipsen waren unterschiedlich gepolt. Der Arduino läuft einfach mit der Lipo Spannung mit.

[73] 2013-05-03 23:08:42 - Sonic Screwdriver

Baubericht zu meinem TV-Highlight - Prop-Highlight.

Ein Arduino Mini mit Atmega328 - ohne FTDI Chip, der sich um folgende Dinge kümmern wird / bereits auch schon tut: Einzelaufgaben: - Ansteuern einer RGB LED - Ansteuern einer IR LED - Ansteuern einer UV LED - Ansteuern eines PIEZO Element/Lautsprecher - Senden von 433 MHz Signalen - Menüführung über 3 Knöpfe (ENTER HOCH RUNTER) - Auslesen eines LDR - Fotowiderstand Kombinatorisch/Funktionen: - "Theremin" LDR auslesen, Helligkeit in Töne Wandeln - Helligkeit der Einzelfarben über Tastenkombination regeln - 433 sendet bei HOCH Ein und bei RUNTER aus - Melodien spielen (1812 - noch so ein Klassiker für Props) Momentan ist der Speicher zu einem Drittel in Benutzung - nicht schlecht, wenn man bedenkt, dass die IR und 433MHz Remote Bibliothek schon drin ist. Es fehlt noch die Integration der warmweißen LED und der UV LED und eine möglichst gescheite Anzeige der Menüpunkte, allzu viele PINS bleiben nicht mehr - geplant war eigentlich eine der kleinen 5x7 LED Matrizen zu benutzen. Nur ein PWM ist noch über (Warmweiss?). UV werde ich nicht regeln müssen, denke ich. Zur Not liegt noch der ein oder andere Attiny45 in der Kiste, sodass ich die RGBs ausgliedern könnte.

[72] 2012-09-29 00:00:38 - W-Lan Konfiguration am raspberry

Finally! Ich weiß noch nicht genau wie, aber es läuft endlich!auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet static address 192.168.0.113 netmask 255.255.255.0 gateway 192.168.0.1 wpa-driver wext wpa-ssid **** wpa-proto WPA2 wpa-key-mgmt WPA-PSK wpa-psk **** wird wohl am versteckten ssid Namen gelegen haben.

[71] 2012-08-27 18:28:10 - The Wall

Nachdem ich mir wortwörtlich die Zähne an diesem Projekt ausgebissen habe, muss es hier auch endlich Erwähnung finden. Ursprünglich sollte mein Raumteiler - ein 5x5 Regal vom schwedischen Möbelhinterherwerfer mit 25 RGB Modulen ausgetattet werden. Bisher sind es erst 9. Die Basis/ das Vorbild für den Aufbau und den Code sind BlinkM Lights von ThingM.

Die Platine

Eine Platine ist eigentlich unnötig, da man alle Komponenten auch im deadbug Stil hätte zusammen bringen können. Da ich eh schon immer einmal eigene Platinen ätzen wollte, habe ich mit Hilfe von Inkscape ein Layout erstellt und im CopyShop meines Vertrauens auf geeignetes Paper gebracht. Ich entschied mich für die Tonertransfer Methode. Bei reichelt erstand ich ein Einstiegsset für Platinenätzen und folgte der Anleitung. Auf dem Bild ist meine allererste Platine zu sehen.

Der Erste und der Rest

Der Code entstammt dem Ghetto Pixels Projekt auf http://www.instructables.com/id/Ghetto-Pixels-Building-an-open-source-BlinkM/. Der für gemeinesame Kathode umgeschriebene Code erfüllte wunderbar seinen Zweck. In der ersten Version benutzte ich noch den BlinkM Code und invertierte den Farbwert. Das Ergebnis entsprach aber nicht meiner Vorstellung und die Lampen liessen sich auch nicht ausschalten. Auch hatte ich vor dem Einlöten bei den meissten Lampen vergessen, den Fuse für den OSC OUT abzuschalten, so dass die grüne Lampe ständig leuchtete. Es musste eine Lösung her, die sich mir nur in vorm einer selbstgebastelten SPI-Wäscheklammer Adapter bot. Nach all dem Hickhack mit den falschen Adressen, der falschen Software und den nicht richtig gesetzten fuses wollte ich schon drei Kreutze machen, aber es gelang mir dann doch ein breadboard-approved-proof-of-concept zu basteln.

The Wall

Was fehlte war also nur noch das verteilen im Raumteiler. Aus ein paar alten USB Kabeln auf Länge geschnitten hatte ich die 9 Ghettopixel verbinden wollen. Aus Mangel an einer Abisolierzange geschah dann, woran ich im Traum nie dachte; ein Stück Schneidezahn ging verloren o.O . Ich habe mir also tatsächlich die Zähne an diesem Projekt ausgebissen. Zu allem Überfluss blieb die Kette auch mitten im Programm einfach stehen! Ich war frustriert. Ohne Ansatz. Dachte I2C ist tatsächlich nicht dafür geeignet. Erst heute, 4 Tage später habe ich eine kalte Lötstelle entdeckt und die Spannungsversorgung mit den nötigen Kennzahlen versehen. Seit 2 Stunden läuft die Kette nun wie eine Eins :) Hier noch ein Video der Kette, allerdings zum Zeitpunkt wo sie einschläft.

Zukunft

Für das Gehäuse und die Verkabelung habe ich mir bereits ein paar USB 1.1 Hubs besorgt, die wohl die ideale Form dafür haben. Auch den ein oder anderen Tischtennisball muss ich mir noch besorgen. Sonst bin ich super zufrieden. Es muss noch etwas Software her, dass die Wand noch interaktiv wird.

[70] 2012-08-07 23:28:22 - blink(1)

Ein alter Hut wird auf kickstarter als ein neues Projekt verkauft. Zumindest war dass mein erster Gedanke, als ich folgende Seite zum ersten mal sah; http://www.kickstarter.com/projects/thingm/blink1-the-usb-rgb-led ThingM ist ja für seine BlinkM Lights - kleine RGB LEDs die über I2C an einen Arduino angeschlossen werden können- bekannt. Nun stellen sie auf kickstarter einen USB-Dongle vor, der quasi ein RGB Notifier ist. Dass erinnerte mich stark an Projekte von denen ich 2009 auf hackaday.com las. Basis war hier ein Attiny45 der mit dem "Tweak" von obdev.at per USB eine RGB-LED ansteuerte. Wie auch bei den BlinkM Lights frage ich mich, warum blink(1) um die 30$ kosten soll, wo ein Attiny45 vielleicht 1,10 Euro kostet, die LED nochmal 80 Cent und der Rest höchstens einen weiteren Euro. Es schreit ja förmlich nach Nachbau.

[68] 2012-05-02 11:11:06 - Gimp kann also animierte GIFs....

Das probieren wir doch mal aus - gut dass ich das ein oder andere Familienfoto finden konnte :D

[67] 2012-02-09 13:18:48 - LM75 und Arduino

Inzwischen blende ich auch Temperatur Information(en) und das Datum in die Bilder meiner Webcam ein. Dank image_magick war das sehr einfach möglich. mogrify -fill white -stroke black -strokewidth 1.5 -font FreeMono-Fett -pointsize 24 -gravity southwest -annotate +5+5 "$temp2" $time.png

forward