PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fernsteuerung mit Controller verbinden



sailerhro
07.02.2008, 07:58
Hallo,

ich baue gerade ein modell-segelboot mit Schwenkkiel. letztendlich geht es darum, bei schärglage des bootes ein Kontergewicht zu bewegen. welches automatisch die Schräglage korrigiert.

Meine Fragen:
-gibt es ein Bauteil, welches die Neigung eines Objektes bzgl. der Erdanziehung in Grad festestellt? ich habe den http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=34 Neigungsschalter gefunden, der scheint jedoch nur die Zustände Neigung/Nicht-Neigung zu haben...

-ist es möglich, mit Hilfe des Joypads sich selber eine Fernsteuerung zu bauen , welche eine Reichweite von bis zu 150 Metern hat, oder sollte man lieber Standart-Sender und -Empfänger benutzen und diesen über einen Controller mit den Servos/Motoren verbinden?

Danke für die Antworten

Willa
07.02.2008, 08:10
Hi!
Mit dem Easy Radio Modul sollte so eine Reichweite im Freifeld locker möglich sein. Außerdem hat ein µC ja auch noch den Vorteil dass du ein prima Failsave programmieren kannst. Also falls außer Reichweite -> dann kannste einfach umdrehen und segel öffnen, oder was halt sinnvoll ist.
Den einzigen Nachteil des EasyRadio's den ich bisher festgestellt habe ist die niedrigere Rate Signale/sekunde. Aber das dürfte bei einem Segelboot wohl nicht sooo ins gewicht fallen....

Viele Grüße,
William

T.J.
07.02.2008, 10:17
evtl. kannst du für die Neigung einen Beschleunigungssensor verwenden? Es gibt auch für KFZ Alarmanlagen elektronische Neigungssonsoren, aber wie die funktionieren weiß ich nicht.

Teri
07.02.2008, 11:58
Wie wäre es mit einem Poti, wo ein Gewicht mit etwas Abstand zur Achse befestigt ist?
Das müsste sich doch mit einem analogen Eingang relativ einfach auswerten lassen.

LG
Teri

sailerhro
07.02.2008, 13:52
Das mit dem Poti ist eine gute Idee. was für ein Signal gibt so ein Potentiometer zurück? kann ich diese relativ einfach mit einem controller auswerten?

Die Sache mit dem Beschleunigungssensor ist echt gut! wenn er in x-y-Richtung misst (x senkrecht, y waagerecht), würde man über die differenz der beiden werte mit Winkel=arctan(y/x) den Winkel rausbekommen. leider finde ich keine Beschleunigungssensoren für unter 20€...

zu der Funk-geschichte (ja, ich bin absoluter Anfänger...):
als Sender würde ich ein Joypad, akku, Easy radio mit langer antenne (und Controller?) nehmen.
Auf dem Boot selber würde ich den Microcontroller mit ausgleichsgewicht, segelwinde und Ruder bauen.
Per Joypad kann ich dann Segel dicht ziehen, steuern, Segel hochziehen usw, richtig?

reicht ein MEGA8 für diese zwecke? kann ich Graupner-Servos an die (fertigen) Platinen anklemmen, oder sollte ich Fortuba-Servos nehmen?
ich will mit einem Motor ein segel hochziehen. könnte ich den Motor über einen handelsüblichen Fahrtenregler betreiben und diesen dann mit dem controller ansteuern?
Problem: das boot wiegt nachher etwa 4 Kg, wobei 2Kg davon Blei sein soll. Das heißt, ich will mir keinen schweren (teuren) schritt- oder Getriebemotor in das boot bauen...

Schöne Grüße

Gundram


http://www.analog.com/en/subCat/0,2879,764%255F800%255F0%255F%255F0%255F,00.html

Teri
07.02.2008, 21:20
Ein Poti gibt kein Signal zurück sonder es "verändert seinen Widerstand".
Der µC bekommt ja 5V, oder?
Dann kannst du z.B. ein Poti mit hohem Widerstand nehmen so 100K, Schleifer an den analogen Eingang, ein Anschluss vom Poti an +5V und der andere an Masse.
Oder, nicht direkt an Masse und +5V, sondern noch je einen Widerstand davor.
Je nachdem was der µC verkraftet und was ein gutes Ergebnis liefert.
Müsste doch gehen oder?

Und es kostet fast nix, 40Cent oder weniger für ein einfaches.

LG
Teri

