CONTROLLER FÜRS XXVIW

In meinem neuen XXVIw habe ich neben ausfahrbaren Tiefenrudern zur besseren Manövrierbarkeit ein Bugstrahlruder eingebaut. Hatte das Original nicht, ich weiss, aber der Platz ist da, und bessere Manövrierbarkeit im engen Hafen kann nicht falsch sein. Die Tiefenruder sollen nur ein- und ausfahren, ein separates Ansteuern des Winkels ist nicht vorgesehen. Das Bugstrahlruder ist als Flügelzellenpumpe ausgelegt und wird von einem Brushlessmotor angetrieben.

Beide Baugruppen sollten von Anfang an automatisch angesteuert werden, sodass keine der wertvollen Prop Kanäle verloren gingen, und eine Funktion dennoch gegeben ist. Schnell wurde eine Funktionsliste erstellt, wann welche Funktion geschaltet oder eben nicht geschaltet wird. Die Tiefenruder beispielsweise sollten nur bei kleiner Vorwärtsfahrt ausgefahren werden. Bei schneller Fahrt und Stopp sollen sie eingefahren sein, ebenso bei kompletter Rückwärtsfahrt. Das Bugstrahlruder hingegen ist nur funktionell bei kleiner Fahrt. Bei höheren Fahrstufen ist es durch den Strömungsabriss völlig wirkungslos. Es lag also nahe, beide Baugruppen mit einigen Servofunktionen zu verknüpfen. Für das Tiefenruder wird nur der Fahrregler abgefragt, beim Bugstrahlruder sind es Fahrregler und Seitenruder. Hier wird in Abhängigkeit von der Fahrstufe das Seitenrudersignal des Empfängers einfach auf den Brushlessmotor durchgeschliffen. Naja, nicht ganz, mit zwei Potis kann man für jede Seite die maximale Drehzahl des Motors bei Vollausschlag des Senders einstellen.

Ich habe die erste Testschaltung auf eine kleine Lochrasterplatine aufgebaut um die Programmierung zu erstellen. Das Programm sollte ursprünglich noch einen Wasserfühler mit drei Eingängen haben die im Boot verteilt werden, das passte aber Programmtechnisch irgendwo nicht. Nachdem mir das zuviel Fummelei wurde habe ich letztendlich den Programmteil rausgeworfen während die Komponenten noch auf der Platine blieben. Das Programm ist simpel aufgebaut und einfach zu verstehen. Für Interessierte habe ich auch noch auf die Schnelle eine Platine entworfen. Hierbei muss beachtet werden, dass die beiden Anschlüsse C.6 und C.7 parallel zu Servo und Fahrregler geschaltet werden. Das ist nicht explizit auf der Schaltung erwähnt.

DAS PROGRAMM

#picaxe 18m2
Symbol Throt       = B0                               'Gaswert
Symbol Eingef      = B1
Symbol Ausgef      = B2
Symbol Schw1       = B3
Symbol Schw2       = B4
Symbol Wert        = B6
Symbol Mitte       = B7                               'mittelstellung
Symbol Steuer      = B8                               'Steuerungswert
symbol potihi      = b9
symbol potilo      = b10
Symbol Brush       = B.0                              'Ausgang Brushless
Symbol Tiefenruder = B.1                              'Ausgang Tiefenruder
symbol bugpotil     = b.2 'Poti bugstrahlruder lo
symbol bugpotih     = b.3 'Poti bugstrahlruder hi
Symbol Led1        = C.1                              'LED 1
Symbol Led2        = C.0                              'LED 2
Symbol Seite       = C.6                              'Seitenruder
Symbol Gas         = C.7                              'Gasknueppel
 
 
Init:
Eingef = 80 'Eingefahren 0 , 8ms
Ausgef = 180 'Ausgefahren 1 , 8ms
Schw1  = 155 'Schwelle Unten 1 , 55ms
Schw2  = 165 'Schwelle Oben 1 , 65 Ms
Mitte  = 150
Servo Brush , 75
Servo Tiefenruder , Eingef 'Servo Initialisieren
Servopos Brush , Mitte 'Servo Initialisieren
Pause 2000
  
Main:
readadc bugpotih,potihi 'bugstrahlruderpoti hi lesen
potihi = potihi / 7
potihi = 145 + potihi
readadc bugpotil,potilo 'bugstrahlruderpoti hi lesen
potilo = potilo / 7
potilo = 145 - potilo
  
;ausfahrbare tiefenruder
;gas an pin c.7, ausgang an pin b.1
;tiefenruder sind bei rueckwaerts oder null eingefahren und fahren bei gas langsam aus. ab bestimmten wert fahren sie langsam wieder ein
Pulsin Gas , 1 , Throt
Select Case Throt
Case Schw1 To Schw2                                    'totbereich
Gosub Ausfahren
Case Eingef To Schw1
Gosub Einfahren
Case Schw2 To Ausgef
Gosub Einfahren
End Select
 
;bugstrahlruder
;seite an pin c.6, gas an pin c.7, ausgang an pin b.0
;zuerst wird brushlessregler mit mittelstellung initialisiert. brushlessausgang folgt dem Seitenruder
;mit grossem totbereich zum entstoeren. wenn gas bestimmten wert uebersteigt wird brushlessausgang abgeschaltet
;nur bei vorwaerts
Pulsin Gas , 1 , Throt 'Gas lesen
Pulsin Seite , 1 , Steuer 'Seitenruder lesen
steuer = steuer min potilo max potihi
;debug
Select Case Throt
Case 80 To 140
Servo Brush , Mitte
Case 141 To 160
Servo Brush , Steuer 
Case 161 To 200
Servo Brush , Mitte
End Select
Goto Main                                              'und von vorne
 
Einfahren:
If Wert > 90 Then
Return
End If
For Wert = Eingef To Ausgef
Servo Tiefenruder , Wert
Pause 20
Next Wert
Return
 
Ausfahren:
If Wert < 170 Then
Return
End If
For Wert = Ausgef To Eingef Step -1
Servo Tiefenruder , Wert
Pause 20
Next Wert
Return