Forum: Mikrocontroller und Digitale Elektronik U-Boot zur Reinigung eines Aquariums


von Felix T. (fet)


Angehängte Dateien:

Lesenswert?

Hallo,
bin neu hier im Forum und grüße alle!

Ich bin zurzeit dabei, mit Anderen ein Arduino gesteuertes U- Boot zum 
reinigen eines Aquariums zu bauen. Im Anhang befindet sich eine kurze 
Beschreibung zur Funktion. Das U- Boot soll durch Modellbaupumpen 
angetrieben werden und durch vier Modelbaupumpen die als Art Turbinen 
dienen abtauchen. Mein Part dieses Projekts ist, das U- boot anzutreiben 
und eine stabile Lage während der Tauchgänge zu gewährleisten. Da das 
Abtauchen wie gesagt durch diese 4 Pumpen (DC Motoren geschieht) und die 
Lage durch ein Beschleunigungssensor und Gyroscope erkennt wird und 
durch eine PID Steuerung geregelt werden soll, dachte ich an 
Quadrocopter (eig. gleiches Funktionsprinzip).

Nun zu meinen Fragen:

- Wie kann ich die Werte von den zwei 3 Achssensoren 
(Beschleunigungssensor/ Gyroscope) kombinieren --> damit ich die Lage 
bekomme
- Muss ich die Werte filtern (Kalmanfilter)
- Muss ich für jeden Motor ein PID Regler programmieren oder für jede 
Achse
- Wie kann ich durch diese PID Ausgangswerte meine Motoren ansteuern 
(Plus/ X Konfiguration)

Über Antworten oder Ideen würde ich mich sehr freuen!

: Verschoben durch User
von Max M. (jens2001)


Lesenswert?

"Forum: Projekte & Code

Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel vorstellen 
und diskutieren. Bitte hier keine Fragen posten!"

von klaus2 (Gast)


Lesenswert?

Für eine Seaworld? Oder ein Goldfischglas...interessant aber für euch 
anspruchsvoll? Lage sollte doch mit genug Trägheit rel. unkritisch sein?

Klaus.

von Felix T. (fet)


Lesenswert?

Das Uboot soll für ein großes Aquarium sein! Natürlich ist es 
übertrieben, muss aber trotzdem gemacht werden da es die Vorgabe ist!
Da das Uboot sehr schwer wird wird es wirklich sehr stabil im Wasser 
liegen. Die Regelung soll aber trotzdem gemacht werden, da das Projekt 
es verlangt.
Hauptproblem oder Frage ist wie kann ich die Sensordaten matheatisch 
fusionieren, damit ich sie weiterverwenden kann?

von Bussard (Gast)


Lesenswert?

Mit der Steuerung der Nutzfunktionen sollte ein Arduino ausreichend 
beschäftigt sein, die Lageregelung, wie sie Euch vorschwebt, gibt es als 
OpenSource in Soft-und Hardware, da ist die ganze Mathematik schon 
gelöst. Da die Quelltexte verfügbar sind, ideal, um es an die 
Bedingungen unter Wasser anzupassen.
Stichworte sind: CC3D (ohne Druckerfassung), CC3d Evo (mit), Software 
OpenPilot/ Cleanflight.

Gruß

von edgar S. (hbl333)


Lesenswert?

gluck gluck weg war es

von Der Andere (Gast)


Lesenswert?

Felix T. schrieb:
> Hauptproblem oder Frage ist wie kann ich die Sensordaten matheatisch
> fusionieren,

So wie sonst auch Kalman Filter.

Wobei ein Uboot automatisch sehr stabil im Wasser liegt, wenn der 
Schwerpunkt ordentlich gewählt wird. Dann kann es schon mal nicht 
rollen.
Gieren fällt praktisch auch flach wegen dem hohen Wasserwiderstand und 
der Form

Da man im Wasser wunderbar große Druckdifferenzen bei kleiner 
Höhenänderung hat könnte man durch einen Differenzdrucksensor und zwei 
Messpunkte vorne und hinten sehr genau feststellen ob das Boot 
horizontal liegt (nicken), bzw welchen Winkel es hat.
Zumindest dann wenn man keinen höheren Wellengang im Aquarium hat.
Insofern kann man sich die Gyros eigentlich sparen, bzw durch was 
besseres ersetzen.


Felix T. schrieb:
> Da das Uboot sehr schwer wird

Es ist wohl genau so schwer wie das Gewicht des Wassers das es 
verdrängen soll.

von Vancouver (Gast)


Lesenswert?

