PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sensoren eines Smartphones nutzen



Dayzz
15.05.2013, 10:34
Hallo zusammen.

Ich habe schon viel danach gesucht, konnte aber nirgends im Inet (und deshalb auch hier nicht) eine Antwort auf meine Frage finden:

Kann man denn nicht die Sensoren, die üblicherweise in einem Smartphone enthalten sind, für einen Roboter nutzen? Insbesondere die Kamera ist in den heutigen Smartphones ja schon mit viel Rechenleistung und features umgeben. Gibt es kein Interface, um das zu nutzen? Z.B. Farberkennung, Objekterkennung, Entfernungsabschätzung.

Gibt es einen Grund dafür, daß man sich trotzdem mit separaten Kameramodulen herumschlagen muss, die teilweise mehr kosten als ein Handy von Huawei?

Grüße, Dayzz

BastelWastel
15.05.2013, 11:40
Du kannst die ja eine "App" dafuer schreiben.

arnoa
15.05.2013, 13:20
Wenn es ein Android Phone ist geht da relativ viel und relativ leicht.

Einiges zum Lesen
http://www.app-entwickler-verzeichnis.de/apps-programmierung/24-android/297-android-programmierung-tutorial-der-grosse-android-newbie-guide http://www.daedalus.ei.tum.de/index.php/de/dokumentation/projekte/arduino-steuerung-mit-android
http://android-arduino-redfly.npage.de/beispiele.html

Kommt auch viel darauf an was du wie einsetzten willst. Sich ein wenig mit Android auseinander zu setzten bleibt nicht erspart aber grundsätzlich können alle Werte aus Android abgerufen und weiterverarbeitet werden.

Ich hatte auch schon mal mit einem Webserver (mit php usw) am Android herumgespielt - wennst dann mit beiden Geräten im gleichen Wlan hängst kannst über http die Werte heraus holen - ohne großartig eine App schreiben zu müssen.

Kampi
15.05.2013, 15:25
Hey,

schau mal hier:

http://kampis-elektroecke.de/?page_id=1705

Im Moment probier ich meinen Raspi-Bot mittels SprachRecognizer per Sprache und Bluetooth zu steuern.
Das Raspberry per Sprachbefehl rebooten klappt schon mal....ist nicht mal so schwer....

Dayzz
16.05.2013, 01:33
Danke schön, das sind gute Einstiege. Wenn auch tiefer als ich es befürchtet hätte. Jetzt brauche ich nur noch die Zeit, mich da einzuarbeiten. :-(

Vielleicht frage ich mal anders herum: Was brauche ich denn an Sensorik, wenn ich z.B. einen Roboter bauen will, der bei mir im Garten auf der Wiese herumfährt und Löwenzahnblüten (gelb auf grünem Hintergrund) zerhäckselt. Ich weiß, das ist jetzt ein blödes Beispiel. Aber mir geht es im ersten Anlauf nicht um Objekterkennung, sondern Erkennung von Farbflecken. Im obigen Beispiel stelle ich mir eine Kamera mit geringer Auflösung vor, die mir ein grobes Bild liefert, in dem die Software die Koordinaten der gelben Haufen erkennen kann.

Wenn ein Roboter eine leicht nach unten gerichtete Kamera angebaut hat, dann wäre der Metacode doch nicht viel komplexer als so:

(Die Punkte mußten sein, weil führende Freizeichen von der Foren-Software wohl wegoptimiert werden.)

----------------------------------------
While (kein gelb zu finden)
{
..Fahre geradeaus
..If(nur noch unten grün)
..{
....um z.B. 100° drehen
..}
}

While (gelb noch nicht im Fadenkreuz (d.h. Mitte unten auf der Bildmatrix))
{
..Wenn gelb im Bild zu weit links, dann drehe nach links
..Wenn gelb im Bild zu weit rechts, dann drehe nach rechts
..Wenn gelb im Bild zu weit oben, fahre vorwärts
}

Starte Häcksler und tu das Notwendige
-----------------------------------------

Nochmal die Frage: Was für eine optische Sensorik wäre dafür denn geeignet? Ich hätte eigentlich gerne bis zum Sommer meinen Cocktailtomaten-Ernter fertig. :-)

Viele Grüße, Dayzz

arnoa
16.05.2013, 08:27
Hi Dayzz!

Eine Löwenzahntötungsmaschine - bin nicht sicher ob ich das unterstützen kann ;)

Also, für die Bilderkennung reicht die billigste Kamera (denk an den Lichtschutz, Reflektionen können das Leben schwer machen). Die Sondierung der Löwenzahnblüten sollte auch keine große Sache sein. Wenn anfänglich der Bot nur nach Zufall durch die Gegend fährt, brauchst dir über Navigation auch noch keine Gedanken machen.

Ansonsten musst du eigentlich nur mehr sicher stellen dass der Bot seine Fläche kennt und nicht wo hin fährt, wo er nicht hin darf/soll. Dafür gibt es einige Ansätze. Entweder per Induktionsschleifen oder wenn deine Wiese gut abgetrennt ist (z.B. Zaun) dann mit Bumper und/oder Ultraschallsensoren.