sailerhro
08.02.2008, 13:11
danke Teri, genau das wollte ich wissen! aber das nächste mal google ich das einfach mal... ist ja nichts anderes als ein Widerstand mit Abgriff in der mitte...

Das Signal, welches dann vom Poti kommt muss ich dann mit einem ADC umwandeln und kann das digitale signal dann an den controllergeben, richtig?

könnte noch jemand bitte einem Blick auf den "Aufbau" meiner "Fernsteuerung" in meiner letzten Antwort werfen? Danke ;-)

Schönen Gruß Gundram

sailerhro
13.02.2008, 18:39
Noch eine Frage:
ich will über eine 4-Kanal oder 6-Kanal-Fernsteuerung das Segelboot steuern, wie es auf der Grafik dargestellt ist.
An den Controller sollen angeschlossen werden:
Eingänge:
- 1x 2-Achsen-Beschleunigungsmesser, Signal: PWM
- 5x Bumper
(http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=71&products_id=100)
- 4x Sendersignal Signal (so viel ich weiß): PWM
Ausgänge:
- 4x Fahrtenregler mit angeschlossenen Motoren Signal (glaube ich): PWM
- 1x Servo, Signal(glaube ich): PWM

wäre der Aufbau in der Weise möglich?

Hellmut
13.02.2008, 22:01
Hallo sailerhro

Ich baue selber ein Segelboot in welchem im Modell von uC diverse Funktionen implementiert werden. Ich habe jedoch nicht einen Schwenkkiel, sondern einen Spinnaker als besonderes Bonbon im Boot.

Ich verstehe jedoch deine Schaltung/ Anwedung nicht ganz.

In der Schaltung oberhalb der Querlinie verwendest Du 2 Funkstrecken! Vom RC-Sender zum RC Empfänger, vom Empfänger physikalisch mit dem Funkmodul von Robotikhardware zu den Sensoren und Aktoren. Warum da den RT868F4?

Ich setze den Empfänger in das Modell, die Servoausgänge vom Empfänger schliesse ich an einen mega168. Der mega168 statt dem mega8 weil dieser praktisch an jedem Pin ein Interrupt erhalten kann wenn jeweils die steigende und die fallenden Flanken des Signals einen Pegelwechsel erzeugen. So kann der uC alle 8 Kanäle auswerten und die Aktionen auslösen die ich möchte.

In deiner Anwendung würde ich entweder die Servos direkt an den Empfänger anschliessen, oder wenn über den uC dann diese durchschleifen. Dank der PWM im uC und mit einem BTS840 und zwei IR540 plus etwas Logik kann ich den Fahrtregler mit dem UC direkt implementieren.

Unterhalb der Querlinie ersetzt Du die RC-Funke und Empfänger durch den RT868F4. Planst aber nur Daten vom Joystick zum Modell zu senden. Wenn ich eine solche Funkstrecke einsetzen würde, dann würde ich auch Telemetriedaten zurücksenden. Andernfalls ist die RC-Funke das bessere User-I/F.

Im Forum RCLine findest du einen Thread wo man die RC-Funke durch eine Funkstrecke ersetzt wie du sie hier planst. Ich würde mich dort schlau machen.

Solltest Du interesse an Schaltungsunterlagen und Kode interessiert sein, so kannst du diese dort bei RCLine.de im Atmel Grundkurs vom Torsten finden. Natürlich teile ich gerne mit Dir die arbeiten die ich bereits gemacht habe.

Ich bin mit meiner Entwicklung noch nicht soweit, aber ich habe statt eines Schwenkkiels an eine aktive Aufrichtung per "Flügel" gedacht. Die könnten auch, was bei Wind aus Achtern immer wieder vorkommt, dem Eintauchen des Bugs entgegensteuern. Die "Flügel, bzw. das Ruderpaar, würde mit 45 Grad zur Senkrechten, also nach unten, eingebaut und per Gyro gesteuert. Das würde eh viel schneller reagieren und man könnte die Steuersignale vom Gyro über den uC eventuell noch beeinflussen.

Aber wie gesagt das sind noch so Gedanken.

Von einem Amerkaner, Doug, hatte ich sowohl das Prinzip für den Spinnaker erklärt bekommen, wie auch ein System um über Deck Gewichte zu verschieben um ein besseres Aufricht Moment zu erhalten. Letzteres gefällt mir aus diversen Gründen aber nicht.

sailerhro
14.02.2008, 09:28
Hallo Helmut,

schön, dass ich nicht der einzige Verrückte bin, der so ein Schiff versucht, zu bauen! ;-)

