Jump to content
Schiffsmodell.net

BernhardB

Recommended Posts

Hallo zusammen,

 

vielleicht erst mal zum Hintergrund:

Seit (vielen) Jahren bastle ich am Modell der "HF31 Maria" rum - eines Fisch-Evers, der erst rein unter Segeln und später mit Hilfsmotor unterwegs war und nun seine letzte Ruhe-Stätte im deutschen Museum in München bekommen hat. Hier seht Ihr den aktuellen Bauzustand:

 

1414679283_2018-07-2720_13_35.jpg.dc97b423b8de45e681e4a173e44a4d57.jpg

 

Die Fertigstellung wird sich bestimmt weitere Jahre hin ziehen, ich möchte daher erst mal "nur" Motor und Ruder steuern. Dann kommen nach und nach die einzelnen Segel dazu. Die möchte ich jeweils einzeln ansteuern können und auch ausschalten können, wenn sie nicht gebraucht werden - ich habe mir ausgerechnet, dazu brauche ich 5 Servos + 1 Servo fürs Ruder + Motor = 7 zu steuernde Größen. Wobei sich die ganzen gerade gesetzten Segel auf einem Hebel befinden sollen.

Klar könnte man das Ganze auch über nen FrSky mit entsprechend vielen Kanälen und OpenTX Programmierung hin kriegen, aber selbst dann: Ich fürchte, die Trimmerei wird dann auch ein zie,liches Gefummel. Daher habe ich mich entschieden, die Steuerung einem Arduino zu überlassen. Dieser wird durch ein Handy über BlueTooth angesteuert, mit dem man das Verhältnis der Segel zueinander einstellen kann usw. Derzeit soll die gesamte Steuerung über das Handy erfolgen - einen S-Bus geeigneten Sender habe ich (noch) nicht. Ob überhaupt ein anderer Sender als das Handy hin kommt, wird sich noch entscheiden.

 

Hier erst mal die Hardware:

P1000618.JPG.dc9a4b9127f1b6453e2908c545b8ceec.JPG

Was Ihr hier seht, ist ein Arduino Mega (Clone), auf dem eine BlueTooth-Platine steckt, auf der wiederum der Servo-Shield mit 16 Serv0-Ausgängen steckt. Das Ganze will durch Software angesteuert werden: Dazu bedarf es einerseits eines Sketches, andererseits einer Handy-App, die beide selbst programmiert werden wollen: Der Sketch - wie bei Arduino gewohnt - in C++. Für die Handy-App habe ich das Ionic-Toolkit und Cordova ausgewählt (d.h. Programmierung als Web-App in Typescript).

Den jeweils aktuellen Stand des Quellcodes gibt es hier:

https://github.com/BernhardBrem/SteeringMaria

Das funktioniert schon: Handy mit Arduino verbinden, Befehle zum Stellen der Servos senden. Servos dran habe ich aktuell noch nicht, da muss ich mir erst noch eine Extra-Stromversorgung an die Servo-Platine löten.

 

Hier einige ScreenShots:

Nach dem Scan findet das Handy den Arduino, der sich schon mit dem Modell-Namen meldet:

1283451385_2018-08-0122_24_58.png.a93885c7c8f946cb396e910d80a2b2a2.png

Drauf tippen, dann verbindet sich das Teil...

1474527896_2018-08-0122_25_53.png.22427f1e3bbbb58021110479bb0d4949.png

Der Servo-Dialog, mit dem ich die Servos einzeln stellen kann...

471304916_2018-08-0122_26_47.png.0857c65bc27a9b0e106986976083d105.png

Die Reaktion des Arduinos: Die Position kommt an und kann weiter verarbeitet werden. 

Sketch1.png.051e835c0365f00446a8632ef74caf36.png

Das Ganze muss natürlich noch wachsen...

 

Link to comment

Hallo

 

Interessante Idee. Die Umsetzung kann ich so nicht bewerten, da meine Programmierkenntnisse da nicht ganz hinreichen. Was ich vorerst kritisch sehe ist die Übertragungsart.

Bluetooth ist nunmal nicht für weite Strecken ausgelegt. Sollte es beim Handy als Sender bleiben müsstest du wohl eine andere Art der Übermittlung finden. Da gibts sicher was, auch wenn ich jetzt direkt als Steigerung nur eine direktverbindung mittels W-Lan im Kopf habe.

 

Grüße

 

Daniel

Link to comment
Guest moinmoinhb

Interessantes Projekt. Das mit der Reichweite wollte ich auch schon schreiben. Willst Du nur die Einstellung der Servos dem Arduino überlassen oder ein Schiff komplett via Arduino und Smartphone steuern?

Link to comment

Ja, das mit der Reichweite ist mir bewusst. Die ist laut https://en.wikipedia.org/wiki/Bluetooth_Low_Energy bei > 100m, für unsere Zwecke immer noch eher knapp, reicht aber für die ersten Versuche. Ob sie insgesamt reicht: Versuch macht kluch...

