2010-11-02

Cylon Jack-O-Lantern

Als kurzfristiges Halloween Projekt haben wir uns ein Cylon Jack-O-Lantern vorgenommen. Die Idee haben wir von hier und hier. Allerdings haben wir eine andere Hardwarebasis gewählt (Microcontroller).

Die Hardware wurde aus 16 LEDs, einem Microcontroller (PIC 16F876A) sowie Widerstände, Quarz, Kondensatoren  am Samstag Nachmittag zusammengelötet. Als "Gehäuse" dient ein Plastikei einer Riesen-Kinderüberraschung (gut das ich sowas als potentielle Gehäuse aufhebe ;-).
Der einstellbare Widerstand sollte dazu dienen die Geschwindigkeit der Animation einzustellen - dieses Feature fiel aber dann der knappen Zeit zum Opfer.

Weiter ging es dann mit dem Schnitzen des Kürbis. Vorlagen oder Muster für einen Cylon-Kürbis finden sich im Netz genug, sodass wir hier nur nachahmen mußten. Wie wir finden ist uns das fürs erste Mal ganz gut gelungen.

Dann blieb nur noch das Programm für die Ansteuerung zu schreiben. Als Betriebsmodi haben wir implementiert: Wake-Up (Leuchtdioden werden von der Mitte aus aktiviert, wenn alle an sind, schalten sie kurz auf volle Helligkeit), Stand-By (Wandernder Leuchtpunkt mit einer LED) und Scan (Wandernder Leuchtpunkt mit 5 LED).


Der Quellcode ist nicht unser Glanzstück, aber es musste halt schnell gehen - und schließlich zählt das Ergebnis: Der Jack-O-Lantern konnte mit beginnender Dunkelheit in Betrieb genommen werden.

Wer das Projekt nachbauen will: Den Quellcode gibt es hier.

video
Für das nächste Jahr wollen wir das Projekt ausbauen: Bewegungsmelder, Sound, ... mal sehen was uns sonst noch einfällt.

2010-10-02

Single-Hand Watch - Win7 Gadget

On my wishlist is a single hand watch from BOTTA which not only has only one hand but also has a 24h display - see UNO24.

To check if I able to cope with this sort of watch I make a Windows 7 gadget of such a watch. The picture shows the watch at about 11:30 pm.

The gadget can be downloaded here.
In the source code repository also the svg files are contained, if you want to create your own design.

2010-08-12

Define cucumber environment in .couchapprc

When you set-up a .couchapprc file you can define different databases, hosts ... for different environments (see couchapp doc).
To use these set-up when running cucumber I modify the env.rb mentioned here. It use the test environment defined in .couchapprc for cucumber scenarios.


Example .couchapprc file:

2010-08-01

BrainDump: CouchDB link cheatsheet

Note: "File" and "folder" refer to a couchapp directory structure.

{prefix} = /{db}/_design/{application}
{list_function} = name of file in lists folder (without .js)
{show_function} = name of file in shows folder (without .js)
{view_function} = name of subfolder in views folder

functionality link function Read on
list {prefix}/_list/{list_function}/{view_function} function(head, req) CouchDB book
show {prefix}/_show/{show_function}/{doc_id} function(doc, req) CouchDB book
view {prefix}/_view/{view_function} map: function(doc)
reduce: function(keys, values, rereduce)
intro,
view parameter

2010-07-22

BrainDump: irb - require returns LoadError: no such file to load