zu meine Zeichnung.. ich habe eine falsche Beschriftung: der RC-Empfänger schickt die Daten natürlich zu einem Controller^^

das Boot, welches mir vorschwebt, ist ca. 1,50m lang, Carbon-Rumpf, Carbon-Mast, Schwenkkiel und Genacker. (an einen Spinacker traue ich mich noch nicht ran!) Falls du Interesse an dem Rumpf hast, wir bauen in den nächsten paar Monaten (wenn alles klappt) eine Negativform! im Anhang ist die Positivform zu sehen. Das ist der Nachbau des "Volvo Open 70".

Ich denke auch, dass ich die obere Version nehmen werde, schon alleine, weil die Funkübertragung Problemlos sein wird.
wo hast du das mega168 her? ich finde es nur noch im Bausatz: http://shop.embedit.de/product__395.php
Hast du den Controller schon programmiert? dann könntest du mir mal den Quellcode schicken, würde gerne sehen, wie das funktioniert mit den Interrupts...
was verstehe ich unter "BTS840 und zwei IR540"? sind das zwei Widerstände und ein Transistor? ja, ich bin neu und ich kenne im Prinzip nur R, L, C und Transistor ;-)

von den Unterwasser-Flügeln würde ich absehen (wenn ich das richtig verstanden habe) ein Unterwasserflügel hat viel zu viel Widerstand und versetzt das Boot bei schräglage zur Seite und somit segelt das Boot seitwärts ==> großer Wasserwiderstand.
eher mithilfe eines in längsachse bewegenden Gewichtes (zb. akku) arbeiten.

Hellmut
14.02.2008, 12:13
Der mega168 kann z.B. bei Reichelt erworben werden und von der Hardware kann man diesen in Schaltungen mit dem mega8 ersetzen.

Schau dir jedoch bei rcline.de den Atmel Einsteigerkurs an. Ich würde mir für denEinsatz im Modell die Schaltung selber aufbauen, entweder auf einer Lochrasterplatine, oder auf einer Kupferplatine die Leiterbahnen ätzen oden ausfräsen. Zum Feuchtigkeitsschutz kann an die Schaltung in der Regel auch in Epoxy eingiessen. Bei Leistungshalbleiter muß allerdings auf die Wärmeabfuhr geachtet werden.

Zu meinem Segelbootmodell, ich baue die Voilier nach einem Plan aus dem vth-Verlag. Das Boot ist 151cm lang und ist eine Langkielyacht. Mir macht die Arbeit mit Holz Spaß und auch die Optik ist einfach Spitze.

Ich bin kein Regatta-Fahren-Fan und liebe das Fahrbild einer konventionellerren Yacht. Aber zurück zur Elektronik.

Spinnaker ist garnicht so schwer zu bauen. Solltest du interesse haben werde ich mein Wissen gerne mit Dir teilen. Man braucht allerdings Platz im Rumpf.

Murdoc_mm
14.02.2008, 14:04
Hi,

ich baue zwar keine Boote aber ich glaub ich kann dir trotzdem helfen. \:D/


Das mit dem Poti ist eine gute Idee. was für ein Signal gibt so ein Potentiometer zurück? kann ich diese relativ einfach mit einem controller auswerten?

Das Poti ändert seinen Widerstand und damit die Spannung die am Mittelabgriff rauskommt.

Eine Spannung ist mit fast jedem yC (MikroController z.B.: Mega8) sehr einfach zu messen. Das sollte absolut kein Problem sein. Die meisten haben nämlich schon mehrere ADCs eingebaut.


Die Sache mit dem Beschleunigungssensor ist echt gut! wenn er in x-y-Richtung misst (x senkrecht, y waagerecht), würde man über die differenz der beiden werte mit Winkel=arctan(y/x) den Winkel rausbekommen.

Beschleunigungssensoren sind leider etwas schwieriger auszuwerten als du es beschrieben hast (Stichwort statische und dynamische Beschleunigung). Im Prinzip hast du recht allerdings nur wenn das Boot steht oder es sich wirklich sehr sehr langsam bewegt (dann haste (fast) nur statische Beschleunigung). Sobald du etwas schnellere Bewegungen zu irgendeiner Seite hast (auch schwanken durch Wellen, zittern der Halterungen,...), wird diese Bewegung mit erfasst und dein Winkel verschiebt sich (statische plus dynamische Beschleunigung).


