Forum: Mikrocontroller und Digitale Elektronik beschleunigungsensoren


von bernd (Gast)


Lesenswert?

ich bau gerade eine ps/2-mouse mit beschleunigungssensoren, ps/2
mausprotokol
hab ich schon implementiert und funktioniert auch wunderbar.

den zurückgelegten weg möcht ich mittles beschleunigungssensoren
feststellen...
und geh mit den signalen (x,y-koordinate) über verstärker auf zwo adc
eingänge....

frage: nun muß ich ja beschleunigung 2 mal integrieren um auf den   weg
  zu kommen....würds sich ja ein op-integrierschaltung anbieten...mag
ich
aber nicht....hat da irgenwer was mal softwaremässiges gesehen zum
integrieren... naja, war nur frage.... ;)

mfg,
bernie

von bernd (Gast)


Lesenswert?

naja...komm grad drauf...einfach die eingelesenen werte aufaddieren...

von Frankl (Gast)


Lesenswert?

wie ist das mit den langsamen Beschleunigungen

von bernd (Gast)


Lesenswert?

ja, ich hab zurzeit den beschleunigungssensor noch nicht....hab mich nur
mit dem mausprotokol bis jetzt beschäftigt....also noch alles graue
theorie....mal sehen ;)

von Christian Bischoff (Gast)


Lesenswert?

Hallo,

langsame Beschleunigung sollte kein Problem sein wenn du die richtigen
Sensoren verwendest. Z.B. ADXL 05 oder ADXL202 da diese auch statische
Beschleunigung erfassen können. Infos gibts bei Analog Devices
(http://www.analog.com/index_noflash.html unter MEMS-Technology). Die
sind aber nicht ganz billig (ADXL202 +/-2g Messbereich, 2 Messachsen,
ca. 25,-- Euro bei Segor). Dafür hat er PWM-Ausgänge und läßt sich mit
etwas Zusatzbeschaltung auch mit Analogausgängen versehen. Häufig
günstig zu beschaffende Piezo-Sensoren scheiden aus da sie keine
statische Beschleunigung erfassen können.

Tschau

Christian

von bernd (Gast)


Lesenswert?

ja das mit dem piezo hab ich schon selber herausbekommen, weil ich es
damit probiert habe ;))
den ADXL202AE, hat mir ein uniassistent auch empfohlen und den hab ich
jetzt auch bestellt....man wird sehen

trotzdem danke

grüße
bernd

von bernd (Gast)


Lesenswert?

achja, problem mit ADXL202AE ist halt der preis, weil in der
aufgabenstellung auch gefordert ist das ich mit dem preis in einer
serienproduktion deutlich unter eine optische maus kommen muß.....also
wäre
ich für alternativen (billigere wie der ADXL202AE) SEHR dankbar

von bernd (Gast)


Lesenswert?

eine ganz verwegene idee wäre vielleicht für jede achse ein blechstück
mit kleine gewicht oben drauf....und beschleunigung mittels
einen dms welches auf dem blech sitzt zu bestimmen..wow..das müsste ja
echt gehen ;)

von Christian Bischoff (Gast)


Lesenswert?

Moin,

sorry about that. Ich habe völlig verdrängt das noch andere Hersteller
sich an Beschleunigungssensoren versuchen. Einer davon ist ST-Micro.
Die haben vor einiger Zeit den LIS3L02AS angekündigt. Bei den
Distributoren konnte ich aber keine Auskunft über Preis & Verfügbarkeit
bekommen. Wenn ich mich recht entsinne ist er aber für den
Consumerbereich gedacht.

Nähere Info´s findest Du hier:

 http://eu.st.com/stonline/prodpres/dedicate/mems/mems.htm

Tschau

Christian

von bernhard (Gast)


Lesenswert?

@ Christian

dankeschön!!

mfg
bernhard

von bernhard (Gast)


Lesenswert?

LIS2L02 hab ich grade gefunden..und der scheint echt sehr gut zu
passen..auf den ersten blick

von ralf (Gast)


Lesenswert?

Hi,
ich hab so einen beschleunigungssensor und hab das mit der maus auch
mal zum spaß ausprobiert. es gibt dabei nur ein problem: wenn der
sensor leicht schräg liegt, kann er die beschleunigung deiner hand
nicht von der erdbeschleunigung unterscheiden, d.h. der mauszeiger
wandert immer langsam in eine richtung. mit "schräg liegen" meine ich
übrigens neigungen von 0,5-1°

wenn man einen winkel von +-2° als null definiert, reagiert die maus
erst auf abruppte bewegungen.


ich hätte da noch eine andere frage:
hat einer zufällig die "ps2mouse_emulator.lbx"-datei für den
bascom-compiler? die fehlt mir irgendwie

mfg
ralf

von Michael von Gersdorff (Gast)


Lesenswert?

Hallo Bernd

Ich glaube Du wirst mit deinen Beschleunigungsmessern nicht glücklich
werden.
Der Nullpunk dieser Sensoren müßte etwa die Qualität von
Trägheitsplattformen haben.
Falls Du versuchst mit einem Hochpaß diesen Nullpunktsfehler
wegzukriegen so wird der Mauspfeil sich auch bei Stillstand der Maus
langsam weiterbewegen bis der Kondensator (vom Hochpaß) entladen ist.

Gruß
Michael

von Camo (Gast)


Lesenswert?

