Learnodore – Erste XCode App für Pomodoretechnik

Kleine Bastelei nebenbei: Die Learnodore App! Nach einem Einführungskurs in ObjectiveC und XCode musste direkt einmal ein wenig getestet werden und ein kleines praktisches Projekt entwickelt werden.

Wir waren zu der Zeit in der Prüfungsphase und hatten wärend des Lernens große Probleme uns um auf Inhalte zu Konzentrieren. Daher haben wir die Pomodore Technik angewendet und ich habe dafür kurzer Hand eine kleine App gebastelt. Source-Code  liegt bei Github und die App kann auf dieser Seite heruntergeladen werden: http://www.stetro-blog.de/learnodore/Image

LED Coffee Table – Raspberry PI

42bdc09881e611e28b8322000a1f92ef_7Neuen Lötkolben zu Weihnachten bekommen und Semesterferien haben. Ideale Bedingungen um ein neues Bastel/Elektro Projekt zu starten. Vor zwei Wochen habe ich dann mehrere YouTube Videos für einen LED Coffee Table im Netz entdeckt und mich entschieden so einen in etwas abgespeckter Form nachzubauen. Ziel war außerdem das ganze als Low Budget Projekt aufzuziehen.

Die Software habe ich Python geschrieben und öffnet die SPI Schnittstelle als Filestream. In diesen schreibe ich die Farbinformationen in Schieberegister-Manier in die 25 PWM Controller der Lichterkette. Der Quellcode befindet sich auf github.com. Erste Module sind Game of Live mit dimmenden Farbwechseln, Snake mit 2 Tastern, Laufschrift welche alle ASCII Zeichen abdeckt und einem Menü um zwischen den Modulen wechseln zu können. (Siehe YouTube Video) Nicht wundern – der Code ist noch etwas Quick and Dirty ;-)

Stückliste:

  • 01,50 € – 2 Styroporplatten (1 x 10mm) (1 x 15mm) 
  • 20,00 € – LED Kette mit adressierbaren Bus von Adafruit (Ebay deutlich günstiger)
  • 20,00 € – maßgeschneidertes Acrylglas 550×550 30% Lichtdurchlässig (Ebay)
  • Raspberry PI (bereits vorhanden gewesen)
  • IKEA LACK Tisch 550×550 (bereits vorhanden gewesen)
  • 5V 2A Power Adapter (bereits vorhanden gewesen)

Zum Anschluss der LEDs an den Raspberry PI konnte die SPI Schnittstelle (RPi Low-level peripherals) genutzt werden. Die Stromversorgung des PIs muss hier auch über diese Schnittstelle erfolgen (Nicht über USB!) und kann parallel geschaltet auch die LEDs treiben. Sollte jemand Fragen haben oder eine ausführliche Bauanleitung benötigen kann er sich gerne bei mir melden :-)

Bestellt sind jetzt noch 2 Arcade Buttons die rechts und links an den Tisch eingelassen werden um die Steuerung des Tischs ohne SSH durchführen zu können.


 

Update (20.11.2013) element14 Blog Comment:

Hey, this project isn’t that big outlay :-) First of all you need this 25 LED Stript with WS2801 controllers. I bought them on ebay for 19€ ;-) In this strip of LEDs there is a 5-6 cm long wire for the SPI connection, you simply have to wire the beginning of the strip to the Pi’s SPI interface. I also used a single power source as u can see in this wiring diagram.

https://i1.wp.com/boblight.googlecode.com/svn/wiki/diagram.png

After i have done the connection, I started to try some programming, like simple light slides with python and the SPI interface. You can use it as a file when you have done the SPI setup.

spidev = file("/dev/spidev0.0", "wb")

You can also use something like this http://www.100randomtasks.com/simple-spi-on-raspberry-pi

Otherwise, take a look at my github project for this table :-)

My setup looks like this:

led_diagram

To setup two buttons on the side, I used two of the GPIO ports with a 10k pullup resistors!

RubyGame – RJump

Nachdem ich mich mit kleineren Konsolenprogrammen beschäftigt habe wollte ich nun ein Projekt mit GUI erstellen und habe ein Ruby SDL framework gefunden (gem install rubygame). Hier habe ich dann ein kleines Spriteprojekt gebastelt welches Kollisionen und Gravitation ermöglicht.

