Posts mit dem Label indoor werden angezeigt. Alle Posts anzeigen
Posts mit dem Label indoor werden angezeigt. Alle Posts anzeigen

Samstag, 1. Februar 2020

Guter Schüler


Das ist ein vorwiegend technischer Artikel über die Programmierung des Tello.
Wer sich nur für das fliegen und fotografieren/filmen mit Quadrocoptern interessiert, findet die relevanten Artikel hier

Statt des Controllers der für Kinderhände gebaut ist hätte ich auch meinen guten, alten 35MHz Sender zerlegen und umbauen können. Auch er hat Potentiometer die man anzapfen könnte, und in seinem Gehäuse hätte ich den Arduino locker untergebracht.

Mein guter, alter 35MHz Sender
Aber ich habe es nicht übers Herz gebracht den Sender kaputt zu machen, auch wenn wir aus guten Gründen nicht mehr mit 35MHz fliegen. Wie viele Abstürze gehen auf das Konto der Funkstörungen! Heute fliegen wir mit 2,4GHz und die Funkstörungen sind Geschichte.

Der Sender hat eine Lehrer-Schüler-Buchse, praktischerweise ein 2,5mm Klinkenstecker den man leicht bekommt. Sie ist dazu gedacht, zwei Sender miteinander zu verbinden. Der Schüler-Sender schickt seine Knüppelstellungen über das Kabel an den Lehrer-Sender. Der Lehrer kann über einen Schalter entscheiden ob sein Sender das Signal des Schülers an das Modell schickt oder die Daten des Lehrer-Senders. Ich verwende meinen Sender als Schüler-Sender und den PC als "Lehrer-Sender".

Das Signal das bei der Schüler-Buchse heraus kommt lässt sich auslesen und verarbeiten.

8-Kanal PPM-Signal

Das PPM (Puls-Pause-Modulation) Format kodiert die Information in Pulsen, deren Dauer von der Knüppelstellung der jeweiligen Kanäle abhängt. Wie man im obigen Oszillogramm sieht, handelt es sich um einen 8-Kanal-Sender. Wenn ich die Knüppel bewege verschieben sich die Pulse.



Ich habe mir schon überlegt wie man ein Programm realisieren könnte das diese Zeitdauern misst. Relativ kompliziert, mit Interrupts. Aber ich bin doch sicher nicht der erste der das versucht und habe Tante Gugl gefragt. Sie hat mir zwei nützliche Informationen gegeben.
  1. Arduino stellt einen Befehl "pulseIn" zur Verfügung der Pulslängen misst 
  2. Jemand hat schon ein Arduino-Programm geschrieben das genau das macht
Dieses Programm nehme ich als Basis um mein eigenes Programm daraus zu entwickeln. Werte umrechnen, ins richtige Format bringen und an der seriellen Schnittstelle ausgeben. Fertig. Na ja, ganz so einfach wie ich es mir vorgestellt habe war es dann doch nicht.

Man könnte jeden Arduino dazu verwenden, aber ich bin zufällig auf eine besondere Ausführung gestoßen: Beetle BadUSB. Ein Arduino auf einer winzigen Platine die sich direkt in USB-Buchse des Computers stecken lässt.

Zusätzlich handelt es sich um einen 32U4-Prozessor mit dem man die Maus- und Keyboard-Bibliotheken des Arduino verwenden kann. Für meinen konkreten Anwendungsfall brauche ich dieses Feature nicht, weil ich auf der PC-Seite auf die (simulierte) serielle Schnittstelle zugreifen kann. Aber mit Maus- und/oder Keyboard-Simulation kann man jedes beliebige Programm steuern, z.B. Spiele.

Ob du es glaubst oder nicht,
das ist ein Arduino!
Naturgemäß ist die Anzahl der IO-Pins auf dieser Platine eingeschränkt, es stehen nur je 3 digitale und analoge Ein/Ausgänge zur Verfügung. Mit meiner angedachten Interrupt-Lösung hätte ich keine Chance weil es leider keine interrupt-fähigen Eingänge sind, aber für die (blockierende) pulsIn-Funktion kann man jeden Eingang verwenden.