Situation:
irb(main):011:0> require 'json'
LoadError: no such file to load -- json
 from (irb):11:in `require'
 from (irb):11
 from :0
irb(main):012:0> require 'rubygems'
=> true
irb(main):013:0> require 'json'
=> true
irb(main):014:0>  

Solution:
Do
require 'rubygem' 
before

2010-07-10

Culerity, Cucumber and Couchapp - Part 2

Some further modifications in the files mentioned here were necessary to get the initial setup runable.
(System configuration: WinXP, JRuby 1.5.1, CouchDB 0.11, couchapp 0.6.2)
  1. step_definitions/common_culerity_steps.rb - add this
    1. def couchapp
    2.   'rem' # enter your couchapp name here
    3. end
  2. support/paths.rb - modify

    Before:
    1.     when /start page/                                            
    2.       "/#{database}/_design/#{database}/index.html"
    3.     else                                                        
    4.  
    After:
    1.     when /start page/
    2.       "/#{database}/_design/#{couchapp}/index.html"
    3.     else
  3. step_definitions/common_culerity_steps.rb - remove ":resynchronize => true," from
    1.     $browser = Culerity::RemoteBrowserProxy.new $server, {
    2.       :browser => :firefox,
    3.       :javascript_exceptions => true,
    4.       :resynchronize => true,
    5.       :status_code_exceptions => true}
    6.  
  4. start_page.feature - modify the example scenario to
    1.   Scenario: go to the start page        
    2.     When I go to the start page          
    3.     Then I should see the text "Generated CouchApp"

After this modifications I got:
E:\projects\privat\rem>jruby -S cucumber --no-color
Feature: start page
  In order to feel welcome
  As a user
  I want to be welcomed on the start page

  Scenario: go to the start page                    # features\start_page.feature:7
2010-07-10 17:01:12 [INFO] Visit your CouchApp here:
http://localhost:5984/hejhej/_design/rem/index.html
    When I go to the start page                     # features/step_definitions/common_culerity_steps.rb:90
    Then I should see the text "Generated CouchApp" # features/step_definitions/common_culerity_steps.rb:119

1 scenario (1 passed)
2 steps (2 passed)
0m8.625s

E:\projects\privat\rem>

2010-07-09

Culerity, Cucumber and Couchapp

Starting a new couchapp application I want to try BDD. I found a small tutorial how to testing couchapps with cucumber and culerity. Unfortunatly I have to deal with WinXP, and so I run into some trouble because the culerity server doesn't start. Finally I can solve it by insert "jruby " in culerity-0.2.10/lib/culerity.rb, line 28.

Before:
def self.run_server
   IO.popen(File.dirname(__FILE__) + "/../bin/run_celerity_server.rb", 'r+').extend(ServerCommands)
end
After:
def self.run_server
   IO.popen("jruby " + File.dirname(__FILE__) + "/../bin/run_celerity_server.rb", 'r+').extend(ServerCommands)
end

2010-06-11

INFORMATIONSAUSGABE - STRASSENVERKEHRSAMT - JUNI 2010

Gerade erreichte mich folgende Informationsausgabe des Straßenverkehrsamts:

In Deutschland hat sich die Qualität der Pkw- und Lkw-Fahrer deutlich verschlechtert. Aus diesem Grund hat das Straßenverkehrsamt ein neues System eingeführt, um die schlechten Fahrer zu identifizieren.

Mit sofortiger Wirkung werden allen Fahrern, die sich im Straßenverkehr schlecht benehmen -unter anderem durch plötzliches Anhalten, zu dichtes Auffahren, Überholen an gefährlichen Stellen, Abbiegen ohne zu blinken, Drehen auf Hauptstraßen und rechts überholen- Fahnen ausgehändigt. Sie sind rot, mit einem schwarzen Streifen oben und einem gelben Streifen unten. Dadurch sind sie für andere Verkehrsteilnehmer als unfähige Autofahrer zu identifizieren.
Diese Fahnen werden an der Autotür befestigt und müssen für alle anderen Verkehrsteilnehmer gut sichtbar sein.

Die Fahrer, die eine besonders schwache Leistung gezeigt haben, müssen je eine Fahne auf beiden Seiten ihres Autos befestigen, um auf ihre fehlende Fahrkunst und ihren Mangel an Intelligenz aufmerksam zu machen.

Bitte an andere Verkehrsteilnehmer weiterleiten, so dass alle die Bedeutung dieser Fahnen verstehen.

2010-04-10

300 Geocaches gefunden

Seit Juli 2009 betreiben wir jetzt das Hobby Geocaching. Es macht uns immer noch viel Spass und wir genießen die viele Natur, die wir dabei zu sehen bekommen und haben auch viel dabei gelernt.



Heute haben wir die 300ter Marke geknackt. An dieser Stelle mal einen Dank an all die fleißigen Cacher, die so schöne Caches legen, Hintergrundinformationen zusammentragen und ihre Caches pflegen. TFTC

Hier haben wir überall gesucht und gefunden:

2010-02-03

Zum Umgang mit Social Media

Und noch etwas, was man lernen muss ...
Ich denke aber, dass diejenigen, die das "Ignorieren im großen Maßstab" nicht lernen können oder wollen, die Vorteile von Social-Media-Plattformen nie ganz ausschöpfen werden können - oder unter dauerhaftem Stress leiden, vielleicht etwas wichtiges zu verpassen. Spaß kann das nicht machen ... Deshalb: locker bleiben!
 Weiter lesen bei _notizen aus der provinz 

Mir bleibt da nur einer meiner Lieblingssprüche zu sagen: "Mut zur Lücke" (und weg damit).

P.S.: Auch wenn ich den nicht immer konsequent umsetze, besonders wenn es um Elektronikschrott geht. Wobei, der Begriff ist eigentlich falsch, dass kann ich alles noch mal gebrauchen ;-)

2010-01-31

Geheime Botschaft

Eben hieß es: "Das schreibt ja keiner!" Deshalb tu ich es jetzt:
"Du bist ein Held." 
(Der Empfänger weiß schon, dass er/sie gemeint ist ;-).

2010-01-27

Semantic Versioning

Semantic Versioning defines "a simple set of rules and requirements that dictate how version numbers are assigned and incremented. For this system to work, you first need to declare a public API."
Read on ...

2010-01-21

What the hell is it good for?

Neue Dinge haben es schwer sich durchzusetzen. Frau Passing beschreibt in ihrer Kolumne neun Argumente - man könnte auch sagen Hürden - die neue Technologien überstehen/passieren müssen, bevor sie allgemein akzeptiert werden. Argument eins ist zum Beispiel »What the hell is it good for?«. Mit aktuellen aber auch historischen Zitaten wird die Verwendung dieser Argumente dargelegt.
Viele (wenn nicht alle) habe ich auch schon gehört und - es schmerzt es zugeben zu müssen - zum Teil selber auch schon von mir gegeben.
Aber getreu dem Motto "Problem erkannt - Problem gebannt" kann man sich ja bessern, was aber nicht heißt, dass ich sklavisch alles mitmachen werde.
Manches muss/sollte/kann man ja mal ausprobieren, bevor man sich ein Urteil erlaubt.

Update 15.06.2011: Neuer Link 

2010-01-12

Transistor Clock

Falls im Hobbykeller noch diverse Bauteile (Transistoren, Dioden, Widerstände) rumliegen und man nicht weiss, was man damit tun soll: Hier eine Anregung - verbraucht immerhin 1250+ Bauteile ;-)

2010-01-09

Elektronik Weihnachtsprojekt 2009 - LC-Meter

Gemeinsam mit Ralem habe ich die freien Tage zwischen Weihnachten und Neujahr genutzt, um wieder ein Elektronikprojekt zu realisieren. Diesmal hatten wir uns ein Digitales LC Meter ausgesucht.

Beim Platinen erstellen hatte ich etwas mit der Temperatur zu kämpfen - dem alten Entwickler war es zu kalt und er wollte einfach nicht. Neu angesetzt mit warmen Wasser hab ich dann wohl bei der Dosierung etwas daneben gelegen. Jedenfalls ging mehr Lack ab als gewünscht. Also musste ich noch ein paar Leiterbahnen mit dem Stift nachmalen - meine schönsten Platinen wurden es also nicht.

Aber gut - die Version von Ralem funktionierte auch auf Anhieb:


Mein Aufbau streikte dagegen. Nach einiger fruchtloser Fehlersuche und da die Platine wie schon angedeutet nicht so doll war, mußte/sollte eine neue Platine her. Und da wir das Projekt auch als "Bauteilverbraucher" angedacht hatten (wir wollten mal von unseren Vorräten leben und nicht alles bestellen), wollte ich die Schaltung und das Layout in dem Zuge gleich änderen:

  • statt 10yF Tantal hatten wir nur 2x 4.7y

  • das Relais hatte ein anderes Layout und zog auch mehr Strom

Und hier das Ergebnis:


Der Aufbau funktioniert dann auch bei mir ;-)


Für Details zur Schaltung und zum Abgleich siehe hier.

2010-01-06

Was für ein läppischer Winter ...

+10°C: Die Bewohner von Mietwohnungen in Helsinki drehen die Heizung auf. Die Bewohner Lapplands pflanzen Blumen.

+5°C: Die Lappen nehmen ein Sonnenbad.

+2°C: Italienische Autos springen nicht mehr an.

0°C: Wasser gefriert.

-1°C: Die Lappen essen Eis und trinken Bier.

-4°C: Der Hund will mit ins Bett.

-10°C: Die Lappen gehen Eisbaden.

-18°C: Die Helsinkier Hausbesitzer drehen die Heizungen auf.

-23°C: Politiker beginnen, die Obdachlosen zu bemitleiden.

-24°C: Deutsche Autos springen nicht mehr an.

-26°C: Aus dem Atem kann Baumaterial für Iglus geschnitten werden.

-29°C: Der Hund will mit unter den Schlafanzug.

-30°C: Japanische Autos springen nicht mehr an. Der Lappe flucht, tritt gegen den Reifen und springt in seinen Lada.

-31°C: Zu kalt zum Küssen, die Lippen frieren zusammen. Lapplands Fußball-Nationalmannschaft beginnt mit dem Training für den Frühling.

-39°C: Die Lappen schließen den obersten Hemdknopf.

-40°C: Die Lappen ziehen Pullover an.

-50°C: Die Seelöwen verlassen Grönland. Die Lappen tauschen Fingerhandschuhe gegen Fäustlinge.

-70°C: Die Eisbären verlassen den Nordpol. An der Universität Rovaniemi wird ein Langlaufausflug organisiert.

-75°C: Der Weihnachtsmann verläßt den Polarkreis. Die Lappen schlagen die Ohrenklappen der Mütze herunter.

-273,15°C: Absoluter Nullpunkt, keine Bewegung der Elementarteilchen. Die Lappen geben zu: "Ja, es ist etwas kühl. Schenk noch einen Schnaps ein!"

Neujahrsprojekt - Bücherregal

Schon lange haben wir nach einem Bücherregal Ausschau gehalten. Zu Besuch bei meiner Schwester und Familie haben wir dann endlich eines gesehen, dass zu sofort gefallen hat.
Zurück zu Hause, haben wir dann nicht lange gezögert. Nach Katalog zusammenstellt, Teile beim Schweden unser Wahl geholt und dann ging es ans Aufbauen. Das dauerte länger als vermutet, da der Boden nicht so gerade war wie angenommen. Also Unterlegbrettchen zurecht sägen, auf ganze Länge erstmal ausnivelieren und dann Stück für Stück aufbauen, ausrichten und mit der Wand verankern.



(Wie man sieht hatte ich tatkräftige Unterstützung von Marius.)