Hier ein Video:
Kleiner Test in dem ich eine Art Doodlejump nachgebaut habe. Die Framerate ist live viel höher und das Gameplay ist eigendlich recht flüssig.

Node.js – Songcontroller

Heute mal ein kleiner node.js Test. Ziel war es meinen moc (Music on Console) Server über eine Website zu steuern. Das man zum Beispiel die Laufende Musik im Haus über das iPhone via WLAN steuern könnte. Also zunächst etwas kleiner gedacht : Nächstes Lied abspielen wenn Website geöffnet wurde.

Mit node.js wirklich sehr simpel und in 2 Minuten geschrieben:

var http = require('http');
var sys = require('sys');
var exec = require('child_process').exec;
console.log("start server ... ok!");
http.createServer(
	function(req,res)
	{
		res.writeHeader(200,'ContentType:text/html');
		console.log("next song ...");
		res.end("Play next song :-)");
		exec('mocp --next');
	}
).listen(8080);

Hier ein Screenshot:

Ruby – TwitterClient

Da ich mich ein wenig in Ruby einabeiten möchte habe ich mir zum Ziel gesetzt einen Konsolenbasierten Twitter Clienten zu schreiben. Durch die neue Twitter „OAuth Authentifizierung“ wurde das ganze ein wenig erschwehrt und ich musste mich zunächst in die Twitter API einlesen. Nun konnte mein Script sich schließlich als offizieller Twitter Client bei Twitter.com anmelden. Der Endbenutze muss den Code einmal ausführen um einen registrierungs URL zu erhalten mit dem er sich bei twitter.com anmeldet und dem Script Zugriff auf sein Account lässt. Hier nun der Code und ein Screenshot:

Download

Windows 7 Gadget – Project Timer

Bei beruflichen oder ausbildungstechnischen Programmierarbeiten vergisst man schnell mal die Zeit und möchte gerne Wissen wie lange man für bestimmte Tätigkeiten eigentlich gebraucht hat. Denn es ist zum Beispiel für das Verfassen von Angeboten sehr Wesentlich folgende Frage beantworten zu können – „Wie lange brauche ich eigentlich für meine Arbeit?“. Deshalb habe ich mich rangesetzt ein kleines Windows 7 / Vista Gadget zu programmieren mit dem man einfach Zeiten für Projekte und Teilprojekte messen kann. Das ganze ist in HTML/CSS und jQuery Programmiert worden und kann (leider ohne Signatur) auf jedem Windows 7/Vista System installiert werden. Falls Interesse besteht könnten auch die Daten nach einem Reboot bestehen bleiben (webSQL), was aber noch ein wenig mehr Arbeit wäre. Hier ein Screenshot:


Hier der Download

SDL – Schaf Simulation

Im Rahmen des Schulprojektes der Livesimulation von Schafen auf einer Weide in dem Fach Softwareentwicklung habe ich mich ein wenig mit dem SDL Framework in C++ auseinander gesetzt. Ein ausführliches Toturial findet ihr unter Lazy Foo Productions Dieses Framework bietet viele Möglichkeiten für den Einsatz von Multimedialen Inhalten wie Bildern, Videos, Sounds und Interaktionen mit Eingabe und Ausgabegeräten. Dabei habe ich mir nach der Fertigstellung meines Projektes, welches bis dahin eine reine Konsolenapplikation war, vorgenommen diese mit dem SDL Framework etwas zu veranschaulichen.

Gott sei Dank war das auch durch strickte Unterscheidung von Ausgabe und Verarbeitungsmethoden sehr gut möglich. Ich habe also die Ausgabemethode um diese Aktionen der Darstellung erweitert. Dafür mussten nur die entsprechenden Klassen mit den Einstellung instanziiert werden. Folgende Klassen kamen zum Einsatz:

  • SDL_Surface für die Darstellung des Hintergrundes und der Schafe
  • SDL_Rect für die Positionierung der Elemente auf dem Feld
  • SDL_Event für die Überwachung auf Tastendruck