Eigene Lasersoftware an eigenem D/A Wandler. How to?

Forum für Einsteiger- und Anfängerfragen. Bevor Ihr hier Fragen stellt, lest bitte erst unsere FAQ, oder benutzt die Suchfunktion des Forums. Solltet Ihr dann immer noch keine Antwort gefunden haben, dann helfen wir Euch gerne.

Moderatoren: lightwave, Gooseman

Gesperrt
cmarggi
Beiträge: 4
Registriert: Mi 12 Apr, 2006 4:28 pm
Wohnort: Schweiz

Eigene Lasersoftware an eigenem D/A Wandler. How to?

Beitrag von cmarggi » Do 11 Mai, 2006 4:50 pm

Hallo zusammen

Das Laservirus hat mich schon seit längerem befallen. Nun möchte ich endlich auch etwas Aktiv werden. Leider habe ich nicht so die Möglichkeiten teure Scanner zu kaufen und kenne mich auch zu wenig mit Leistungselektronik aus um selber einen Scanner à la Chan o.ä. zu bauen.
Allerdings bin ich in der Welt der Software und der Mikrokontroller zu Hause. Also ein Schwachstromer :wink:

Habe nun ein System bestehend aus Mikroprozessor mit Verbindung zum PC und zwei D/A Wandlern aufgebaut. Meine Lasershows möchte ich dann einfach an einem Oszi anschauen.

Hier meine Frage:

Da ich nicht ganz an der Wirklichkeit vorbeiprogrammieren und vielleicht das Ganze mal an einem Richtigen Lasersystem ausprobieren möchte, stellten sich mir einigen Fragen:

1) Warum ist es vorteilhafter die Punktdaten als Vektoren und nicht als Koordinaten abzuspeichern (à la ILDA)?

1.1) Ich nehme an, dass das bei der Ausgabe an den DAC wieder in Koordinaten umgerechnet werden muss?

2) Wie geht man vor bzw. wie viele und was für Punkte muss man wählen wenn man eine gerade Linie projizieren will, wenn die Distanz in x- und in y-Richtung nicht gleich ist und man davon ausgeht das beide pro Distanzeinheit sowohl x- wie y-Einheit die gleiche Zeit benötigen.

Code: Alles auswählen


y

^
.
.         ------------------------o
.      /
.    /
.  /
o.  .  .  .  .  .  .  .  .  .  .  .  .  .  . >x
Dies als Negativ-Beispiel: Y-Distanz ist kürzer und der Endwert wird schneller erreicht als in x-Richtung.


2.1) Ist die Lösung einfach ganz viele nahe beieinander liegende Punkte zu programmieren?

2.2) Wenn dann trotzdem eine sehr lange genau horizontale oder vertikale Linie projizieren will. Nimmt man dann einfach nur Anfang und Endpunkt und lässt die jeweils andere Einheit ruhen bis ich angekommen bin? Oder nimmt man trotzdem viele einzelne Punkte?

2.3) Müssen die Punktkommandos in festen Zeitintervallen ausgegeben werden? Oder berechnet man die Distanz (bzw. den Winkel) zwischen zwei Punkten und wartet entsprechend lange bis man den nächsten Punkt verschickt (natürlich mit dem wissen wie lange die X-Y Einheiten brauchen um dieses Ziel erreichen zu können)?


Ich hoffe, dass meine Fragen nicht allzu dämlich sind und mir noch zu helfen ist. :D


Viele Grüsse
MaC

Benutzeravatar
guido
Beiträge: 6439
Registriert: Do 20 Dez, 2001 12:00 pm
Do you already have Laser-Equipment?: Easylase, Netlase, Laser von 1..15W.
Entwickler von Dynamics + Mamba X4 .
Lasershow Hard / Software .
Wohnort: 32469 Petershagen
Kontaktdaten:

Re: Eigene Lasersoftware an eigenem D/A Wandler. How to?

Beitrag von guido » Do 11 Mai, 2006 5:08 pm

Vorab: Ein Oszi hat kein Blanking !!! :-)



1) Ob nun Vektoren oder Koordinaten...mann muss es auch einfach wandlen können (z.b. grösse per Multiplikation )

1.1) Ja


2.1) ja. Closed Loop Scanner mögen auf grund der Regelung auch keine Riesen Schritte. Zauberwort "Interpolationsabstand"

