PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umdrehungszahl bestimmen



Robotik84
07.11.2006, 12:18
Servus leutz,

wie bekommen i die Umdrehungszahl bei Motorspeed(255,255) heraus?

möchte mit der Umdrehungszahl eine geeignete Abtastfrequenz berechnen damit ich die Odometriedaten auslesen kann.

Kann mir da jemand helfen?

Gruß Jens

damaltor
07.11.2006, 12:22
bitte benutze die suchfunktion, schau in der anleitung nach und denke kurz über deine frage nach.

damaltor
07.11.2006, 14:05
*kaputtlach*

mir ist gerade die sinnlosigkeit dieser frage aufgefallen. du benötigst die odometrie, um die umdrehungszahl herauszubekommen, nicht die umdrehungszahl um die odometrie auszulesen =)

also: du fragst in einer schleife immer wieder den aktuellen odometrie wert ab, z.B. 1000 mal. und wenn dieser plötzlich steigt oder plötzlich fällt, dann hat ein wechsel von einem schwarzen zu einem weissen feld bzw. umgekehrt stattgefunden. dadurch, dass du weisst wie lange der test gedauert hat, und dass du weisst wie viele wechsel passiert sind, kannst du die umdrehungszahl des getrieberades ausrechen (nciht der gummireifen).

für alles andere bitte die suchfunktion nehmen!!

Empfehle das thema hier zu zu machen.

mfg

Robotik84
07.11.2006, 15:45
mensch jung überleg mal...
wenn i die umdrehungszahl hab dann kann i genau bestimmen mit welcher frequenz i abtasten soll um vernünftige werte zu bekommen...
is mir schon klar das i die odometrie benutze um die drehzahl zu bestimmen, nur da benutze i irgendeine frequenz...
und um später genau sagen zu können wieviele werte i pro feld abtaste brauche i die drehzahl um eine geeignete frequenz zu wählen...

also erst überlegen dann schreiben...

EDH
07.11.2006, 15:56
also das mit der umdrahungszahl erst messen, und dann die odometrie mit der frequenz i zu messen ist zuhöchst scheps. da müsstest du ja vor jeder geschwindigkeitsänderung ne runde fahren, damit du erst mal wieder die drehzahl hast. bevor du die drehzahl misst, um eine frequenz zu kriegen, kannst du die odometrie auch gleich wie von damaltor beschrieben abfragen. das bisschen rechenleistung mehr schaft der asuro schon

mfg EDH

stochri
07.11.2006, 19:41
wie bekommen i die Umdrehungszahl bei Motorspeed(255,255) heraus?

Die Maximalgeschwindigkeit des ASURO beträgt ca. 0.5 m/s.

Mit Hilfe dieser Daten

Encoder/Weg-Auflösung: mit 6 Tick Encoderscheibe 4.033mm, mit 8 Tick Encoderscheibe 3,025mm

kannst Du es ausrechnen.

Gruss,
stochri

Robotik84
07.11.2006, 21:15
vielen dank stochri...werd mich morgen da nochmal hinsetzen und das durch rechnen...
nur noch ne frage: woher hast du die 0,5 m/s??? wie hast die bestimmt???

jeffrey
08.11.2006, 01:57
hi,
taste doch einfach mal für nen test mit der höchst möglichen frequenz ab, dann hast du die drehzahl, und kannst entscheiden, ob du die frequenz senken kannst oder nicht.
mfg jeffrey

damaltor
08.11.2006, 10:15
also beim besten willen... wenn du ne abtastfrequenz ausgerechnet hast, die z.B. so genau ist dass immer abwechselnd ein weißes und ein schwarzes feld "gesehen" wird... WOZU WILLST DU ES DANN ÜBERHAUPT NOCH AUSLESEN?

die frequenz des auslesens ist für die geschwindigkeitsmessung vollkommen unerheblich. im gegenteil, wenn du weisst wie of du abtasten musst um immer genau das nächste feld zu treffen, dann weisst du auch wie viele felder in ner bestimmten zeit vorbeilaufen, und musst darum die geschwindigkeit nicht mehr messen.

Die höchstgeschwindigkeit von 0,5m/s kann ich bestätigen, ist allerdings nur ungefähr(bei ebenem, glattem boden ohne weitere hindernisse, saubere reifen unso) und vor allem bei 2 genau gleich schnell laufenden reifen, was bei asuro sowieso ein problem ist.

ich empfehle dir nochmal, nachzudenken was du da eigentlich messen willst =)

um die gecshwindigkeit so exakt wie möglich zu messen, empfehle ich dir die erweiterte lib runterzuladen. mit dieser kannst du bei jedem feldwechsel einen interrrupt auslösen lassen. dann brauchst du dich überhaupt nicht um das abtasten zu kümmern.

versteh mich nicht falsch, ich will nicht böse sein, aber die frage ist so sinnlos =)

Robotik84
18.11.2006, 20:49
also mein anliegen ist es einfach die odometriedaten per interrupt auszulesen und sie dann auf den PC zu übertragen...und dazu brauch i halt ne vernünftige frequenz um möglichst jedes feld zu treffen...

damaltor
18.11.2006, 20:52
wenn du dir die neue lib runterlädst, dann kannst du direkt von den odosensoren einen interrupt auslösen lassen.

damaltor
18.11.2006, 20:57
oder so, genau...

