Mittwoch, 30. Mai 2012

Arduino Leonardo

Ein brandneuer Arduino hat seinen Weg zu mir gefunden. Ich gebe es zu, ich gehöre zu den Sammlern. Nach kurzen Experimenten mit Bascom und einem Atmega8 stieß ich recht bald auf meinen ersten Arduino, das war damals der Duemilanove. Seitdem haben sich weitere Arduino-Boards hinzugesellt: ein Arduino Ethernet, ein Mini und selbstverständlich auch ein Uno. Auch Nachbauten wie der Boarduino und Wattuino stehen meiner Bastel- und Programmierwut zur Verfügung.

Das neue Mitglied in dieser Riege ist ein Arduino Leonardo. Dieser ist in vielerlei Hinsicht spannend, denn es wird ein aktueller Mikrocontroller verbaut, der seinerseits die Kommunikation über USB übernimmt. Die ersten Arduini kommunizierten mit dem Rechner noch über eine serielle Schnittstelle, die als 9polige Buchse auf dem Board vorhanden war. Die Pegelanpassung übernahm ein MAX232. Wenig später wurde schon die USB-Kommunikation eingeführt, erst über spezielle Schnittstellenwandler wie dem USB-Seriell-Wandler FT232 von FTDI, später allerdings über separate Mikrocontroller wie Atmels Atmega8U2 und Atmega16U2.

Projekt Analoguhr - Teil 2

Erwartet nicht zuviel, es gibt nur ein kleines Update. Ich habe mir einen Aufsteller aus Pappe gebastelt.


Ich war es einfach leid, dass der lose Aufbau auf dem Basteltisch umherrutscht.

Freitag, 25. Mai 2012

Projekt Analoguhr - Teil 1

Neulich entdeckte ich diese schöne Seite:
http://www.sharebrained.com/chronulator/
Da habe unweigerlich Lust bekommen, eine Uhr zu bauen.

Dazu habe ich mir zwei Amperemeter mit jeweils 100µA als Drehspulinstrumente besorgt. Nach ein paar Stunden Bildbearbeitung waren die Skalen auch endlich angepasst, eingebaut und somit betriebsbereit. Angeschlossen wurden die Instrumente über einen entsprechend dimensionierten Vorwiderstand an zwei PWM-Pins des Arduinos. Diese Vorwiderstände sind so gewählt, dass bei einem PWM-Wert von 240 der Zeiger voll ausschlägt. Natürlich hätte man das auch bei 255 machen können, aber die Berechnungen werden so um einiges leichter:
analogWrite(10,stunde*20) stellt die Stunden sauber dar, analogWrite(11,minute*4) ist für die Minuten verantwortlich.

Was jetzt noch fehlt ist folgendes:
- ein schönes Gehäuse
- ein Funkuhrmodul und/oder
- eine Echtzeituhr (RTC, z.B. DS1307)

Desweiteren denke ich über ein paar Spielereien nach, um bspw. den Stundenzeiger sanft auf die nächste Stunde zu stellen. Auch neigt der Minutenzeiger beim plötzlichen Sprung von 59 zurück zur 0 zum "überschwingen", der wird also auch sanft runterfahren müssen.


Hier noch ein kleines Video, selbstverständlich als Zeitraffer, dass man Änderungen sehen kann. Kommentare, Ideen und so weiter sind ausdrücklich erwünscht.

Freitag, 18. Mai 2012

Arduino meets Android

Vor einiger Zeit packte mich der Spieltrieb und so entstanden wieder ein paar Zeilen Code. Hierbei ging es um das Zusammenspiel diverser Hardware, konkret um eine Bluetoothverbindung, die seitens eines Android-Handys zum Mikrocontroller aufgebaut wird.

Wozu kann man das nun verwenden? Für die Hausautomation? Für die Robotik? Ja warum nicht...
Vieles ist möglich und das mit verhältnismäßig geringen (finanziellen) Mitteln. Betrachtet das Ganze bitte als Proof of Concept - eine konkrete Anwendung für mich habe ich derzeit nicht im Hinterkopf.

Dienstag, 15. Mai 2012

Das DCF77-Signal

Jeder kennt sie, die meisten besitzen mindestens eine. Doch wie funktionieren eigentlich Funkuhren?

Wie der Name schon sagt, empfangen sie ein Funksignal, und zwar ein codiertes Langwellensignal auf 77,5 kHz aus Mainflingen. Im Sekundenrhythmus ändert sich die Amplitude, das heißt die maximale Auslenkung des ausgestrahlten Signals. An dieser Stelle könnte man schon ansetzen, um ein einfaches Taktsignal auszuwerten. Aber wir wollen ja noch mehr Informationen. Daher schauen wir uns mal an, wie die Daten codiert sind:

Der Bootloader und die Schnittstelle zum PC

Was ist denn ein Bootloader? Wer die Arduino-Plattform kennt, ist vermutlich schon ein paar mal über diesen Begriff gestolpert, da dieser ein wesentlicher Bestandteil der Programmierumgebung ist.
Im Grunde ist dieser Bootloader ein kleines, schlankes Programm auf dem Mikrocontroller (im folgenden auch µC genannt). Dieses sorgt dafür, dass wir ohne zusätzliche Hardware (zusätzlich zum Arduino-Board) unsere Sketche auf den µC brennen können. Schön, mit dieser Formulierung muss man ebenso vorsichtig sein, uneingeschränkt gilt sie für Arduino-Boards wie das Uno, das Duemilanove und auch den Mega 2560. Sonderfälle wie das Arduino Ethernet und das Arduino Mini schließe ich vorerst aus.

In eigener Sache...

Es gibt sie noch: die Tüftler, die Bastler. Die, die alles auseinanderbauen und vieles wieder funktionsfähig zusammensetzen - manches bleibt im wissenschaftlichen Interesse auf der Strecke.
Zu dieser Gruppe zähle ich mich auch. Wir sind die Leute, die bei Computerproblemen als erstes gefragt werden, die zu Rate gezogen werden, wenn eine technische Neuanschaffung anfällt, die wissen, wo am Lötkolben die heiße Spitze ist.

Technik interessierte mich schon von klein auf: von allen Spielzeugen waren die am interessantesten, die durch eine Batterie zum Leben erweckt wurden. Was sich wie von allein bewegte oder auch nur leuchtete wurde am meisten bedacht - und zum Leidwesen meiner Eltern die Hintergründe erforscht.

Nun, mit Mitte 30 ist Technik komplizierter geworden, aber kein wenig uninteressanter. Deshalb hier ganz exklusiv: Ein Technik-Blog mit dem Schwerpunktthema Arduino, einer offenen Mikrocontrollerplattform.

Und damit ein herzliches Willkommen...