Samstag, 30. März 2013

Servomotor-Tester #1: Bausatz und Messungen

Einleitung & Hintergrund

Nach langer Blogabstinenz  melde ich mich wieder zurück mit einem kleinen Beitrag über etwas Einfaches, das aber ziemlich nützlich und interessant ist: ein Modellbauservo-Tester. Hier lassen sich Theorie und Praxis lehrriech und gut untersuchen. Wollte immer schon so einen Servotester haben. Beim Pollin gibts den ganz günstig.

Ich werde den Bausatz kurz vorstellen und ein paar Messungen zu seiner Performance machen. Dann möchte ich noch dei Schaltung simulieren (das wird erst in einem 2. Beitrag passieren) und sehen, wie gut die Simulationsergebnisse mit der Realität übereinstimmen. Also eine schöne Möglichkeit an einem einfachen Projekt einiges auszuprobieren.

Schön verpackt, wie man es gewöhnt ist ;-)

Ist nix anders wie ein PWM-Generator mit 555er Chips (bzw. einem Dual 555 also ein556). Mit ein paar Widerständen einem Poti und ein paar Kondensatoren lassen sich prima PWMs damit machen - genau in dem Bereich, um einen Standardservo auf Funktionstüchtigkeit zu prüfen.

Ich verstehe immer nur PWM... Aber wie funktioniert so eine Servoansteuerung überhaupt genau. Zum Glück gibt es Wikipedia ;-):

Modellbauservos werden über eine Pulsweitenmodulation (PWM) angesteuert. Über die Breite der Pulse wird der Winkel, auf den der Servoarm gestellt werden soll, gesteuert. Gängig ist ein 50-Hz-Signal (20 ms Periodenlänge), welches zwischen 1 ms (linker Anschlag) und 2 ms (rechter Anschlag) auf High-Pegel und den Rest der Periodenlänge auf Low-Pegel ist. Viele Servos haben in diesem Wertebereich jedoch nicht ihre volle Bewegungsfreiheit ausgenutzt. Die Werte, bei denen der Servo ganz links bzw. rechts ist, können auch unterhalb 1 ms bzw. oberhalb 2 ms liegen. Die Periodendauer von 20 ms ist kein kritischer Wert und muss bei der Ansteuerung nicht genau eingehalten werden.
Das Ding besteht nur aus einer kleinen Platine und wenigen Teilen und ist schnell aufgebaut. Mein Sohn Julian (4 Jahre) hat natürlich gerne  dabei geholfen :-). Er durfte nach jeder Lötung die überstehenden Drahtstücke abzwicken.

Das sind tatsächlich alle Teile

Fertig aufgebaut und in Aktion

Die Aufbau- und Bedienungsanleitung inlusive Spezifikation und Schaltplan befindet sich bei Pollin als PDF zum Download. Dort finden sich folgende Angaben zu den technischen Daten:
  • Betriebsspannung: 6...12 V-, verpolungsgeschützt
  • Motorlaststrom max.: 2 A
  • PPM Bereiche: 0,9...2,2 ms (fein), 0,4...2,8 mm (grob)
  • PPM Periodenlänge: 20 ms (50 Hz)

 

 Windows 7: XP Mode Parallel Port

Das musste ich mir gleich mal auf meinem altertümlichen (aber für solche Dinge immer noch recht nützlichen) Voltcraft PSC64i Computer-Speichozsi mit Parallelportschnittstelle ansehen. Leider musste ich feststellen, dass es schon ein Wunder war, dass die dazugehörige Software unter Windows XP noch gelaufen war. Unter Windows 7 verweigert sie schlicht den Dienst. Zum Glück gibts den "Windows XP Mode" - eine virtuelle XP Maschine unter Windows 7 basierend auf Virutal PC.