zu der Funk-geschichte (ja, ich bin absoluter Anfänger...):
als Sender würde ich ein Joypad, akku, Easy radio mit langer antenne (und Controller?) nehmen.
Auf dem Boot selber würde ich den Microcontroller mit ausgleichsgewicht, segelwinde und Ruder bauen.
Per Joypad kann ich dann Segel dicht ziehen, steuern, Segel hochziehen usw, richtig?

Jap. Du brauchst als Sender einen yC an den du das Easy Radio, das Joypad und was du sonst noch haben möchtest (Knöpfe, LEDs,...) dranhängst und als Empfänger einen yC mit Easy Radio, Motoren für Segel usw. und Servos. Alle Sensoren und Aktoren also immer an den jeweiligen yC.


reicht ein MEGA8 für diese zwecke?

Kommt drauf an wie viele Motoren, Servos und Sensoren du haben möchtest und wie umfangreich dein Programm sein soll. Locker ausreichen sollte es für einen Schritt-/Getriebemotor, 2 Servos, das Easy Radio, das Poti mit dem Gewicht und ein einfaches bis mittleres Programm.


kann ich Graupner-Servos an die (fertigen) Platinen anklemmen, oder sollte ich Fortuba-Servos nehmen?

Was ist den der Unterschied? Wenns nur die Stecker sind dann isses egal welchen Servo du nimmst, da du nur entsprechent die Platine verkabeln musst.


ich will mit einem Motor ein segel hochziehen. könnte ich den Motor über einen handelsüblichen Fahrtenregler betreiben und diesen dann mit dem controller ansteuern?
Problem: das boot wiegt nachher etwa 4 Kg, wobei 2Kg davon Blei sein soll. Das heißt, ich will mir keinen schweren (teuren) schritt- oder Getriebemotor in das boot bauen...

Ich glaube man kann die Handelsüblichen Fahrtregler nutzen aber ich bin mir nicht sicher (da musste mal noch jemand anderes fragen).

Was meinst du mit "ich will mir keinen schweren (teuren) schritt- oder Getriebemotor in das boot bauen"? Der Motor muss bloß genug Kraft haben das Segel hochzuziehen. Der Fahrtregler ist dabei erstmal nebensächlich.



http://www.analog.com/en/subCat/0,2879,764%255F800%255F0%255F%255F0%255F,00.html

Bevor du dort einen bestellst schau dir erstmal an ob du die Teile auch löten kannst. Die Chips sind nämlich nicht mal so groß wie mein kleiner-Finger-Nagel.

Und nun noch ein paar Fragen meinerseits:

Kannst du eine Programmiersprache? Bascom, C oder Assembler?

Hast du ein paar Erfahrungen mit Elektronik?

Wenn ja: Welche und wie weitreichend?

Wenn nein: Hast du vielleicht einen Elektroniker im Freundeskreis (am besten natürlich einen der sich mit sowas beschäftigt) der dir helfen kann?

So, genug Text fürs erste.

Gruß

sailerhro
14.02.2008, 20:25
Hallo Murdoc_mm,

danke für die ausführliche und schnelle Antwort!

ich wusste nicht, dass es einen AD-Wandler direkt auf dem Mega168 gibt, das erleichtert die schaltung schon ein bisschen!

Ich werde doch eine Handelsübliche Fernsteuerung nehmen und den uC lediglich zwischen Empfänger und Servos/Motoren setzen.

Du hast recht, der Unterschie zwischen Futuba und Graupner ist nur der Stecker, die Signale sin alle PWM.

mit schweren (teuren) Motor meinte ich nur, dass ich keinen 12V Brushless -Motor brauche, sondern nur einen 6-8V-Motor, der schön leicht ist. die Fahrtenregler wiegen nichts, das ist klar...


Zu mir:
ich habe bisher noch nie mit uC's gearbeitet
ich Studiere Technomathematik (hälfte Mathe, drittel E-Technik, sechstel Informatik) im 3. Semester.
Programmiererfahrungen in C/C++, php, Visual Basic
Assembler sieht noch ein bischen komisch auch, aber mit den Hilfen online geht das denke ich ganz gut!
Elektrotechnik habe ich Grundlagen E-Technik 1-3 und "Signale und Systeme 1" gehört.
dazu kommt, dass ich handwerklich nicht auf den Kopf gefallen bin, ich hoffe, ich bekomme das schon hin.

zwei Fragen:
Reicht der Mega168 für meine gewollten Funktionen?
1x analoger Eingang
5x analoger oder Digataler Eingang
3x digitaler Eingang (PWM)
4x Motoransteuerung
Spannungsverstärkung
ich will auf einen Fahrtenregler verzichten. kennt jemand eine Schaltung, um das zu realisieren? mir schwebt vor, die digitale Ausgangsspannung mit einem Tiefpass zu glätten und anschließend über eine Transistorschaltung zu verstärken.