Je nachdem, ob sie reicht oder nicht, habe ich 2 Möglichkeiten:

Sollte die Reichweite ausreichen, dann kann ich mir selber einen Sender bauen, indem ich an ein ausgedientes Handy entsprechende Schiebe-Potis und ein schön stylisches Steuerradrad dran baue - das  wird dann ne Funke mit "Steam-Punk"-Anlehnung sein, deren Amaturen genau auf das Modell abgestimmt sind

 

Sollte die Reichweite _nicht_ reichen, dann schließe ich an den Arduino zusätzlich den Empfänger einer Funke an - die rücken inzwischen fast alle auch ihr Signal in serieller Form raus. Gesteuert und gefahren wird dann mit einer "normalen" Funke, im Hafen angelangt (oder in Ufernähe) können dann über das Handy die einzelnen Segel an- und ausgeschaltet werden (je nachdem, welche auch wirklich gesetzt sind) und der Trimm nachgebessert werden.

Link to comment

Hallo Bernhard,

ohne Zweifel interessant, wobei ich mich schon frage, ob es mit einer FrSky X9E nicht doch schneller gehen würde - aber die Frage hast du für dich ja schon beantwortet. Zu Bluetooth als Übertragungsprotokoll fällt mir noch die Frage nach der Übertragungsgeschwindigkeit ein, also die Zeit zwischen Befehl und Ausführung; besonders dann, wenn am Ufer später noch mehr Leute mit aktiviertem Bluetooth stehen.

Link to comment

Ja, die Latenz von so was ist natürlich bei BlueTooth nicht gerade berauschend - ich würde damit auf keinen Fall eine Drohne oder ein Rennboot fahren wollen. Aber bei nem Fischkutter denke ich reicht das locker - wir sprechen hier von Verzögerungen von deutlich unter 1/10 Sekunde, bei der Trägheit, die der Kahn hat, sollte das ausreichen.

Leider kenne ich die "tiefer" liegenden Schichten des Bluetooth-LE-Stacks nicht so genau. Ein Steuer-Befehl braucht, wenn nichts durch die "tieferen" Schichten dazu kommen würde, 7 Bytes, die übertragen werden müssen: 2 Byte für den BlueTooth Service, 2 Byte für die Bluetooth Characteristic, 1 Byte für die Servo-Nummer und 2 Byte für die Servo-Position. Also gehen nur sehr kleine Datenpaket-Schnipsel über das Netzwerk.

Wie schon gesagt, wenn das alles nicht tut, wird ein "konventioneller" Sender an den Arduino angebunden, der ist allemal schnell genug - ich bin daher auf der sicheren Seite.

Und ja: Schneller würde das mit der FrSky auf jeden Fall gehen - aber dabei würde ich nicht so viel lernen. Und mir kann diese Form der Weiter-Bildung da ich seit über 20 Jahren IT-ler bin nicht schaden - gerade Wissen, wie ein Smartphone programmiert wird, gehört heutzutage in der IT-Welt eigentlich dazu und da habe ich noch Nachhol-Bedarf :lol:

Link to comment
Guest moinmoinhb

Als ich die Überschrift las, dachte ich zuerst an meine neue Selbstbaufunke mit 'nem Arduiono Nano und mit Resten aus Schrottfunken zusammengeschustert. Funken tut man mit herkömmlichen mit 2,4 Ghz TX Modulen wie (fast) jeder sie in seiner Fernsteuerung hat und nicht über Bluetooth. Allerdings ist dann wieder langweiliger Weise das Schmartfone außenvor.

Zu meiner Funke mehr bei:

https://der-frickler.net/technik/9xown

ganz unten "Simu TX".

Link to comment
Guest LostInSpace

Bluetooth und Datenübertragung > 10m wird Dir keine Freude bereiten.

Du solltest Dir wenigstens die Mühe machen und anstelle der "Platinenantenne" richtige Antennen verbauen. Wenn man ein "Selbstbausystem" benutzt, warum dann nicht auch ein OpenSource HF-Übertragungssystem ala OpenLRS?

Link to comment

Hallo zusammen,

wie schon geschrieben: Wenn die Reichweite und die Latenz nicht passen, dann wird an den Arduino ein "herkömmlicher" Empfänger (z.B. über S-Bus) angeflanscht und über den zugehörigen Sender gesteuert. Dann wird über BlueTooth nur noch das Setup des Modells gemacht (welche Segel sind gerade gesetzt / Stellungen zu einander) - hier ist eine Touch-Oberfläche eines Handys allemal angenehmer als das, was ich so standardmäßig von Funken her kenne.

