====== Servo Sequencer - SQ1 ====== //programmierbar. 4 Servos, 1 Schaltausgang// {{:rc:sq:sq1.jpg?600|}} ===== Features ===== * programmierbarer Servo-Sequencer * bis zu 4 Servos unabhängig steuerbar. * bis zu 4 Ablaufsequenzen. * bis zu 16 Befehle pro Sequenz. * komplexe Programme möglich (inkl. Schleifen usw.). * verschiedene Servogeschwindigkeiten * Schaltausgang für das programmierbare schalten von weiteren Verbrauchern. * per PC und USB oder Bluetooth programmierbar. * Für Hochvoltempfänger- und servos geeignet. ===== Technische Daten ===== ^Merkmal^Wert^Einheit^ |Spannungsversorgung|3,5-16|Volt| |max. Spannung am Schaltausgang|30|Volt| |Servoimpuls|900-2100|µS| |Servoperiode|20|ms| |Servoimpuls Amplitude|3,3|Volt| ===== Beschreibung ===== {{:rc:sq:sq_system.jpg?600|}} Der Servo-Sequencer SQ1 dient zum automatischen Ausführen von Steuerprogrammen für Servos. Mit dem SQ1 können auch komplexe Abläufe für bis zu 4 Servos und einem Schaltausgang programmiert werden. Bis zu 4 Ablaufsequenzen sind möglich. Die Anwahl der jeweiligen Sequenz erfolgt über einen freien Empfängerkanal. Je nach empfangener Schalterstellung am Sender, wird eine programmierte Sequenz ausgeführt. Die Sequenzen werden aus Befehlen zusammengesetzt, welche nacheinander ausgeführt werden. Dabei gibt es Befehle zum Positionieren von Servos, für das Warten, für Schleifen, für das steuern des Schaltausgangs usw. Eine einfache Sequenz (oder auch Programm) könnte dabei z.B. so aussehen: - Drehe Servo A auf Position 1000µS (Schnell) - Warte 2 Sekunden - Drehe Servo B auf Position 1500µS (Langsam) - Warte bis Servo B am Ziel - Drehe Servo C auf Position 1900µS (Schnell) Jede Zeile stellt einen Befehl dar. Ein Befehl kann auch Parameter besitzen. Diese spezifizieren den Befehl, und legen z.B. fest auf welches Servo er angewendet werden soll, oder welche Position angefahren werden soll. ===== Anschlüsse ===== {{:rc:sq:belegung_top.jpg?400|}} {{:rc:sq:belegung_front.jpg?250|}} ===== Anschluss an einen PC ===== {{:rc:lmcontrol:lmprog_iso.jpg?200|}} Für den Anschluss an den PC kommen alle USB-Adapter für Lichtmodule infrage. Insbesondere eignet sich der LMProg-Iso für dieses Modul. Eine drahtlose Anbindung ist mit dem Bluetooth-Adapter möglich. [[rc:lmcontrol:prog|Programmieradapter für Lichtmodule]] ===== Programmierung ===== Die Programmierung erfolgt mit der Software "[[:lm_software|LM-Control 3]]". Es handelt sich dabei um diesselbe Software die auch für die Lichtmodule zum Einsatz kommt. **In der Software muss das Modul "Sequencer SQ1" ausgewählt werden.** {{:rc:sq:lmc_sq1.png?600|}} Das Konfigurationsfenster ist in verschiedene Bereiche aufgeteilt: ==== Global Settings ==== In diesem Abschnitt kann das "Startup Delay" festgelegt werden. Dies ist die Zeit in Sekunden, bis das SQ1 vom Einschalten an wartet, bis es auf den Empfänger reagiert und seine Sequenzen abarbeitet. Hier kann ebenfalls die gewünschte Anzahl an Sequenzen (maximal 4) eingestellt werden. ==== Startup Servos ==== Hier kann ausgewählt werden, wie die angeschlossenen Servos beim Einschalten des Moduls reagieren sollen. Die Einstellung "Servos off" führt dazu, dass die Servos nicht angesteuert werden, bis ein entsprechender Befehl dazu im Programm abgearbeitet wird. Die Servos sind dabei "kraftlos", d.h. bekommen keine Ansteuersignale. In der Einstellung "Last position" werden alle Servos sofort nach dem Einschalten mit ihrer letzten Position angesteuert. D.h. alle Servos drehen sofort beim Einschalten in ihre letzte Position, welche sie vor dem ausschalten hatten. ==== Startup Program ==== In diesem Abschnitt kann das Startverhalten des Moduls im hinblick auf die Sequenz festgelegt werden. Bei "Last Line" läuft die aktuelle Sequenz von der letzten Anweisungszeile aus weiter, welche vor dem Ausschalten erreicht war. "From Beginning" führt dazu dass die aktuelle Sequenz in jedem Fall nach dem Einschalten des Moduls von vorne beginnt. ==== No-RX Sequence ==== Hier kann die Sequenz ausgewählt werden, in welche das Modul springen soll, wenn kein Fernsteuerimpuls mehr erkannt wird. In der Einstellung -HOLD- verbleibt das Modul in der letzten aktiven Sequenz. Wird wieder ein Fernsteuerimpuls erkannt, so wird die Ausführung normal fortgesetzt und die Sequenz entsprechend dem Fernsteuersignal ausgewählt. ==== Sequence ==== Im Abschnitt "Sequence" werden die Ablaufsequenzen eingegeben, welche das Modul ausführen soll. Mit der Dropdown-Box "Current Sequence" wird die Sequenz angewählt, welche bearbeitet werden soll. Die Befehle der Sequenz werden dann in der Liste darunter angezeigt. Wenn Servos und Positionen mit einem Namen versehen wurden, so werden stets diese Namen angezeigt, anstatt die Servonummer oder die Position. Mit dem Button "Run Now", führt ein angeschlossenes Modul die ausgewählte Sequenz sofort aus. So kann die Sequenz einfach getestet werden. Vorher sollte mit "Upload" sichergestellt werden, dass die aktuelle Konfiguration auch im Modul so vorliegt. Mit einem Doppelklick auf einen Eintrag in der Sequenzliste, kann der Befehl bearbeitet werden. In der Liste "Commands" finden sich alle möglichen Befehle. Um einen Befehl an die nächste Stelle der Sequenz anzufügen, reicht ein Doppelklick. Bei manchen Befehlen öffnet sich dann ein Fenster in dem Einstellungen bzw. Parameter für diesen Befehl eingegeben werden können. Um einen Befehl in der Mitte einer Sequenz einzufügen, kann ein bestehender Befehl ausgewählt werden, und dann ein ein neuer Befehl mit den Button "Insert before" bzw. "Insert after", vor bzw. nach diesem Befehl eingefügt werden. Ein markierter Befehl kann mit den Button "Up" und "Down" in der Liste hoch bzw. runter geschoben werden. ==== Befehlsübersicht ==== ^Befehl^Parameter^Beschreibung^ |DRIVE|Servo: A-D\\ Position: 900-2100µS\\ Speed: 5 Stufen|Dreht das angegebene //Servo// auf eine bestimmte //Position// mit einer von 5 Geschwindigkeitstufen. //Full// bewirkt eine schnellstmögliche Bewegung.| |WAIT|Time: 1-254 Sekunden|Die Programmausführung pausiert für die angegebene Zeit| |GOTO|Line: 1-16|Das Programm wird an der angegebene Zeilennummer fortgesetzt.| |WAITSERVO|Servo:A-D|Wartet bis das angegebene Servo seine vorgegebene Position erreicht hat| |STOP|-|Das Programm wird dauerhaft angehalten. Es werden keine weiteren Befehle mehr ausgeführt. Ein Sequenzwechsel findet nicht mehr statt.| |LOOP|Line: 1-16\\ Count: 1-254|Springt an Zeile //Line// und widerholt dies so oft wie in //Count// angegeben.| |SWON|-|Aktiviert den Schaltausgang| |SWOFF|-|Deaktiviert den Schaltausgang| |SWBLINK|On-Time: 0,0-25s \\ Off-Time: 0,0-25s|Bewirkt ein Blinken des Schaltausgangs. Dabei legt //On-Time// die Einschaltzeit und //Off-Time// die Ausschaltzeit fest.| ==== Anmerkungen zu den Befehlen ==== === DRIVE === {{:rc:sq:lmc_sq3.png?400|}} Der Befehl DRIVE bewegt ein Servo an eine angegebene Position. Dabei kann auch die Geschwindigkeit angegeben werden. Mit der Dropdown-Box "Servo" wird das gewünschte Servo ausgewählt. Die Bezeichnungen A-D entsprechenden den Servoanschlüssen des Moduls A-D. Wurde ein Name für das Servo vergeben, so wird dieser Name stattdessen angezeigt. Mit dem Button "Change Name" kann dem ausgewählten Servo ein Name zugewiesen werden. Dies erleichtert die Programmierung und die Lesbarkeit der Sequenz. Das Eingabefeld "Position" enthält die Position in µS auf die das Servo drehen soll. Bereits gespeicherte Positionen können aus der Dropdown-Box daneben angewählt werden. Die entsprechenden Position wird dann automatisch eingetragen. Mit der Dropdown-Box "Speed" kann festgelegt werden, wie schnell das Servo die angegebene Position anfahren soll. Die Auswahl "Full" führt dazu, dass sofort der endgültige Servoimpuls ausgegeben wird. Die Zeit bis die Position dann tatsächlich erreicht wird, hängt vom Servo selbst ab. Im Abschnitt "Move real servo", kann die Servoposition am real angeschlossenen Servo ermittelt werden. Dabei muss zunächst die Sperre mit dem setzen des Hakens bei "Unlock" entfernt werden. Mit dem Schieber kann nun das angeschlossenen Servo bewegt werden. Die Position wird direkt oben in das Eingabefeld eingetragen. Ist die gewünschte Position ermittelt, so kann diese Position unter einem Namen abgespeichert werden. So kann die später einfach wieder angewählt werden. Außerdem erhöht dies die Lesbarkeit der Sequenz. === WAIT FOR === Die Ausführung wartet bis das angegebene Servo an seiner Position angekommen wird. Sinnvoll wenn Servos langsam eine Position anfahren sollen und das Programm erst weitergehen soll, wenn das Servo die Position erreicht hat. Auch hier können den Servos Namen gegeben werden. === LOOP === Ähnlich wie GOTO, wird zur angegeben Zeile in der Sequenz gesprungen. Hierbei kann aber die Anzhl angegeben werden, wie oft dies geschehen soll. Danach läuft die Ausführung des Programms nach dem LOOP Befehl weiter. So können einzelne Abschnitte einer Sequenz einige male wiederholt werden. === SW BLINK === Mit diesem Befehl kann der Schaltausgang in einem bestimmten Abstand ein und ausgeschaltet werden. Dabei kann die ON-Time eingegeben werden, also die Zeit in Sekunden die der Ausgang EINgeschaltet ist. Die OFF-Time gibt an, wie lange danach der Ausgang AUSgeschaltet sein soll. Dies wird dauerhaft wiederholt. Die Ausführung geschieht im Hintergrund, d.h. die Ausführung läuft sofort zum nächsten Befehl weiter. Die Befehle "SW ON" oder "SW OFF" stoppen die Blinksequenz wieder. ===== Schaltausgang ===== Der SQ1 verfügt über einen Schaltausgang für das schalten beliebigen Lasten bzw. Verbrauchern. Der Schaltausgang kann im Programm durch spezielle Befehle (SWON,SWOFF,SWBLINK) angesteuert werden. Ein Verbraucher wird einfach, richtig gepolt, an die beiden Pins des Schaltausgangs (Plus und Minus) angeschlossen. Dabei kann es sich um LEDs, Relais, Motoren, Pumpen, Geräuschmodule usw. handeln. LEDs benötigen natürlich einen passenden Vorwiderstand. Am Plus-Ausgang liegt diesselbe Spannung wie am Plus-Eingang des Moduls und an den Servo-Anschlüssen an. Es besteht aber die Möglichkeit eine externe Spannungsquelle mit diesem Ausgang zu schalten. Dazu wird der Verbraucher mit Plus mit der Spannungsquelle (z.B. ein Akku) verbunden, und mit Minus mit dem Minus-Pin des Schaltausgangs. Nun muss noch darauf geachtet werden, dass das Minus der Spannungsquelle über irgendeinen Weg mit dem Minus des Moduls verbunden wird. Die kann eine direkte Verbindung an einen Minus-Anschluss sein (siehe Zeichnung unten), oder auch eine bereits vorhandene Verbindung z.B. über ein BEC. ==== Anschluss einer LED (oder anderen Verbraucher) an den Schaltausgang ==== {{:rc:sq:sw_led.jpg|}} ==== Schalten einer Last welche über einen externen Akku versorgt werden soll ==== {{:rc:sq:sw_akku.jpg|}} ===== Videos ===== ==== Teil 1 - Grundlagen ==== {{youtube>0I-wD9F3mGs?medium}} ==== Teil 2 - Erweiterte Befehle ==== {{youtube>LJGgqUU6pTY?medium}} ==== Teil 3 - Beispielprojekt: Fahrwerk==== {{youtube>LbU_94L9x1Y?medium}} ===== Firmware ===== {{:rc:sq:sq1_1_7_2.zip|V1.7.2 - Verbesserung beim Speichern der letzten Servoposition}} ===== Bestellung ===== Der Sequencer SQ1 kann als Bausatz oder Fertiggerät bezogen werden. ==== Bausatz ==== {{:rc:sq:sq_bausatz.jpg?400|}} Der Bausatz besteht aus: * Platine bestückt und getestet * 3 pol Stiftleiste für RX Anschluss * 4 pol JST Stiftleiste für Programmierung * 4x3 pol Stiftleiste für Servos * Schrumpfschlauch * Servokabel Es müssen lediglich die Stiftleisten eingelötet werden. Das Modul kann danach noch in den Schrumpfschlauch eingeschrumpft werden um es zu schützen und Kurzschlüsse zu vermeiden. Das fertig gebaute Modul sieht wie folgt aus: {{:rc:sq:sq_assembled.jpg?300|}} ==== Fertiggerät ==== Das Fertiggerät wird bereits komplett bestückt und eingeschrumpft geliefert. Es kann sofort genutzt werden. |Bausatz SQ1|20 EUR| |Fertiggerät|35 EUR| |Programmieradapter|[[rc:lmcontrol:prog|Auswahl]]| Versand: D: 2 EUR, EU+Schweiz: 5 EUR, Sonstiges Ausland bitte anfragen. Direkte Bestellanfrage via Formular: [[https://docs.google.com/forms/d/1VSgiYmssVwemq3bbX78anU7J0pa_if-jDGa_M_Y3X2Y| Bestellanfrage]]