Software

Die Software ist in C geschrieben und wird in den Atmel Mikrocontroller geflasht. Die Software steht zum Download zur Verfügung.


Einstellung der Bereichsgrenzen

Es ist notwendig, mit dem Multimeter die Minimal- und Maximalspannungen der Potis zu messen, und diese dann in den Quelltext als Konstanten einzutragen.

#define V_MIN_POWER 1430
#define V_MAX_POWER 1800
#define V_MIN_BRAKE 1500
#define V_MAX_BRAKE 1750

Durch lineare Interpolation zwischen Minimal- und Maximalspannung an den Potis wird die Position der Pedale bestimmt. Die Standardwerte für die Bereichsgrenzen sind im Programm vorgegeben, es findet aber nach dem Einschalten auch eine automatische Anpassung der Bereichsgrenzen statt. Dazu wird der tatsächlich gemessene Maximal- und Minimalwert als neuer Maximal- bzw. Minimalwert angenommen, wenn in einer gewissen Zeit kein höherer bzw. niedrigerer Wert gemessen wurde. Dies beruht auf der Annahme, dass man beim Spielen in recht kurzer Zeit (ein paar Minuten) sowieso immer einmal die extremste Pedalstellung erreicht wurde.


Umkehren der Drehrichtung

Je nachdem, wie die Potis montiert sind, kann die Achse umgekehrt werden durch eine Definition im Quelltext. Ein Umkehren der Bereichsgrenzen (s.o.), so dass der Minimalwert größer als der Maximalwert ist, ist stattdessen nicht erlaubt!

#define REVERSE_POWER false // true if pressing the pedal leads in higher voltage
#define REVERSE_BRAKE true // true if pressing the pedal leads in higher voltage


Einstellen der Ein-/Ausgabepins

Die für Gaspedal und Bremse verwendeten Kanäle können durch Einstellen weiterer Konstanten vertauscht werden. Dies ist praktisch, wenn man die Potis vertauscht hat oder die auf dem PC sichtbaren Achsen für Gas und Bremse vertauscht sind.

#define ADC_POWER 0 // only 0 or 1 allowed
#define ADC_BRAKE 1 // only 0 or 1 allowed

#define POWER_PIN 3 // only 2 or 3 allowed
#define BRAKE_PIN 2 // only 2 or 3 allowed


Einstellen der Ausgangsspannung

Weiterhin gibt es Konstanten, die bestimmen, welche Ausgangsspannungen die Schaltung für das Gamepad erzeugt. Bei dem verwendeten Logitech Rumblepad war es notwendig, nur Werte zwischen 10 und 90 % des Spannungsbereichs auszugeben (also 0,5..4,5 V statt 0..5 V), um auch den äußeren Bereich noch voll nutzen zu können. Dies kann mit folgenden Konstanten eingestellt werden:

#define OUT_MIN 10
#define OUT_MAX 90