Sooo pessimistisch wie Ihr bin ich da aber eigentlich nicht: Die Funktions-LKW-Modell-Bauer setzen zum großen Teil auch auf Bluetooth, siehe z.B. http://www.geier-modellbau.de/index.html oder auch die Roboter-bauer verwenden das viel...

 

Was mich interessieren würde: Habt 

vor 9 Stunden, moinmoinhb schrieb:

Funken tut man mit herkömmlichen mit 2,4 Ghz TX Modulen wie (fast) jeder sie in seiner Fernsteuerung hat und nicht über Bluetooth.

Gibt es irgendeine Anleitung, wie man so ein TX Modul (Sender! Nicht Empfänger!) von nem Arduino aus ansteuert, d.h. Arduino sagt: Stelle Kanal auf 50% und das TX-Modul schickt das an nen Empfänger? Dann könnte ich beide Seiten selber machen, nicht nur Empfänger-Seite. Anleitungen in diese Richtung sind höchst willkommen!

 

Vielleicht noch kurz die Architektur, wie "herkömmliche" Funke und Vluetooth friedlich nebeneinander werkeln können: Sowohl BlueTooth als auch SBus senden ihre "Steuerungswünsche" an entsprechende Klassen des Sketches, diese leiten dies an eine Service-Klasse für Servos weiter, die entscheidet, was im Endeffekt zu tun ist. Hier kann sich z.B. entscheiden, daß BlueTooth nur für die Konfiguration und der SBus nur fürs Fahren zuständig ist oder ähnliches - das ist flexibel.

 

Schema.png.ad8813b485addcbd879c61fb470560a6.png

 

 

 

Edited by BernhardB
Ergänzung
  • Like 1
Link to comment

Hallo Bernhard,

tolles Projekt!

Als HF-Teil für Sender und Empfänger nehme ich XBee-Module.

Diese Module passen auch zum ARDUINO und sind bidirektional.

Gibt auch tolle Module bei Würth, liefern aber nicht an Privatpersonen.

 

Gruss

 

Gerd

Link to comment

Hi Gerd!

Super Hinweis mit dem XBee, Danke!

Hast Du da schon praktische Erfahrungen? Nach den "offiziellen" Dokumenten scheint da wenig Unterschied in der Reichweite zu BlueTooth zu sein (75 bis 100 m indoors, außen weiter), aber was sagt die Praxis? 

Link to comment

Hallo Bernhard,

ja, habe die XBee-Pro Module schon mal in der Praxis angewendet bei meiner Kompasssteuerung mit GPS-Funktionen.

Laut Datenblatt gehen die Teile bis 1600m bei optimalen Bedingungen.

Habe aber nicht die komplette Distanz getestet, ca. 300m haben mir gereicht.

Wenn meine jetzt zu enwickelnde Fernsteuerung (in Steinzeittechnik = ARDUINO -stammt nicht von mir-) werde ich mal einen ausgedehnten Langstreckentest ausführen.

Mal kucken was dabei dann wirklich rauskommt.

Willst jedoch noch längere Strecken überbrücken gibt es noch das 2,4 GHz Long Range Funkmodul AMB 2220 von Würth, Reichweite laut Datenblatt 5km.

Auf dem Bild ist der jetzige Entwurf meines Senders zu sehen mit einem Grafik-Display und paar Detailbilder  wie es später mal in der Praxis aussieht bzw. was jetzt schon neben anderen Details schon funktioniert.

Der 3D gedruckte Displayrahmen hat sich leider beim Lackieren in der prallen Sonne verzogen, kommt neu.

Gehäuse aus 1mm Alublech, geschnitten mittels Laser und CNC gebogen.

Links werkelt der ARDUINO-Mega.

Der Prozessor ist zwar etwas übertrieben aber ich brauche die seriellen Schnittstellen.

 

Gruss

 

Gerd

 

 

Tastatur.jpg

Startseite1.jpg

Navigation.jpg

  • Like 1
Link to comment
Guest moinmoinhb
Am 2.8.2018 um 19:14 , BernhardB schrieb:

Gibt es irgendeine Anleitung, wie man so ein TX Modul (Sender! Nicht Empfänger!) von nem Arduino aus ansteuert, d.h. Arduino sagt: Stelle Kanal auf 50% und das TX-Modul schickt das an nen Empfänger?

Habe ich leider noch nicht gefunden. Der Scetch von dem Frickler ist aber recht kurz und für Arduionoprofis sicherlich schnell nachzuvollziehen. Mir fehlt da leider etwas KnowHow oder etwas Zeit (ab September beschäftige ich mich mal detailierter damit).

Link to comment
  • 3 weeks later...

Absolut. :-)

Das wäre mein Traum: Einfach eine OpenTx-basierende Funke nehmen und "nur" den Sonderfunktionsteil zusätzlich selbst realisieren - z.B. über das Servo-protokoll aus dem o.g. Projekt.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.