Schönen Gruß

Hellmut
15.02.2008, 00:48
Hallo sailerho

Ich vermute mit "3x digitaler Eingang (PWM)" meinst du die Signalleitungen vom Empfänger. Der R/C-Empfänger gibt auf jedem Kanal über eine Leitung Impulse aus, welche circa. zwischen 1ms und 2ms Länge hat. Die Auswertung der Länge des Impulses gibt an welche "Knüppel-Stellung" der Benutzer an seiner Funke hat. Das wiederholt sich alle 20ms.

Am Effektivsten, also damit der uC außer die Signale vom Empfänger zu erfassen auch Anderes macht, legt man eine solche Signalleitung vom Empfänger an ein Interrupt fähigen Port. Ein Interrupt wird durch den Wechsel des Pegels am Pin ausgelöst und der uC springt in eine sogenannte Interrupt-Service-Routine, kurz ISR. Beim mega8 kann man da den Pin INTO, also vom Port D den Pin 2, das ist physikalisch am mega8 oder mega168 das Pin 4 verwenden.

Jetzt wird ein Timer gestartet.

Wenn der Impuls zu Ende ist, der Pegel also wieder von logisch "high" auf "low" geht, wird der INTO ein zweites Mal ausgelöst, der aktuelle Wert des Timers erfasst und aus dem Wert des Timers ist eine Impulslänge als digitaler Wert verfügbar.

Der mega168 hat für unsere Anwendung gegenüber dem mega8 den Vorteil an praktisch jedem Pin ein Interrupt auslösen zu können. Diese "Pin Change Interrupt Requests", "PCINT0" bis "PCINT23" sind in jeweils Gruppen von 8 zusammengefasst. Wenn irgend ein Interrupt request in der Gruppe ausgelöst wird, also z.B. PCINT0 bis PCINT7, lässt dieser den uC in die ISR PCINT0 springen, wo man analog zu oben vorgeht. Für die nächsten 8 PCINTxx wird die ISR PCINT1 und für die letzten 8 die ISR PCINT2 angesprungen. Man fasst also die Auswertung der Signale von bis zu 8 Kanälen des RC Empfängers in einer solchen Gruppe zusammen.

Der Kode hierzu ist wie bereits verwiesen bei RCline.de herunter ladbar.
Dort wird die erkannte Impulslänge mit einer Auflösung von mehr als 800 Schritten auf einem LCD Display angezeigt. Die HW ist "idiotensicher", also auch für mich erfassbar gezeigt und beschrieben.

Um einen Fahrtregler zu implementieren braucht man diese Werte nur noch passend in eine PWm Steuerung einfliessen zu lassen. Auch diese HW und Software ist fertig verfügbar.

Durch die Lernkurve schlauer geworden setzen wir jetzt für die H-Brücke im Leistungsteil einen BTS840 ein, der bei pollin für 1,95 € erworben werden kann und 2 IRF540 die je für 0,54 € bei reichelt erworben werden können. Mit einem 74HC08 und einem 74HC86 implementieren wir die Logik für Vorwärts- und Rückwärts-Betrieb des Motors ein. Der uC mega8 kostet 1,70 €, der mega168 3,20€. Ich würde an deiner Stelle einen der Fahrtregler im mega168 mit implementieren und einen 2. Mit einem mega8 um Kosten zu sparen.

Ich habe es im 2. Anlauf geschafft die Schaltung erfolgreich aufzubauen, basierend auf dem Atmel Einführungskurs bei ww.rcline.de und hatte als Verlust eine Lochrasterplatine, ein paar IC Sockel, Widerstände, Elkos, Poti und Zeit. Nun bin ich aber auch denkbar schwerfällig. Jetzt baue ich einen Fahrtregler an einem Abend auf und er läuft auf Anhieb.

Ich kann Dir aus eigener Erfahrung nur sagen, dass das durchlaufen dieser Lernerfahrung einem gerade im Schiffsmodellbau unglaubliche Möglichkeiten eröffnet und völlig neue Wege Funktionen zu implementieren.
So werde ich statt einem Gummi zum straff halten der Schote jeweils einen kleinen 12V DC-Motor, bei Pollin für 0,95 € zu erwerben, verwenden. Ich habe dazu unter "digitales Gummi" bereits einen Thread geschrieben.