Pilotino

Die Idee hinter diesem Projekt ist ein DIY-Autopilot den man mit etwas Elektronikwissen selber aufbauen und – noch wichtiger – später auch irgendwo am Ende der Welt mit Standartteilen wieder reparieren kann. An dem Projekt bastle ich gerade zusammen mit dem Hannes von der Optimist (früher Pukuri) – ich bin dabei eher für die Hardware, also die Elektronik zuständig und der Hannes schreibt die Software – damit das Ding am Ende auch weiß, das es ein Autopilot ist und wie man sich als solcher zu benehmen hat.

ARDUINO MEGA 2560 - unsere MCU
Das Herzstück der Hardware ist ein Arduino Mega 2560, das ist eine Computerplatine basierend auf einem Atmega2560, also ein kleiner Computer mit jeder Menge frei programmierbarer Ein- und Ausgänge.  Den Arduino Mega 2560 bekommt man Bei Reichelt, Pollin, Conrad & Co für etwa 40-50€ - in Hongkong (http://stores.ebay.at/rcmodelpart?_rdc=1) bekommt man das gleiche Teil aber auch schon um einiges Billiger.
SENSU
Von dort haben wir auch unsere Sensoreinheit, eine GY-80. Auf der kleinen Platine – die auch etwa 20€ kostet – sitzt je ein L3G4200D, ein ADXL345, ein HMC5883Lund ein BMP085. Damit hat man einen Magnetkompass, einen Gyro, einen Beschleunigungsmesser und ein Barometer – nicht schlecht für eine Platine die gerade mal 27x17mm groß ist.
Dann gibt es da noch eine Bedieneinheit mit 4 Tasten und einem 2x16 Zeichen Display, einem Ruderlagengeber und NMEA Ein- und Ausgänge um GPS, Windanzeiger und AIS anzuschließen.
Der Autopilot steuert dann die Drive Unit (DU) also einen Motor oder eine Elektropumpe an.
Es gibt noch extra Ausgänge für eine Bremse (um ein Bewegen des Ruders während der Pausen zu verhindern) und einen Schaltausgang wenn das Gerät eingeschaltet ist (für etwaige elektrohydraulische Bypassventiele). Zwei weitere Ausgänge stehen für weitere Entwicklungen zur Verfügung.

Der Aufbau schaut so aus, daß der Arduino (MCU – Micro Computer Unit) auf einer Verstärkerplatine (AMPU – AMPlifier Unit) sitzt, alle Leitungen von und zum MCU laufen also über die AMPU. Auch die Stromversorgung der MCU erfolgt über die AMPU. Alle Datenbusse und alle Ausgänge werden über Optokoppler galvanisch von der MCU getrennt – die Ausgänge werden danach mit niederohmigen MOS-FETs (IRF3205 & IRF4905) verstärkt.Der Strom welcher über die DU fließt wird im Betrieb überwacht und bei einem Kurzschluß oder längerer Überlast schaltet der Computer den Verstärker ab.Des weiteren ist der Verstärker mittels Schutzdioden gegen Abschaltspitzen der DU und auch gegen Verpolung der Versorgungsspannung geschützt
Die Sensoreinheit (SENSU – SENSor Unit) und das Bedienteil (UIU – User Interface Unit) werden mittels eines seriellen I2C Bus von der MCU gesteuert und abgefragt. Der Ruderlagengeber (RFB – Rudder Feed Back) ist einfach ein 10k Potentiometer (für höhere Lebensdauer ein Keramikmodell) welches über einen der Analogeingänge der MCU ausgewertet wird.
Die Software wird über die USB Schnittstelle des Arduino aufgespielt und auch in der jetzigen Testphase haben wir den PC fast ständig mitlaufen um Daten zu protokollieren – im Endeffekt ist der Pilotino aber nach einmaligem aufspielen der Software autark und kann ohne PC betrieben werden.


Lochrasteraufbau
Den ersten Aufbau auf Lochrasterplatte diente hauptsächlich dazu die Schaltung zu testen und noch diverse Verbesserungen einfließen zu lassen. Im Laufe so eines Projekts verändert sich gerade am Anfang fast täglich noch was an der Schaltung. Da wurden mal hier ein paar I/O Pins getauscht um das Platinenlayout zu verbessern, da noch eine Extraleitung für den Standbymodus zur UIU eingebaut, Lötaugenabstände für verschiedene Bauformen optimiert, ….. wie gesagt, es gab einiges zu tun.


Erster Aufbau auf geätzter Platine
Irgendwann waren wir dann aber alle Änderungen eingebaut und alle Details ausgearbeitet, die Schaltung sowie das Platinenlayout waren also fertig und wir haben die ersten Platinen bestellt.
Hier sind noch die Links zu den Eagle Dateien des Projekts. Einmal der Schaltplan und einmal das Layoutder Platine.
Der erste Aufbau auf der gefertigten Platine schaut auch schon richtig gut aus und auch die Tests mit dem Platinentestprogram sind alle problemlos verlaufen.

Alle Komponenten auf einem Blick
Der nächste Schritt war dann das Ganze in Boote einzubauen um die Software entwickeln zu können. Der erste Pilotino verrichtet seit einigen Wochen schon seinen Probebetrieb in der 'Optimist', der zweite seit einer Woche auf der 'Yab Yum'. Soweit schaut alles gut aus, nur an der Software müssen wir noch arbeiten. Das 'Betriebssystem' - also die Bedienbarkeit des Pilotino funktioniert schon recht gut und erst kürzlich hat Hannes ein Problem mit der Zeichendarstellung am Display gelöst das uns schon seit Wochen Kopfzerbrechen macht. Jetzt steht uns noch einige Arbeit am Alogarythmus ins Haus bis der Autopilot mit möglichst wenig Schlangenlinien und bei allen Bedingungen geradeaus fährt - und dabei auch noch möglichst wenig Energie verbraucht.
Stand 2013-7-22

Ruderlagengeber - RFB Bedienteil - UIU









Dezember 2013
Pilotino Track bei wenig Wind
Der Pilotino hat die erste echte Testfahrt erfolgreich bestanden. Hannes und Christine hatten einen Schaden bei ihrem normalen Autopiloten als sie in Tonga waren und so haben sie die Überfahrt von Tonga nach Fiji (ca. 400 Seemeilen) mit dem Pilotino gemacht und das hat ganz gut funktioniert. So ein breiter Katamaran ist aber auch leicht auf Kurs zu halten, ein Monorupf wie die Yab Yum ist da schon etwas schwieriger. Bei glattem Wasser geht es schon sehr gut, bei Welle oder Wind von der Seite oder von Vorne fahren wir aber immer noch deutlich mehr Schlangenlinien als unser alter Autopilot. Das wird die Aufgabe der nächsten Monate sein, die ideale Einstellung das Systems zu finden, damit es bei minimalem Stromverbrauch auch bei Wind und Welle kursstabil genug ist und dabei aber nicht übersteuert und sich aufschaukelt. Da wir jetzt beide über die Cyclon Saison hier in Savu Savu sind haben wir jede Menge Zeit das Projekt in diese Richtung weiterzuentwickeln. 
Der 3. Pilotino entsteht
Die Software hat sich auch weiterentwickelt und nach langem Kampf hat Hannes vor ein paar Tagen auch das Tastenproblem - unser größtes Sorgenkind bisher – lösen können. Bei zu vielen und schnellen Tasteneingaben ist der Computer manchmal abgestürtzt oder hat am Display chinesische Zeichen fabriziert. Das Problem lag wohl im Interrupt der Zeitsteuerung des Beepers in der Bedieneinheit.

2014-01-15 Hannes hat letzte Woche die vielen Seiten Berechnungen aus seinem Notizbuch in den Pilotino Quellcode gearbeitet - die neue Version 3.0. Jetzt ist die Sensoreinheit voll kompensiert, kann schief stehen und auch wackeln und zeigt trotzdem noch den richtigen Kurs. Wir waren kurz draußen und sind ein paar Runden gefahren um den neuen Kompass zu testen – und was für ein Unterschied! Der Kompass liefert jetzt vernünftige Daten und reagiert in guter Zeit, eine 30° Drehung hat plötzlich wirklich 30 Grad, die Deviationstabelle hat jetzt gewohnte Werte von maximal 10° (statt 50-60° vorher) und das Fahren Geradeaus ist auch merklich exakter. Also ein voller Erfolg und ein Hoch auf die Mathematik.

2014-02-22 Seit ein paar Tagen kann der Pilotino auch nach GPS Wegpunkten fahren. Dazu wird der 'Cross Track Error' der mitles NMEA Signal vom GPS kommt ausgewertet und daraus eine sanfte Annäherungskurve berechnet. Bei der letzten Probefahrt hier in Savu Savu hat das alles schon ganz gut geklappt.
Ansonsten habe ich jetzt den ersten Wasserdichten Bedienteil gebaut - jetzt kommen wir in die Phase wo wir den Autopiloten bei verschiedensten Bedingungen testen - und die besten Einstellungen finden müssen.

5 Kommentare:

  1. Wenn dass ganze mahl weiter Entwikelt wierden sollte könnte mann ja auch den Atmega direkt auf die Platine setzen. Das Spart platz und evtl. spätere kontaktprobleme mit den Federleisten. Des weitern könnte mann zum Stromsparen auch einen Schaltregler verweden der die 5V oder 3,3V zur verfügung stellt. Und nachdem dass ganze ja auf einem Boot ist. würde ich die Schaltung mit einem Schutzlack(z.B.:Plasik 70) gegen Feuchtigkeit versigeln.

    AntwortenLöschen
    Antworten
    1. Alles gute Vorschläge - Danke.
      Wir sind mit dem Projekt noch in der Entwicklungsphase und da ist uns die Flexibilität des aufgesteckten Arduino noch sehr praktisch. Außerdem ist eines der Hauptziele des Projekts, daß der Autopilot einfach und mit Standartteilen zu reparieren sein soll. So eine Platine kann bald mal wer umstecken und auch einen FET auszutauschen bringen viele Segler im Notfall noch selber hin. Bei einen aufgelöteten SMD Chip schaut die Sache da schon ganz anders aus, da sind wahrscheinlich die meisten überfordert.
      Die Versiegelung mit Plastik ist so eine Sache, einerseits bietet sie natürlich den besten möglichen Schutz, andererseits macht sie aber auch eine eventuelle Reparatur fast unmöglich. Ich weiß nicht, wie viele Vergossene Geräte (Balmar, B&G, ...) ich schon für tot erklären habe müssen, da eine Reparatur durch die Vergussmasse einfach nicht möglich war.
      Mit welchem Schaltregler hast du den schon gute Erfahrungen für so eine Anwendung gemacht? Ich bin gerade dabei einen solchen mit einem LT1776 für das nächste Projekt zu planen, muß mir die Teile aber erst aus China kommen lassen - in Fiji bekommt man in dieser Beziehung ungefähr nichts.
      Heinz

      Löschen
  2. Moin
    spannendes Projekt. Ich habe ähnliches gemacht, basierend auf einem Raspberry, bzw jetzt Banana Pi mit opencpn, sodass ich die Seekarte direkt auf der Selbststeueranlage laufen lasse. Mich würde ein Erfahrungsaustausch interessieren. In diesem Jahr sind wir mit Colomba, einer C&C34 nach Göteborg gesegelt und die selbstgebastelte Anlage hat ziemlich gut funktioniert. Meine Probleme liegen derzeit in einer besseren Idee zum Ruderlagengeber, habe derzeit auch einen Poti, aber bin davon nicht begeistert, das andere Problem hattet ihr ja auch, die Kompensierung des Kompasses. Da bin ich nicht wirklich weiter gekommen, nehme den Kompaß derzeit praktisch als Drehsensor, maßgeblicher Kurs ist GPS, da das aber zu träge ist, halt den Drehsensor um schneller reagieren zu können. Ist nicht so optimal, deshalb würde mich eure Methodik interessieren.

    Btw. habt ihr zufällig Kontakt zu einem Amerikaner, Joseph M. Dragovich? Joe tingelt seit Jahren im Südpazifik und ist wohl ab und an auf Fidji. Falls ja, bestellt ihm einen Gruß von mir.

    Gruß
    Peter
    (colomba at peter-gottwald.de)

    AntwortenLöschen
    Antworten
    1. Hallo Peter
      Wir haben am Beginn des Projekts auch zuerst an einen Drehimpulsgeber gedacht, ist sicher das bessere Bauteil für diesen Fall. Dann haben wir uns aber doch für ein Potentiometer entschieden, unser Autopilot soll nämlich ganz bewusst simpel und reparaturfreundlich sein. Ein Potentiometer bekommt man fast überall auf der Welt aufgetrieben, aber wenn du dann in der Karibik, in der Südsee oder sonst irgendwo am Ende der Welt plötzlich einen speziellen Drehimpulsgeber brauchst, dann hast du ein Problem.
      Deshalb verwenden wir normale Potentiometer guter Qualität und hatten bisher keine Probleme damit. Welche Sorgen hast du denn genau mit dem Ruderlagengeber?
      Wegen dem Kompensieren des Kompasses - da werde ich mal Hannes fragen, der hat sich in dieses Thema eingearbeitet und kann dir da sicher besser helfen als ich.
      Liebe Grüße
      Heinz

      Löschen
    2. Wegen dem Kompensieren des Kompasses - Hannes e-Mail ist pukuri@gmx.at.

      Löschen