2.2)Viieeele Punkte

2.3) Viele Punkte in gleichen Zeitlichen Abständen. So kommst du dann auf viele pps ( Punkte pro Sekunde ) bzw. Kpps

Benutzeravatar
afrob
Beiträge: 995
Registriert: Mo 05 Aug, 2002 12:00 pm
Do you already have Laser-Equipment?: RayComposer NET und RayComposer USB
Wohnort: Frankfurt am Main, Germany
Kontaktdaten:

Re: Eigene Lasersoftware an eigenem D/A Wandler. How to?

Beitrag von afrob » Do 11 Mai, 2006 5:28 pm

cmarggi hat geschrieben:1) Warum ist es vorteilhafter die Punktdaten als Vektoren und nicht als Koordinaten abzuspeichern (à la ILDA)?
Was verstehst du denn unter "Vektor" und "Koordinaten"? Ortsvektor und kartesische Koordinaten haben doch den selben Wert.

Grüsse,
afrob

dominik
Beiträge: 117
Registriert: So 07 Aug, 2005 3:45 pm
Wohnort: Dresden

Beitrag von dominik » Do 11 Mai, 2006 5:53 pm

Cool, dass du jetzt auch zu uns Süchtigen gehörst. Wilkommen im Forum!

Hatte auch schon mal überlegt, nen DA-Wandler mit Mikrocontroller zu basteln, aber mit DMX. - ist bis jetzt aber noch nichts geworden. Hab erstmal meine erste "kleine" Laserbank gebaut.

Was nutzt du denn für nen Prozessor und für nen DA?


zu 2.x)
Je mehr Punkte um so heller die Linie, aber auch um so langsammer und bei einfachen Closed Loop villeicht auch etwas genauer.
Was die Anzahl von Anfangs und endpunkten, ... bei Closed Loop Scannern angeht, ist das von Galvo zu Galvo unterschiedlich.

Wenn du mal ein paar Wochen Zeit hast, kannst du dir ja auch mal ne kleine Laserbank bauen. Dann kannst du alles selber sehen und ausprobieren!


MFG Dominik

Benutzeravatar
fst-laser
Beiträge: 764
Registriert: Sa 02 Jun, 2001 12:00 pm
Wohnort: Gersthofen bei Augsburg

Beitrag von fst-laser » Do 11 Mai, 2006 9:21 pm

Ein Oszi hat kein Blanking
Nicht alle, mein Grundig Co30 hat nen Intens-Mod-Eingang. :D

Gruß Flo
F S T Discohits, Laserrausch -
Laser Abheben in die Welt der Strahlen!

Suche einen Laser Physics - Reliant300WC Weißlichtlaser...

bernd
Beiträge: 1227
Registriert: Fr 28 Feb, 2003 9:35 pm
Wohnort: Oberschleißheim @ München
Kontaktdaten:

Beitrag von bernd » Fr 12 Mai, 2006 1:45 am

@cmarggi

Auch von mir erstmal herzlich willkommen! Deine Vorstellung und Anliegen war schön geschrieben - Aber wo bist du her? Wäre nett, wenn du deinn Profil noch ein "bißchen" ausfüllen würdest. Und auch ein Vorname als Unterschrift wäre schön. Hier in diesem Forum geht es mehr "familiär" zu als in anderen ;-)

Ansonsten viel Spaß dabei, das Rad nochmal neu zu erfinden... Hast du dir mal die (tlw. Nix-Cost) Soft- und (auch Low-Cost) Hardwaren angeschaut, die hier öfter diskutiert werden?

Grüße Bernd

cmarggi
Beiträge: 4
Registriert: Mi 12 Apr, 2006 4:28 pm
Wohnort: Schweiz

Beitrag von cmarggi » Fr 12 Mai, 2006 11:02 am

@Alle

Wow! Vielen Dank für euere prompten und freundlichen Antworten. Es gibt da meiner Meinung nach auch andere Foren, wo ein anderer Ton herrscht.

@Guido

Interpolationsabstand…. Hmmm, tönt interessant und wahnsinnig kompliziert. Mach mich am Wochenende mal in Forum und auf Google auf die Suche nach diesem Stichwort. Vielen Dank!

Ansonsten habe ich ein wenig das Gefühl aus euren Antworten gewonnen, dass in einer schönen Linie bzw. Figur viel Probierarbeit drinsteckt und auch von Scanersystem zu Scanersystem neu ausprobiert werden muss.
Könnt ihr das bestätigen?