es ist völlig sinnlos die umdrehungszahl extern zu bestimmen, sowie es leicht bergauf, bergab, uneben, teppich, parkett wird, ändert sich die umdrehungszahl. ausserdem drehen ohnehin nicht beide reifen gleichmäßig. die umdrehungszahl ist von vielen faktoren abhängig, nicht nur vom über motorspeed() gegebenen wert.

was willst du eigentlich mit den daten? die umdrehungszahl bestimmen? brauchste ja nich, die hast du dann ja schon vorher ausgerechnet o0

im endeffekt wird das ergebnis am ende nur seeehr ungenau, weil so viele werte zwischendurch fehlen. wenn dann aufgrund äusserer einflüsse ein rad kurzzeitig langsamer / schneller dreht, passt die frequenz überhaupt nicht mehr zur scheibe.

waste
18.11.2006, 21:24
also beim besten willen... wenn du ne abtastfrequenz ausgerechnet hast, die z.B. so genau ist dass immer abwechselnd ein weißes und ein schwarzes feld "gesehen" wird... WOZU WILLST DU ES DANN ÜBERHAUPT NOCH AUSLESEN?

die frequenz des auslesens ist für die geschwindigkeitsmessung vollkommen unerheblich. im gegenteil, wenn du weisst wie of du abtasten musst um immer genau das nächste feld zu treffen, dann weisst du auch wie viele felder in ner bestimmten zeit vorbeilaufen, und musst darum die geschwindigkeit nicht mehr messen.

Die höchstgeschwindigkeit von 0,5m/s kann ich bestätigen, ist allerdings nur ungefähr(bei ebenem, glattem boden ohne weitere hindernisse, saubere reifen unso) und vor allem bei 2 genau gleich schnell laufenden reifen, was bei asuro sowieso ein problem ist.

ich empfehle dir nochmal, nachzudenken was du da eigentlich messen willst =)

um die gecshwindigkeit so exakt wie möglich zu messen, empfehle ich dir die erweiterte lib runterzuladen. mit dieser kannst du bei jedem feldwechsel einen interrrupt auslösen lassen. dann brauchst du dich überhaupt nicht um das abtasten zu kümmern.

versteh mich nicht falsch, ich will nicht böse sein, aber die frage ist so sinnlos =)
Hallo damaltor,

ist dir das Nyquist-Shannonsche Abtasttheorem (http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem) ein Begriff. Wenn nicht, dann solltest da mal nachlesen. Könnte es nicht sein, dass man bei zu geringer Abtastfrequenz vielleicht einige Ticks gar nicht mitbekommt?

@Robotik84
Falls du es per Interrupt machst und die Interruptroutine nicht ewig lang ist (was sträflich wäre), dann sollte es kein Problem damit geben.

Waste

damaltor
18.11.2006, 21:39
wenn die frequenz zu langsam ist, dann kann man einige ticks verpassen. genau das meine ich doch. wenn man verucht, eine frequenz auszurechnen, wan ein tick kommem müsste dann verpasst man ne ganze menge, weil die räder (1) nicht gleich schnell und (2) nicht 100%ig konstant schnell fahren.
darum: einfach so schnell wie möglich abtasten, und dann die markantesten übergänge herausfiltern...

waste
18.11.2006, 23:40
wenn die frequenz zu langsam ist, dann kann man einige ticks verpassen. Also muss die Abtastfrequenz mindestens 2 mal so hoch sein. Sie muss ja nicht gleich sein, nur eben mindestens 2 mal so hoch.

darum: einfach so schnell wie möglich abtastenVielleicht soll der µC auch noch was anderes machen als Abtasten. Dann sollte man schon wissen, ob es noch ausreicht.


@Robotik84
Wahrscheinlich weißt du nicht, dass man mit den Encodersignalen selbst einen Interrupt auslösen kann, da brauchst dann nicht mit einer festen Abtastrate arbeiten.

Waste

damaltor
18.11.2006, 23:44
wie man am anfang des threads sieht, will er die umdrehungszahl extern bestimmmen, durch ausrechnen... wozudas gut sein soll ist die frage.

und wenn der µC was anderes zu tun hat-umso besser, dannkann man die abfrage einfach mit in die schleife reintun, denn normalerweise sollte das reichen. und wenn nicht-dann werden halt über interrupts die messwerte bestimmt...

aber wenn man die umdrehungszahl der reifen schon hat (ausgerechnet oder wie auch immer) warum sollte man dann noch odo werte messen wollen??

waste
18.11.2006, 23:58
Ich nehme mal an, Robotik84 macht sich schon vor dem Programmieren Gedanken, wie hoch seine Abtastrate mindestens sein muss, damit er keine Ticks übersieht. Dazu will er halt wissen wie schnell sich die Encoderscheibe maximal drehen kann.

aber wenn man die umdrehungszahl der reifen schon hat (ausgerechnet oder wie auch immer) warum sollte man dann noch odo werte messen wollen??Vielleicht will er sie auch noch in Echtzeit wissen, so wie viele andere auch.

Aber er braucht sich nicht um die Abtastrate kümmern, wenn er durch den Encoder die Interrupts auslöst. Das weiß er vermutlich nicht.

Waste

damaltor
19.11.2006, 00:00
tja... das haben wir ihm jetzt bestimmt 5x gesagt.

wahrscheinlich weiss er einfach nicht wie man mitinterrupts umzugehen hat...

EDH
19.11.2006, 09:27
@Robotik84:
was willst du deigentlcih mit den gemessenen werten machen?
willst du sie ans hyperterminal senden, damit du die wertefür schwarz und weiß rausindest?