Zittern meiner Hand aufnehmen

Hallo

Ich möchte das Zittern meiner Hand aufnehmen, um es dann irgendwo zu plotten.
Was ist geeigneter?
Accel.
oder
Gyro

Kommt darauf an wie Du zitterst. linear oder rotativ.
Grüße Uwe

Tremor. Vermutlich ersteres?

Auch wenn ich noch verschont bin und darum keine persönliche Erfahrung habe, würde ich sagen, daß ein 3 Achsen Beschleunigungsmesser die richtige Wahl ist.
Grüße Uwe

Okay, ich habe ihn mir einmal bestellt.
Kann man die Daten auf einen Arduino UNO speichern und dann auf den PC laden?

Der UNO hat 1KByte EEprom. Du kannst mit der EEprom-Bibliothek 8-Bit-Werte Speichern. Ansonsten mittels Adapter und Pegelwandler auf einer SD-Karte oder über I2C oder SPI auf externes EEPROM oder FRAM.
Grüße Uwe

ich lese hier eigentlich nur mit :-), doch jetzt habe ich auch noch eien Frage dazu.

man könnte doch auch die Daten über die Serielle Schnittelle senden, und am PC entweder dann Seriellen Monitor Offen haben aus den man sich das dann raus Kopiert oder man hat ein kleines Programm das die Daten am PC mit Logt.

Oder muss die Hardware vom PC los gelöst sein und bleiben?

1KByte klingt nicht nach viel. Ich kenne mich nicht so damit aus.

Es wäre schon von Vorteil, wenn ich es nicht am Laptop anschliessen müsste. Vielleicht wäre ich dann mit einem Raspie besser beraten? Ob ich das Ding daran verwenden könnte?

Alternativ halt den UNO am Laptop über USB?

Eprom als temporärer Datenlogger-Speicher ist eher "unüblich". 1kB, egal ob RAM oder EPROM, reicht nicht weit.
(Könntest eine Kurve 256*1024 Pixel aufzeichnen)

Sonst: Entweder direkt zum Laptop, auf SD-Karte, oder gleich ein Raspberry.

In welchem Format lassen sich solche Daten auf die SD-Karte speichern?
Und was ist eigentlich der Unterschied zwischen der seriellen Schnittstelle und USB?

meego:
In welchem Format lassen sich solche Daten auf die SD-Karte speichern?

Direkte Bild- oder Excel-Dateien wirst du nicht schreiben können, besser sind einfach Textdateien. Für eine bessere Auswertemöglichkeit bietet sich an, die Daten als CSV (Comma Separated Values) abzuspeichern. Diese könntest du einfach in eine Tabellenkalkulation deiner Wahl importieren und einen zeitlichen Verlauf darstellen.
Ob du die Daten aber schnell genug auf SD speichern kannst, weiß ich nicht. Vielleicht doch eher (wie Uwe bereits scrieb) auf externem Eeprom oder FRAM speichern bw. zwischenspeichern.

Ich würde die Daten gerne in Python ploten (matplotlib). Matplotlib verwendet in der Regel Numpy Arrays.

Benötige ich beim Raspi bei obigem Sensor einen Arduino zwischen Sensor und Raspi?
Und wenn ich doch über's Laptop gehe: Reicht dann die Geschwindigkeit über USB zum schreiben der CSV-Datei?

Das kommt auf die gewünschte Auflösung an, und welche Daten genau übertragen werden sollen.
Wenn ich das richtig sehe liefert der Beschleunigungssensor wohl 16bit Werte. Beschleunigung in X,Y und Z Richtung machen also zusammen 316bit pro Datensatz. Dazu kommt mindestens ein Trennzeichen von 8bit pro Messwert. Jetzt ist die Frage was du noch zusätzlich übertragen willst. Irgend eine Form von zeitlicher Referenz wäre ja nicht schlecht, die Uhrzeit bei längerem log, oder wenigstens die Rückgabe von millis() was 32bit entspräche. Damit bist du bei ca 112bit, je nach dem wie du deinen Datensatz konstruierst. Angenommen du willst 60 solcher Datensätze pro Sekunde übertragen, dann bräuchtest du mehr als 11260 = 6720bit/s (Per Serieller Schnittstelle müsste man also z.B. eine Baudrate von 9600 oder höher wählen). Man könnte das auch noch komprimieren, sollte aber kaum nötig sein.