@afrob
Nun ja, ich kenne das ILDA Format nur vom Hörensagen und das es ein Vektorformat sei. Ich weiss nicht wie es definiert ist, aber Grundsätzlich fallen wir zwei Varianten ein, wie man das lösen könnte.

Einmal wie du es vorgeschlagen hast mit Ortsvektoren. Dann entsprechen die Koordinaten natürlich gerade den Vektoren.

Andererseits könnte man sich von einem Stützpunkt aus, in einem Vektor nur jeweils die Änderung merken, die man zum nächsten Punkt braucht. Das hätte dann vielleicht für einen allfälligen Regelalgorithmus gewisse Vorteile (…aber nur vielleicht, keine Ahnung!….).

Bsp.: Dreieck mit den Punkten 1/1, 2/2, 3/1 (= ein Scanzyklus)

Code: Alles auswählen

Variante 1:                         Variante 2

1/1                                  1/1  (Stützpunkt)  
2/2                                  1/1  (Differenz zum ersten Punkt)
3/1                                  1/-1
1/1                                 -2/0  (Dreieck beginnt den zweiten Durchlauf)
 :                                    :
 :                                    :
Wie gesagt, ich weiss nicht welche oder ob überhaupt einer dieser Ideen im ILDA verwendet wird. Es lohnt sich aber sicher mal reinzuschauen. BTW hab ich auch vor, wenn die Hardware über die Testphase hinaus ist.

@Dominik

Herzlichen Dank für deine Willkommensgrüsse.
Ich verwende im Moment einen MSP430F149 als Prozessor und eine 8-Bit D/A Wandler (DAC0800LCN) zum Testen. Ich überlege mir auf den ATMega128 zu wechseln. Ein 12Bit D/A Wandler ist auch schon parat. Die Kommunikation mit PC erfolgt über die UART (bzw. RS232).
Meine Idee war, dass man die Show auf dem PC entwirft, speichert etc.
Während die Show abläuft, kennt dann der Prozessor immer nur zwei Frames. Das welches er gerade ausgibt und eines das er während dessen vom PC zugeschickt bekommt und nach erfolgtem Download auf Befehl gestartet werden kann.
Um der vielen Analogtechnik (denke da immer noch an die Lösung von Chan) etwas auszuweichen, könnte der Prozessor auch als digitaler PID- (, Deat-Beat- oder was auch immer)Regler fungieren.

Ich weiss, ganz schön viel Arbeit für so einen Winzling, aber ich hab ja auch schon Pläne für eine Arbeitsteilung (Multiprozessor-Umgebung). Wie gesagt die kleinen Käfer und das Programmieren machen mir Spass, auch wenn es sicher bessere und einfachere Lösungen gibt.


@ Bernd

Erst zu meiner Person: Das Kürzel MaC steht für Marggi Christian; mein Name. Ich lebe in der Schweiz und schreibe im täglichen Leben Programme für Prüfeinrichtungen für die Luftfahrtindustrie…. *gähn*
Werde mein Profil sogleich komplettieren.

Ja klar hab ich mir viele solche Teile angeschaut. Was nützt es mir aber, wenn ich super Fertiglösungen beschaffe und dabei meinen Grips nicht anstrengen kann! Ich brauche ein Hobby!!! Bei uns sagt man „Jedem Globi sein Hobby“ oder „Jedem Tierchen sein Plaisierchen“.


@Flo, @Guido

„Mein Oszi hat auch Blanking…“, sagte die Blondine, „man braucht einfach nur ein wenig Tipex“

Naja, ein Versuch war es wert.


Gruss
Christian ‚MaC’ Marggi

(So tönt es irgendwie Schottisch, nicht?)

cmarggi
Beiträge: 4
Registriert: Mi 12 Apr, 2006 4:28 pm
Wohnort: Schweiz

Beitrag von cmarggi » Fr 12 Mai, 2006 11:19 am

Eine Frage hätt ich da doch noch.
Man sieht immer die Schalgwärter 30k 12k 8k usw (oder sind das Schlagzahlen :wink: )

Bsp 30k:

So wie ich das verstaden habe sind das ja 30'000 Punkte in der Sekunde, das heisst jede 30'000-stel Sekunde muss mein DAC einen neuen Punkt ausspucken.

