|
_ |
DMX Servocontroller und LED-Controller
Mit Hilfe dieses Controllers lassen sich bis zu vier Standard-Servos unabhängig
voneinander mit einer Auflösung von 8bit ansteuern.
Eine Servo-Steuerung besteht aus einem DMX-Transceiver, an den die Signalleitungen der Servos direkt angeschlossen werden können. Die Servos benötigen unbedingt eine eigene Stromversorgung mit gut gekühltem Spannungsregler (78S05) und großen Elkos dahinter!
DMX-Transceiver (Rev. 3.01)Mit diesem Modul können DMX-Daten sowohl empfangen als auch gesendet werden. Obwohl die Schaltung recht einfach wirkt, empfehle ich den kompletten Selbstbau nur Hobbyelektronikern mit etwas Erfahrung. Diese Schaltung ist durch die vollständige Anbindung des RS485-Wandlers für eine bidirektionale Kommunikation (RDM nach ANSI E1.20 oder proprietär) geeignet. Dieses Feature wurde bislang jedoch nur in sehr wenigen kostspieligen Geräten implementiert. Da ein Lochraster-Drahtverhau für diese Schaltung zu unzuverlässig ist, sollte die Platine möglichst übernommen werden. (Nähere Informationen finden Sie unter 'Resources'.) Wer nicht selbst ätzen möchte, kann eine fertige Platine in Industriequalität bei Embedded Projects erstehen.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| IC1 IC2 IC3 B1 LED1 LED2 R1 R2,3,4 C1,2 C7 C5,6 SW1 Q1 Anschlüsse |
ATmega8515-16PU (sockeln!) 75176B (sockeln!) 7805 Gleichrichter (rund) LED 5mm rot LED 5mm grün 10k (PT10-S) 390 Ohm 27pF 100nF 100µF DIP-Schalter (10fach) 8MHz (HC49) Stiftleiste einreihig |
Die Bauteilkosten für einen Transceiver liegen zwischen 6,50€ und 9,50€.
Wie man sieht, ist die Schaltung äußerst simpel. Die gesamte Ansteuerung erfolgt per Firmware innerhalb der MCU (IC1). Diese wird über den "ISP"-Port auf IC1 übertragen. Die Startadresse und besondere Optionen (falls vorhanden) stellt man über ADR ein. Die Leuchtdioden dienen als Statusanzeigen. Die Bauteile rund um IC3 sorgen für eine glatte Betriebsspannung von 5V. Q1 und C1,2 werden für die Betriebsfrequenz von 8MHz benötigt. IC2 ist der RS485-Wandler, der der MCU die Kommunikation mit der Außenwelt ermöglicht. Über Spare können verschiedene Funktionsarten der Firmware fest gejumpert werden. Über A-Input kann ein analoger Schwellwert (z.B. zur Temperaturmessung) eingelesen werden.
An AC1&2 wird die Betriebsspannung von 9-12V ac oder dc angeschlossen. Die Versorgung sollte schon ein paar Watt haben, um sämtliche Module zuverlässig versorgen zu können.
Layout (48 * 76 mm^2) |
Bestückung |
Die Verbindung des Transceivers mit dem DMX-Bus erfolgt gemäß der nächsten Grafik:
Eine Anleitung zum Programmieren und zur Quarzselektion des AVRs finden Sie unter 'Resources'.
Nach dem Anpassen der fuse bits kann die Servo-Firmware auf den DMX-Transceiver übertragen werden. Dieses Programm wertet die nächsten sieben Kanäle nach der Startadresse aus und generiert die verschiedenen PWM-Signale.
| DMX | Funktion | Ausgangspin |
| ch1 | Position Servo1 | OUT1 (PA0) |
| ch2 | Position Servo2 | OUT2 (PA1) |
| ch3 | Position Servo3 | OUT3 (PA2) |
| ch4 | Position Servo4 | OUT4 (PA3) |
| DMX | Funktion | Ausgangspin |
| ch1 | Servo1 (Tilt) | OUT1 (PA0) |
| ch2 | Servo2 (Pan) | OUT2 (PA1) |
| ch3 | Strobe | |
| ch4 | PWM1 (red) | OUT5 (PA4) |
| ch5 | PWM2(green) | OUT6 (PA5) |
| ch6 | PWM3 (blue) | OUT7 (PA6) |
| ch7 | PWM4 | OUT8 (PA7) |
Der Standard sieht zur Ansteuerung von RC-Servomotoren ein PWM-Signal mit einer Frequenz von 50Hz und einem Duty-Cycle von 1ms bis 2ms vor. Die meisten Hersteller halten sich allerdings nicht an diese Vorgaben und ermöglichen über höhere Duty-Cycles größere Verfahrwege. Aus diesem Grund hält sich der Transceiver nicht nur an den Standard sondern beherrscht auch die gängigen "Dialekte". Die Einstellung wird über den Spare-Port vorgenommen:
| Spare1 (PD4) | Spare2 (PD5) | Servo |
| 0 | 0 | Standard |
| 1 | 0 | Graupner |
| 0 | 1 | robbe |
| 1 | 1 | custom |
0 = nicht gejumpert
1 = gejumpert
Zusätzlich der Verfahrweg des ersten Servos (Tilt) durch Setzen von Spare3 (PD6) eingeschränkt werden. Dies ist bei den meisten Scannern notwendig.
Falls Sie für jeden Servo einen individuellen Verfahrbereich festlegen möchten, kann mit dem PC-Tool eine passende EEPROM-Datei erzeugt werden. Diese muss dann zusammen mit der Firmware auf den Transceiver übertragen werden. Zum Nutzen dieser custom-Einstellungen müssen Spare1,2 gesetzt werden. Die Änderungen werden nach einem Neustart übernommen.
Typ: RS-301 MGBB
Vertrieb: Conrad-Electronik
Spannung: +5V, 150mA
Anschlüsse:
rot: extern +5V
braun: GND (extern-GND und Transceiver-GND verbinden!)
orange: Signal (von DMX-Transceiver)
Beim Hochfahren sollte die ErrorLED leuchten. Die Änderung relevanter Kanäle wird durch Blinken der grünen LED indiziert. Ein Fehler wird durch Blinken der ErrorLED angezeigt:
| Pattern | Fehler | Lösung | |
|
|
Blinken | Es liegt keinerlei Signal am Transceiver an. | Transceiver mit DMX-Bus verbinden. |
|
|
Doppelblinken | Das Signal wird nicht als DMX erkannt. Es werden nicht alle benötigten Kanäle empfangen. |
D+ und D- am DMX-Anschluss vertauschen. Mehr Kanäle senden oder kleinere Startadresse wählen. |