Pi als Funkeersatz für Quadrocopter

  • Hallo Community,

    Ich bastele zurzeit an meinem ersten Quadrocopter und hätte dazu eine Frage.
    Mein Plan sieht vor die Echtzeit-Berechnung etc auf einem Arduino mit MultiWii zu realisieren.
    Gibts schon etliche Male im Internet und dazu auch super Anleitungen.
    Dieser Teil, inklusive der nötigen Hardware(ESC, Motoren, IMU) steht bereits.
    Jetzt möchte ich aber mit meinem Pi die Rx Signale, welche der Arduino erwartet simulieren und den Copter somit auch ohne Funke steuern können.

    Ist es möglich solche Signale zu erzeugen und wenn ja wie?
    Falls es Verbesserungsvorschläge, weitere benötigte Informationen o.Ä. gibt, dann lasst es mich wissen.

    Ich freu mich auf eure Antworten und bedanke mich im Vorraus!

    Lg Dicker Hobbit

  • Per Kabel
    Hatte mir das so vorgestellt, die GPIOs vom Pi mit den 4 Digitalen Eingängen vom Arduino, an welchen normalerweise die einzelnen Channel vom Reveiver der Funke angeschlossen werden zu verbinden. (Mit Levelshifter dazwischen wegen 3.3V GPIO --> 5V Arduino)
    Wenn das so gehen würde, müsste ich nämlich den MultiWii Code nicht großartig verändern, was mir sehr gelegen kommen würden

  • Nette Idee - aber Grundsätzlich ein dickes Ei, weil du keine Backup-Funktion hast, wenn die Kiste nämlich irgendwie in ein Funkloch gerät und du mit einer Funksteuerung nicht eingreifen kannst.

    Ferner ist die Rechtslage auch so eindeutig, dass du nur im Sichtbereich fliegen darfst - und das heisst 300 Meter. Bei mehr macht die Fluggeräte-Versicherung nicht mit.
    -------

    Hättest du ein Oszi zur Hand - könntest du das Signal darstellen.
    Level-Shifter bin ich mir nicht sicher. Evtl klappt das auch so, weil es beim Servo nicht auf die Spannung der Signalleitung ankommt (vom Pi zum Servo) sondern auf das Signal und "die Frequenz" die da durch den GIOP generiert wird und evtl noch im Rahmen liegen könnte. Es muss halt ein eindeutiges High- oder Low Signal sein.

    Sprich: GPIO gelb oder weisse Leitung vom Servo direkt an den PI und die "Servo's" dirket an 5 oder 6 Volt versorgt. Einen gemeinsamen Masse- also Minus Bezugspunkt solltest du haben. Plus-Leitung brauchst du ja nicht in dem Fall.

    oder du jagst das Signal vom PI via I2C-Bus an den Arduino.
    Das hätte den Vorteil, wenn du eingreifen musst, dass du die Ports für den Empfänger frei hast - und wenn da ein Signal kommt - es dir z.B. den I2C Bus am Arduino abschaltet. (Automatic Override)
    Man könnte sich ja auch ein Smartphone auf den Copter schnallen ... aber ...
    ----
    Aber die Signale an den Pi zum fliegen zu senden - ist wieder eine andere heisse Sache.

    Hat’s gerochen und gestunken, war’s Gerät von Tele…….n !

    M**le, M**le sprach die Tante, als die Waschmaschine brannte …

  • Moinsen,


    ...
    Aber die Signale an den Pi zum fliegen zu senden - ist wieder eine andere heisse Sache.


    er will ja die Signale per Kabel übermitteln ... war ja auch meine erste Frage resp. seine erste Antwort ;)


    ...
    Ist es möglich solche Signale zu erzeugen und wenn ja wie?
    ...


    im Grunde ja ... genau so, wie Du es auch geschrieben hast. Mit Levelshiftern ...
    Aber ich glaube um das genauer zu beantworten wäre u.a. ein Schaltplan so wie das später mal verbunden ist/wird nicht schlecht (für mich als "Augenmensch" und auch als kostenlose und einteigertaugliche Software dazu wäre -> Fritzing <- die erste Wahl ...)

    Unter multiwii und Arduino kann ich mir alles mögliche vorstellen ;)
    Dann wird, glaube ich, auch verständlicher, was genau Du willst ...

    cheers,
    -ds-

  • Aus einem normalen RC-Empfänger kommen die Servo-Impulse raus um das Modell zu steuern. Also musst du Servo-Impulse mit dem Pi erzeugen. Deswegen gib mal in eine Suchmaschine "raspberry pi servo", "wiringpi servo" oder "pigpio servo" ein.

    Wie freelncr77 schon geschrieben hat beachte die gesetzlichen Bestimmungen und das die eine Haftpflicht hast die das Modellfliegen beinhaltet, denn ohne darfst du nicht fliegen.

    Einmal editiert, zuletzt von snowman2 (12. März 2015 um 08:17)

  • So hab das ganze mal versucht etwas anschaulicher darzustellen (Danke an dreamshader für den Programmtipp, kannte ich noch gar nicht):

    Zu dem Schaubild:
    Ich hab jetzt mal esc und motoren jeweils zu einem servo "zusammengefasst", geht ja nur um die Anschaulichkeit der Verbindung zwischen Pi und Arduino.
    Außerdem hab ich für den Copter einen 12V 3S Lipo bei mir rumliegen und den nur mal mit dem erstbesten Powerzeichen im Fritzingplan dargestellt.
    Bitte seht über diese Kleinigkeiten also hinweg und auch über fragwürde künstlerische Gestaltung ( Ich war in der Schule in Kunst immer Kreide holen :P )

    Um das ganze Problem zusammenzufassen:
    Der Pi soll mit SSH o.Ä. angepeilt werden und dann Signale an den Arduino senden anstatt einer Funke. I2C Kommunikation hab ich auch schon überlegt, aber da Multiwii die Signale vom Receiver über 4 digitale Pins bekommt, wollte ich das ganz gern mit der Schaltung(siehe Anhang) realisieren, da ich gern die MultiWii Software verwenden wollte.

    dreamshader: Was genau kann man sich noch alles unter Arduino und MultiWii vorstellen? Habe mir die neuste MultiWii-Version runtergeladen, Config-Datei meinen Wünschen angepasst und auf den Arduino (Uno) geflasht. Oder gibt es noch andere Varianten?

    An rechtliche Schwierigkeiten habe ich noch gar nicht gedacht. Danke für den Hinweis!

    Ich hoffe ich konnte mein Problem ordentlich darlegen und freue mich auf eure Antworten.

    Lg Dicker Hobbit

  • Ja hey,


    So hab das ganze mal versucht etwas anschaulicher darzustellen ...


    na das sieht doch schon mal nach was aus :thumbs1:


    ...
    Um das ganze Problem zusammenzufassen:
    Der Pi soll mit SSH o.Ä. angepeilt werden und dann Signale an den Arduino senden anstatt einer Funke. I2C Kommunikation hab ich auch schon überlegt, aber da Multiwii die Signale vom Receiver über 4 digitale Pins bekommt, wollte ich das ganz gern mit der Schaltung(siehe Anhang) realisieren, da ich gern die MultiWii Software verwenden wollte.
    ...

    hm ... was mir dabei irgendwie fehlt ist die Fernsteuerung :s
    Ich hab' -> hier <- extra mal eine Anleitung durchgelesen, aber da steht nichts darüber. Es wird lediglich plötzlich über Steuerknüppel und das Trimmen geredet.
    Entweder steh' ich da auf dem Schlauch oder ich bin zu blöd ...
    Wo zum Henker kommt der Empfänger hin und um was für einen handelt es sich dabei. Das ist ja gerade für Dein Vorhaben das Wichtigste :s



    ...
    dreamshader: Was genau kann man sich noch alles unter Arduino und MultiWii vorstellen?
    ...

    na such Dir -> hier <- halt was aus ;)

    cheers,
    -ds-

  • Ich habe das Pinout nach der Anleitung von diesem Blog (http://sgeorgiev.com/blog/2014/02/2…on-arduino-uno/) entnommen. Im Prinzip kann jede normale Quadrocopterfernbedienung(4-Kanal) verwendet werden und der Receiver würde wie in dem Bild auf dem Blog angeschlossen werden. Der Receiver würde also einfach direkt an den Arduino geklemmt.

    OK jetzt weiß ich was du meinst :D
    Ich verwende kein extra FlightController, sondern verwende den Arduino Uno mit dem MPU6050(Gyro+Acc) als Sensor. Das kann man dann ganz bequem in der MultiWii-Config Datei einstellen. Ich hoffe ich habe dich diesmal richtig verstanden :blush:

    Lg Dicker Hobbit

  • Mönsch!
    Jetzt hätte ich Dich fast vergessen :blush:

    Also: -> hier <- wird imho ganz gut beschrieben wie das mit den Funksignalen funktioniert.
    Mit einer passenden Library sollte es möglich sein, die entsprechenden Signale mit dem Raspi zu generieren. Vier Steuerleitungen sollten noch per Software möglich sein ... und da Du ja scheinbar auch nicht vor hast bzw. es nicht möglich ist, in diesem Modus "in die Luft" zu gehen, bist Du da imho im grünen Bereich.
    Das Stichwort wäre "Servosteuerung" ...
    Die Forensuche bringt da einiges zum Vorschein, das -> hier <- zum Beispiel.
    Es muss halt für jede Steuerleitung ein PWM Signal in der Form generiert werden, wie es auch zur Steuerung von Servos verwendet wird.
    Also alles kein Hexenwerk ...

    Große Preisfrage: hilft Dir das jetzt weiter :s

    cheers,
    -ds-

  • Danke für deine schnelle Antwort!
    Hab selbst ein bisschen mit PWM-Signalen rumprobiert und versucht ein Throttle Signal einer normalen Funkfernbedieung zu erzeugen. Da ich aber weder eine Funke noch einen Ozzi zu Hause rumstehen habe, bleibt mir wohl nichts anderes übrig als wildes rumprobieren.

    Zitat


    Also: -> hier <- wird imho ganz gut beschrieben wie das mit den Funksignalen funktioniert.

    Irgendwie will mir diese Seite gar nicht weiterhelfen. Soweit ich das wird dort nichts über Funksignale an sich geschrieben, sondern lediglich wie man den Empfänger anschließt (oder sehe ich da was falsch ? )

    Zitat

    ... und da Du ja scheinbar auch nicht vor hast bzw. es nicht möglich ist, in diesem Modus "in die Luft" zu gehen,

    Wie meinst du das, warum sollte der Copter mit meinem Aufbau nicht Fliegen können ?

    Ich werde jetzt erstmal weiter versuchen passende PWM Signale, die MultiWii erwartet zu finden. Falls ich Erfolg habe, schreibe ich die Lösung selbstverständlich hier hinein.

    Lg Dicker Hobbit


  • Irgendwie will mir diese Seite gar nicht weiterhelfen. Soweit ich das wird dort nichts über Funksignale an sich geschrieben, sondern lediglich wie man den Empfänger anschließt (oder sehe ich da was falsch ? )
    ...


    nun, erstmal geht es um den Anschluss.
    Und dann hatte ich Dir hatte ich doch einen Link zum Thema Servo-Steuerung gepostet ... mehr an Info brauchst Du imho nicht ...


    ...
    Wie meinst du das, warum sollte der Copter mit meinem Aufbau nicht Fliegen können ?
    ...


    ich meinte mit dem RPi als Simulator per Kabel verbunden ;)

    cu,
    -ds-

  • Achso ok da habe ich dich falsch verstanden :D

    Ich weiß wie ich mit dem Pi Servos ansteuere/PWM Signale erzeuge. Mein Problem war bis jetzt, welche Signale ich schicken muss. Zurzeit funktioniert das ganze soweit, dass ich mit einem kleinen Pythonscript, das ich geschrieben habe, die einzelnen Signale(Throttle, Yaw, Pitch, Roll) senden kann und der Arduino das ganze auch versteht. (Mittels MultiWiiConf überprüft). Jetzt muss ich nur noch herausfinden, wie ich verschiede Stickpositionen simuliere. Dies wird gebraucht, um z.B. die Motoren scharf zu machen.

    Das sollte allerding nur noch eine Frage der Zeit sein, da ich wahrscheinlich die einzelnen Komponenten nur vermischen muss (Also z.B. Yaw und Pitch up um Stickausschlag nach rechts zu simulieren etc.)
    Hier sind die einzelnen Stickpositionen aufgelistet, die ich simulieren muss:
    http://xxl-modellbau.de/abbildungen/qu…nfiguration.pdf

    Danke für deine Hilfe!

    Lg Dicker Hobbit


  • ....
    ... da ich wahrscheinlich die einzelnen Komponenten nur vermischen muss (Also z.B. Yaw und Pitch up um Stickausschlag nach rechts zu simulieren etc.)
    ...

    so sehe ich das auch ... also im Prinzip alles relativ logisch und nachvollziehbar.
    Du bist da imho eh auf einem guten Weg :thumbs1:

    Wenn noch was konkretes anliegt, einfach nachhaken.
    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!