Ich habe mir vor einiger Zeit mehrere Beschleunigungssensoren von Analog
Devices im Wert von ca. 74 US$ als Samples (kostenlos) bestellt.
Hat wunderbar geklappt :)
Der einzige Haken ist, dass einige davon sone blöde Bauform ohne pins
haben, nur mit winzigen Kontaktflächen an den Seiten; mit etwas
Geschick aber kein Problem zu löten.

Gruß, Camo

von Matthias (Gast)


Lesenswert?

Hi

man müßte das Signal nur softwaremäßig differenzieren. Dann hat man die
Beschleunigungsänderung. Daraus kann man dann wohl die Bewegung des
Mauszeigers berechnen. Aber denn Sinn dahinter hab ich noch nicht so
ganz entdecken können. Schließlich sind optische Mäuse gut und
günstig.

Matthias

von Martin (Gast)


Lesenswert?

Hmm hab mir den Beitrag mal durchgelesen und ich find das ganze sehr
interessant.
Wie man das problem mit der "schiefen" Unterlage wegbekommen könnte
wäre vielleicht wenn man für x jeweils 2 sensoren und für y 2 nehmen
würde. Die beiden müssten dann um einen gewissen winkel gedreht zu
einander sein (in der x richtung also in der y richtung und umgekehrt)
dann könnte man glaub ich die erdbeschleunigung wegrechnen wenn mich
net alles täuscht. wird dann aber schon ganz schön komplizert/teuer...

MfG Martin

von xxxx (Gast)


Lesenswert?

Hi
ich hab mich bei ner Facharbeit von nem Kumpel "Orientierung im Raum
mittels Beschleunigung" um die Hardware und Software gekümmert.
Hab für X,Y den ADXL202 verwendet(über PWM) und für Z einen
Selbstgebauten(über A/D).
Die Ergebnisse mit dem ADXL202 war gar net schlecht wären vielleicht
besser wenn ich gewusst hät wie man float zahlen rundet. hab da nichts
gefunden(peinlich peinlich). DOch wie Martin angesprochen hat mit der
schiefen is das so ne Sache. Ebenso wenn man die den Sensor dreht(Wegen
der Fliehkraft).
Meine Lösung:
einen ADXL202 der x,y misst
um das Problem mit der schiefen ebene zu lösen würd ich die Maus auf
die Oberflache setzten, und eine Intitialisierungsfunktion ausführen
lassen, die die Hangabtrieb für x und y misst
diese Werte addierst du nach jeder messung dazu
Dies ist aber nur geeignet wenn die Oberfläche nicht krumm ist,d.h. die
Neigung darf sie nicht ändern wenn ja neu Init.
Mit der Ratation gibs von mir keine Lösung. Mir ist da noch keine
eingefallen
Wenn interesse am C-Quellcode besteht kann ich den ja mal raussuchen
und in ne zip stecken. Verwendeter µC M16. Beim ADXL202 hab ich den PWM
ausgang verwendet. Denke wenn man den Analogen ausgang nimmt kann
man's genauer machen, da man mehr messungen <1ms machen kann und übern
Filter laufen lassen kann.

von ralf (Gast)


Lesenswert?

so einen Nullpunktabgleich hatte ich auch schonmal gemacht, aber das
Problem ist, daß der Sensor selbst bei absoluter Ruhe nicht bei diesem
Nullpunkt bleibt. Der Sensor ist für eine Beschl. von +-2g ausgelegt,
allerdings liegen die Beschleunigungen einer Maus im Normalbetrieb
(nicht bei extreme-Gamern) bei 0,01g.

von ralf (Gast)


Lesenswert?

somit ist der Abstand vom Rauschen des Sensors um den justierten
Nullpunkt, und dem eigentlichen Signal ziemlich klein.

mfg
Ralf

von Jochen (Gast)


Lesenswert?

Hallo
wenn der ADXL202 zu teuer ist dann schau mal nach dem ADXL311 der
kostet nur 5.10$ und hat auch zwei achsen jedoch keine PWM Ausgang
sondern nur Analog

von kenny (Gast)


Lesenswert?

Hallo Ihr,

ich arbeite zur Zeit auch mit Beschleunigungssensoren und will eine
Drehung um ca. 40° auf der X-Achse ,und die aufgenommenen Werte als
Gradwinkel auf einem LCD-Display anzeigen!
Wäre super wenn ihr mir bei diesen Problem helfen würde!

Kenny

von postmen (Gast)


Lesenswert?

hi zusammen,

ich hab mich vor jahren mal mit beschleunigungssensoren beschaeftigt
und ein testboard mit dem adxl202 verwendet. das teil hat den vorteil,
dass es eine rs232 integriert hat (ueber pic realisiert) und man ueber
eine mitgelieferte software gleich zu ergebnissen kommt.

ich bin damals zur erkenntnis gekommen, dass die positionsbestimmung
(momentan, oder mit diesem sensor) nicht moeglich ist, weil durch die
doppelte integration der fehler durch das eigenrauschen des sensors so
schnell so gross wird, dass die errechnete position schon nach wenigen
sekunden in eine zufaellige richtung "abhaut"..
trotz filterung und interpolation ueber mehrere werte (das hat schon
was gebracht) bin ich zu keinem brauchbaren ergebnis gekommen,
allerdings war meine "forschungszeit" auch sehr begrenzt.

wenn da jemand zu brauchbaren loesungen kommt bin ich natuerlich sehr
daran interessiert, vielleicht greife ich das thema ja wieder mal auf
;)

lg andi

von Christian (Gast)


Lesenswert?

@ xxxxx

gibts die Facharbeit irgendwo zum downloaden??

