Smartphone Sensoren auslesen

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Smartphone Sensoren auslesen

Beitrag von ErnstVolker »

Hallo zusammen,

neulich fiel mir ein Buch über Androidprogrammierung in die Hände. Das scheint in Java zu sein. Selbst habe ich kein Smartphone, deshalb meine Fragen:

Hat von Euch jemand Programme geschrieben mit denen man die Sensoren (Gyro, Beschleunigung, usw.) ausliest?

Wenn man vorhat das Telefon als Messinstrument zu nehmen, sollte man eins mit "Windows-Betriebssystem" wählen, weil dafür das Proggen unter Windows mit Lazarus besser funzt?

Sollte man sich ein altes iPhone und einen Mac beschaffen und mit Objective-C und Cocoa entwickeln?

Ein Telephon mit Android-Betriebssystem und bei Java bleiben?

Kann man eigentlich zwei oder mehr Telefone an einen Laptop anschließen und Daten Sychronisiert empfangen? Also zeitgleich meintewegen im Sekundentakt jeweils einen Wert von Telefon A und Telefon B übernehmen?

Wie "genau" sind die Sensoren in den Telephonen? Macht der "Winkelsensor" 0,1°? Wie "schnell" werden die Werte "ausgespuckt"?

Vielen Dank für Eure Antworten!!

Volker

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Smartphone Sensoren auslesen

Beitrag von mschnell »

ErnstVolker hat geschrieben:Wenn man vorhat das Telefon als Messinstrument zu nehmen, sollte man eins mit "Windows-Betriebssystem" wählen, weil dafür das Proggen unter Windows mit Lazarus besser funzt?


Wie es aussieht scheint Windows auf mobilen Geräten gar nicht zu zünden und Appel verliert immer stärker gegen die diversen Android Anbieter. Neuerdings gibt es da noch FireFox OS. Ob das zündet muss man sehen.

Sogar der traditionell sehr engagierte Microsoft-Supporter Embarcadero hat bezüglich Windows Mobile - soweit ich weiß - nichts unternommen, bietet aber in der neuen Delphi-XE-Version professionelle Unterstützung für Android-Entwicklung (zusätzlich zu iOS Mobil). Hier generiert man in Pascal native ARM-Linux-Programme, die dann auf die Java-API von Android zugreifen und da vermutlich auch die Sensoren auslesen können.

Lazarus ist wahrscheinlich noch nicht so weit wie DXE (wohl hauptsächlich, weil Embarcadero sich da von der VCL verabschiedet hat und nur "Firemonkey" bietet, während Lazarus auf Kompatibilität mit der Desktop GUI setzt und bei der LCL bleibt), das wird aber irgendwann kommen. Ich habe gehört, dass Lazarus Programme auf Android durchaus bereits laufen. Und man kann es um die Features, die man braucht, selber erweitern, wenn man genügend Zeit investiert. Mit fpc geht im Prinzip beides: native ARM-Linux-Programme, die dann auf die Java-API von Android zugreifen und Übersetzen von Pascal in Java-Binär Code für Dalvic.

P.S.: Was sagt mse zu dem Thema ? mseGUI ist ja nicht so VCL-ähnlich wie die LCL und bietet vielleicht eher die Möglichkeit, eine GUI auf Android darzustellen. (Der fpc ARM-Linux Compiler ist ja jedenfalls bereits in ordentlichem Zustand, und dann noch ein neuer Compiler von mse.....)

Gruß,
-Michael

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Smartphone Sensoren auslesen

Beitrag von mse »

mschnell hat geschrieben:P.S.: Was sagt mse zu dem Thema ? mseGUI ist ja nicht so VCL-ähnlich wie die LCL und bietet vielleicht eher die Möglichkeit, eine GUI auf Android darzustellen.

Vermutlich. Ich meine aber, dass für smartphones die "native" Entwicklungsumgebung verwendet werden sollte. Wegen den vielen verschiedenen Versionen ist alles Andere zu mühsam. Es fängt schon mit OpenGL an. Jedes device hat eine andere Implementierung mit anderen Erweiterungen, Einschränkungen und bugs. Hier für alle Geräte eine gute Performance zu erreichen ist ein Ding der Unmöglichkeit.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Smartphone Sensoren auslesen

Beitrag von mschnell »

mse hat geschrieben:Es fängt schon mit OpenGL an. Jedes device hat eine andere Implementierung mit anderen Erweiterungen, Einschränkungen und bugs. Hier für alle Geräte eine gute Performance zu erreichen ist ein Ding der Unmöglichkeit.


Klar ! (OpenGL sterht bei den Android Lieferanten sicher nicht oben auf der ToDo-Liste :evil: .)

