Montag, 18. Februar 2019

11. Teil iRadio: Displayd für Servos

Hinzufügen eines Displayd für Servos

Autor: Bernhard

22.02.2019


Mit dem heutigen Update kann ein RC-Servo als Antrieb für eine alte Skale genutzt werden. Dieser "Displaydaemon" erledigt praktisch die gleiche Aufgabe wie die Skalensimulation 2 (Rundskale), nur diesmal mit einem RC-Servo an einer Originalskale.

Im Quellcode in iRadio/display/servo/servo.c müssen je nach verbautem Servo einige Einstellungen gemacht werden.

#define SERVO_PIN 15 // GPIO15  - PWM-Anschluß zum Servo

#define TRIGGER_SERVO_PIN 24 // GPIO24 - Freigabe der Versorgungsspannung Servo

#define MIN_SERVO_PULSBREITE 1  // Zeigeranschlag links
#define MAX_SERVO_PULSBREITE 30  // Zeigeranschlag rechts


SERVO_PIN = Der GPIO an dem das PWM Signal für den RC-Servo bereitgestellt wird.

Wir benutzen hier für den Daemonen eine Software-PWM, da die im Raspberry verbaute Hardware-PWM für die Soundausgabe unseres Internetradios vorbehalten bleibt!

TRIGGER_SERVO_PIN  = Über diesen Kanal kann eine Spannungsfreigabe für ein Servo erfolgen. Mit einem Transistorschalter, der durch den hier festgelegten Pin angesteuert wird, kann man eine Spannungsfreigabe des Servo einrichten. Vorteil: Wenn kein Stationswechsel ansteht, dann
bleibt das Servo Spannungs- und ggf. Jitterfrei.

MIN_SERVO_PULSBREITE / MAX_SERVO_PULSBREITE = Analog des linken/rechten Zeigeranschlags bei der Skalensimualtion

Achtung: Betreibt das Servo bitte nicht direkt am 5V Rail des Raspberrys. Sollte die Stromaufnahme des Servo auch nur kurzzeitig so hoch ansteigen, das dies von der Versorgung des Raspberry nicht mehr ausgeglichen werden kann, ja dann geht der Rechner in die Knie, stürzt ab und macht einen reboot. Sollte das Servo mit der 3.3V PWM nicht klarkommen, legt eine einfache Transistorstufe zur Spannungsanpassung zwischen GPIO und Servoeingang.

Hat man alle Einstellungen gemacht, dann kann das Compilieren und Installieren des Daemon über das Script /iRadio/install_ServoD.sh angestoßen werden.

Denkt dran das Ihr keine Ressourcenkonflikte zwischen den Daemonen an der GPIO-Leiste verursacht!

Keine Kommentare:

Kommentar veröffentlichen