Ich schreib grad eine Facharbeit über eine inertiale Messeinheit für
meinen Modellhubschrauber - die Einheit gibts schon so seit einem Jahr,
aber sie funktioniert nicht gut (Integrieren ist hoffnungslos - vor
allem wegen den Vibrationen - ich hätt mir ein anderes Fluggerät nehmen
solln... ;-)

mfg

Christian

von Jochen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
@Christian
mit der Facharbeit kann ich noch nicht dienen die hat mein Kumpel(ich
werd ihn aber mal fragen, denk schon, dass ich se bekomm), aber mit dem
Source code kann ich gleich dienen
und wenn du fragen zur Integration hast ich versuch sie gern zu
beantworten
@ralf
hab mich jetzt grad wieder ein bissel mit dem ADXL202 wieder beschäftig
und das hab ich zum Thema Genauigkeit.
im Datenblatt steht dass bei einer bandbreite von 60Hz 2mg Genauigkeit
besteht
die genauigkeit(rausch) die ich bis jetzt hin bekam bei einer
Bandbreite von 50HZ(Cx/Cy = 0,1µF) lag bei +-0,03m/s² = ca. 3mg
@postmen
meine Ergebnisse waren sehrwohl brauchbar. Ich glaub, dass bei dir
nicht der Eigenrausch des sensor verantwortlich war sondern dass die
Oberfläche, auf dem du den sensor bewegt hast, nicht eben war. Da
reicht schon ein kleine Neigung, und die sx sy werte hauen in eine
Richtung ab.

Zum SOurce code:
Der ist in C geschrieben für einen M16C. Wertet den ADXL202 über das
DCM(PWM) singal aus und einen über nen A/D Wandler Er schickt die Werte
ax,ay,az und sx,sy,sz als Text über die serielle Schnittstelle

Gruß
Jochen

von Jochen (Gast)


Lesenswert?

@Christian
um was gehts in deiner Facharbeit eigentlich.
Wenn du denn ADXL202 verwendest, könntest du durch die Cx/Cy(0,47µF =
10Hz Bandbreite) das Problem mit den Vibrationen lösen. Denn durch die
stellst du eine Bandbreite ein für den low pass filter. Jetzt ist halt
die Frage wie hoch ist denn die Frequenz der Vibrationen.

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Jochen,

vielen Dank für deine Tips und Hinweise!!
Kennst du http://autopilot.sourceforge.net/ ?? Dort wird auch ein
ADXL202 zur Beschleunigugnsmessung auf einem Modellhubschrauber
verwendet und die hatten die selben Probleme - drum hab' ich einfach
ihre Lösung übernommen (siehe Anhang).

Die Probleme liegen glaub ich eher in der Abtastrate vom AD Wandler -
eine Mittelung der Werte wäre sicherlich auch sinnvoll....

Trotzdem nochmals besten Dank!!

Die Facharbeit beschäftigt sich mit dem Bau einer inertialen
Messeinheit mit Drehratesensoren, Beschleunigungssensoren für alle 3
achsen und zusätzliche Sensoren wie Temp. E-Kompass, Ultraschall
höhenmessung und Rotordrehzahlerfassung!!! Mein Physik Lehrer blickt
mal wieder überhaupt nix und hat auch noch eine eher skeptische
Einstellung gegnüber Schülern die was wissen was er nicht weiß ;-) -
macht aber nix - mir macht Basteln halt Spaß....

Viele Grüße

Christian

von Paolo (Gast)


Lesenswert?

So ... erstens bitte ich um Verstaendnis, mein Deutsch ist ein bischen
.. sagen wir "primitiv" ;-)

Re Maus mit Beschleunigungsensoren:
Nein, das geht nicht.
Andi ist richtig, wenn man ueber Zeit integriert, um die Position zu
berechnen,  man kann nicht 100% die kumulative Integrationsfehler auf
Null bringen. Mit der Zeit und sogar schnell, die berechnete Position
des Kursors wird bedeutungslos sein. Es gibt kein MEMS Sensor, das
genug wenig "noise" hat, um eine solche Anwendung zu implementieren.
Micorsoft und Apple R&D haben versucht und nicht geschafft ein solches
Maus zu implementieren.
Was dagegn moeglich ist, ist das Winkel mit Bezug zum
Gravitationsvektor zu brauchen .. in other words, tilting angle.
The solution is called Finring
http://www.the-gadgeteer.com/cateye-finring-review.html
http://www.bosswave.com/mouse/finring/index.shtml
Nur .. das letzte Mal, dass ich die BossWave Firma angesprochen habe,
das Finring war nicht mehr in Produktion ... die Idee ist aber einfach
zum realisieren. Viel Spass!


Re inertialen Messeinheit
Sentera Technology (www.senteratechnology.com) hat eine inertielle
Messeinheit mit dynamisch integrieten output (pitch and roll), die in
der Form eines "Motion Processor Kits" gekauft werden kann. Sehr
billing und wirklich cool.

Viels Spass
Paolo

von bernie (Gast)


Lesenswert?

@ paolo

das beschleuigungsmaus nicht einfach zu implemntieren ist, ist klar

ABER: studenten der cornell university und das frauenhofer institut
haben es schon erfolgreich geschafft!!!

und bei mir sind die ersten tests auch ok..also GEHT NICHT gibts NICHT
;)

bernie

von bernie (Gast)


Lesenswert?

das man über längere wegstrecken probleme mit beschleunigungssensoren
bekommt steht ausser zweifel..ABER: zb bei der ps/2 mouse gibt es
folgende mögliche abtastungen pro sekunde : 10, 20,30,40,
60,80,100,200....a