Ich dachte auch eher an eine Umsetzung der vom GUI-Designer erstellten Informationen über die Java-basierte Android API. Bei LCL geht das vermutlich genauso schlecht wie bei der VCL. Da ich die mseGUI nicht kenne, hatte ich da eine (keine) Hoffnung... (Immerhin gibt es mit "EXT-Pascal" ja Ansätze, mit dem VCL/LCL-Designer per HTML darzustellende Oberflächen zu gestalten, was mir auf den ersten Blick schwieriger vorkommt als für Android - allein schon wegen der grässlichen Asymmetrie des HTTP-Protokolls. (Ich meine mich zu erinnern, dass es für VCL->HTML auch noch mindestens ein anderes Tool-Kit gibt.))

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Smartphone Sensoren auslesen

Beitrag von Christian »

Mal mein Wissen zu dem Thema:

Android:
Lazarus LCL ist derzeit nicht zu gebrauchen, am Customdrawn Interface arbeitet kaum jemand.
Weiterhin wird nativer Code erzeugt was dazu führt das der Endnutzer wissen muss was fürn Prozessor in seinem telefon tut.

Delphi hat das selbe Problem, zeichnet alles über Firemonkey selbst genauso nativer Code.

Java über Eclipse macht sich ganz gut wenn man aber Lazarus gewohnt ist wird einem Eclipse nicht gefallen es ist ziemlich zäh damit zu arbeiten.

Java über Lazarus ist super. Man kann alles ansprechen, hat aber kein RAD. Muss also alles coden was bei größeren Projekten eh meisst so gemacht wird.

IOS:
Es gibt derzeit kein LCL Interface.

Delphi zeichnet über Firemonkey ohne GPU Support was dau führ das die IPhone CPUś sich totrechnen. Controls sollen wohl auch weitestgehend nicht (richtig) funktionieren.

XCode+ObjectiveC macht sich gut, läuft flüssig ech bekomm aber Krämpfe beim Coden die Sprache ist irgendwie kreplig.

reiner fpc code ist aber genauso wie bei Java super, man kann alle Controls erzeugen und hat die nativen Controls.

Alles:

Responsive HTML5 funktioniert ganz gut, baut euch nen Server mit fpWeb der die Daten woherauchimmer als json bereitstellt, und coded schön bequem am Rechner.
Macht nen GROßEN Bogen um jQuerry und Co. beschäftigt euch mit DOM und das ganze ist schnell. Mein größter Fehler war mit Frameworks zu arbeiten das hat mich am Anfang Monate gekostet.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Smartphone Sensoren auslesen

Beitrag von ErnstVolker »

Vielen Dank für Eure Antworten.

Ich denke ich werde mal ein Smartphone beschaffen, Buch besorgen und mit die Beispiele in Java abtippen und ausprobieren. Anstelle Buch finden sich ggf. auch Tutorials im Netz.

Viele Grüße

Volker

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Smartphone Sensoren auslesen

Beitrag von ErnstVolker »

Hallo Zusammen,

ich bin beim suchen im Netz auf Kompassmodule gestoßen die einiges billiger als ein Smartphone sind (ich bräuchte für mein Vorhaben auch zwei Stück). Z.B. bei Roboter-Teile das Kompassmodul CMPS10.

Nur wie arbeitet man damit? Kann man davon zwei an ein Ardunio Board anschließen und den Mikrocontroller so Programmieren, dass von beiden die Signale zeitgleich synchron an ein Laptop übergeben werden? Oder braucht es kein Ardunio?

Was ich gelesen habe funzt AVR & Freepascal nicht so wirklich. Bin aber auf LunaAVR gestoßen, an Pascal angelehnt.

Hat von Euch schon mal jemand sowas gemacht?

Viele Grüße

Volker

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Smartphone Sensoren auslesen

Beitrag von Socke »

Hallo,

Für diese Fragen wäre ein eigenes Thema besser geeignet, da deine Fragen nichts mit einem Smartphone zu tun haben.

ErnstVolker hat geschrieben:ich bin beim suchen im Netz auf Kompassmodule gestoßen die einiges billiger als ein Smartphone sind (ich bräuchte für mein Vorhaben auch zwei Stück). Z.B. bei Roboter-Teile das Kompassmodul CMPS10.

Nur wie arbeitet man damit?

Wenn du so ein fertig vormontiertes Modul meinst, ist das recht einfach (im Weiteren beziehe ich mich auf diese die Angaben auf dieser Seite). An sich findet sich in der Beschreibung der Weg, wie man an die Daten heran kommt. Dazu gibt jeder Hersteller Datenblätter heraus mit detaillierten technischen Informationen.