Ein bisschen Schrumpfschlauch und fertig.
Ich habe damals noch einen zusätzlichen Schalter in den Sender eingebaut. Diesen verwende ich jetzt um den Befehl zum Landen zu geben. Außerdem baue ich mein Programm so dass es den Befehl zum Landen schickt wenn das PPM_Signal ausfällt. Sender ausschalten und Tello landet. Sender wieder einschalten und Tello ist startklar.

Und dann der erste Probeflug mit der neuem Konfiguration. Der "richtige" Sender vermittelt ein ganz anderes Gefühl als die als die kleinen Spielkonsolen und erlaubt eine wesentlich feinfühligere Steuerung. Trimmung, Expo und einstellbare Rückholfedern stehen zur Verfügung. Das steigert das Flugvergnügen noch einmal!

Wie immer gibt es mein Programm als open-source auf GitHub, siehe hier

Projekt abgeschlossen. Abgehakt? Dann kennst du mich schlecht. Die nächsten Ideen geistern schon in meinem Kopf herum. Den Sender mit nach draußen nehmen, aber den Laptop auf der Parkbank platzieren? Oder auf dem Schoß (dazu ist er ja gedacht)? Nicht so gut. Wie wäre es mit einem kompakteren Rechner? Da gibt es doch den Raspberry Pi. Das Python-Programm auf dem Raspberry zum Laufen bringen und den Raspberry an den Sender montieren. Und noch ein paar Schieber, Schalter, Taster in den Sender einbauen. Und den Raspberry mit dem Handy verbinden,.....

Oder einen Arduino NanoESP ins Gehäuse des Sender einbauen und direkt, ohne zusätzlichen Rechner, mit dem Tello kommunizieren.

Hier wird es bald wieder etwas neues zu lesen geben.


Montag, 20. Januar 2020

Eigenbau-Controller

Am PC programmieren macht Spaß. Während Tello gerade nicht automatisch und von einem Programm gesteuert fliegt gebe ich Befehle per Hand ein. Über die Tastatur. Das ist nicht sehr komfortabel.

Ich habe doch noch einen Controller von so einem 15€-Quadrocopter herum liegen der nicht mehr fliegt. Zu viel Staub, Haare, vielleicht auch überhitzt, und immer noch nicht entsorgt. Sein Controller kommt jetzt zu Ehren.


Ein Arduino findet sich auch noch in der Bastelkiste, und so entsteht ein Drahtverhau der wie Daniel Düsentrieb's neueste Erfindung aussieht.

Der Arduino wird in das Gehäuse eingebaut, ein entsprechendes Python-Programm auf der PC-Seite, und der Controller darf jetzt ein viel edleres Fluggerät steuern.

Mit den winzigen Joysticks hat man wenig Gefühl, kein Wunder dass der zugehörige Quadrocopter so oft gegen die Wand geklatscht ist. Aber für den eigenstabilen Tello reicht es. Und die Bastlerei an einem verregneten Wochenende hat Spaß gemacht.

Das Rezept zum Nachkochen ist hier: homebrew-usb-controller-for-tello

Samstag, 11. Januar 2020

tell Tello oder Der Barometermacher auf der Drohneninsel

Von einem Fliegerkollegen
vorgeschlagener Testaufbau ;-)
© Terry
Viele Stunden sind in die Programmierung gelaufen. So wie es Raimund's Barometermacher auf die Zauberinsel verschlagen hat, hat mich die Programmierung des Tello in ihren Bann gezogen. Diverse features kann man nur ausprobieren indem man ein Programm schreibt. Aus einem einfachen demo-Programm das man im Internet findet wird ein kleines Testprogramm das immer weiter wächst.

Eine beispielhafte Anwendung war der Test des Luftdruck-Sensors um ihn später für eine Regelung der Flughöhe einzusetzen.



Der Versuch, ein graphisches user interface (GUI) mit tkinter zu bauen, ist gescheitert. Es hat zwar funktioniert, aber das timing hat nicht gepasst und Werte die ich von Tello ausgelesen habe waren zwar auf den ersten Blick plausibel aber nicht korrekt.