Das ist nicht viel für den UNO, ein Pi wäre maßlos übertrieben.
Eine SD Karte wäre sicher ein Flaschenhals, sollte aber genügen. Das hängt wie gesagt davon ab wie viele Messwerte du pro Zeitraum brauchst.
Das richtige Datenformat erzeugst du dann am besten hinterher am PC.

Das hängt auch davon ab wie viel Aufwand man mit der SD Karte betreibt. Mit SdFat und low level Zugriff direkt auf den 512-Byte Puffer kann man durchaus recht schnell loggen.

Ich weiss ja nicht wie schnell du zitterst, und wie detailliert du das aufzeichnen willst, aber
meiner Meinung nach ist Geschwindigkeit kein Thema.

Für grafische Darstellung ist eine 0.4% Auflösung (1/256) (1Byte/Messwert) erstmal fein genug, finde ich.

Am Beispiel der 1024 * 256 pixel Kurve: Wenn so eine Kurve ca. 1 sec. oder mehr abdeckt, ist das langsam genug für SD oder Serial.

Und was ist eigentlich der Unterschied zwischen der seriellen Schnittstelle und USB?

Heutzutage haben PC keine UART Serielle Schnittstelle mehr. ( Das waren früher die " IOIOI " beschrifteten Buchsen mit 9 Pins, die hiessen bei DOS und Windows COM1 etc. )
Statt dessen gibt es virtuelle Serielle Ports via USB. Von Windows-Programmen aus sehen sie aus wie serielle Ports, brauchen aber einen entsprechenden Treiber auf dem PC und ein Hardware-Gegenstück, das sich als USB Device am PC anmeldet und nach aussen die serielle Schnittstelle liefert.
Da wird dann auch oft statt der früher genormten Pegel nur noch 0V/5V geliefert, was für µController meist einfacher ist.

michael_x:
Heutzutage haben PC keine UART Serielle Schnittstelle mehr. ( Das waren früher die " IOIOI " beschrifteten Buchsen mit 9 Pins, die hiessen bei DOS und Windows COM1 etc. )

Gibt es oft noch auf dem Mainboard. Lediglich die Buchse ist nicht mehr da. Aber man kann die Anschluss-Blenden für hinten kaufen und intern verkabeln.

z.B. hier:

Bei "Internal I/O Connectors" -> "1 x serial port header"

Parallelport ist auch noch vorhanden

meego:
In welchem Format lassen sich solche Daten auf die SD-Karte speichern?
Und was ist eigentlich der Unterschied zwischen der seriellen Schnittstelle und USB?

Die serielle Schnittstelle (damit ist pin 0 und 1 des Arduino gemeint) verschickt daten auf 2 Leitungen und zwar von einem Gerät zu einem anderen (nicht zu mehreren). Die Geschwindigkeit ist nicht sehr hoch und die Übertragungsparamenter müssen für beide Geräte gleich sein. Die RS232 Schnittstelle verwendet das geleiche Datenformat aber andere Spannungspegel für H und L ( ca -12V und +12V)

USB ist ein Bus an dem man über HUBs mehrere Geräte anschließen kann. Der Host handelt mit den Slaves die Übertragungsparamenter aus. Darum braucht es spezielle ICs oder programmierte Controller am besten mit integrierten USb-Hardware-Teil um die USB-Schnittstelle zu bedienen. Die USB-Schnittstelle gibt es in mehreren Versione di untereinander kompatibel sind (USB 1.1, USB 2 und USB 3) und können sehr viel mehr Daten übertragen.

Der Arduino hat eine serial zu USB Adapter in form eines programmierten ATmega16U2 Controllers, eines FT232 oder neuerdings die ChinaNachbauten einen CH340.

Grüße Uwe

Also wenn ich Euch richtig verstehe (es ist zuweilen sehr technisch), dann empfehlt ihr mir, es mit der SD-Karte zu versuchen (UART habe ich nicht). Ich habe einen NUC mit Ubuntu und ein Lenovonotebook ebenfalls mit Ubuntu. Ein Arduino UNO ist ebenfalls vorhanden.

Was benötige ich zum Arduino UNO und Beschleunigungs-Sensor für den SD-Karten-Weg genau?

Die CSV-Datei lässt sich also nicht über den normalen USB Anschluss vom Arduino schreiben (den, welchen man verwendet um das Skript auf dem Arduino abzuspeichern)?

Welcher Weg ist programmiertechnisch anspruchsvoller?

Das Zittern ist momentan noch nicht wirklich sichtbar. Ich spüre es aber, wenn ich ruhig bin, insbesondere nachts im Bett.