also 100 ms - 5 ms.....nach dieser zeit werden die berechneten wege
(x,y richtungen) an den rechner gesendet..danach die register
gelöscht..
und das ganze geht von vorne los....das ganze funktioniert sehr schön
und gut!!

von Paolo (Gast)


Lesenswert?

Bernie,
es gibt sicher Loesungen, nur wenn du ein Produckt kreieren will, dann
hast du viele Restriktionen ... zum Beispiel es ist einfach zu teuer,
ein DSP chip in ein Maus einzubetten (zu teurer gegenueber die
"konventionelle" Loesungen, die verfuegbar sind).
Wenn du ein Expriement machen will, dann schon ... nur das wird nicht
zum Market koomen.
Immerhin, ich glaube shcon das gewisse Resultate moeglich sind, nur
habe ich eine Frage: wie gut ist die Genauigkeit wenn die Bewegung sehr
langsam und konstant wird, was meistens in die vorletzten Sekunden der
Mausbewegung passiert, genau wo die Genauighkeit wichtig ist.

Hast du Test-daten ueber wie genau die Cornell und Frauenhofer Projekte
geleistet haben?
Thanks in advance!
Paolo

von bernie (Gast)


Lesenswert?

testergebnisse von frauenhofer und cornelluji gibts nicht, aber hier
(kurze) projektbeschreibungen:

http://www.teg.fraunhofer.de/german/projekte/index54.html

http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/pw33/ece476finalweb.htm

von Paolo (Gast)


Lesenswert?

Thanks Bernie!
Ja, das ist eben was ich gedacht habe. Dies sind keine traditionelle
Maus, es wird kein Position berechnet, sondern das Neigungswinkel
ausgenutzt, um die Bewegungsrichtung und Gescwindigkeit zu messen.
Dies is dasselbe wie den Finring by Bosswave.
Die Projekte sind aber sehr interessant.

von Jochen (Gast)


Lesenswert?

Also ich hab ne Maus gesehen, die hat den Beschleunigungssensor und
einen Gyrosensor der soll $58 kosten
http://autopilot.sourceforge.net/ahrs.html
Und das mit dem Fehler kann ganz einfach durch Grenzwerte behoben
werden. D.h. wenn die Geschwindigkeit nach dem die Maus zum stillstand
gekommen ist z.b. 0,1 m/s wegen denn Fehlern, dann kann man einfach
zwei Grenzwerte setzten indem die Geschwindigkeit als null definiert
wird. -> 0,1m/s wird als null gesehen und auch gesetzt.

von postmen (Gast)


Lesenswert?

hi jochen,

ich kann dir leider nicht recht geben was die fehlereliminierung mit
der untergrenze betrifft. leider entsteht der fehler auch dann wenn die
werte ueber der untergrenze liegen und summieren sich dann genauso.
natuerlich hast du fuer ebene statische situationen dann eine loesung
des problems, aber wann hast du schon eine solche situation? so gut wie
nie. allein die erdbeschleunigung bei schraeghaltung des sensors
bewirkt hoehere werte die du aber eigentlich messen solltest. hier kann
nur eine sehr intelligente filterung und auswertung der messwerte
abhelfen, und ich denke das ist genau das woran die leute vom
fraunhofer institut arbeiten, nebst der miniaturisierung..
grenzwerte sind vergleichbar mit rauschunterdrueckung bei audio (unter
einem bestimmten pegel wird das signal komplett oder stark gedaempft) -
alle diese massnahmen wirken unrealistisch und sind fuer
positionsbestimmungen nicht geeignet.

andi.

von Paolo (Gast)


Lesenswert?

Ich glaube dass Andi richtig ist, nur ich verstehe nicht, wie man durch
Filtern die Zweifachintegrationsfheler auf Null bringen kann.

Die Berechnung der Position braucht bei jedem Schritt einen Anfangswert
fuer Position und Geschwindigkeit. Doch durch Filtern werden die
Sensorenwerte "gereinigt" und dazu koennen diese Werten
"ausgewertet" werden, nur wenn es nicht 100% genau ist, dann wird der
Fehler bei jedem Schritt addiert und so mit der Zeit die totale
Genauigkeit der Position wertlos. Je grosser die Fehler, desto
schneller die Genauigkeitsverlust. Mit billigen Sensoren solches
Problem wird sehr schnell relevant (einige Sekunden).

Wenn ich was verpasst habe, dann moechte ich gern verstehen ... ich
kann nur lernen hier! Danke ;-)
Paolo

von postmen (Gast)


Lesenswert?

hi paolo,

neinnein, du hast schon vollkommen recht, man kann auch durch filterung
die fehler nicht eliminieren, aber dadurch (z.b. mittelwertbildung
ueber mehrere werte) kann man z.b. die abtastrate reduzieren, was auch
ein langsameres driften bewirkt.
im grunde denke ich, dass der fehler umso geringer wird, je oefter man
abtastet und je mehr man filtert, d.h. fehler in hoeheren
frequenzbereichen werden wieder kompensiert. vielleicht kann das aber
auch jemand mathematisch korrekt bestaetigen oder widerlegen?

gruss andi

ps.. fuer relatives tracking gibt es auch schon kommerzielle loesungen,
allerdings sind diese immer mit einer absoluten loesung kombiniert
(z.b. akustische oder optische systeme). der vorteil der systeme mit
beschleunigungssensoren ist, dass sie einerseits recht guenstig sind,
andererseits aber eine sehr hohe abtastrate haben (im vergleich zu
akustischen systemen, die ja die schallgeschwindigkeit beruecksichtigen
muessen). daher ist eine kombination 2er solcher systeme in einem
hybriden nur logisch.

