Da ich damit gerade einen Kollegen glücklich machen konnte kann ich mir vorstellen, daß das von allgemeinem Interesse ist: Irgendwo in den Untiefen der Menüstruktur verbirgt der Firefox ein Fenster mit dem sich ‚private Daten‘, also History-Einträge für die Auto-Vervollständigung löschen lassen. Leider ist damit aber immer gleich alles weg.

Will man aber nur einzelne Einträge los werden — weil man sich beispielsweise mal irgendwo vertippt hat — hilft die Tastenkombination [Strg+Shift+Entf]. Man wählt in dem Auswahlmenü unter dem Eingabefeld einfach den überflüssigen Eintrag aus und verabschiedet sich mit einem beherzten Druck auf diese Tastenkombination. Das geht übrigens nicht nur in Eingabeformularen auf Seiten, sondern auch in der URL-Zeile und in der Suchbox.

MauszeigerzeigerMein letztes Mikrocontroller-Projekt ist gerade online gegangen: Das USB-Servo!

Im Prinzip kann man alles mögliche damit bauen, eigentlich hatte ich auch etwas anderes damit vor. Die Anwendung als Mauszeigerzeiger erschien mir aber schwachsinniger als die ursprüngliche Idee, daher habe ich das vorgezogen und als Beispielanwendung dazugepackt. :-)

Bei dem Projekt handelt es sich um eine kleine Schaltung mit der ein handelsübliches Servo wie es in ferngesteuerten Modellautos oder Flugzeugen benutzt wird am USB-Port angeschlossen und darüber gesteuert werden kann. Die Kontrolle — sowohl ueber das Servo als auch über die Kommunikation — übernimmt ähnlich wie bei meinem USB-LED-Fader ein ATmega8 mit dem USB-Treiber von Objective Development.

Das nächste Projekt ist schon in der Mache, wenn es fertig ist werde ich das natürlich auch hier veröffentlichen. Ich will noch nichts verraten, nur soviel: es ist noch sinnloser als der Mauszeigerzeiger… :-D

Bis gerade eben dachte ich, daß fliegende Teppiche nur in Geschichten aus 1001 Nacht vorkommen. Bei den Recherchen für mein nächstes Mikrocontroller-Projekt (eines habe ich schon wieder fertig, das muß nur noch etwas dokumentiert werden) bin ich aber auf eine ziemlich detaillierte Bedienungsanleitung gestoßen:

5.7 Miscellaneous Simulation Devices
Magic Carpet Simulation Device

CA — Allows a device to be generally classified as one that uses the standard control of a magic carpet. This control is a bar, grasped by both hands, that controls the Yaw, Pitch and Roll of the carpet.

The bar, at which the pilot sits, may be pushed forward or pulled back to cause the carpet to dive or rise, respectively. In the zero position, the carpet is in level flight. Pushing forward on the bar causes the carpet to nose down and generates negative values. Pulling back on the bar causes the carpet to nose up and generates positive values.

Turning the bar turns the carpet. In the zero position, the carpet travels straight ahead. Pulling back on the right side turns the carpet to the right and generates positive values. Pulling back on the left side turns the carpet to the left and generates negative values.

Rotating the bar rolls the carpet. In the zero position, the carpet travels level. Rotating the bar in a clockwise direction rolls the carpet to the right and generates positive values. Rotating the bar in the counterclockwise direction rolls the carpet to the left and generates negative values.

Nein, ich habe nicht vor einen fliegenden Teppich zu entwickeln. Aber es soll ein Eingabegerät werden, und die Spezifikation für ebensolche (HID Usage Tables) enthält sehr detaillierte Informationen über mögliche Bauformen.

Niedlich ist auch folgender Absatz:

Spaceship Simulation Device
CA — This usage definition allows a device to be generally classified as one that uses standard controls found on a spaceship.

Wer hätte gedacht, daß die Steuerung von Raumschiffen schon standardisiert ist?

Falls es tatsächlich schon sowas wie einen Teppich-Controller gibt, würde mich ein Bild interessieren… :-)

Dieser Text war 2006 noch nicht im Blog, ich habe den 2015 aus dem alten CMS überführt.

