PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Plotter-Projekt



Benique
04.02.2010, 13:12
Hallo Leute,

bin hier neu im Forum, und habe ziemlich viele und interessante Beiträge gelesen, wobei ich mir auch gedacht habe, dass mir vielleicht hier geholfen werden kann =)

mein Projekt ist eigentlich ganz einfach aufgebaut und sollte so etwas ähnliches wie ein Plotter sein. Im Anhang ist eine schematische Skizze des Projektes wobei hier 2 Motoren zu "erkennen" sind.
Der Motor1 ist für die x-Richtung, und der Motor2 für die y-Richtung zuständig. Beide Motoren sind DC-Motoren jedoch nicht von der selben Type was eigentlich egal sein sollte(der Motor2 ist nämlich kleiner als der Motor1).
Mhmm, ach ja und gesteuert werden meine Motoren über ein Terminal mittels PC und µC. Mein Mikrocontroller ist ein 8051'er. Als Treiber verwende ich den L293D(ich möchte da eigentlich eher weniger auf die Hardware und Schaltungen eingehen, da es viele Beiträge gibt die den selben Baustein zum treiben der Motoren verwenden).
Mein eigentliches Problem ist es, dass ich es nicht schaffe ein Programm(in der Programmiersprache C) zu schreiben welches z.B.: eine Schlangenlinie auf ein Blatt Papier zeichnet, das "einzige" was ich bis jetzt geschafft habe ist es einen Sägezahn, ein Rechteck und eine Stufe zu zeichnen.

Deswegen eben die Bitte an EUCH, wie sollte mein Code aussehen, damit ich z.B.: eine Schlangenlinie zeichne. Ich hoffe dass mein Vorhaben aus der schematischen Skizze erkennbar ist :S

PS: mein Code ist so ausgelegt, dass er beim Drücken der Tasten L R U D oder auch S der Tastatur, die Motoren eben nach Links(Motor1), Rechts(Motor1), Rauf(Motor2), Runter(Motor2) bewegt.

Merlin321
04.02.2010, 14:04
Nun, ich kenne mich jetzt mit dem 8051 definitiv nicht aus, aber von der Theorie her funktioniert das ja so:
xMotor starten, immer in eine richtung
y hoch, y runter, y hoch usw.

also den X-Motor nicht zwischendurch stoppen sondern eifnach weiterfahren lassen und in gewissen zeitabständen die richtung von Y wechseln.

Benique
04.02.2010, 14:12
Nun, ich kenne mich jetzt mit dem 8051 definitiv nicht aus, aber von der Theorie her funktioniert das ja so:
xMotor starten, immer in eine richtung
y hoch, y runter, y hoch usw.

also den X-Motor nicht zwischendurch stoppen sondern eifnach weiterfahren lassen und in gewissen zeitabständen die richtung von Y wechseln.

ja das hab ich mir auch zuerst gedacht, dass das so funktioniert. Aber ich hatte das mal versucht und kam nur zu einen Sägezahnmuster wenn du verstehst was ich meine =)...mhmm hab da wirklich schon vieles versucht, aber wenn man es so versucht wie eben vorgeschlagen, dann erzeuge ich nur einen fast perfekten Sägezahn :(

Richard
04.02.2010, 14:47
Eine "schlangenlinie" ist eine Sinusfunktion. Wenn Du also einen
Kreis plottest und dabei gleichzeitig mit der Kreisfrequenz in x Richtung
fährst bekommst Du eine Sinuskurve gezeichnet.

Gruß Richard

the_muck
04.02.2010, 16:15
Hallo,
Richard hat ja den entscheidenden Tip schon gegeben, wenn du genau über legst kannst du bei linearen Geschwindigkeiten nur ein Sägezahn raus kommen.

http://www.geogebra.org/de/examples/trigo_einheitskreis/einheitskreis1.html

ich denke am besten mit einer Tabelle für den Sinus...

oberallgeier
04.02.2010, 16:31
... Wenn Du also einen Kreis plottest und dabei gleichzeitig mit der Kreisfrequenz in x Richtung fährst bekommst Du eine Sinuskurve gezeichnet ...Das wird eine Zykloide . . . .

................http://upload.wikimedia.org/wikipedia/de/6/65/Zykloide.gif

Eine Sinuskurve bekommt man, wenn man die Y-Koordinate des erzeugenden Punktes (im obigen) Bild über dem monoton zurückgelegten Fahrweg aufträgt.

Hessibaby
05.02.2010, 08:40
Der Joe hat in Mathe aufgepasst. Glückwunsch :-)

Benique
05.02.2010, 10:19
Eine "schlangenlinie" ist eine Sinusfunktion. Wenn Du also einen
Kreis plottest und dabei gleichzeitig mit der Kreisfrequenz in x Richtung
fährst bekommst Du eine Sinuskurve gezeichnet.

Gruß Richard

mhmm ja das hört sich richtig gut an, aber ich dacht mir es ist einfacher eine Schlangenlinie zu zeichnen, als einen Kreis...
Also ich sollt mal an einem Kreis arbeiten und wenn ich diesen programmiert hab wird es auch mit den Schlangenlinien klappen :S

Danke, Gruß back!

Benique
05.02.2010, 10:22
Hallo,
Richard hat ja den entscheidenden Tip schon gegeben, wenn du genau über legst kannst du bei linearen Geschwindigkeiten nur ein Sägezahn raus kommen.

