remotecontrol Posted January 4, 2013 at 06:25 PM Share Posted January 4, 2013 at 06:25 PM 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). Quote Link to comment Share on other sites More sharing options...
AuronX Posted January 5, 2013 at 02:15 PM Share Posted January 5, 2013 at 02:15 PM 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 ^^) Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted January 5, 2013 at 04:58 PM Author Share Posted January 5, 2013 at 04:58 PM 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 ... Quote Link to comment Share on other sites More sharing options...
Nic Posted January 7, 2013 at 10:37 AM Share Posted January 7, 2013 at 10:37 AM Das GUI sieht richtig gut aus, mit welcher Entwicklungsumgebung hast Du die Implementation für das Android-Tablet gemacht ? Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted January 7, 2013 at 11:49 AM Author Share Posted January 7, 2013 at 11:49 AM 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 ... Quote Link to comment Share on other sites More sharing options...
Nic Posted January 7, 2013 at 02:14 PM Share Posted January 7, 2013 at 02:14 PM 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. Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted January 7, 2013 at 03:28 PM Author Share Posted January 7, 2013 at 03:28 PM 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. Quote Link to comment Share on other sites More sharing options...
Nic Posted January 7, 2013 at 03:44 PM Share Posted January 7, 2013 at 03:44 PM 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 ? Quote Link to comment Share on other sites More sharing options...
photron Posted January 7, 2013 at 03:57 PM Share Posted January 7, 2013 at 03:57 PM 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. Quote Link to comment Share on other sites More sharing options...
AuronX Posted January 7, 2013 at 04:59 PM Share Posted January 7, 2013 at 04:59 PM 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 ^^ Quote Link to comment Share on other sites More sharing options...
Nic Posted January 7, 2013 at 05:43 PM Share Posted January 7, 2013 at 05:43 PM 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... Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted January 7, 2013 at 06:47 PM Author Share Posted January 7, 2013 at 06:47 PM 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"). Quote Link to comment Share on other sites More sharing options...
AuronX Posted January 7, 2013 at 06:50 PM Share Posted January 7, 2013 at 06:50 PM 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 Quote Link to comment Share on other sites More sharing options...
Nic Posted January 7, 2013 at 07:07 PM Share Posted January 7, 2013 at 07:07 PM Aha, jetzt verstehe ich, im ersten Moment denkt man an diese Eigenarten eines anderen Betriebssyst. nicht sofort. Besten Dank. Quote Link to comment Share on other sites More sharing options...
batti Posted February 28, 2013 at 05:11 PM Share Posted February 28, 2013 at 05:11 PM 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 Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted February 28, 2013 at 05:18 PM Author Share Posted February 28, 2013 at 05:18 PM Hallo Bastian, das könnt Ihr verlinken, kein Thema. Bzgl. Bilder: vom kompletten Innenaufbau im Fahrzeug? Kann ich bei Gelegenheit machen. Viele Grüße Quote Link to comment Share on other sites More sharing options...
batti Posted March 1, 2013 at 01:59 PM Share Posted March 1, 2013 at 01:59 PM 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 Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted March 4, 2013 at 06:03 PM Author Share Posted March 4, 2013 at 06:03 PM Das lässt sich machen. Kommendes Wochenende kann ich mal etwas knipsen. Viele Grüße Quote Link to comment Share on other sites More sharing options...
batti Posted March 6, 2013 at 03:20 PM Share Posted March 6, 2013 at 03:20 PM 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 Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted March 7, 2013 at 04:45 PM Author Share Posted March 7, 2013 at 04:45 PM 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. Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted March 8, 2013 at 06:41 AM Author Share Posted March 8, 2013 at 06:41 AM 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. Quote Link to comment Share on other sites More sharing options...
batti Posted March 8, 2013 at 08:53 AM Share Posted March 8, 2013 at 08:53 AM 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 Quote Link to comment Share on other sites More sharing options...
batti Posted March 8, 2013 at 09:27 AM Share Posted March 8, 2013 at 09:27 AM Habe das auch mal in die Beschreibung aufgenommen: http://www.tinkerunity.org/wiki/index.php/DE/Artikel_Schreiben#Projekt_Artikel Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted March 10, 2013 at 08:27 AM Author Share Posted March 10, 2013 at 08:27 AM 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? Quote Link to comment Share on other sites More sharing options...
batti Posted March 13, 2013 at 12:33 PM Share Posted March 13, 2013 at 12:33 PM 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 Quote Link to comment Share on other sites More sharing options...
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.