... nie wieder den Mauszeiger suchen!

… nie wieder den Mauszeiger suchen!

Das USB-Servo ist, wie der Name schon andeutet ein Servo das per USB angeschlossen und kontrolliert wird. Ein Servo ist ein Elektromotor der zum Beispiel zur Steuerung ferngesteuerter Spielzeuge eingesetzt wird. Ich habe dieses Projekt durchgeführt um eine Spielzeugfigur zu steuern. Die Puppe hat einen Knopf auf der Unterseite, sie fällt in sich zusammen wenn der Knopf gedrückt wird und steht wieder auf wenn losgelassen wird. Wenn der Computer in der Lage ist diesen Knopf zu drücken kann ich mit der Puppe Informationen anzeigen. Beispielsweise ob jemand im Jabber-Netzwerk online ist: wenn der Bekannte online geht steht die Puppe auf, wenn er sich abmeldet fällt sie in sich zusammen.

Servos werden über drei Adern angeschlossen. Über eine rote und eine schwarze Ader werden sie mit Spannung versorgt, über eine gelbe mit dem Signal. Die Versorgungsspannung sollte zwischen 4,8 und 6 Volt liegen, die 5 Volt des USB-Ports liegen also im erlaubten Bereich. Auf der Signalleitung fließen keine großen Ströme, sie kann also direkt an den Controller angeschlossen werden. Der Winkel den das Servo einstellt wird über Pulsweitenmodulation (PWM) gesteuert. Dazu wird ein Signal mit 50Hz (ein Puls alle 20ms) erzeugt, die Länge der Pulse definiert den Winkel.

Ein Problem das ich nicht wirklich gelöst habe ist die Stromaufnahme: Ich weiß nicht, welcher Strom durch den Motor des Servos fließt. Er scheint niedrig genug zu sein um keine Probleme zu verursachen, aber ich habe nicht ausprobiert wie hoch er wird wenn das Servo blockiert wird. ICH HABE ALSO HIERMIT GEWARNT, für USB-Ports die in Flammen aufgehen fühle ich mich nicht mehr verantwortlich… :-/

Die Schaltung umfaßt nur ein paar Standard-Bauteile. Darunter befindet sich kein spezieller USB-Chip.

Die Schaltung umfaßt nur ein paar Standard-Bauteile. Darunter befindet sich kein spezieller USB-Chip.

Das Paket dieses Projektes besteht aus drei Teilen: Der Firmware für einen ATmega8 Mikrocontroller, einen Kommandozeilen-Client der unter Linux läuft und den Schaltungen die für einen Nachbau benötigt werden.

Dieses Projekt basiert auf meinem USB-LED-Fader, der seinerseits auf dem PowerSwitch Beispielprojekt von Objective Development basiert. Wie in diesen beiden Projekten kommt auch hier der Firmware-USB-Treiber zum Einsatz, den Objective Development für die AVR Mikrocontroller von Atmel entwickelt haben.

Dieser Treiber ist eine reine Firmware-Implementierung des USB 1.1 Standards für langsame Geräte. Er läuft auf preiswerten Mikrocontrollern aus Atmels AVR-Serie, wie dem ATtiny2313 oder sogar den noch kleineren 8-Pin-Controllern. Er implementiert den Standard soweit, daß sich sinnvolle Applikationen damit entwickeln lassen. Die Datei „firmware/usbdrv/usbdrv.h“ enthält weitere Informationen zu Möglichkeiten und Grenzen.

Bau und Installation

Die Installation wird in der beiliegenden Dokumentation beschrieben.

Benutzung

Das Gerät wird mit dem USB-Port verbunden. Wenn das Servo noch nicht in der Ausgangsposition steht wird es sich dorthin bewegen.

Das Kommandozeilen-Tool wird wie folgt benutzt:

Parameter

  • angle: Der Winkel in den das Servo gestellt werden soll. 0 ist ganz links, 255 ist ganz rechts.

Beispiele

Den Status des Servo auslesen

Das gibt den Winkel aus, in dem sich das Servo gerade befindet.

Einen neuen Winkel einstellen