von bernie (Gast)


Lesenswert?

alsooooo....

alle einwände bezüglich rückrechnung auf weg, miteinbeziehungen des
neigungswinkel sind ja gut und richtig:

aber:

1.) neigungswinkel tischplatte und daraus resultierende
beschleunigungen
    werden einfach softwaremässig, über grenzwertbeschränkung nicht
beachtet.
    natürlich höre ich den einwand: aber was ist wenn man sehr langsam
die
    maus bewegt und der wert unter diesen grenzwert bleibt...hab ich
mir
    natürlich auch gedacht...aber was ich so ausprobiert habe funkts
so
    mit grenzwertbeschränkung ausreichend und man merkt bei der
bedienung
    keinen wirklichen unterschied zwischen mech. + optischen mäusen

2.) einmal hab ich die werte aufintegriert.....einmal ohne integrieren
    direkt (also) beschleunigungswerte gesendet...bringt für den
benutzer
    so gut wie keinen unterschied...das einzige was wirklich großen
einfluß
    ausübt, ist die über treiber einstellbare sample time...das heißt:
    wie oft pro sekunde wird ein datenpacket (besteht aus 3 byte:x-,y-
und tastendaten)
    an den rechner gesendet...das geht von 10 mal pro sekunde bis 200
mal pro sekunde

najo..das wars...das schwierige kommt natürlich erst jetzt:
versuchen das ganze als pointer, frei im raum zu bewegen...hier wirds
natürlich ein wenig schwieriger ;)

projektdoku in den nächsten tagen unter:

http://109322007.home.icq.com/projekte.html


greats, bernie

von postmen (Gast)


Lesenswert?

@bernie:

die sache vereinfacht sich natuerlich wenn du die erdbeschleunigung
wegrechnen kannst, der fall bei einer maus die auf einer tischplatte
liegt.
ich gehe natuerlich davon aus, dass das trackingsystem frei beweglich
ist, den ersatz einer maus am rechner find ich nicht notwendig, die
vorhandenen systeme funktionieren doch gut, oder..

bin auf deine doku gespannt ;)

lg andi

von bernie (Gast)


Lesenswert?

naja...der stromverbrauch des beschleunigungsmaus ist schon erheblich
kleiner als bei der optischen..und deshalb halt besser für kabellose
übertragung geeignet....und billiger ists halt auch..aber in
wirklichkeit wars nur ne spielerei...;)

von postmen (Gast)


Lesenswert?

@bernie: isch waiss ;)

lg andi

von kenny (Gast)


Lesenswert?

Hi

weiss eine(r) wo oder wie eine math. Anwendung(Kalman Filter) auf die
Anordnung der 2 Beschleunignungssensoren im X-Y Richtung?

Danke im Vorraus
Kenny

von bernie (Gast)


Lesenswert?

kalman bucy filter.....ahhaa(schreckensschrei)

von Paolo (Gast)


Lesenswert?

Kenny,
es gibt ein sehr gutes Buch ueber Kalman Filter .. eigentlich ueber
optimierte "estimation". Baut Begriffe von Grund ab ... nicht sehr
teuer $40 ... "Applied Optimal Estimation", MIT Press.

von Bernhard Koss (Gast)


Lesenswert?

Hi Leute - würd mich auch gern an so einem Projekt versuchen - wo finde
ich am schnellsten das erforderliche Mausprotokoll - sprich - was hat
die Maus dem PC wie zu sagen..
Wenn's schon wer in Assembler programmiert hab würd ich mich natürlich
auch freuen es nicht selbst nochmal programmieren zu müssen.
mfg Bernhard

von bernie (Gast)


Lesenswert?

hallo bernhard!

hier findest du alles über mouse und tastaturprotokole....sowie
pic-codes....

auf atmel könnte ich dir ps/2 mouseprotokol anbieten...

grüsse,
bernhard

von bernie (Gast)


Lesenswert?

ahhh...ganz vergessen..der link zum mouseprotokol  ;))

http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/PS2/ps2.htm

bernie

von Jochen (Gast)


Lesenswert?

Hallo
@bernie
guter link
DankE!

von max (Gast)


Lesenswert?

und wo bleibt die doku??

von Michael T. (Gast)


Lesenswert?

Hallo Leute.

Wie ich sehe, kennt ihr euch mit ADXL202 aus. In meinem Maturaprojekt
verwende ich ebenso einen ADXL202. Es geht lediglich darum, dass der
ADXL202 Verzögerung misst und es dann zu einem Microkontroller schickt,
und wir es dann bearbeiten und dann auf einer Balkenanzeige (16 LEDs)
angezeigt. Dadurch sollte man erkennen können, wie stark die
Verzögerung ist.

Ich habe einen ADXL202 bestellt, nur hab ich wenig Informationen
darüber gefunden, außer die von analog Devices. Ich würd gern wissen,
was für ein Signal er gibt und wie ich es im Mikrokontroller
bearbeiten.

Für jede Hilfe wär ich dankbar.

DANKEEEEEE
mfg,Michael

von Christian (Gast)


Lesenswert?

Möglichkeit a:
du nutzt den PWM Ausgang des Sensors und wertest den irgendwie aus
(siehe Datenblatt)

