Hallo Mikrocontroller Forum, ich brauche euer Expertenwissen. Im nächsten Semester schreibe ich meine Bachelorarbeit (Maschinenbau). Das Thema welches mich am meisten Interessiert ist „Die Bewegungserfassung des menschlichen Armes“. Dazu soll mit Hilfe von Sensoren (Beschleunigungssensor/ Gyroskop/ Kompass) die Bewegung aufgezeigt werden. Zur Visualisierung und Auswertung soll ein Smartphone genutzt werden. Die Sensoren des Smartphone sollen nicht verwendet werden. Als Ergebnis soll die Art der Bewegung erkannt werden. Z.B.: Die Hand bewegt sich auswärts/ Abwärts. Meine Bestellliste: - Beschleunigungssensor - Gyroskop - Kompass - Bluetooth –Sender - CPU - Akku Da ich mit meiner Bachelorarbeit erst im November starten werde befinde ich mich noch in der allgemeinen Recherchephase. Ich habe mich mit Sensorik – und Mikrocontrollerfachbüchern nur so eingedeckt. Meine Frage an euch: Was muss ich alles kaufen und wo? (Sensoren/CPU) Wie können die Komponenten programmiert werden? Ist mein Vorhaben in 6 Monaten umsetzbar? Vielen Dank für eure Mühe. Viele Grüße
Ranz Ranz schrieb: > Dazu soll mit Hilfe von Sensoren (Beschleunigungssensor/ Gyroskop/ > Kompass) die Bewegung aufgezeigt werden. Sowohl das Thema als auch die Sensorenliste führen zum Ergebnis, dass NUR die Bewegung erfasst wird, nicht aber die tatsächliche Stellung des Arms - ist das genauso gedacht, und ist es praktisch sinnvoll? Mir fällt da nur Mausersatz ein, aber das gibt es schon seit Jahrzehnten. Georg
Die tatsächliche Position also die Stellung im Raum X/Y/Z wäre natürlich interessant auszuwerten. Jedoch ist das messtechnisch nicht sehr genau. Dazu würde man die Beschleunigungsdaten doppelt Integrieren und somit auch den Fehler. Das Ergebnis hieraus kann man nicht als Messung bezeichnen da viel zu ungenau. Für mich ist das Ergebnis völlig ausreichend wenn ich bestimmen kann ob sich der Arm nach oben bewegt oder nach unten. Welche Sensoren und welche CPU soll ich kaufen. Wie ist das mit der Schnittstelle Smartphone – Sensor zu programmieren. Dazu habe ich ein Video gefunden https://www.youtube.com/watch?v=3ygKcBOFLJU
:
Bearbeitet durch User
Ranz Ranz schrieb: > Dazu würde man die Beschleunigungsdaten doppelt Integrieren Ganz sicher nicht - würden Roboter so arbeiten, gäbe es kein funktionsfähiges Auto mehr. Aber zurück zu deiner Aufgabe: im Prinzip betrachtest du die Hand nicht anders als einen Quadrokopter, der seine Lage im Raum und die Bewegung feststellen muss. Die Lage deswegen, weil sonst die Bewegung ohne sinnvollen Bezug bleibt. Über Quadrokopter-Steuerung gibt es unzählige Threads im Internet, aber wenn du dich da mal umschaust, wirst du feststellen, dass das alles andere als trivial ist und hohe Anforderungen an den Programmierer stellt. Die Sensoren sind da nicht das Problem, da liegst du schon richtig. Georg
Was habe Sie für Erfahrungen in diesem Bereich? Ich hab so den Verdacht, dass Sie das ganze etwas unterschätzen. Trivial-Lösung wäre einfach ein Smartphone in der Hand zu halte, das hat den Beschleunigungssensor und alles was man sonst noch braucht bereits integriert und sie sind vergleichsweise einfach zu Programmieren.
innerand innerand schrieb: > Trivial-Lösung wäre einfach ein Smartphone in der Hand zu halte Deswegen hat ihm sein Prof das ja auch verboten. Da sind natürlich auch irgendwo die nötigen Kenntnisse vorhanden, aber da kommt man sicher viel schlechter dran als bei den Quadrokoptern, die ja als Bastlerobjekt sehr verbreitet sind. Noch besser wäre so etwas wie Kinect, aber dann hätte er ja garnichts mehr zu tun. Georg
Georg schrieb: > Deswegen hat ihm sein Prof das ja auch verboten. Stimmt, ich muss Anfangen die Posts zu lesen. Komisches Thema jedenfalls für einen Maschinenbaustudenten (wenn es da tatsächlich um die Datenerfassung geht). Ich dachte immer das wären mehr die mit den Kräften und Zahnrädern als mit den Elektronen und Bits...
:
Bearbeitet durch User
Ranz Ranz schrieb: > Was muss ich alles kaufen und wo? (Sensoren/CPU) http://www.ebay.de/itm/10DOF-Neun-Achsen-Attitude-L3G4200D-ADXL345-HMC5883L-BMP085-GY-80-/251557215032?pt=Wissenschaftliche_Ger%C3%A4te&hash=item3a91fa7b38 http://www.ebay.de/itm/DC-3-3V-8mA-Mini-Wireless-Bluetooth-Transceiver-Modul-rs232-TTL-fur-Arduino-NEU-/360663422584?pt=Wissenschaftliche_Ger%C3%A4te&hash=item53f9371678 einen µC, z.B. http://reichelt.de/PIC-12F1840-E-P/3/index.html?ACTION=3;ARTICLE=121716;SEARCH=PIC12F1840-E/P und noch ein paar passive Bauelemente, gibts auch bei Reichelt > Wie können die Komponenten programmiert werden? In MPLAB X IDE mit C oder ASM
:
Bearbeitet durch User
Ich bin kein Experte für Programmierung. Vorzuweisen habe ich lediglich das Fach „Sensorik und Automatisierung“ somit nur Vorkenntnisse. Bei der Bachelorarbeit werde ich durch den Professor unterstützt. Mein Ziel ist es das Thema umzusetzen in einen Prototypen, dafür habe ich ab November 6 Monate Zeit. Ein kurzer Auszug aus einem ähnlichen Projekt Beschleunigungssensoren Ein Beschleunigungssensor ist ein Sensor, der die Beschleunigung misst, indem die auf eine Testmasse wirkende Trägheitskraft bestimmt wird. Somit kann festgestellt werden, ob eine Geschwindigkeitszunahme oder -abnahme stattfindet. Die in diesem Projekt verwendeten Sensoren messen die Beschleunigung entlang der drei Raumachsen und übertragen die gemessenen Werte über Bluetooth (http://www.wearable.ethz.ch/resources/educationkit). Um bestmögliche Resultate in der Aktivitätserkennung zu erzielen, sollte ein Beschleunigungssensor immer an Körpersegmenten angebracht werden, die sich stark bewegen, z.B. an Armen oder Beinen. Aktivitätserkennung Um die Aktivitäten im vom Computer empfangenen Datenstrom zu erkennen, wird Matlab verwendet. Der Datenstrom wird in zeitlich kurze Segmente unterteilt und dann wird in jedem Segment sog. Features berechnet. Einige Beispiele für Features sind der Mittelwert, die Varianz, der Maximalwert, etc.. Mit Hilfe dieser Features und vorher festgelegten Kriterien kann abgeleitet werden, was für eine Aktivität der Träger des Sensors gerade ausführt. Ein Beispiel eines Sensorsignals für Stehen und Gehen ist im Bild nebenan gegeben. Hier kann man den Sensorsignalen schon ansehen, dass im ersten Teil die Person steht weil sich die Signalwerte kaum verändern und sie im zweiten Teil geht und daher die Beschleunigung starke Ausschläge aufweist. Im zweiten Bild ist als Beispiel für ein Feature die Varianz der Beschleunigungssignale
Ranz Ranz schrieb: > Dazu würde man die Beschleunigungsdaten doppelt Integrieren und somit > auch den Fehler. Du siehst die Welt zu kompliziert und vermutlich irgendwo im hinreichend homogenen Schwerefeld der Erde. Bei ruhendem Arm hat man aus dem Vektor der Erdbeschleunigung und dem Kompass schon mal zwei Winkel zur Beschreibung der Lage. Die doppelte Integration ist da völlig überflüssung. Außerdem weiß man (ziemlich) sicher, dass der Arm am Schultergelenk (hoffentlich) einen Fixpunkt hat. Mit einem Rechenmodell für den Arm ergeben sich einige Randbedingungen. Der Gyro ist dann für die Erfassung der Dynamik verantwortlich - Sensor Fusion mit einem Kalman-Filter dürfte das richtige Kapitel zum Einlesen sein.
Ich meine nicht die Lage im Raum sondern die genau Position im Raum. Ein Beispiel hierzu: Nehmen wir den Referenzpunkt beim Stehen und hängenden Arm als Nullposition. Würde sich die Person nun 5 Meter vor bewegen dabei den Arm schwingen und wieder zurück zum Ausganspunkt gehen ist es praktisch unmöglich den Nullpunkt exakt zu bestimmen. s(t)=ʃv(t)=ʃa(t) Die genaue Position ist für mich nicht Notwendig, die Lage des Sensors jedoch schon. Und mit den genannten Sensoren dürfe dies möglich sein. Erstmal vielen Dank für die vielen Antworten. Wenn ich nun die Sensoren, den CPU und Akku bestellt habe geht es mit der Verkabelung/ Verlötung los. Gibt es dazu Pläne? Wie übertrage ich das Programm auf die CPU und in welcher Sprache wird genau Programmiert? Auf diesem Fachgebiet bin ich absoluter Neuling.
Das sind eine Menge von Baustelle, die du da aufmachen willst. Vorneweg - vermeide Lötarbeiten an SMT Bauteilen - die Sensoren und die Microcontroller gibt es fertig auf Platinen mit der existenziell wichtigen Peripherie, das spart langwierige Funnktionstests und Fehlersuche an den selbst glöteten Baugruppen. Fertigbaugruppen aneinander zu löten wirst du dagegen schaffen. Zur Vorbereitung auf die Sensorauswertung schau mal bei Youtube in die Vortragsreihe "Autonomous navigation for quadrotors" von Dr. Jürgen Sturm. Die Grundlagen werden hier kurz und kompakt vorgestellt. Natürlich ist Dein Thema weit weniger komplex als autonomes Fliegen, aber ich schätze dass einiges hilfreich für dein Projekt sein wird. Insbesondere die Vorstellung der mathematischen Grundlagen zu Bewegungen im Raum und deren Auswerung ist knapp, aber genau zielgerichtet präsentiert. Zur vor dir liegenden Programiererei zählen Bereiche wie I2C Bus und / oder SPI interface für die Sensorauslesung (wobei gemeinerweise einige Trägheitssensoren die anderen Sensoren auf einem Slave I2C Bus halten und zusätzlich die Sensordaten schon wirklich gut aufarbeiten, worüber es aber keine Dokumentation gibt). Deshalb: wähle deine Sensoren mit Bedacht. Dazu kommt dann noch Bluetooth-Programmierung für das interface zum tablet... Achte darauf, dir nicht zuviel aufzuladen, damit dein Projekt nicht den gleichen Weg geht wie der Flughafen BER. Auf jeden Fall wünsche ich viel Erfolg und gutes Gelingen
Ranz Ranz schrieb: > Gibt es dazu Pläne? Siehe Anhang > Wie übertrage ich das Programm auf die CPU Mit einem PIC-Programmer, zum Beispiel mit dem PICkit3 > und in welcher Sprache wird > genau Programmiert? C oder ASM, suche dir eine aus.
Da fällt mir ein, es gibt von Texas Instruments eine Armbanduhr EZ430, die einen frei programmierbaren MSP430 Prozessor komplett mit Beschleunigungssensoren, Drucksensor und Funksender (430 oder 868 Mz), allerdings so weit ich weiss ohne Gyrosensoren. Diese Uhr gibt es schon einige Jahre und es sind einige Projekte damit veröffentlicht (frag die Suchmaschine deines Vertrauens). Vielleicht kansst du die nutzen.
ernst oellers schrieb: > Funksender (430 oder 868 Mz), Damit wird die Verbindung mit dem Smartphone nicht einfach.
:
Bearbeitet durch User
Vielen Dank für die schnellen und wirklich guten Informationen. Dass ich die Sensoren zusammenbauen kann traue ich mir ohne weiteres zu. Bei der Programmierung sieht es anders aus da mein Bezug zur Informatik nicht gerade stark ausgeprägt ist. Gibt es hierfür Programmbausteine wie zum Beispiel von Google Developers für Matlap? Was muss ich genau kaufen um die Sensoren zu verbinden? Vielen Herzlichen Dank
Ranz Ranz schrieb: > Bei der Programmierung sieht es anders aus da mein Bezug zur Informatik > nicht gerade stark ausgeprägt ist. Hauptsache, du bist fit in digitaler Systemtheorie und erschrickst dich nicht über Matrixrechnung, Optimalfilter, Kalman-Filter, Algorithmen für Sensorfusion, u.s.w.
Als fit würde ich mich nicht bezeichnen aber als ehrgeizig. Es gibt bei uns zahlreiche Professoren die sich Matrixrechnung und Algorithmen befassen zu denen ich auch den Kontakt suchen werde, wenn ich genug über die Materie in Erfahrung gebracht habe. Dazu müssen die Sensoren vorhanden sein. Ich brauche am besten noch ein Programm womit ich die Schaltung zeichnen und simulieren kann. (Kennt jemand ein gutes oder ist das auch mit Matlab machbar) Für die Programmierung der Algorithmen sollte ich mir Fachbücher zulegen. Welche empfiehlt ihr mir?
Ranz Ranz schrieb: > Was muss ich genau kaufen um die Sensoren zu verbinden? Meine Vorschlag von ober kannst du ohne Zusatzhardware über Bluetooth mit dem Smartphone verbinden. https://www.mikrocontroller.net/attachment/222074/PIC_Sensor_Bluetooth.png Ranz Ranz schrieb: > Ich brauche am besten noch ein > Programm womit ich die Schaltung zeichnen und simulieren kann. Zum Zeichen ist EAGLE sehr beliebt. Ein Programm zum Simulieren von µC, Sensoren und Bluetooth-Modul wird schwer zu finden sein. Für die Schaltung musst du keine Platine Ätzen, den Prototyp könntest da auf Lochraster oder auf dem Steckboard aufbauen.
:
Bearbeitet durch User
Max H. schrieb: > Zum Zeichen ist EAGLE sehr beliebt. Tatsächlich, bei wem? Also ich war ganz schnell wieder von EAGLE weg und würde Target 3001 empfehlen, grad für Anfänger. Zum Simulieren verwende ich PSpice.
innerand innerand schrieb: > Tatsächlich, bei wem? Schau dir mal an wie viele Schaltpläne hier im Forum mit EGALE gezeichnet werden...
Schau dir mal das STM32F4 Discovery Board an. Da ist ein Beschleunigungssensor direkt drauf. Die Programmierung ist relativ einfach, auch weil es für vieles Libraries und Beispiele (z.B. hier: http://mikrocontroller.bplaced.net/wordpress/?page_id=744). Mit einem Bluetooth Modul kannst du damit dann auch zum PC funken. LG Jan
Jan Berg schrieb: > Da ist ein > Beschleunigungssensor direkt drauf. Kompass und Gyro fehlen aber noch und das STM32F4 Discovery Board ist vllt. ein bisschen groß um es am Arm zu tragen.
:
Bearbeitet durch User
Ranz Ranz schrieb: > Könnte man programmtechnisch die Akkukapazität feststellen? Ja, mit extra Bauteilen. Google mal LIPO Fule Gauge,
Ranz Ranz schrieb: > Könnte man programmtechnisch die Akkukapazität feststellen? Was meinst du damit? Ranz Ranz schrieb: > Gibt es eventuell weite Bauteile die ich Benötigen könnte? Etwas um den Akku zu laden... Welchen Akku willst du eigentlich verwenden? Li-Ion?
Stimmt, die Aufladeschnittstelle habe ich übersehen. Ja ich dachte dabei an ein Lithium-Ionen Akku
:
Bearbeitet durch User
Sorry, aber mit deinen Zero!!! Vorkenntnissen solltest du soviel wie möglich fertig kaufen. In 6 Monaten wird das sonst nichts. Schau mal nach dem STMF3 Discovery Board, da ist auch ein Gyro und Kompass mit drauf.
Das mein Vorhaben für mich leicht umsetzbar sein wird, davon war nie die Rede. Wenn es ein Modul geben würde mit allen Komponenten welches noch zugleich nicht zu groß ist würde ich es sofort kaufen. Da dem aber so nicht ist bin ich gezwungen alles selber zu kaufen. Meine Bestellliste stelle ich mit eurer Hilfe zusammen. Ich befinde mich so ziemlich am Anfang des Projektes. Meine Abgabe ist in über 10 Monaten daher bin ich zuversichtlich etwas Brauchbares auf die Beine stellen zu können.
Das Board ist nicht so groß. Als Anfänger wirst du kaum was kleineres
bauen können in der Zeit. Der Code für die Ansteuerung der Sensoren ist
auch gleich dabei.
Hast du schon mal ein Board mit SMD gelötet, Layout produziert?
Die Software für dein Vorhaben ist auch nicht trivial. Ich hab ähnliches
schon mal beruflich gemacht. Die Hardware und Software. Ich hab ca.5
Monate gebraucht bis es serienreif war. Ich mache das aber schon
>15Jahre
Bei der Erfahrung die du hast kann ich wohl kaum ein Gegenargument liefern. Ich muss die wohl Recht geben müssen. Das Board welches du meinst ist das hier: http://translate.google.de/translate?hl=de&sl=en&u=http://www.st.com/web/catalog/tools/PF254044&prev=/search%3Fq%3DSTMF3%2BDiscovery%2BBoard%26rlz%3D1C1SVEF_enDE429DE429%26es_sm%3D93 Da Fehlt jedoch eine Bluetooth-Einheit. Einen Akku müsste ich auch separat anschließen. Liege ich da richtig? Hast du noch weitere Ratschläge für mich? Vielen Dank an dieser Stelle.
Ich hab eine Fertige Lösung gefunden: http://www.x-io.co.uk/products/x-bimu/#!prettyPhoto Jedoch viel zu teuer. Eine Alternative konnte ich noch nicht finden
ernst oellers schrieb: > Da fällt mir ein, es gibt von Texas Instruments eine Armbanduhr EZ430, > die einen frei programmierbaren MSP430 Prozessor komplett mit > Beschleunigungssensoren, Drucksensor und Funksender (430 oder 868 Mz), > allerdings so weit ich weiss ohne Gyrosensoren. Hat sie! Sieh es Dir mal an! Heisst auch TI EZ 430 Chronos... Gruß Elux
Reiner O. schrieb: >> allerdings so weit ich weiss ohne Gyrosensoren. > > Hat sie! Sieh es Dir mal an! Heisst auch TI EZ 430 Chronos... Ich lese hier nirgends was von einem Gyro: http://processors.wiki.ti.com/index.php/EZ430-Chronos Mit 433, 868 oder 915MHz wird die Verbindung mit dem Smartphone schwierig.
Reiner O. schrieb: >> allerdings so weit ich weiss ohne Gyrosensoren. > > Hat sie! Sieh es Dir mal an! Heisst auch TI EZ 430 Chronos... Ich habe eben noch einmal in das EZ 430 Cnronos WIKI und in das Datenblatt geschaut -- von Gyrosensoren ist da nicht die Rede.
Das STM32F4 Discovery wäre eigentlich ideal(http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419). Könnte ich es nicht mit weiteren Modulen erweitern, wie Bluetoothsender und einem Akku? Wenn ja wie kann ich das umsetzen?
:
Bearbeitet durch User
Ranz Ranz schrieb: > Könnte ich es nicht mit weiteren Modulen erweitern, wie Bluetooth Sender > und einem Akku? Wenn ja wie kann ich das Umsetzen? Du könntest die von mir genannten Module damit verbinden: Beitrag "Re: Sensorprogrammierung" Diese hat ein Freund erfolgreich am STM32 eingesetzt. Genaueres kann ich dir dazu nicht sagen, da ich mich noch nie mit diesem Board beschäftigt habe.
:
Bearbeitet durch User
Als Sensor Kit würde sich das ATMEL XPLAIN eignen • Bereitstellung der vollständigen 9 Grad Motion Sensing-Funktionen • 3-Achsen-Magnetometer von Honeywell (HMC5883L) • 3-Achsen Beschleunigungssensor von Kionix (KXTF9) • 3-Achsen-Gyroskop von InvenSense (IMU-3000) • Alle Sensoren-Schnittstellen über I2C-Port Gibt es bei reichelt für ca 70€ Da hasst du meines Erachtens alle Senosren auf einem Board, die du benötigst. Als µC würde sich das STM32F4 Discovery anbieten, wie bereits erwähnt, oder ein Atmel ATSAM. Viel Spaß und Erfolg bei deinem ehrgeizigen Projekt. Wenn das ganze nicht der Geheimhaltung unterliegt, wäre es auf jedenfall sehr schön, wenn du Ergebnisse, Lösungen, vielleicht sogare Quellcode hier postest oder am besten gleich im Wiki veröffentlichst
philipp schrieb: > Als µC würde sich das STM32F4 Discovery anbieten Ist das nicht ein bisschen Overkill nur um Sensordaten von I²C nach Bluetooth zu "übersetzten"?
:
Bearbeitet durch User
Max H. schrieb: > philipp schrieb: >> Als µC würde sich das STM32F4 Discovery anbieten > Ist das nicht ein bisschen Overkill nur um Sensordaten von I²C nach > Bluetooth zu übersetzten? Natürlich ist es für die ersten Schritte: Sensor anprechen, Daten über BT senden etwas oversized. Ich sehe darin aber folgende Vorteile: -Fast alle Pins (je nach Verwendung der Onboard Komponenten) sind verfügbar -Schönes großes Display für Statusanzeige damit einfacheres Debugging -Programmer mit Debug Funktion (SWD) ist bereits auf dem Board -Es ist viel Luft nach oben für weitere Funktionalität -SAUGÜNSTIG für das was es kann (ca. 25€)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.