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?
>sinus
Wie genau? bzw. die Pixel sind ja schon vorgegeben deswegen kann ich sie
nicht nicht stauchen bzw. strecken.?!
kein sinus, Tabelle! Am Sinus rechnet sich Dein MC tot!
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.
Die Entzerrung mit Sinus würde aber dann nur für einen Blickwinkel passen !
DKM wrote: > Die Entzerrung mit Sinus würde aber dann nur für einen Blickwinkel > passen ! Sicher... :) Aber anders gehts halt nicht...
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
ich glaube er will das ganze 90° gedreht bauen
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.
oder bring einfach 2 leds nebeneinander an die im 90° winkel in 2 richtungen scheinen, dadurch wirds vielleicht ein bisschen besser ;)
Hallo, ich baue auch schon seit einiger Zeit an einem rotierendem Display. Habe auch einige Tests bezüglich LEDs hinter mir. Ich verwende PLCC2 LEDs, die einen 140 Grad Abstrahlwinkel haben. Diese gibt es auch als RGB LEDs, bei Reichelt z.B. eine RGB Version habe ich allerdings auf Eis gelegt, da der Strombedarf für mich zu hoch ist. http://www.rc-heli.de/board/index.php?topic=57220.0 LEDs von vorne: (im Anhang) http://tobytetzi.de/NightVision/PIC03328.JPG LEDs vorne seitlich: http://tobytetzi.de/NightVision/PIC03337.JPG LEDs hinten seitlich: http://tobytetzi.de/NightVision/PIC03335.JPG Gruß Toby
Ja, das Teil ist selbstgebaut, mit noch drei weiteren Leuten.. Es gibt dafür noch mehr Bilder & Videos....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.