laserprojector

Aus LaborWiki
Version vom 25. September 2010, 10:15 Uhr von Siro (Diskussion | Beiträge) (lasermotor ansteuerung geändert)
Wechseln zu: Navigation, Suche
Kran
Diese Seite befindet sich noch im Aufbau bzw. wird gerade heftig überarbeitet. Vorsicht: Herumliegende Gedankenfetzen!
Dieser Banner ist hier dokumentiert.

english version

     
laserprojector

Release status: experimental [box doku]

Laser.jpg
Description Projektor der 2 sich drehende Spiegel zur Ablenkung eines modulierten Laserstrahls nutzt
Author(s)  siro
Last Version  0.2




DIY Laser Projector

Idee : Mit möglichsten einfachen Mitteln ein LaserProjector bauen.

Konzept

Atmega steuert 2 schnelle Motoren, Keyboard, GLCD, Power-Supply.
An den Motoren sind Spiegel befestigt. Der Laserstrahl trifft auf den ersten Spiegel und wird von dort zur zweiten reflektiert. Der erste sorgt für die vertikale Ablenkung, der zweite für die horizontale. Durch Pulsung des Lasers kann ein Bild projektiert werden.

Bauteile:

TODO

Übersicht

Syncronisationseinheit:

Detektiert die Position des Laserstrahls
Besser ein Transimpedanzwandler, anstelle eines Spannungsteilers verwenden

Beschreibung
Die IR-LEDs leuchten auf den Spiegel, wodurch das reflektierte Licht auf die IR-Phototransistoren fällt, wird differenziert, rauschgefiltert und verstärkt. Am Ausgang des OpAmp schneidet eine Diode die negative Spannung ab. Ist diese groß genug, schaltet der FET (BSS123) durch und zieht die Output Leitung auf Masse. Am anderen Ende der Leitung muss ein Pullup-Widerstand sein, der den Strom auf unter 100mA begrenzt. Versorgungsspannung: 3,7 bis 15 Volt (empfohlen 5 bis 12 Volt).
Berechnung des Tiefpass
Ua = -Ue * R2/R1 * 1 / SQR( 1 + (2*pi*f*R*C)^2 )
Sei 1 / SQR( 1 + (2*pi*f*R*C)^2 ) < 1/Sqr(2) für f > 3000 Hz
1 + (2*pi*f*R*C)^2 < 2
(2*pi*f*R*C)^2 < 1
(2*pi*f*R*C) < 1
RC < 1/2*pi*f
RC < 5,3*10^-5 für f > 3kHz
Dateien im SVN

Syncsensor

Zwei kleine IR-LEDS leuchten dauerhaft auf die rotierenden Spiegel gerichtet. Sobald der reflektierte Lichtstrahl auf die IR-Phototransistoren fällt, wird ein Interrupt am Mikrokontroller ausgelöst.

Sicherheitsboard

Das Sicherheitsboard soll mit verschiedenen Sensoren feststellen, dass sich die Spiegel bewegen, so das die Lichtleistung pro Bildpunkt gering gehalten wird. Bei einem Stopp der Spiegel muss der Laser sofort abgeschaltet werden.

Kontrollboard

An das Kontrollboard werden GLCD, Ps2 - Tastertur, H-Motor, Spannungssteuerung, i2C angeschlossen.

Dateien im SVN

Horizontaler Motor/Spiegel

Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 24000*7/60 = 2800 Ablenkungen pro Sekunde.
Stecker
Pin Funktion
1 +24V
2 GND
3 Eingang: 5V TTL 0Khz = 0 U/s, 1 Khz = 400U/s (nichtlineare Kennkurve)
4 Ausgang: 7*U/sek ??? sehr instabil, besser nicht nutzen!
5  ??

Laserstromversorgung

Diese Schaltung kann den Strom durch die Laserdiode bis 10 Mhz regulieren. Eingangsignal ist 5V TTL. Ausgabe ist rechtecktförmig. Einstellbar sind Offset und Maximalstrom. Auflösung: 12 bit Schwingkreis zur Laserausrichtung, Gesamt-optische-leistung muss kleiner 0,005 W sein.

astabilder Multivibrator:
P = 1 Watt
Pges <= 0,005 Watt
Frequenz f = 50 Hz
Pulsweitenmodulation T = 1 / f = 1 / 50 = 20 * 10^-3 s
T2 = T - T1
T1 <= 5 mWatt / (1000 mW * f) = 5mWs / 50000 mW = 1 / 10000 s = 0,1 ms
T2 = 20ms - 0,1 ms = 19,9 ms
astabiler multivibrator T = ln(2) * R * C
T2 = 19,9 ms
T1 = 0,1 ms
setze C = 100n = 1 * 10^-7
R2 = T2 / (ln(2) * C) = 19,9* 10^-3/ 10^-7 *ln(2) = 28,7 *10^4 = 287k
R1 = T1 / (ln(2) * C) = 0,1 * 10^-3/ 10^-7 *ln(2) = 0,144 * 10^4 = 14,4k

Bildverarbeitung

ARM7 mit ~70 Mhz

START
 goto INIT
INIT:
starte timer0, höchste Geschwindigkeit 
starte capture mode (save timer0 in REG on ext. INT)
setze SPI Geschwindigkeit auf CCLK/n (n >= 8)
TIMER0_OVF_INT:
timer0 vorteiler erhöhen
timer0 counter register mit richtigem Wert laden
CAPTURE_INT:
berechne wie lange es bis zum Interrupt gedauert hat (timer0 reg - capture reg)
lade Differenz in timer0 counter register
warte durchschnittliche Differenz
speicher Differenz im Array
bilde neue durchschnittliche Differenz
incrementiere rps counter
warte $POST_SYNC
sende Daten über SPI
warte $PRE_SYNC // exit :)
CALL_ONCE_A_SEC_INT:
starte timer0, höchste Geschwindigkeit
rps counter auf 0 setzen
rps counter ausgeben
durchschnittliche Differenz ausgeben
CALL_20TIMES_A_SEC_INT:
get keyboard data over i2c
send LCD data over i2c



Laserdiode

WARNUNG !
Dies ist ein Klasse 3 Laser ! Er verbrennt innerhalb von Sekunden Papier,Holz,Fleisch,... selbst in einigen Metern Entfernung !
Schutzbrille tragen
Nicht in den Strahl blicken !
Ich projecktiere auf eine große Fläche, dadurch sind die Lichtpunkte an der Wand nicht so hell, dass man sich die Augen verbrennt !
Nie auf den Lichtpunkt blicken, wenn der Laser "steht". Verbrennungsgefahr !

1000mW (1W) Laserdiode 445nm Blau 5,6mm

TODO:

  • Redoing the whole concept
  • Design SMD boards
  • Buy new motors, mirrors, laser,...

Links:

Laser Projektoren

Laser-Projektor selbstgebaut

http://elm-chan.org/works/vlp/report_e.html

Horizontal Laser Deflector

AVR Laser Projector

AVR laser projector

the laserbeamer

Laser video projector

Mechanically scanned laser display

RGB Laser Projector