Möglichkeit b:
du nutzt den Analog ausgang und liest ihn mit einem AD Wandler ein
Vorteil: Vibrationen können durch analoge Filter weggefiltert werden,
Nachteil: der Analoge Ausgang nutzt den Messbereicht eines AD Wandlers
schlecht aus --> siehe Filterschaltung im Anhang (mist - da steht "
Dateianhang: - vorübergehende deaktiviert" - bei Interesse reiche ich
den Schaltplan nach - sie filtert und verstärkt soweit, dass die
Ausgangsspannung des Signals von fast 0 - fast 5 Volt geht.

Ist für deine Anwendungsfall aber egal, weil du ja eh bloß 16 LEDs
"Auflösung" haben willst. Ich würd mir das raussuchen was mir lieber
ist zum programmieren weils für 16 LEDs mit Sicherheit immer reicht -
egal für welchen Lösungsweg du dich entscheidest....

Viel Spaß und Erfolg mit dem Sensor!!!

Christian

von Markuso (Gast)


Lesenswert?

Hallo,

ich beschäftige mich (als Newbie) ebenfalls mit den adxl202-Sensoren,
allerdings, um tatsächlich Beschleunigungen zu messen und zu
protokollieren.
Was das Maus-Problem mit der Neigung angeht: Könnte man die
Erdbeschleunigung nicht eliminieren, wenn man einen weiteren Sensor
90°, hochkant zu jeweils einer Messachse anordnet? Durch quadratische
Addition muss zwischen den rechtwinklig zu einander angeordneten Achsen
immer 1g rauskommen. Ist dies nicht der Fall, wird die Maus tatsächlich
in die eine Messrichtung beschleunigt.

Für meine Zwecke will ich Beschleunigungen mit der C-Control M-unit
(Mikrokontroller von Conrad, aber wem sag ich das...) messen. Möglichst
mit 50 Hz oder mehr. Kann mir jemand sagen, wie ich den adxl202
beschalten muss, um z. B. über einen A/D-Wandlereingang die
Beschleunigungen zu messen? Mit welchen Kondensatoren muss ich den
Sensor beschalten?
Der Messbereich sollte natürlich möglichst groß innerhalb von 0 bis 5
Volt abgebildet sein.
Außerdem suche ich noch eine Lösung, die Messwerte über die serielle
Schnittstelle möglichst in Excel einlesen zu können. Vor allem soll das
ganze irgendwann auch auf nem PDA laufen träum

Vielen dank schon mal für Eure Hilfe!

Gruß von Markuso

von Michael T. (Gast)


Lesenswert?

Hallo Leute

Als erstes Danke an Christian.

Bis jetzt haben wir immer noch nicht den Beschleunigungssensor
bekommen, aber wir haben schon angefangen, die 16 LEDs anzusteuern.
Aber nur zum testen haben wir einen counter und mutiplexer benützt.

Du hast etwas von Schaltplan gesprochen, ich würd sie mir gern mal
ansehen.
Jedoch werden wir wahrscheinlich den PWM-Ausgang benützten, weil es ja
digital ist.

Für jede weitere Hilfe, bzw. Datenblätter wär ich sehr froh darüber.

Mfg, Michael

von Markuso (Gast)


Lesenswert?

Die Schaltung für die Verstärkung und Anpassung des Analogsignals würde
mich auch brennend interessieren! Leider reichen meine Kenntnisse nicht
aus, sowas selbst zu entwickeln.

von Christian (Gast)


Lesenswert?

Hallo, die Forumfunktion für Dateianhänge ist leider immer noch
deaktiviert - macht aber nix:

http://www.darc.de/c/34/hallo

Bei mir funktioniert die schaltung - garantie gebe ich natürlich keine.
Außerdem hab' ich die schaltung selbst bloß abgekupfert - den OP gibts
als Sample gratis ins Haus von Burr brown glaub ich!!
Die schaltung filtert das signal (50 Hz) und verstärkt den
analogausgang des Sensors um den Faktor 3,2 soweit ich weiß...

viel spaß und Erfolg!!

Christian

von Markuso (Gast)


Lesenswert?

Besten Dank!

von Michi T. (Gast)


Lesenswert?

Vielen Danke @ christian

Nun, würd ich gerne wissen: was tut diese Schaltung genau?

mfg

von Kenny (Gast)


Lesenswert?

Hallo

weiss jemand wo man detailierte Beschreibung von Beschleunigungs-und
Drehratensensor(gyroskopen) findet.

Danke

Kenny

von Christian (Gast)


Lesenswert?

Hi,
@ Michi: Die Schaltung verstärkt die Analogausgänge eines ADXL202 um
den Fakter 3,2, sodass ein A/D Wandler mit einem Messbereich von 0 - 5
Volt nahezu optimal ausgenutzt werden kann. Außerdem wird das Signal
gefliltert (Frequenzen über 50 Hz werden rausgefiltert, das kann bei
Problemen mit Vibrationen sinnvoll sein - ich hatte meine Sensoren auf
einem Modelhubschrauber montiert - deswegen der Filter)

@ Kenny: was verstehst du unter detaillierten Beschreibungen?? Was
willst du denn wissen??

mfg

Christian

von Markuso (Gast)


Lesenswert?

@Christian:
Kennst du einen Distributor, bei dem man den OPA4342E beziehen kann?

(Oder jemand anders..?)

von Christian (Gast)


Lesenswert?

Distributor kenn ich keinen, sind aber mit sicherheit auf der
Herstellerhomepage zu finden.

Ich hab' meine als Muster von www.ti.com glaub ich!!

mfg

Christian

von Claudius Michael (Gast)


Lesenswert?

HI Leute,
bin durch Zufall in dieses Forum gekommen und habe mich sofort für Euer
Thema und Eure Probleme begeistern können. Ich hätte da aber eine
Anfrage an jene, die schon Erfahrung mit dem ADXL202 oder ähnlichen
haben. Im Datenblatt steht +-2g Bereich. Bedeutet dieses, dass die
Sensoren in +X und -X Richtung die Beschleunigung messen oder bedeutet
-g die Verzögerung oder Bremsung in +X Richtung.

mfg

Claudius

von Christian (Gast)


Lesenswert?

hallo,
das bedeutet, dass du (positive) beschleunigung bis 2g und negative
Beschleunigung (also bremsen sozusagen) bis 2g messen kannst
mfg
Christian

von Markuso (Gast)


Lesenswert?

... und das in zwei Richtungen, die im rechten Winkel zu einander
stehen.

von Claudius Michael (Gast)


Lesenswert?

HI,

danke Christian und danke Markuso - bitte haltet mich nicht für ganz
blöd aber wenn Ihr eine 2D Maus oder dergl. konstruiert. Wie wird dann
die -X oder -Y Achse angegeben.

(analoge Betrachtung)
Wenn zB 20m/s2 (2g) in pos. X Achse 5 Volt sind
Ruhelage = +2,5 Volt und
die Abbremsung von 20m/s in einer Sekunde (-2g) 0Volt sind

wie bekommt Ihr dann Werte für die Mausbewegungen in die neg. Richtung.
Also wenn Ihr die Maus zurück bewegt. Verwendet Ihr dann
noch zusätzlich einen zweiten ADXL202. - Wird ne teure Angelegenheit
oder?

von Markuso (Gast)


Lesenswert?

Hallo,

eines vorweg: Leider ist es nicht so, dass bei 0V -2g und bei 5V +2g
anliegen. Die Empfindlichkeit liegt (glaube ich) bei 300mV/g. Dabei
muss man den Nullpunkt erst noch suchen. Daran arbeite ich auch immer
noch.

Nun zu deiner Frage:

Die Bewegungsrichtung hängt nicht von der Beschleunigung ab. Wenn du
die Maus nach vorn bewegst und sie konstant verzögerst (nach hinten
beschleunigst), bewegt sie sich irgendwann rückwärts.
Ich beschäftige mich übrigens mit der Beschleunigungsmessung in Autos.


Gruß

Markuso

von Claudius Michael (Gast)


Lesenswert?

HI,

danke für info. Aber wenn ich eine Maus in Vorwärtsrichtung
(Y)verzögern muss, um neg. Werte zu bekommen (Sprich, dass sich die
maus wieder zurück bewegt), ist wohl ein zweiter Sensor besser oder?

1 Sensor für +X und +Y
1 Sensor für -X und -Y Richtung

Dann könnte man die Maus einfach einmal ruhig hinlegen - das würde den
Null Punkt geben. (Spannung) und die ziehe ich einfach mit einem
Subtrahierer ab. Danach messe ich nur pos. Spannungen für pos.
Beschleunigungen. Alles anere unter Null wird ignoriert.

mfg
Claudius

von Michael T. (Gast)


Lesenswert?

Hallo Leute

Ich hab ein Problem, und zwar:
1.Ich möchte unseren Sensor ADXL202 in Eagle zeichnen, aber ich möchte
mir das ersprachen alles zu zeichnen, hab zwar ein Bauteil gefunden,
welches Package dem ADXL202 passt, aber dafür stimmt die Schematic
nicht.
Bauteil: Linear-ADC08032S mit 14 Pins (Board) aber mit 8 Pins (in
Schematic), aber ich brauche min. 8 Pins in Schematic, natürlich wärs
super, wenn alle 14 Pins in Schematic gezeigt werden, ist aber nicht
notwendig.

Also könnte ihr mir irgendwie helfen?



2.Es wird in den Datenblättern sehr schön gezeigt, wie man T2 und T1
berechnen, bzw. wiedergeben kann, jedoch wird aber nicht beschrieben,
in welche richtung T1 bei Verzögerung wandert? Ich meine, bei
Stillstand ist T1 50% vom T2 .... aber, was passiert bei Verzögerung,
bzw. Beschleunigung???
Wird T1 bei Beschleunigung größer, oder kleiner??

Wär euch sehr dankbar, wenn ihr mir helfen könntet.
Ich könnte es zwar auch nachmessen, aber damit ich es nachmessen kann,
muss ich mir zuerst mal die Kondensatoren, bzw. Widerstände aussuchen,
was ich noch nicht hab.
Ich weiß noch nicht, welchen T2 ich verwenden soll, und welche
Bandbreite.
Falls ihr daüfr Ideen habt, wär ich euch auch dafür dankbar.

Mit freundlichen Grüßen
Michi T.

P.S.: Ich weiß, ich verlange viel :))