Bei diesem Modul gibt es drei Möglichkeiten: I2C, Serielle Schnittstelle und PWM. Durch die Verkabelung wählt man einen Modus aus. Für die Serielle Schnittstelle sollte ein USB-Seriell-Konverter und ein wenig Bastelarbeit ausreichen. Für den I2C-Bus (Inter Integrated Circuit) gibt es AFAIK ebenfalls USB-Module. Du brauchst also nicht zwingenderweise einen Arduino um die Daten auf einem Desktop-Rechner oder Laptop auszuwerten. Bei dem PWM-Modus wirst du wohl nicht um einen Microcontroller (u.a. Arduino/ATMega oder AVR) herum kommen.

ErnstVolker hat geschrieben:Kann man davon zwei an ein Ardunio Board anschließen und den Mikrocontroller so Programmieren, dass von beiden die Signale zeitgleich synchron an ein Laptop übergeben werden? Oder braucht es kein Ardunio?

Warum brauchst du zwei Stück? Welche Zeitdifferenzen definierst du als "zeitgleich synchron"? Wenn du zwei Module wirklich zeitgleich auslesen willst, würde ich auf einem Microcontroller (bspw. Arduino) den I2C-Bus des Moduls ansprechen, das Signal aber selbst erzeugen und das ganze ein wenig unkonventionell verkabeln. Damit kannst du wirklich auf den Prozessortakt gleichzeitig Daten abfragen. Danach kannst du sie aber nicht mehr zeitgleich verarbeiten, da du nur einen Microcontroller hast ...

ErnstVolker hat geschrieben:Was ich gelesen habe funzt AVR & Freepascal nicht so wirklich. Bin aber auf LunaAVR gestoßen, an Pascal angelehnt.

Es ist richtig, dass du einen AVR (noch) nicht mit Free Pascal programmieren kannst. Bei einem ATMega (auf Arduino verbaut) ist das nicht anders.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Smartphone Sensoren auslesen

Beitrag von ErnstVolker »

Hallo Socke,

danke Dir für die umfangreichen Antworten.

Du hast Recht, wenn Du sagst, dass es nicht hierher gehört. Ich hatte es hier reingeschrieben, weil ich nicht zwingend einen extra Thema eröffnen wollte um das Forum nicht zu sehr zu strapazieren und weil ich es als Alternative zum Smartphone sah. Für tiefere technische Details würde ich ein extra Thema eröffnen.

Zwei Stück, also auch zwei Smartphones, bräuchte ich deshalb, weil ich zweimal Winkel messen will, wobei der eine Winkel von Hand durch Drehen an einem Stellrad geändert wird und der Zweite die Größe ist, die sich in Abhängigkeit der ersten Größe ändert. Deshalb z.B. ein Mausklick zum Start der Messung (t=0) und beide Sensoren übertragen zeitgleich (z.B. Delta-t=0,01 s; 0,02 s; usw.) ihre Daten. Das meinte ich mit synchron.

Vielen Dank für Deine Antworten. Mal sehen wann ich an's Basteln komme.

Viele Grüße

Volker

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Smartphone Sensoren auslesen

Beitrag von mschnell »

Christian hat geschrieben:Responsive HTML5 funktioniert ganz gut...

Also nehmen wir ein Handy mit Firefox OS statt Andorid.

Ist auch billiger :D

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Smartphone Sensoren auslesen

Beitrag von Christian »

Nö, Android und iOS können auch HTML5 das ist ja das schöne. In Firefox OS kommt man natürlich an Alles per HTML5 heran nicht nur an nen teil der Sensoren und Aktoren.
Ich bin aber sicher das HTML5 in den nächsten Jahren weiter ausgebaut wird und bald auch alles kann.
Audio und Video ist mit WebRTC ja gerad schon in vielen Browsern da.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Smartphone Sensoren auslesen

Beitrag von mschnell »

Christian hat geschrieben:Nö, Android und iOS können auch HTML5 das ist ja das schöne. In Firefox OS kommt man natürlich an Alles per HTML5 heran nicht nur an nen teil der Sensoren und Aktoren.

Kann man tatsächlich in Android (iOS interessiert mich weniger) Interna wie die Sensoren Aktuatoren und Telefonie-API mit HTML5 ansprechen ?!?!?!? Interessant !!!
Christian hat geschrieben:Ich bin aber sicher das HTML5 in den nächsten Jahren weiter ausgebaut wird und bald auch alles kann.

Vor ein paar Jahren war ".NET" (aka CIL aka Silverlight aka C# aka Mono, ...) das große Cross-Platform Ding, das jede API ersetzen sollte und u.a. auch Flash überflüssig machen würde. Das hat sich inzwischen anscheinend erledigt und alles stürzt sich auf HTML5/Javascript.

Ob das wohl hält, was es verspricht ?

Antworten