Hier die Frage:

Was macht man wenn man wenn man eine kleine Grafik mit weniger punkten hat?? Auffüllen mit Nutzlosen Punkten (bzw. Wartezeit) oder früher mit dem nächsten Durchgang anfangen ....?


Frage 2:

Wie oft muss eine ganze Grafik pro sekunde wiederhohlt werden, dass sie nicht flimmert? etwa 25 mal wie beim TV? Würde das bedeuten das bei 25k die Grafik etwa 1000 Punkte gross sein darf?


Gruss
Christian 'MaC' Marggi
Wer Rechtschreibfehler findet, darf sie behalten!

schobi
Beiträge: 272
Registriert: Mo 26 Sep, 2005 9:28 am
Wohnort: Regensburg
Kontaktdaten:

Beitrag von schobi » Fr 12 Mai, 2006 11:49 am

Hallo,

Wartezeit wäre eine schlechte Idee, weil man dadurch wertvolle Laserleistung verschwendet und das Bild dunkler wird. Sehr einfache Frames also lieber langsamer scannen oder mehrmals wiederholen.

Frage 2: korrekt

Für flüssige Bewegungen sollten es schon min. 25 fps sein. Daher solltest du dir auch Gedanken machen ob die Geschwindigkeit von RS232 ausreichend ist. Angenommen ein Punkt hat nur 3 Byte (schlechte Auflösung ohne RGB), dann sind das bei 10kpps (Spitzensysteme schaffen 60kpps) dann hast du einen Nettodatendurchsatz von 30000 Byte pro Sekunde, sofern du keine Frames wiederholen möchtest. Und selbst dieser klein gegriffene Wert überfordert einen normalen UART mit 115kBaud.

Gruß Tobias
Ich danke allen, die zur Sache nichts zu sagen hatten und trotzdem geschwiegen haben.

cmarggi
Beiträge: 4
Registriert: Mi 12 Apr, 2006 4:28 pm
Wohnort: Schweiz

Beitrag von cmarggi » Fr 12 Mai, 2006 2:53 pm

Vielen Dank für die Antwort

Natürlich hat die UART nicht genug Bandbreite, um die Punkte On-Line runter zu schicken. Gerade aus diesem Grund will ich ja als nebenläufigen Prozess die Daten für ein Frame zuerst komplett ins RAM (oder wahrscheinlich eher in ein externes Flash für grosse Bilder) schreiben. Sobald dieser Download komplett ist (oder zu einem beliebig späteren Zeitpunkt), kann dann das aktuelle Frame verworfen werden und die Daten dieses neuen Frames aus dem RAM geholt werden.

Klar ist, dass dann sofort der nächste Download für das nächste Frame beginnt.


Gruss
MaC
Wer Rechtschreibfehler findet, darf sie behalten!

bernd
Beiträge: 1227
Registriert: Fr 28 Feb, 2003 9:35 pm
Wohnort: Oberschleißheim @ München
Kontaktdaten:

Beitrag von bernd » Sa 13 Mai, 2006 5:58 am

Hallo,

<<< Wartezeit wäre eine schlechte Idee, weil man dadurch wertvolle Laserleistung verschwendet und das Bild dunkler wird. Sehr einfache Frames also lieber langsamer scannen oder mehrmals wiederholen. >>>

Jain - Radio Eriwan ;-)

Klar gibt es Situationen, in denen man jedes (m)W braucht. Ich persönlich finde es allerdings angenehmer, wenn eine Show durchgehend eine einiger Maßen gleichmäßige Helligkeit hat. Außer Schwankungen sind gewollt wie z.B. in "leisen/langsamem" Musikpassagen langsam dunkler werden und bei einem "Paukenschlag" dann wieder volle Leistung.

Für die gleichmäßige Helligkeit kann man (ich bin nur auf Pangolin fit - und da geht es auf jeden Fall) eine minimale Punkteanzahl definieren. Die fehlenden Punkte werden dann einfach geblankt ausgegeben. Alles darüber wird so ausgeben wie es programmiert wurde. Theoretisch jedenfalls - Aber die Diskussion fehlende Helligkeit / Ausgabeleistung wurde (hier) schon (mehrfach) diskutiert.

Schönes Wochenende

Bernd

Gesperrt

Zurück zu „Einsteiger Forum“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste