PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : @stochri: kleine Frage zur gemodetten asuro.c?



payce
06.08.2005, 22:08
Hi!

Also bin begeistert von der Lib und auch schon fleißigst am rum- und ausprobieren! Coool.

Nur eine Kleinigkeit hab ich gefunden: Im turn(degree) wird ja "degree" als Integervariable deklariert. Dabei gibts nur ein kleines Prob: Du multiplizierst ja im ersten Schritt gleich mal mit 155 (beziehungsweise angepasst bei mir mit 170). btw: Line 469 in asuro.c

Damit kannst du ja maximal ca. eine 180° Drehung machen, mehr ist nicht (ansonsten kommst ja über den Wertebereich vom Int). Wär eine Einteilung in meinetwegen 5° Schritte da ned besser? Oder die Variabla als float übergeben und dann nach den Berechnungen in int konvertieren?

Danke und Gruß pay.c!

payce
06.08.2005, 22:14
btw: Blöööööde Frage noch (die gar nix mit oben zu tun hat): Kann man z.B. im SerWrite irgendwie den "Bildschirm löschen"? Klar ist "/n" für new line, aber gibts auch sowatt wie "/c" für clear? Oder schreibt der einfach nur durch? Dankööö!

izaseba
06.08.2005, 22:16
Hallo,
Ich bin zwar nicht Stochri, aber eine Bemerkung würde ich gerne machen.



Oder die Variabla als float übergeben und dann nach den Berechnungen in int konvertieren


Weißt Du eigentlich, wie lange der avr mit Fließkommazahlen beschäftigt ist, und wie groß das Programm dann wird ?

Ich denke, das wird auch der Grund sein, warum mann da nicht damit gearbeitet hat.

So, jetzt lasse ich doch lieber den Stochri zu Wort kommen.

Gruß Sebastian

stochri
06.08.2005, 22:27
@izaseba
Du hast recht, ich denke auch, dass die Einbindung der Fließkommaroutinen das Hex-File ziemlich aufblasen dürfte. Und gerade bei Basis-Librarys sollte man ja sparsam sein, sonst hat der User irgendwann keinen Platz mehr für das eigene Programm.

@payce
Das freut mich ja sehr, dass Du die Lib nützlich findest.
Du hast recht beim Wertebereich von Turn. Ich glaube man müsste auf Long umsteigen:

long deg_count;
deg_count=abs(degree)*0155L;

Die Library bedarf sowieso noch einiger Verbesserungen.

Gruss,
stochri

Andun
07.08.2005, 09:27
DANKE!

Der Hinweis, dass es aus dem Wertebereich für Int geht, hat mir gefehlt.

Ich saß hier gestern bestimmt ne halbe Stunde und hab mich gefragt, warum der Bot, keine 225° schafft.

Ich depp.

Andun

payce
08.08.2005, 12:29
:D

Jau, mir gings genauso. Wollte Ihn erst 360° drehen lassen. Als er das nicht tat, dachte ich zuerst: "Reeeeespekt, der überprüft in der Subroutine anscheinend zuerst, welche Endposition er hat" - nachdem ich dann den Code angeguckt hab, startete das große Kopfkratzen. ;)

@izabesa: Nö, weiß ich nicht, sonst hätt ichs nicht vorgeschlagen, ne?

@stochri: Jau, freut mich wenn ich wenigstens minimalst (auch wenn nur miniminiminimalst) weiterhelfen konnt.

Gruß pay.c!

stochri
01.01.2006, 19:48
Hier noch als Anhang der Link zu den Libs:

http://sourceforge.net/project/showfiles.php?group_id=155217

Rakke
02.01.2006, 13:59
Hallo zusammen,

@payce: es gibt "Escape-Sequenzen", die definiert sind, um z. B. den Hyperterminal-Bildschirm zu löschen oder den Cursor wieder nach "home" zu setzen:
#define CLRSCR "\x1B[2J"
#define HOME "\x1B[H"
Außerdem gibt es noch "\x1B[z;sf": z ist die Zeile, s die Spalte, in die der Cursor soll.

@stochri: an welche Änderungen denkst du? Ich flicke grad meine modifizierte ADC-Interruptroutine in die sourceforge-Dateien.

Gruß Rakke

stochri
02.01.2006, 15:34
Hallo Rakke,
der obige Post ist zwar schon einige Monate alt, aber es sind schon ein paar Verbesserungen, die mir da einfallen:

Go-Funktion:
Es wäre sinnvoll, wenn der Funktionsparameter für die Weglänge die Einheit "mm" hätte. Das hätte den Vorteil, dass man wirklich weiss, wieweit sich der Asuro bewegt. Oder man fügt ein zusätzliches Makro mit in die Lib ein, welches die Umrechnung in mm vornimmt und die Go-Funktion aufruft.
Möglicherweise muß man in die Funktion eine Brems-Rampe mit einbauen, damit der Asuro nicht über die vorgegebene Wegstrecke weiterfährt.

Turn-Funktion:
Die Turn-Funktion erreicht nicht die maximal mögliche Genauigkeit. Der Asuro scheint sich nicht immer um den selben Winkel zu drehen. es gibt manchmal ein paar Grad Abweichungen.

Eventuell wäre es nützlich, die Motoren bei der Drehung im Schrittmotorbetrieb so wie im Programm von waste im Thread " Asuro ganz langsam fahren"

https://www.roboternetz.de/phpBB2/viewtopic.php?t=11447

zu betreiben. Damit könnte man eventuell eine Drehung mit konstantem Winkel erreichen.

Gruss,
stochri