Ich denke, dass Du eine globale Lageregelung verwenden musst, nicht pro 
Achse und schon garnicht pro Motor, denn dann hättest Du das Problem, 
dass unterschiedliche Regelkreise die gleichen Stellglieder (i.e. 
Motoren) ansteuern und die Regler potenziell gegeneinander arbeiten.
Ehrlich gesagt fürchte ich auch, dass Du mit einer einfachen 
PID-Regelung nicht weit kommst. Ein Student bei uns hat vor etlichen 
Jahren einmal ein Inverses Pendel aufgebaut, das sich selbst 
aufschaukelt und dann balanciert. Das war auch ein Zustands-  oder 
Modellbasierter Regler, wenn ich mich recht erinnere.
Zum Thema Lagemessung findest Du hinreichend Literatur im Netz. Such mal 
nach dem Stichwort Gy80, oder z.B. hier. 
http://blog.bitify.co.uk/2013/12/pitch-roll-and-yaw-using-mpu6050.html. 
Ist glaube ich für den Rasperry, aber es geht ja um den Algorithmus.

von Oliver S. (phetty)


Lesenswert?

Was soll das denn reinigen?

Für Schwimmbäder gibt es Poolroboter, die machen das ganz ordentlich. 
Sowas wie die Roombas, nur für Unterwasser.

von Falk B. (falk)


Lesenswert?

We all live in a yellow submarine! ;-)

Im Ernst. So nett so eine U-Boot Spielerei sicher ist, aus PRAKTISCHER 
sich würde ich besser ein "Scheibenknutscher" bauen, spriche einen 
Roboter, der sich an der Scheibe ansaugt und diese dann reinigt, die 
Putzerfische lassen grüßen. Das dürfte deutlich besser machbar sein. 
Denn was soll sonst noch im Aquarium gereinigt werden? Steine, Pflanzen? 
Eher nicht, oder?

von Markus M. (adrock)


Lesenswert?

...ich denke es geht wohl um den "Bodensatz" (Fischkacke und 
Futterreste) der sich zwischen den Steinen absetzt. Das kann man 
normalerweise mit so einer Art Saugglocke saubermachen, was aber relativ 
nervig ist.

Das U-Boot soll nun dieses Zeug aufwirbeln, damit es vom normalen Filter 
dann weggefiltert werden kann.

Eigentlich eine ganz lustige Idee, ob es denn wirklich so funktioniert 
ist noch die Frage. Was ist denn mit Hindernissen wie Steinen, Pflanzen 
etc.?

von Felix T. (fet)


Lesenswert?

Erst mal vielen Dank für die Antworten!

Das ist Richtig, das Uboot dient zur Reinigung des Aquariumbodens 
(Aufwirbeln des Bodens). Ob es funktionieren wird, wird sich herraus 
stellen. Die ganze Idee klingt schon etwas übetrieben aber ist halt die 
Vorgabe für das Projekt und darum muss ich es auch so machen!
Hindernisse müssen erkennt werden und wenn zum Beispiel der Akku leer 
ist muss es alleine in die Ladestation finden. Natürlich muss auch der 
gesamte Boden abgefahren werden. Dies sind aber die Aufgaben der 
Anderen.

Die CC3d ist eine gute Idee! Hat damit jemand Erfahrung? Kann ich mit 
diesem Modul direkt die 4 Motoren ansteuern oder geschieht dies über den 
Arduino?

Hab bei Youtube gute Beispiele gefunden, bei dem man die Sensordaten 
fusioniert. Also eine globale Lageregelung. An sowas hab ich eigentlich 
auch gedacht.

Das ist ein Beispiel: https://www.youtube.com/watch?v=meNf1b1yY0Y

Das die Regler gegeneinander arbeiten, könnte ein Problem werden, kommt 
wahrscheinlich darauf an ob sich die Achsen gegenseitig stark 
beeinflussen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Mein Bruder hatte mal im Aquarium so einen Fisch, allerdings deutlich 
kleiner:
https://de.wikipedia.org/wiki/Saugschmerlen
der putzt auch die Scheiben.

von Der Andere (Gast)


Lesenswert?

Felix T. schrieb:
> aber ist halt die Vorgabe für das Projekt

Was ist das denn für ein Projekt?
Praktikum, HTL, ...?

von Martin S. (led_martin)


Lesenswert?

Wenn das U-Boot den 'Schmodder' am Grund aufwirbeln soll, und man eh 
schon in die Richtung Qadrokopter denkt, warum dann nicht einfach 
konsequent weiterdenken: Das U-Boot bewusst schwerer machen, als das 
Wasser das es verdrängt, dann müssen die vier Pumpen / Schiffsschrauben 
immer Auftrieb liefern, was einen nach unten gerichteten Wasserstrahl 
ergibt, der für das gewünschte Aufwirbeln sorgt. Wenn man jetzt noch 
Schiffsschrauben mit gegenläufigem Drehsinn findet, könnte man die 
Quadrokopter-Steuerung quasi 1:1 übernehmen, nur mit angepassten 
PID-Werten. Die Schrauben für den Vortrieb können dann auch noch 
entfallen, vorwärts geht es durch leichtes kippen des Gerätes.

Die gegenläufigen schrauben sind wichtig, da durch die gegensinnigen 
Drehmomente die Drehung um die Gierachse überhaupt erst steuerbar wird.

Mit freundlichen Grüßen - Martin

Edit: Rechtschreibfehler

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.