Hallo Leute,
erstmal sorry für den Betreff, mir ist kein besserer Name eingefallen.
Es geht um folgendes:
EGB Leds sind auf einer Art Zylinder montiert, der Durch einen
Schrittmotor angetrieben, rotiert. Durch eine geschickte Ansteuerung der
LEDs sollte sich beim richtigen Timing und genügend hoher
Geschwindigkeit ein Bild ergeben. (eine schlechte Skizze ist im Anhang)
Das wäre zu ralisieren, was mir aber Sorgen macht, ist die sphärische
Verzerrung, die sich durch diese Methode ergeben würde. Ich bin jetzt
schon länger am überlegen wie man diese aus dem Bild "rausrechnen" kann.
Der Aufbau ist so, das eine externe Steuereinheit das Bild aufbereitetg
und dieses Dann per Funk an den Empfänger, der selbst mitrotiert,
übermittelt. Der Empfänger selbst muss dann "nur" die Pixel abhängig vom
Winkel darstellen können.
Hatte jemand schon eine ähnliche Problemstellung bzw. kann mit
Mathematisch ein wenig weiterhelfen?
schon klar, aber ich verstehe nicht genau wie bie Berechnung mit dem
Sinus mathematisch funktioniert.
Sagen wir ich habe eine 640 * 480 Punkte Matrix (Der einfachheit halber
sagen wir jeder Pixel hat einfach 4 Bit für ein Schwarz / weiss Bild)
Also ich würde ja eine Operation benötigen, die mir folgendes
bewerkstelligt:
Eingangsbild -> [OP] -> Korrigiertes Ausgangsbild
^
|
sinus?
Mir ist schon klar, das ich den Sinus zwischen 0 .. Pi ansetzen muss um
so den Winkel von 180 °C abzudecken .. aber mehr auch leider nicht ..
> deswegen kann ich sie nicht nicht stauchen bzw. strecken.?!
doch in dem du sie langsamer oder schneller an die Zeile schickst. Sinus
für diese Frequenz müsste da passen (hab das jetztn nicht nach
gerechnet),
d.h. du berechnest den Sinus zum Drehwinkel und änderst entsprechend
einer Sinuskurve die Profilfrequenz....
was ja im Endeffekt einer Ableitung entspricht, also cosinus
ausrechnen...
wenn du an den Stellen cos(a)=0.1, cos(a)=0.2, cos(a)=0.3 .... cos(a)=1
jeweils die nächste Zeile zeichnest, kannst so ein Bild entzerrt mit 20
Zeielen anzeigen (ebenfalls nicht nachgerechnet).
Zeichne es dir am Besten mal auf einen Blatt papier auf, sinus und
cosinus kann man ja direkt am Einheitskreis ablesen
Gruß
Roland
Die Ansteuerung geht vermutlich ähnlich wie ein LC-Display. Also eine
ganze Zeile wird mit irgendeinem Pixeltakt übergeben und dann komplett
auf einmal übernommen und dargestellt.
Dann muß der Pixeltakt zur Mitte des Bildes hin zunehmen und zum Rand
wieder abnehmen. Auf der Tangente würde der Pixeltakt dann unendlich
langsam, da man nichts mehr sieht, kann das sein? Das heißt, die
Funktion muß bei einem bestimmten Winkel abgebrochen werden.
Aus der Drehzahl müßte man diesen Winkel ungefähr bestimmen können,
unter Berücksichtigung des praktikablen minimal- und maximalen
Pixeltaktes.
haben die LEDs einen ausreichenden Abstrahlwinkel? Sonst müßte auch die
Helligkeit zum Rand hin erhöht werden.
wieso die pixel anhand des winkels steuern? steuere sie anhand der zeit:
mach einen kleinen impulsgeber pro umdrehung, wo dein gerät das bild neu
aufbaut. allerdings müsstest du experimentell herausfinden, wieviele
pixel pro umdrehung angezeigt werden können (abhängig von der
rotationsgeschwindigkeit).
die zeitsteuerung funktioniert nur, wenn die rotationsgeschwindigkeit
konstant ist, wovon ich mal ausgehe. eine winkelsteuerung musst du nur
einsetzen, wenn die rotationsgeschwindigkeit nicht konstant ist.
Hi,
Impulsgeber? meint ihr drehimpuls, er schrieb doch daß er den Rotor mit
einem Schrittmotor antreibt. Da kann er doch relativ einfach den
Winkel zur Anzeigezeile bestimmen.
Gruß
Andi
Einen Referenzpunkt braucht man trotzdem.
Das ganze sollte jedoch machbar sein. Bei mir wird der "Pixeltakt" (ist
eher ein Spaltentakt, da bei mir eine ganze Spalte auf einmal ausgegeben
wird) wird mit einem CTC timer erzeugt. Wenn man den wert für den CTC
timer einfach mit den werten einer (invertierten)Sinustabelle
multipliziert müsste man ein anständiges bild bekommen. Den aktuellen
Tabellenwert müsste man aus dem Drehwinkel also aus dem Schrittmotortakt
ableiten. Die referenzposition würde ich am Bildrand anbringen.
Is doch ganz einfach Leute:
Das anzuzeigende Bild hat eine Höhe d.
Der Schrittmotor braucht n Schritte für eine halbe Zylinder Drehung.
(Der Bild-relevante Teil)
D.h. der Schrittwinkel ist alpha = (180° / n)
Angenommen der Zylinder dreht sich so dass das Bild von oben nach unten
aufgebaut wird:
Der Zylinder macht ja n Schritte durch, es geht bei Stellung 0 los (Anz.
Stellungen = n + 1):
h = 0,5 * sin(90° - 0 * alpha) + 0,5
Angenommen das Bild wird als nicht-pixelig angenommen, dann muss in
dieser Stellung die Bildzeile an den LEDs ausgegeben werden, die
verhältnismäßig in Zeile (h / d) liegt.
Da es bei bekannter Schrittanzahl n ja nur eine bestimmte Anzahl von
Sinus-Berechnungen benötigt werden, können diese in eine Tabelle gelegt
werden. Es wird im Prinzip jedem Schritt eine bestimmte Zeile vom
auszugebenden Bild zugeordnet.
Durch eine geschickte Tabelle kann man den Speicherauwand noch
reduzieren, wenn man z.b. sin(x) u. sin(-x) zusammenfasst etc.
ach so, jetzt versteh ich, was er wollte: ja, dann ist eine LUT am
besten (man braucht ja nur 1/4 der umdrehungszustände abzuspeichern)
...ich danchte eben, er wolle ein 3D-display
Nur damit es nicht zu einfach wird:
Wenn die LEDs eine Richtungscharakteristik haben (also nicht in alle
Richtungen gleichhell abstrahlen), dann wird Dein Bild an den Rändern
dunkler. Das könntest Du ebenfalls korrigieren.
@Willi: die überlegung habe ich mir auch gemacht... aber die
geschwindigkeit ist in der "mitte" dafür höher. die frag ist also, ob
man beliebige LEDs nehmen kann und sich das dann ausgleicht oder solche
mit einem speziellen abstrahlwinkel..?
Aber blinken die LEDs nicht nur kurz auf? Sonst hättest Du doch
Schlieren oder Verschleifungen. Damit hat die Geschwindigkeit keinen
Einfluss auf die sichtbare Helligkeit, und das ist doch auch so gewollt!
Ciao
Schneemann: Man sollte (wenn man es denn kann) SMD-LEDs verwenden, die
haben teilweise fast 180° Abstrahlwinkel und sind dabei relativ
homogen.
Willi: Ja, jede Zeile erst aufblinken und dann kurz alles ausschalten
gibt den schönen Rastereffekt und lässt die (hier) Zeilen weniger
verschwommen wirken.
Und das mit der Helligkeit... wenn die Dioden überall hin gleich hell
abstrahlen hat man an den Rändern höhere Leuchtdichten, ansonsten
vielleicht geringere. Ich denke das sollte man ausprobieren und z.B.
durch eine parabelförmige Helligkeitsanpassung mit Konstante im
Quelltext lösen. Also eine Anpassung vorsehen, nur Parameter dafür durch
Ausprobieren festlegen.
Oh, wenn ich doch nur mehr Zeit hätte, dann hätte ich wohl auch schon
mit so einer schönen Spielerei angefangen ;)
@All
danke für die rege Beteiligung!
@Matthias
wie Stefan es schon sagte, das Bild kommt meiner ursprünglichen Idee
schon sehr nahe, nur ist es halt um 90° verdreht und nicht korrigiert.
Also man sieht die sphährische Wölbug, die ich ja eigentlich entfernen
möchte.
Hast du das Modell am Foto eigentlich selbst genaut?
Wegen dem Abstahlwinkel muss ich mich auf jeden Fall noch nach LEDs mit
einem hohen Winkel umsehen, alternativ müsst man die Helligkeit abhängig
von dem aktuellen Winkel regeln.
Ich wuerde Strahler LED nehmen, und damit das Problem erschlagen. Dann
sieht man nur einen 45 Grad winkel, hat kaum Verzerrungen. Zur
Kompensation kann man den Durchmesser des Rotors etwas groesser waehlen.