Wie dem nun mal so ist - jeder Bastler kennt das, werden in der aktuellsten Version von Virtual PC leider keine Parallelports mehr unterstützt... *ggg*. Ich wollte mir keine andere virtuelle Maschine wie z.B. Virtual Box installieren - vor allem hätte ich dort auch XP von Hand installieren müssen... Also begann ich im Mighty-Web zu recherchieren - und siehe da, Virtual PC unterstützt Parallelports immer noch, nur können sie nicht mehr über die GUI aktiviert und konfiguriert werden. Aber direkt über die XML-Konfigurationsdatei der virtuellen Maschine schon. Einfach ein paar Zeilen dort reinkopieren und man hat den Parallelport :-). Glück gehabt.

Ich hab einige Zeit gebraucht, um den Parallelport in Virtual PC unter Windows 7 für den Windows XP Mode zum Laufen zu bringen. Daher zur Hilfe für andere eine Kurze Anleitung:
  1. Die Virtual PC Master Konfigurationsdatei für den Windows XP Modelokalisieren: C:\Users\userxyz\AppData\Local\Microsoft\Windows Virtual PC\Virtuelle Computer\Windows XP Mode.vmc
  2. Das ist ein xml-file. Im Tag <super_io> folgendes hinzufügen (und ggf. vorhandene <parallel_port> Tags ersetzen):
    <parallel_port>
    <port_shared type="boolean">false</port_shared>
    <port_type type="integer">0</port_type>
    </parallel_port>
    <parallel_port id="0">
    <port_name type="string">LPT1 (378h-37Fh)</port_name>
    <port_type type="integer">1</port_type>
    </parallel_port> 
Dann einfach den XP-Modus neu starten und die parallele Schnittstelle sollte zur Verfügung stehen.

Die Messungen 

 Die Oszi-Software ließ sich dann problemlos im XP-Mode installieren und läuft mit (gerade noch) akzeptabler Performance - aber sie läuft und erkennt auch das Oszi. Es lässt sich passabel damit messen. Die untenstehenden Bilder zeigen die Messergebnisse.

Zuerst hab ich mir angesehen, ob die Grundfrequenz der PWM-Ansteuerung passt. Die muss ca. 20ms sein, ist aber kein kritischer Wert: 18ms passen also. Dann hab ich die einstellbaren Wertebereich der Pulsbreiten verifiziert. In der Grobeinstellung sind es gemessene 2,75 bis 0.5ms, was im Rahmen der Toleranzen ganz gut zu den spezifizierten Werten passt. In der Feineinstellung messe ich 2,25 bis 0,88ms - auch das ist eine zufriedenstellende Übereinstimmung mit der Spezifikation.

Übersichtsplot: ca. 20ms Periodendauer
Grobeinstellung max. Pulsbreite: 2,75ms
Grobeinstellung min. Pulsbreite: 0,5ms
Feineinstellung max. Pulsbreite: 2,25ms
Feineinstellung min. Pulsbreite: 0,88ms
So, dass mal fürs erste. Ich wollte diesen Beitrag noch länger machen, aber es wird einen 2. Teil geben. Ich möchte nämlich die Schaltung analysieren und auch mit verschiedenen Tools simuliere: LTSpice, www.circuitlab.com und evt. National Instruments Multisim 11. Ich möchte die Schaltung wirklich im Detail verstehen und werde meine Erkenntnisse hier mit euch teilen.

Donnerstag, 21. März 2013

Mein Name ist Bond - DAGU Magician DG-007

Mein erster kleiner Roboter (das Tutorialprojekt von letsmakerobots.com) war ja nur mit Doppelklebeband zusammengeklebt. Sah ganz nett aus und war kompakt, aber schon damals wollte ich gerne was Stabileres, Wertiges - aber trotzdem günstig. Auf den DAGU Magician DG-007 stieß ich schon vor längerer Zeit. Kostet unter 20 Euro, kommt aus China (woher sonst...) aber es gab in Deutschland keine Bezugsquellen. Und dann stieß ich vor kurzem auf exp-tech.de als ich auf der Suche nach Komponenten von Adafruit Industries war. Endlich eine Bezugsquelle in Deutschland :-).