Das stellt das Servo auf den Winkel 23. 0 ist ganz links, 255 ist ganz rechts. Mit 23 wird das Servo also fast ganz nach links bewegt.

Das Gerät testen

Diese Funktion sendet eine Menge Zufallszahlen an das Gerät, das die Zahlen wieder zurück schickt. Der Client kontrolliert die gesendeten und Empfangenen Zahlen auf Gleichheit.

Demoanwendung xservopointer

Hinter den Kulissen

Hinter den Kulissen

Dies ist eine reine Spaß-Anwendung die eigentlich niemand braucht. Grund genug, sie zu schreiben…

Um sie zu benutzen wird das Servo mittig über dem Bildschirm (mit kleinen Änderungen an den Quellen sind auch andere Positionen möglich) montiert und mit einem Zeiger ausgerüstet.

Zukünftig muß man dann nie mehr nach seinem Mauszeiger suchen, der Zeiger an dem Servo zeigt einem immer in welcher Richtung er sich befindet.

Probleme

Das Hauptproblem sehe ich wie schon erwähnt in der Stromaufnahme. Ich habe das mit meinem Servo an meinem Notebook ausprobiert, ich bin mir nicht sicher ob das an anderen Systemen funktionieren würde. DIES KANN DEN COMPUTER ZERSTÖREN, und niemand außer demjenigen der es anschließt fühlt sich für eventuelle Schäden verantwortlich.

Ein anderes (kleineres) Problem ist die holperige Implementierung der Pulsweitenmodulation. Ich habe die Timing-Werte mittels Trial and Error ermittelt, die müssen nicht notwendigerweise für jedes Servo stimmen. Andererseits denke ich, daß Servos austauschbar sein sollten. Allerdings ist dies mein erstes und bislang einziges Servo, darüber kann ich also nicht viel sagen.

Danke!

Ich danke Objective Development für die Möglichkeit, den Treiber für mein Projekt zu benutzen. Ohne den Treiber würde dieses Projekt nicht existieren.

Lizenz

Meine Arbeit, also alles außer dem USB-Treiber, fällt unter die GNU General Public License (GPL). Eine Kopie der GPL liegt dem Projekt bei. Der USB-Treiber untersteht einer gesonderten Lizenz von Objective Development. In firmware/usbdrv/License.txt befinden sich weitere Informationen dazu.

Download

Hier im Blog funktioniert die Spamabwehr zur Zeit vorzüglich. Wo es im Moment nicht so gut klappt ist mein Mail-Postfach. Zwar werden vom Spamassassin in der Woche immer noch über 2.000 Mails aussortiert, aber seit ein paar Wochen kommen trotzdem wieder eine Menge Spam-Mails durch den Filter. Jahrelang hatte ich in der Woche vielleicht fünf oder sechs Mails die fälschlicherweise nicht erkannt wurden. Momentan sind es etwa 50 am Tag! :-(

Das geht mir ziemlich auf den sprichwörtlichen Keks. Zumal ich nicht wetten würde, daß ich bei der täglichen Löschaktion nur Spam erwische…

Gibt es allgemein eine Spamwelle die der Assassin nicht erkennt, oder geht das nur mir so?

Nur ein Gedanke, ich will damit niemandem einen Floh ins Ohr setzen: Wenn die GEZ in Zukunft eine Internet-Steuer erhebt, welche Auswirkungen hat das auf die Betreiber und die Anbieter von Root-Servern?

Ich habe einen solchen Server gemietet, aber bevor ich da keine klare Aussage zu habe werde ich niemandem verraten, daß der für mich (unter anderem) den Zeitzeichen-Podcast von WDR5 einsammelt… ;-)

(Nur um das klarzustellen: Mir ist klar, daß ein Root-Server normalerweise nicht dazu dient Podcasts einzusammeln. Ich bin zu Hause allerdings erbärmlich ans Internet angebunden — DSL-freie Zone, und ISDN gibt es bei uns nicht mit Flatrate. Daher habe ich auf dem Server bashpodder installiert und sauge die Dateien von Zeit zu Zeit ab, wenn ich mal irgendwo bin wo ich eine dicke Leitung habe.)