So bin ich reumütig zum guten alten Console-Programm zurückgekehrt. So schlecht ist das aber auch nicht. Was mein Programm kann:
  • Fly Tello with text commands (like "ccw 90") or with keys (like w/a/s/d and cursor keys)
  • execute commands from a text file
  • watch selected variables from the status string and write them to a comma-separated list (csv-format)
Die erste Probe war eben das Auslesen der Luftdruck-Werte. Nach ein paar Fehlversuchen und geschredderten Zimmerpflanzen war es so weit.


Tello wird vom Programm gesteuert und die Werte werden im csv-Format ausgegeben. In's spreadsheet kopieren und mit wenigen Klicks ein Diagramm erstellen - fertig!

Das Programm kann nicht nur Barometerwerte auslesen sondern auch vieles andere. Unter dem Namen "tellTello" steht es frei zugänglich im Internet.

Have some fun with it!

Links: 


cozmobotics/tellTello

telltello-a-console-based-frontend-to-the-sdk-written-in-python3

https://tellopilots.com/threads/testing-the-barometer.4743


Samstag, 5. Januar 2008

Indoor - Laa an der Thaya


"Bahnfahrt mit Modellflugzeug" für Fortgeschrittene: Mit zwei Flugzeugen im Zug. Die Spark ist noch nicht ganz fertig, die letzten Handgriffe erledige ich während der Fahrt. Idee und Ausführung der Flaggen auf den Side Force Generators verdanke ich der kreativen Atmosphäre des (nomen est omen) "Talent".

(Bild: Mit beiden Flugzeugen am Südbahnhof, die Spark ist noch ohne SFG's.)









Die Halle in Laa an der Thaya ist nicht so hoch wie die in Waidhofen an der Thaya, und außerdem zweigeteilt. Säulen und ein Drahtseil werden manchem Fluggerät - im wahren Sinn des Wortes - zum Verhängnis.

Einen zweiten Akku habe ich gekauft, auf die Goldkontaktstecker habe ich vergessen. Einer hat was der andere braucht, und so ist diesem Mangel schnell abgeholfen.

Erst eine Runde mit dem Acro Orca (Knuffel) dann erfolgt der Erstflug der Spark. Wie lange habe ich mit der Querruderanlenkung herumgespielt, darauf geachtet dass alles symmetrisch und leichtgängig ist, Ausschläge eingestellt, usw... Dass links und rechts vertauscht sind, habe ich nicht gemerkt. Schon muss ich kleben. An Expo habe ich auch nicht gedacht. Was passiert wenn es zwei Möglichkeiten gibt? Ich stelle positive statt negative Expo ein und eiere entsprechend durch die Luft. An eine Landung ist nicht zu denken, ich fange die Spark aus der Luft.

Die Seilanlenkung ist gewöhnungsbedürftig und der Schrumpfschlauch der Querruderanlenkung will einfach nicht auf der Carbonstange halten. Das trübt die Freude an der neuen Spark ein wenig, obwohl sie langsam fliegt und wie von selbst hovert. Das ist aber auch gut so, sonst hätte ich keine Freude mit dem Acro Orca (Knuffel). Wieder einmal erfreue ich mich am eleganten Flugbild der Sparks die von Könnern geflogen werden.

Soll ich am Bewerb teilnehmen? Die erste Figur ist ein quadratischer Looping. Sieht einfach aus, ich bringe ihn aber trotzdem nicht zusammen. Also wieder einmal in Zuschauer-Rolle. Ist auch nicht schlecht.

Als ungewollte humoristische Einlage bleibt ein Flugzeug auf dem Heizungsrohr hängen, das knapp unter dem Dachgiebel verläuft. Ein zur Rettung eilendes Flugzeug bleibt ebenfalls oben hängen. Ein weiterer Retter startet und schleppt ein 10m langes Band nach. So kommen alle wieder herunter.


Ich kann mit meiner Spark und meinem "Acro Orca" (Knuffel) können zwar im Kunstflug nicht überzeugen, aber die Bemalung kann sich sehen lassen. Sie wird im prop lobend erwähnt.



Bild © UMFC Laa
Weitere Bilder beim UMFC Laa
Bericht im prop

Sonntag, 25. November 2007

indoor

Die Reithalle bietet sich als Ausweichrevier an wenn die Tage kurz sind und die Winterstürme toben. Ist sie aber groß genug? Hoch genug? Kann ich gut genug fliegen? Werde ich nach oben reißen und an die Decke krachen? Wird die Wand vor das Flugzeug springen?

Die Ausschreibung zum 5. Indoor Modellflug Meeting in Waidhofen an der Thaya kommt gerade recht. Die Bewerbe sind nichts für mich, aber ich möchte beim freien fliegen mitmachen.






Schnell klebe ich ein bisschen Isoliertapete zusammen und fertig ist der Acro-Orca. Als Vorlage dient der Bauplan des Knuffel, den ich im Internet gefunden habe.




Viele wollen am Freitagnachmittag ins Waldviertel, und so ist der Zug gesteckt voll. Ich bringe den Orca heil ans Ziel ohne dass mich jemand rempelt oder seine Tasche draufstellt. Wie ich das in der Bahn anstelle werde ich später gefragt. Keine Kunst, ich habe nur einen Flieger.
(Diese Bilder sind nach dem Umsteigen bzw. auf der Heimfahrt entstanden, da war der Zug fast leer)

Die Thayatal Halle ist breiter und vor allem höher als die Reithalle. Trotzdem ist meine Nervosität noch größer als bei sonstigen Erstflügen. Ich bitte jemanden der es besser kann (das ist sowieso jeder hier), die Knüppel zu übernehmen. Der Schwerpunkt muss viel weiter nach hinten, dann bin ich an der Reihe. Ich weiß zwar dass ich mich nicht nach oben retten kann wie unter freiem Himmel, trotzdem scheint die Hallendecke das Flugzeug magisch anzuziehen. Schon habe ich im Dachgebälk eingefädelt. Gas weg, ein hilfsbereiter und geistesgegenwärtiger Fliegerkollege fängt den Orca auf. Zweiter Versuch, wieder die Hallendecke, diesmal kann ich mich selbst aus der Falle befreien. Meine Flüge sind kurz weil sie meine Nerven beanspruchen. Bis auf eine Bekanntschaft mit dem Sicherheitsnetz keine weiteren Vorfälle. Am zweiten Tag beherrsche ich bereits die liegende Acht, immerhin eine offizielle Kunstflugfigur ;-)