von elektron (Gast)


Lesenswert?

wie wäre es den mit nem kleinen pendel, das elektronegativ geladen wird,
an allen 4 seiten kann man dann eine positive gegenektrode platzieren
über die kriechströme könnte man dann die relative beschleunigung
messen.

mit einer positiven elektrode unten könnte man die nulldrift ermitteln,
ist aber glaub ich weit mehr als ein kleiner bastlerakt. vorallem mit
hochspannung!!!!

von Sebastian Wille (Gast)


Lesenswert?

Hallo,

ich habe ADXL202JE-Beschleunigungssensoren und mir sind ein paar Punkte
noch unklar.

1.:
Ich kann die Bandbreite zwischen 10 Hz und 5 kHz einstellen. Je höher
meine Bandbreite, je ungenauer das Ergebnis, richtig? Aber was bedeutet
diese Bandbreite überhaupt? Wie oft sich die Beschleunigung pro Sekunde
ändern darf? Falls ja, warum liegt die obere Grenze dann nicht bei 2
kHz, da die Länge der ausgegebenen Periode ja minimal 0,5ms ist.

2.:
Warum brauche ich die oben angegebenen Schaltungen mit den OPVs? Ist es
nicht wesentlich einfacher den "Duty Cycle" direkt per Timer
abzufragen?