Absichern musst Du das Ganze natürlich auch irgendwie - z.B. könnte ich mir vorstellen dass ein kleiner Kinderfuß Farbwerte dabei hat, welche im Löwenzahn auch vorkommen!!!

Hast dir schon über den Aufbau Gedanken gemacht? Wer/was macht die Rechnenarbeit? Welche Motoren? Stromversorgung, .....
Mit welchem Budget hast du geplant?


Ansonsten lustige Idee!!!

Dayzz
16.05.2013, 10:00
Also, für die Bilderkennung reicht die billigste Kamera (denk an den Lichtschutz, Reflektionen können das Leben schwer machen).

Aber da beginnen für mich erst die Fragen: Was für eine Kamera kann das sein? Kommt man z.B. an die Bildinformationen von der iPhone-Kamera ran?
http://www.ebay.de/itm/Original-iPhone-4-Kamera-Modul-4G-Cam-Ruckseite-Neu-/190806827243?pt=DE_Handy_Organizer_Ersatzteile_Wer kzeuge&hash=item2c6cf920eb

Oder ist sowas hier für den Anfang besser zu beherrschen?
http://www.ebay.de/itm/640-x-480-CMOS-OV7670-Kamera-Modul-Mit-Objektiv-Lens-Camera-Module-/280762455776?pt=LH_DefaultDomain_77&hash=item415ebf16e0

Oder kann ich mit meiner alten USB-Webcam was anfangen? Eine Anleitung für Dummies, wie ich mit Hilfe einer Kamera eine Bildmatrix in den Speicher bekomme, konnte ich leider bisher nicht finden.


Ansonsten musst du eigentlich nur mehr sicher stellen dass der Bot seine Fläche kennt und nicht wo hin fährt, wo er nicht hin darf/soll. Dafür gibt es einige Ansätze. Entweder per Induktionsschleifen oder wenn deine Wiese gut abgetrennt ist (z.B. Zaun) dann mit Bumper und/oder Ultraschallsensoren.

Ich denke, ich nutze einfach, daß der Rasen grün ist. ;-)


Absichern musst Du das Ganze natürlich auch irgendwie - z.B. könnte ich mir vorstellen dass ein kleiner Kinderfuß Farbwerte dabei hat, welche im Löwenzahn auch vorkommen!!!

Da hast Du natürlich recht. Aber der Häcksler war ja sowieso nur ein kleines morbides Beispiel. Ein Schaumstoffhammer tut's erstmal auch. :-)


Hast dir schon über den Aufbau Gedanken gemacht? Wer/was macht die Rechnenarbeit? Welche Motoren? Stromversorgung, .....
Mit welchem Budget hast du geplant?

Ich hab im Moment ein Arduino Leonardo, mit dem ich möglicherweise nicht sehr weit komme. Insbesondere das RAM ist da wohl das Problem. Kann man sich mit einer SD-Karte als RAM-Ersatz aushelfen? Oder evtl. brauche ich das Bild auch gar nicht als Ganzes im Speicher. Da kommt es dann wieder darauf an, wie mir die Kamera das Bild liefert. Und da hab ich bisher keinen Einstieg gefunden.

Als Motoren wollte ich demnächst 2 alte Servos "aufbohren". Es soll also echt nur ein vielleicht 30x30cm großes rollendes Versuchsteil werden. Für die Hauptarbeit mit der Kamera brauche ich ja sowieso noch keinen fahrbaren Untersatz.

Viele Grüße, Dayzz

arnoa
16.05.2013, 15:22
Ich hab im Moment ein Arduino Leonardo, mit dem ich möglicherweise nicht sehr weit komme. Insbesondere das RAM ist da wohl das Problem. Kann man sich mit einer SD-Karte als RAM-Ersatz aushelfen? Oder evtl. brauche ich das Bild auch gar nicht als Ganzes im Speicher. Da kommt es dann wieder darauf an, wie mir die Kamera das Bild liefert. Und da hab ich bisher keinen Einstieg gefunden.

Ich bin nicht sicher aber ich denke auch dass es nur mit dem Arduino eng wird ...

Ich mache meine Bildverarbeitung am Notebook das mein Bot am Rücken trägt. Für Windows und Linux gibt es auch extrem gute Hilfmittel wie AForge, EmguCV oder OpenCV. Auflösung ist ziemlich unwichtig. Ich arbeite an einem Projekt für die Wegeerkennung. Hier habe ich zum Testen die Bilder schon auf 80x80 runtergerechnet und die Ergebnisse waren noch immer zum Teil ausreichend.

Grundsätzlich (und vor allem für mich) ist Bildverarbeitung ein ziemlich komplexer Bereich. Ich kämpf immer wieder mit unterschiedlichen Farbwerten (ein Strasse ist heller, eine dunkler, keine saubere Abtrennung, usw.). Für uns einfache bzw. selbstverständliche Sachen werden zu einem Problem - z.B. Schatten von Objekten, Schatten den sich der Bot selber macht, Fremdkörper wie Menschen ;) die unmotiviert den Weg kreuzen/versperren, usw.