http://www.geogebra.org/de/examples/trigo_einheitskreis/einheitskreis1.html

ich denke am besten mit einer Tabelle für den Sinus...

mhmm, wie meinst du das mit linearen gescchwindigkeiten(= Motor dreht sich immer genau gleich, also genauer gesagt es gibt keine Beschleunigung und keine Verzögerung?)
sollt ich vlt mit den geschwindigkeiten beider Motoren variieren?

oberallgeier
05.02.2010, 10:52
... sollt ich vlt mit den geschwindigkeiten beider Motoren variieren ...Ich will mal so sagen: Du musst (nur) gewährleisten können, dass Dein Plotter im Rahmen der von Dir gewünschten Auflösung (sagen wir mal - 1 mm, feiner wär natürlich feiner) die beiden Motore abgestimmt aufeinander fahren lässt - und das mit z.T sehr unterschiedlicher Geschwindigkeit. Dieses Problem lässt sich mithilfe der Regelun gstechnik (Encoder an beiden Motoren) einfach lösen.

Aufwendiger wird die Plottersoftware. Beispiel dieses Bild:

................http://oberallgeier.ob.funpic.de/plott_01kl.jpg (http://oberallgeier.ob.funpic.de/plott_01.jpg)

Das mittlere Quadrat mit der Doppellinie sei die eigentliche Zeichenfläche, aussendrum sind Hilfsfelder zur Plotorganisation. Benennen wir die acht äusseren Quadrate im mathematisch positiven Sinn 1 (auf drei Uhr) bis 8. Jetzt willst Du die Gerade vom Quadrat 2 bis 5 (auf neun Uhr) plotten. Also musst Du die Eintrittsstelle in das eigentliche Zeichenfeld "oben" berechnen, dort den Stift ansetzen, die Gerade ziehen und den Stift wieder absetzen da, wo die Gerade das Zeichenfeld verlässt. Das Ganze läuft sinngemäß natürlich auch z.B. mit dem dargestellten Kreis. Da darfst Du Dir überlegen, was das für eine Rechenarbeit ist, diese Linien sauber vorzurechnen. Denk bitte daran, dass das Doppellinienfeld z.B. die tatsächlich befahrbare Plotfläche Deines Plotters sein kann - oder einfach nur die Grenzen eines Blattes . . . Wie gesagt - die Regelungsarbeit der beiden Motoren ist dagegen eher einfach. (Mit dem Plotten spreche ich aus Erfahrung - auch wenn die schon etwas angestaubt ist).

Edit 05. Feb. 2010: Quadranten sind natürlich etwas ganz Anderes als Quadrate. Sorry.

Benique
05.02.2010, 11:20
... sollt ich vlt mit den geschwindigkeiten beider Motoren variieren ...Ich will mal so sagen: Du musst (nur) gewährleisten können, dass Dein Plotter im Rahmen der von Dir gewünschten Auflösung (sagen wir mal - 1 mm, feiner wär natürlich feiner) die beiden Motore abgestimmt aufeinander fahren lässt - und das mit z.T sehr unterschiedlicher Geschwindigkeit. Dieses Problem lässt sich mithilfe der Regelun gstechnik (Encoder an beiden Motoren) einfach lösen.

Aufwendiger wird die Plottersoftware. Beispiel dieses Bild:

................http://oberallgeier.ob.funpic.de/plott_01kl.jpg (http://oberallgeier.ob.funpic.de/plott_01.jpg)

Das mittlere Quadrat mit der Doppellinie sei die eigentliche Zeichenfläche, aussendrum sind Hilfsfelder zur Plotorganisation. Benennen wir die acht äusseren Quadranten im mathematisch positiven Sinn 1 (auf drei Uhr) bis 8. Jetzt willst Du die Gerade vom Quadranten 2 bis 5 (auf neun Uhr) plotten. Also musst Du die Eintrittsstelle in das eigentliche Zeichenfeld "oben" berechnen, dort den Stift ansetzen, die Gerade ziehen und den Stift wieder absetzen da, wo die Gerade das Zeichenfeld verlässt. Das Ganze läuft sinngemäß natürlich auch z.B. mit dem dargestellten Kreis. Da darfst Du Dir überlegen, was das für eine Rechenarbeit ist, diese Linien sauber vorzurechnen. Denk bitte daran, dass das Doppellinienfeld z.B. die tatsächlich befahrbare Plotfläche Deines Plotters sein kann - oder einfach nur die Grenzen eines Blattes . . . Wie gesagt - die Regelungsarbeit der beiden Motoren ist dagegen eher einfach. (Mit dem Plotten spreche ich aus Erfahrung - auch wenn die schon etwas angestaubt ist).

Danke für die nützliche Antwort =)
Ich seh schon, mein Projekt wird immer komplizierter, daweil dacht ich, dass ich schon fast am Ende bin :S

oberallgeier
05.02.2010, 12:37
... Ich seh schon, mein Projekt wird immer komplizierter ...Ja ja, das kenne ich. Anfangs erscheint einem das Projekt überschaubar. Wenn man drin ist, wirds meistens eher komplizierter. Aber nach einer Weile verziehen sich die Wolken und zum Schluss weiß man nicht immer, wo die Schwierigkeiten lagen.

Nur Mut!