Lange Fehlersuche und Beginn der Steuerungs-Software

Wie sich herausgestellt hat, gab es mit der Ansteuerung, wie sie im letzten Post angesprochen wurde, noch ein größeres Problem. Bei einigen Bewegungen ist es passiert, dass der Referenzpunkt verloren gegangen ist. Sprich, der Controller wusste nicht mehr, wo sich der Spieler genau befindet. Das Resultat waren ungewollte Sprünge und verfehlte Bälle. 

Zunächst war ich sicher, dass es sich dabei um einen Softwarefehler handelt. Sei es eine falsche Motoransteuerung oder ein Problem mit dem Interrupt, der die Software unterbrechen soll, sobald der verbaute Encoder ein Puls ausgibt. Diese Pulse werden (normalerweise) zuverlässig vom eingesetzten Encoder ausgegeben, wenn der Motor den Spieler verschiebt.

Durch viele Tests konnte ich ermitteln, dass es einen Zusammenhang gibt, zwischen den Sprüngen, bei denen der Controller die Referenzposition verliert, zu Bewegungen um die eigene Achse, wenn zum Beispiel ein Schuss ausgeführt werden soll.

Nachdem auch nach tagelangem Testen kein Softwarefehler zu finden war, hatte ich mit Hilfe eines Oszilloskops die Pulse des Encoders nachgezählt und mit denen meiner Software abgeglichen. Und tatsächlich: Volle Übereinstimmung. Es kann sich also nicht um einen Softwarefehler handeln. Wie durch Zufall hatte ich auf einem weiteren Kanal des Oszilloskops die Versorgungsspannung des Encoders überwacht. Und dort wurde ich fündig. Dreht sich der Spieler gleichzeitig, wie er sich linear bewegt, kommt es zu einem Spannungszusammenbruch, der den Encoder Pulse überspringen lässt.

Durch die Rotation verursachten Spannungszusammenbruch

Mein genutztes Labornetzteil schafft es also nicht, den kurzzeitig benötigten Strom für das Servo zu liefern, wodurch auch die Spannungsversorgung des Encoders zusammenbricht, der auch mit diesem Netzteil versorgt wird. Daher werde ich jetzt das Netzteil gegen ein passendes austauschen. Auch das war eine gewisse Herausforderung, da die benötigte Spannung von 8,4 V alles andere als ein Standard ist...

Darüberhinaus bin ich jetzt auch dabei die finale PC-Steuerungssoftware zu schreiben. Bisher haben die einzelnen Komponenten als Proof-of-concept in Python existiert. Jetzt werden alle Bausteine kombiniert, sodass ich (hoffentlich) im nächsten Blogpost bereits den ersten Schuss zeigen kann 😉.
Das Ziel ist es, dass das System auf dem Computer mit 200Hz laufen kann, sodass die Latenz möglichst gering ist. Mit den ersten Tests scheint dieses Ziel realistisch. Ich bin sehr auf die ersten vollständigen Tests gespannt.

Kommentare

Beliebte Posts aus diesem Blog

Erster Prototyp der Mechanik

Entwicklung einer Platine zur Bewegung der Spieler

Aufbau des Computersystems zur Spielberechnung