Arduino Autopilot v1.0 beta

Das Projekt „Arduino Autopilot“ ist nun nach einigen weiteren programmier-intensiven Abenden heute in die beta-Phase übergegangen. Zusätzliche Kabel wurden von der Hydraulikpumpe ins Schiffsinnere verlegt und die Relais daran angeschlossen. Gespeist werden die Relais dann über eine 12 V Steckdose am Schaltpanel. Die Hydraulikpumpe benötigt je nach Last zwischen 3 und 7 A. Dabei muss die Hydraulikpumpe vom Original Autopiloten getrennt werden, da dessen Relais die Zugangsleitungen im Ruhezustand auf Masse legen. Die Hydraulikpumpe kann also jeweils nur mit einem System verbunden werden.

Nach Starten des Arduino Programms wird der momentan anliegende Kurs gespeichert. Dann wird der Kompaß-Sensor ständig ausgelesen und der Wert mit dem gespeicherten Zielkurs verglichen. Bei einer Kursabweichung oberhalb eines Toleranzbereiches wird nun die Hydraulikpumpe für eine kurze Dauer in die entsprechende Richtung aktiviert, was einen Ruderausschlag entgegen der Kursabweichung zur Folge hat. Danach gehen die Ruder wieder in die Ausgangslage zurück. Das wird so oft wiederholt, bis der Kurs wieder innerhalb des Toleranzbereiches liegt. Über zwei Potis sind dabei Zielkurs und Ruderausschlag justierbar. Optional kann über einen Hall-Sensor auch noch die Null-Position der Ruder abgefragt und im Programm berücksichtigt werden.

Knifflig bei der ganzen Sache ist die Kursberechnung, da ja der Kurs von 0 bis 359 Grad bzw. 1 bis 360 Grad definiert ist. Bei der Berechnung einer Kursabweichung (Differenz zwischen Zielkurs und aktuellem Kurs) muss darauf geachtet werden, ob der Kurs dabei einen Nulldurchgang erfährt, also z.B. von 356 Grad zu 6 Grad gewechselt hat.

Der erste Test im Hafen ist vielversprechend gelaufen, die Hydraulikpumpe läuft bei einer entsprechenden Kursabweichung (die wir ja durch Drehen des Kompaß-Sensors simulieren können) und stellt die Ruder in die entsprechende Richtung. Danach werden die Ruder wieder in die Ausgangslage gefahren und der Prozess wiederholt sich iterativ so lange, bis der Kurs wieder passt. Sehr hilfreich sind hierbei die Potis zur Feinabstimmung des Systems, da ansonsten der Arduino ja immer wieder mit dem Computer verbunden werden müsste, um das Programm entsprechend anzupassen. Wir sind natürlich sehr gespannt, wie sich das System auf offener See verhält, hoffen aber gleichzeitig, dass wir es nie benötigen werden!

Schaltplan für v1.0 beta

Schaltplan Arduino Autopilot v1.0 beta

Hydraulikpumpe

Hydraulikpumpe, wird vom Arduino über Relais angesteuert.

Arduino Autopilot im Beta Test

Arduino Autopilot im Beta Test

Der nächste Schritt ist nun, den experimentellen Breadborad-Aufbau fix zu verkabeln und alles in eine Plastik-Dose einzubauen, damit im Seegang alles an seinem Platz bleibt und sich die Verdrahtung nicht lösen kann.

12 Gedanken zu „Arduino Autopilot v1.0 beta

  1. Hallo!

    Congratulations!
    Wir haben ein kleines Schiff, anstatt über eine automatische Pilot, und ich bin auch ausgehend von der Arduino Welt, der Freund könnte das Design und Code, um uns testen wir schicken?

    • Hallo Freund!
       
        Herzlichen Glückwunsch!
        Ich habe das Pilot, und ich das Design gefiel, aber wie ich verwenden Ventile Magnetventile, die nicht über eine Präzision im Hydrauliköl der arteriellen Stichwahl für jeden Kolben, wodurch nescessário die Verwendung eines Ruder Repeater, als ich sah, das Bild oben geschrieben, Ihr Projekt hat die Möglichkeit, ein Ruder Repeater verwenden? Und Sie den Code für mich, um die Tests mit der Option Ruder Repeater zu tun?

      Eine große Umarmung von ihrem Fan!

  2. hi anderlis, sorry, i do not have the time to give any support on the project. after studying my code, as it is well commented, you should be able to adapt it to your needs. to read out the rudder position, i would suggest to use a potentiometer directly attached to the rudder. cheers, sven

  3. Pingback: Arduino based Autopilot: source code now for download | Blue Felix

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.