Laserprojector: Unterschied zwischen den Versionen
Siro (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Siro (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 71: | Zeile 71: | ||
<h3>Horizontaler Motor/Spiegel</h3> | <h3>Horizontaler Motor/Spiegel</h3> | ||
Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 24000*7/60 = 2800 Ablenkungen pro Sekunde. | Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 24000*7/60 = 2800 Ablenkungen pro Sekunde. | ||
<br><b> | <br><b>Stecker</b><br> | ||
Pin Funktion<br> | Pin Funktion<br> | ||
1 +24V<br> | 1 +24V<br> | ||
2 GND<br> | 2 GND<br> | ||
3 | 3 Eingang: soll U/min in Hz TTL<br> | ||
4 | 4 Ausgang: ist U/min in Hz (need external pulldown)<br> | ||
5 ??<br> | 5 ??<br> | ||
Version vom 14. September 2010, 11:25 Uhr
laserprojector Release status: experimental [box doku] | |
---|---|
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
[eagle Dateien im labor-svn]
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
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, Tastertur, H-Motor, Spannungssteuerung, i2C
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: soll U/min in Hz TTL
4 Ausgang: ist U/min in Hz (need external pulldown)
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:
http://elm-chan.org/works/vlp/report_e.html