remotecontrol Geschrieben January 4, 2013 at 18:25 Geschrieben January 4, 2013 at 18:25 Nachdem ich in den letzten beiden Wochen auch öfter Fragen in das Forum gestellt habe, möchte ich kurz vorstellen, was aktuell dabei rausgekommen ist: Eine Tablet basierte Fernsteuerung für RC Funktions-Modelle, die Kommunikation erfolgt über WLAN (Modell ist dann ein Access Point). Ich mache hier auch gleich die Einschränkung auf Funktionsmodelle, da sich alles andere nicht recht lohnt. Klassische Fernsteuerungen sind sehr zuverlässig, haben eine gute Reichweite und Reaktionszeiten. Bei der Steuerung vieler Einzelfunktionen wird es aber kompliziert. Eine programmierte Steuerung fürs Tablet kann man optimal auf die Bedürfnisse des jeweiligen Modells anpassen. Momentan ist das auch eher noch ein Softwareprojekt: 90% besteht aus Android-Programmierung. Die Bastelei am Modell momentan auch eher ein geringer Anteil. Mein Testaufbau zur Steuerung eines "THW Unimogs" mit Zusatzfunktionen nutzt aktuell - Step-Down-Power Supply - Masterbrick mit WLAN Extension - Servo Brick - Industrial Quad Relay Ergo: schon 11 Kanäle möglich bei dem einfachen Aufbau ... Um den Platz im Modell zu bekommen musste ich leider den Hebemechanismus der Ladefläche entfernen. Ich konnte die im Modell vorhandenen Fahrtregler aber wiederverwenden: alten Empfänger raus, Servos und Fahrtregler ans Servobrick anschließen: tut! Damit sind die Kanäle 1,2,3 (Lenkung, Antrieb und Seilwinde) versorgt. Noch ein kleines Soundmodul eingebaut und über Relais ein/aus, wobei auf dem Tablet eine Taste ist (Hupe), die das Relais nur schaltet, solange die Taste gedrückt ist. Dabei ist mir aufgefallen, dass der Fahrmotor Spannungsschwankungen (Brummen) ins System bringt und die Hupe bei Fahrt komisch "brummt". Ein Kondensator am Modul hat Abhilfe gebracht. Dann habe ich das Modul aber mal an den 5V Ausgang der Step-Down-Power Supply angeschlossen: tut auch - ohne extra Kondensator => Ausgangsspannung ist sehr konstant und Kanal 4 verbaut. Kanal 5 ist Fahrlicht ein/aus über einen weiteren Relais-Kontakt. Was noch kommt ist ein Suchscheinwerfer ein/aus (Kanal 6), der per Servo gedreht werden kann (Kanal 7). Und auf der Ladefläche wäre noch Platz für einen Kran... Die Servosteuerung kann per Benutzer-Einstellung eines Feintunings unterzogen werden - linear / exponentiell - Wegbegrenzer - Taste um den Steuerweg der Oberfläche z. B. auf nur 50% des Servoweges zu begrenzen: gut für sehr feine Steuerungen, per Click geht es dann zurück auf normale Steuerung. In Summe noch ein erster Test, wie zuverlässig das Ganze funktioniert: Kommunikationsabbrüche sind fatal, insbesondere dann, wenn das Modell in voller Fahrt ist und einfach weiter fährt . Was aber schon auffällt: auch hier ist ein "Testsystem für Trockenübungen" hilfreich, sonst muss man immer alles aus dem Modell ausbauen oder z. B. das WLAN umkonfigurieren, also ein zweiter identischer Stack wird notwendig. Anbei noch ein paar Bilder: im ersten die der Stack liegend im Modell zu sehen. Zuerst wollte ich die externe Antenne aufs Dach platzieren. Dann ist mir aber aufgefallen, dass es auch so geht. Aktuell reicht mir die Reichweite aus. Im zweiten Bild die Steuerung über ein Nexus 7 Tablet: das liegt recht gut in der Hand. Die grauen Kästen simulieren ein zwei-Wege Steuerung (z. B. links/rechts + vor/zurück). Zitieren
AuronX Geschrieben January 5, 2013 at 14:15 Geschrieben January 5, 2013 at 14:15 Sehr cool. Die Oberfläche auf dem Tablet sieht auch schön aufgeräumt aus. Wie viel Zeit hast du bisher Software-seitig investiert? (grob über den Daumen ^^) Zitieren
remotecontrol Geschrieben January 5, 2013 at 16:58 Autor Geschrieben January 5, 2013 at 16:58 Ich habe daran in den letzten beiden Wochen gearbeitet, immer so ca. 3h pro Tag. Die meiste Zeit habe ich am Anfang damit verbracht, in Android-Foren nach spezifischen Problemlösungen zu suchen. Das Feintuning der Servosteuerung (damit z. B. nicht zu viele Befehle pro Sekunde übers WLAN gesendet werden) war auch aufwendig. Zuletzt habe ich z. B. eine Funktion ergänzt, um das Fahrlicht über Ambi-Light-Sensor automatisch einzuschalten, wenns zu dunkel wird. Das ging straight forward in ca. 1 Stunde. Testfahrten muss man dann aber auch noch machen ... Zitieren
Nic Geschrieben January 7, 2013 at 10:37 Geschrieben January 7, 2013 at 10:37 Das GUI sieht richtig gut aus, mit welcher Entwicklungsumgebung hast Du die Implementation für das Android-Tablet gemacht ? Zitieren
remotecontrol Geschrieben January 7, 2013 at 11:49 Autor Geschrieben January 7, 2013 at 11:49 Ich nutze die Standard-Android-Umgebung: Eclipse (Java) mit zusätzlichen Google-Tools. Ich arbeite meist unter Linux, auch wenn USB-Debugging dann nicht funktioniert. Der Geräte-Emulator läuft bei mir unter Linux Faktor 5 schneller als unter Windows - warum auch immer ... Zitieren
Nic Geschrieben January 7, 2013 at 14:14 Geschrieben January 7, 2013 at 14:14 Danke, remotecontrol. Lässt sich diese Umgebung nahezu identisch auch unter Win einrichten ? Die Controls sind aus der AWT-Library ? Bei der Vielfalt von günstigen Android-Tablets, könnte ich mir vorstellen die TF-Sachen für And. zu entw. Zitieren
remotecontrol Geschrieben January 7, 2013 at 15:28 Autor Geschrieben January 7, 2013 at 15:28 Hallo Nic, die Umgebung läuft auch problemlos unter Windows. Ich habe das Projekt aus Linux ohne Änderung nach Windows kopiert, dort im Android-Eclipse importiert => läuft auch dort im Emulator. Nur ist der Emulator zum Testen eben etwas langsamer. Die Controls sind spezielle Android-Controls, kein AWT. Hier ist viel Android-API im Spiel und das kostet mich die meiste Zeit (bin kein Android Experte). Die Tinkerforge-API kann 1:1 verwendet werden. Mit dem Thread-Handling muss man etwas aufpassen. Ich habe keine Rücksicht auf ältere Android-Versionen oder Geräte kleiner 7 Zoll genommen. Ich setze erst bei Android 4.1 oder höher auf (Nexus 7, bzw. 10). Das macht es an ein paar Stellen etwas einfacher. Zitieren
Nic Geschrieben January 7, 2013 at 15:44 Geschrieben January 7, 2013 at 15:44 Danke remotecontrol. Nun ja, das GUI kostet mir auch unter Delphi und Windows viel Zeit. Nur gibt es dafür nix schickes und preiswertes als TabletPC. Verstehe ich richtig, die TF-Bindings für Java lassen sich ohne Anpassung fürs Android 4x benutzen ? Was meinst Du mit Mit dem Thread-Handling muss man etwas aufpassen. Also doch Modif. im Framework ? Zitieren
photron Geschrieben January 7, 2013 at 15:57 Geschrieben January 7, 2013 at 15:57 Was meinst Du mit Mit dem Thread-Handling muss man etwas aufpassen. Also doch Modif. im Framework ? Die Funktionsaufrufe der Bindings führen direkt Netzwerkkommunikation und blockieren auch im Zweifelsfall bis zum Timeout. Unter Android darf/soll man im UI Thread aber nichts potentiell blockierendes tun, damit das UI nicht hängen kann. Seit Android 4.2 bekommt man z.B. eine NetworkOnMainThreadException wenn man im UI Thread versucht einen Socket zu öffnen. Die Lösung dafür ist die Bindings in einem AsyncTask oder eigenen Thread zu benutzen. Zitieren
AuronX Geschrieben January 7, 2013 at 16:59 Geschrieben January 7, 2013 at 16:59 Ich habe auch sehr gute Erfahrungen mit dem USB-Debugging gemacht. Wenn du dein Tablet/Handy hast, einfach anstecken und darauf dein Programm ausführen. Breakpoints und alles andere was du vom Debugging so gewohnt bist funktioniert hervorragend. Allerdings muss man sich in die Android-API echt einarbeiten, war deswegen auch überrascht, dass remotecontrol selbst Neuling ist, weil das Ergebnis sieht echt gut aus Das was ich bisher gebastelt habe sieht eher weniger hübsch aus ^^ Zitieren
Nic Geschrieben January 7, 2013 at 17:43 Geschrieben January 7, 2013 at 17:43 Allerdings muss man sich in die Android-API echt einarbeiten Was heißt das genauer ? Ist die Android-API so schlecht dokum., dass man sich alles googeln muss oder unvollständig, d.h. Standard-Komponenten muss man sich z.T. selbst stricken... Und wie komfortabel sind die visuellen Komponenten ? Im Falle von Delphi und C# gibt es (fast) alles... Zitieren
remotecontrol Geschrieben January 7, 2013 at 18:47 Autor Geschrieben January 7, 2013 at 18:47 Die Android API ist recht gut dokumentiert, aber auch recht umfangreich und ein Tablet (Mobiltelefon) ist eben kein PC. Da gibt es andere Systemdienste, die man auch erstmal kennen muss. Der Haupteinstieg ist http://developer.android.com/index.html. Darunter sind dann die API Beschreibungen. Weitere Beispiele habe ich in den Foren gesucht. Widgets gibt es relativ viele. Es ist dann eher so, dass ich das Verhalten noch etwas beeinflussen will, z. B. einen Button mit 3 oder mehr Zuständen & Symbolen gibt es im Standard so nicht, ist aber einfach zu realisieren. Das mit dem Thread-Handling wurde schon gut erklärt ("NetworkOnMainThreadException"). Zitieren
AuronX Geschrieben January 7, 2013 at 18:50 Geschrieben January 7, 2013 at 18:50 Dokumentation usw ist super. Auch der Funktionsumfang stimmt. Du musst halt nur einige Zeit investieren um zu verstehen wie ein Android-Programm läuft, wann es welche Nachrichten bekommt usw. Also das Framework kennenlernen. z.B. wirst du irgendwann erfahren, dass das Rotieren deines Telefons (dann wenn es von Porträit auf Landscape wechselt) die Anwendung quasi neustartet. Das ist nur ein einzelnes Beispiel, es ist einfach ein bisschen Lesestoff bis man insgesamt drin ist, war zumindest bei mir so. Aber kein Hexenwerk und auch nicht weil Android schlecht wäre, sondern einfach nur weil es halt ein vollständiges Betriebssystem mit eigenen Regeln ist, die man kennenlernen möchte edit: Remotecontrol hat es über mir schon recht gut erklärt während ich diesen Post getippt habe Zitieren
Nic Geschrieben January 7, 2013 at 19:07 Geschrieben January 7, 2013 at 19:07 Aha, jetzt verstehe ich, im ersten Moment denkt man an diese Eigenarten eines anderen Betriebssyst. nicht sofort. Besten Dank. Zitieren
batti Geschrieben February 28, 2013 at 17:11 Geschrieben February 28, 2013 at 17:11 Hi Remotecontrol, würden dein RC Projekt gern auf der neuen Homepage verlinken: Siehe: http://www.tinkerunity.org/forum/index.php/topic,1445.0.html Hast du etwas dagegen? Hast du zufällig ein Foto von dem kompletten Aufbau? Grüße, Bastian Zitieren
remotecontrol Geschrieben February 28, 2013 at 17:18 Autor Geschrieben February 28, 2013 at 17:18 Hallo Bastian, das könnt Ihr verlinken, kein Thema. Bzgl. Bilder: vom kompletten Innenaufbau im Fahrzeug? Kann ich bei Gelegenheit machen. Viele Grüße Zitieren
batti Geschrieben March 1, 2013 at 13:59 Geschrieben March 1, 2013 at 13:59 Hi, wenn wir bei "Wünsch dir was" wären, dann hätte ich gern ein Bild auf dem man das Tablet mit der Oberfläche + den Unimog sieht. Es geht darum auf einem Bild klarzumachen was bei dem Projekt gemacht wurde. Detailaufnahmen wie z.B. der Innenaufbau sind da nicht so wichtig. Grüße, Bastian Zitieren
remotecontrol Geschrieben March 4, 2013 at 18:03 Autor Geschrieben March 4, 2013 at 18:03 Das lässt sich machen. Kommendes Wochenende kann ich mal etwas knipsen. Viele Grüße Zitieren
batti Geschrieben March 6, 2013 at 15:20 Geschrieben March 6, 2013 at 15:20 Ich habe mal eine Wiki Seite hierzu angelegt: http://www.tinkerunity.org/wiki/index.php/DE/Projekte/RC_Fernsteuerung_%C3%BCber_Tablet Kannst du zusätzlich zu den Fotos noch weitere Informationen (z.B: Sourcecode) zur Verfügung stellen? Perfekt wäre es natürlich wenn du den Artikel füllen könntest. Grüße, Bastian Zitieren
remotecontrol Geschrieben March 7, 2013 at 16:45 Autor Geschrieben March 7, 2013 at 16:45 Die Seite habe ich schon gesehen - kann ich auch erweitern. Da das aber ein paar Stunden in Anspruch nimmt kann das schon ein paar Tage dauern. Zitieren
remotecontrol Geschrieben March 8, 2013 at 06:41 Autor Geschrieben March 8, 2013 at 06:41 Ein weiteres Bild - mal beides zusammengefasst und aktuelles Bild der Steuerung. Wie kann ich eigentlich direkt über das media-Wiki neue Bilder hochladen? Da habe ich nichts gefunden. Im Forum geht das. Zitieren
batti Geschrieben March 8, 2013 at 08:53 Geschrieben March 8, 2013 at 08:53 Hi, danke für die fix und fertig Lösung! Hab sie direkt so eingebaut. Wegen der Bildersache gehe ich immer wie folgt vor: Ich erstelle nen Link wie folgt: [[File:project_rc_control_tablet_model_gui.jpg|thumb]] Klicke dann drauf und lade das Bild hoch. Dann ist das Bild im System und kann auch in einer Gallery verwendet werden: <center> <gallery widths=150px heights=150px perrow=4 caption=""> File:project_rc_control_tablet_model_gui.jpg File:project_rc_control_tablet.jpg File:project_rc_control_mounted.jpg </gallery> </center> Grüße, Bastian Zitieren
batti Geschrieben March 8, 2013 at 09:27 Geschrieben March 8, 2013 at 09:27 Habe das auch mal in die Beschreibung aufgenommen: http://www.tinkerunity.org/wiki/index.php/DE/Artikel_Schreiben#Projekt_Artikel Zitieren
remotecontrol Geschrieben March 10, 2013 at 08:27 Autor Geschrieben March 10, 2013 at 08:27 Das APK bekomme ich nicht ins WIKI, es kommt immer der Fehler File extension ".apk" does not match the detected MIME type of the file (application/zip). Das kommt, wenn ich das APK nochmal zippe (.apk.zip), aber auch, wenn ich das APK (was ja ein zip-File ist) nach '.zip' umbenenne. Die Meldung wundert mich insbesondere beim einfachen Umbenennen. Habt Ihr eine Idee? Zitieren
batti Geschrieben March 13, 2013 at 12:33 Geschrieben March 13, 2013 at 12:33 Hm, musste es auch testen. Ein APK direkt hochzuladen geht in der Tat nicht. Wenn du dieses APK aber Zipst lala.apk -> lala.zip, dann solltest du es hochladen können. hab es gerade nochmal getestet. Grüße Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.