Natürlich musste ich ihn sofort mitbestellen. Zu viel erwartet hab ich mir aufgrund des Preises nicht. Im Netz hab ich auch durchwachsene Kritiken zum Bausatz gelesen. Der erste Eindruck war ganz gut (abgesehen vom lieblosen verschweissten durchsichtigen Billigplastikbeutel in dem der Bausatz kam. Ein mickriges Blatt Papier mit ein paar Bildern zur Montage. Kein Text - braucht man aber auch nicht. Überrascht war ich von der guten Qualität der lasergeschnittenen Acrylplatten und -teile, die noch einseitig mit Schutzpapier vom Schneiden beklebt waren. Die Räder muten etwas "plasty" an sonst ist der eindruck aber generell posistiv. Der Geruch ist recht intensiv (wahrscheinlich der Reifengummi...).
 

Die Einzelteile im Überblick
  Was ist denn alles so drin (siehe Foto):
  • Boden- und Deckplatte aus Acryl
  • 2 Kunststoffräder mit Gummireifen
  • 2 Getriebemotoren
  • 2 Odometrierädchen
  • 4 Acrylhalter für die Motoren
  • Metallrollball als 3. Fuß
  • Batteriehalter (3x AA)
  • Schrauben und Abstandshalter
Der Zusammenbau ist simpel und geht einfach von der Hand. Als erstes montiert man die Motoren an der Bodenplatte und steckt die Odometrierädchen auf den auf der Innenseite herausgeführten Achsen auf. Die Sitzen etwas lose und reichen auch nicht wirklich in die ausgeschnittenen Schlitze der Bodenplatte hinein, aber wenn man Gabellichtschranken verwendet passt das schon. Die Motoren sollten mit jeweils der gleichen Seite nach außen montiert werden.

1. Schritt: Motoren montieren
Die Bohrungen in der Bodeplatte sind für die Montage eines 4x AA Batteriehaltes vorgesehen. Also muss man für den mitgelieferten Halter entweder ein zusätzliches Loch bohren (Dremel sei dank ;-)) oder - so wie ich - nur eine Schraube zur Befestigung verwenden. Dann kommen noch die Abstandshalter und der Rollball an die vorhergesehenen Stellen. Die Abstandshalter und die Schrauben sind von guter Qualität - da hab ich bei anderen Chinaprodukten schon wesentlich schlechteres gesehen. Die Räder lassen sich gut auf die Achsen aufstecken und sitzen dort recht fest. Ein Rad sitzt ein wenig schief, da offenbar der Druckguß der Felge nicht ganz optimal gelaufen ist - naja. Ist aber noch akzeptabel, da nichts an der Bodenplatte schleift.

2. Schritt: Räder, Batteriehalter, Rollerball, Abstandshalter
Der nächste Schritt ist reichlich unspektakulär: Deckplatte drauf und passt. Und dann wir haben fertig :-).

3. Schritt: Deckplatte drauf und fertig
 
Noch ein Bildchen vom fertigen Teil
So, nun muss die neue Plattform natürlich gleich ausprobiert werden. Und was würde sich besser eignen als der idente Aufbau wie vom letsmakerobots.com Getting-Started Tutorial, das ich ja schon einmal nur mit Klebeband realisiert hatte? Noch ein Tip zum Anschluss der Motoren: da ich die Anschlüsse möglichst flexibel halten wollte, hab ich nicht direkt Kabel an die Lötösen der Motoren gelötet, sondern kleine Stifte, an die man die altbekannten und bewährten solderless Female Jumper-Wires anschließen kann. Beim Anlöten der Stift muss man den Motor aus dem Getrieb nehmen (um thermische Schäden am Kunsstoff zu vermeiden) und aufpassen, dass man die Kunstoffhalterung für den Motor nicht abreisst.


Das ist der fertige kleine Roboter ala letsmakerobots.com

Tata... jetzt ist er fertig. Dazu noch ein kleines Video. Die Software ist noch nicht auf die geänderte Geometrie der neuen Plattform und die etwas andere Übersetzung der Getriebemotoren adaptiert - aber darum ging es hier auch gar nicht.