Danke schonmal! :-)

Sebastian

von Marco Haufe (Gast)


Lesenswert?

Hi
ich habe letztens auch mit dem adxl202 und 210 gearbeitet. Duty cycle
genau auszuwerten hat mich einige Mühe gekostet, geht aber besser und
genauer als der analoge weg.
Bzgl. der schräglage, kannst du denn die maus nicht initialisieren,
bzw. den offset zu beginn erfassen und entsprechend rausrechnen ?
So habe ich es gemacht, und das geht prima. Allerdings nicht mit ner
Maus, sondern echte, vertikale Beschleunigungen.

Viele Grüße
Marco

von Markuso (Gast)


Lesenswert?

Hallo Marco,

welche Messfrequenz hast du im Endeffekt realisiert und mit welchem
Mikro-Controller?

Gruß von Markuso

von Marco Haufe (Gast)


Lesenswert?

Ich hatte den mit 250 Hz Bandbreite und 488Hz-PWM-Wiederholfrequenz
eingestellt. Bei H-Pegel vom ADXL wurde ein Counter von Null gestartet,
und zählte bis zum Ende der theoretischen Periodendauer genau 2043
Pulse --> d.h. bei Null Beschleunigung lag der Zählerwert, den ich in
der L-Zeit abfrage und verarbeite bei ca. 1023.
Also 10Bit für jede Acc-Richtung Auflösung.
1:1 wird das Tastverhältnis nie werden, da das Acc-Maximum bei 90% bzw.
bei 10% liegt.

VG Marco

von Andreas (Gast)


Lesenswert?

Gerade zu den ADXL-Teilen gibt es doch jede Menge gute App-Notes im
Netz, die liest man einmal durch und schon muss man nicht mehr
nachdenken.
Sehr empfehlen kann ich die hier:
www.microchip.com/download/appnote/pic16/00715a.pdf

von Bent (Gast)


Lesenswert?

Hi!

Ich habe mit dem ADXl gute Erfahrung gemacht mit den D-Ausgängen
:-)
wenn ihr nicht in "mg" rechnen müsst -reicht ein Timer für X und Y -
Achse .
der Timer ruft eine Sig-Routine auf die in abhänghigkeit von H oder L -
Wert einen Zähler erhöht - beim flankenwechsel wird der jeweilge
Zählerstand in eine Werteregiter übernommen und der Zähler genullt
die werte geb ich auf die uart getrennt mit komma aus.
Wenn Ihr H -von L -Wert abzieht erg. sich ein pos. oder neg. wert. ->
somit ergibt sich die Richtung !
" LPEGEL X-Wert, HPEGEL X-Wert, LPEGEL Y-Wert, HPEGEL Y-Wert /n/r,"
den kram kann man dann ein eine Tabellkalkulation übern. und
weiterbearbeiten. DIAGRAMME etc.

das ganze läuft unter C auf einen AT90L8535 mit 8Mhz.
nebebei bedient die Sig-Routine moch eine Echtzeituhr

der ADXL macht 50Hz

Die Ausgabe sieht dann so aus:
 HH, MM, SS,10S,,LPX,HPX,,LPY,HPY,,
000,000,000,008,,147,152,,142,158,,
000,000,000,005,,147,152,,142,158,,
000,000,000,002,,148,153,,142,157,,
000,000,001,008,,148,153,,142,158,,
000,000,001,006,,147,152,,141,158,,
000,000,001,003,,147,152,,141,157,,
000,000,002,009,,147,152,,141,158,,
000,000,002,006,,147,153,,141,158,,
000,000,002,003,,147,152,,142,158,,
000,000,002,009,,148,153,,142,158,,
000,000,003,006,,147,153,,142,158,,
000,000,003,003,,147,152,,142,159,,
000,000,003,001,,148,145,,104,247,,
000,000,004,007,,167,122,,127,131,,
000,000,004,004,,145,138,,119,095,,
000,000,004,001,,154,143,,217,128,,
000,000,005,007,,158,122,,180,117,,
000,000,005,004,,204,101,,166,153,,
000,000,005,001,,184,078,,128,151,,
000,000,006,008,,163,132,,216,104,,
000,000,006,005,,167,138,,119,202,,
000,000,006,002,,160,108,,101,070,,
000,000,007,008,,151,142,,109,193,,
000,000,007,005,,152,147,,108,191,,
000,000,007,002,,152,147,,109,191,,
000,000,008,008,,153,147,,108,191,,
000,000,008,006,,153,147,,108,191,,
000,000,008,003,,153,147,,109,190,,
000,000,009,009,,152,147,,109,191,,
000,000,009,006,,153,147,,109,190,,

usw.

So bleibt der HW-Aufwand in Grenzen ! - nur die beiden Ausgänge an die
AVR PINS C und R ran "Ferritperle nicht vergessen am ADXL"

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
Noch kein Account? Hier anmelden.