Der Orca war in der Luft und ist immer noch in einem Stück, mein Ziel ist erreicht.

Was hat die Veranstaltung noch zu bieten gehabt?


(Auf, ab, vor, rück... die Waldrappe nehmen's gelassen.)

Viele Modelle, Tipps, Details. Der Knuffel ist offenbar nicht mehr modern, die Spark von Gernot Bruckmann (original oder nachgebaut) beherrscht das Bild.

Rennen, egal welcher Art, sind ja meine Sache nicht. Aber das Training vor dem indoor-air-race ist teils spannend, teils lustig. Die weichen Pylone verzeihen manche Kollision, das prächtige Waldrapp-Tor wird manchem Fluggerät zum Verhängnis.

(Der Geruch von Aktivatorspray liegt überall in der Luft)

(Bruckmanns entdecken die heitere Seite)

(Spark)


Zum ersten Mal erlebe ich einen Kunstlug-Bewerb. Mich fasziniert die Präzision der geflogenen Figuren. An den majestätischen Bewegungen der Slowflyer, die wie in Zeitlupe ihre Bahnen ziehen, kann ich mich kaum satt sehen. Als gäbe es keine Schwerkraft...

(Piloten-Briefing)


(Ein weiterer Grund, wieder zu kommen... )

Wettkampf-Atmosphäre, Richter, Punkte, Ergebnislisten, mich packt das Wettkampffieber! Morgen ist ja Reitturnier. Ich habe zwar abgesagt, aber jetzt beschließe ich spontan, einen früheren Zug zu nehmen um doch noch teilnehmen zu können.

"Eine gefällige Vorführung, punktgenaues reiten mit ausreichend Raumgriff, Note 7,0" lautet das Urteil des Richters.


(Siegerehrung in der Reithalle,
die hoffentlich bald auch anders genutzt wird)



Hier geht's zum offiziellen Bericht auf prop.at
Wie es mit meinen Indoor-Aktivitäten weitergeht verrate ich in den Kommentaren.