Laserprojector: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
K (more gamma)
Keine Bearbeitungszusammenfassung
 
(30 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<b>[http://das-labor.org/wiki/Laserprojector_en english version (outdated)]</b>
{{ProjektInfoBox
|name=laserprojector
|status=experimental
|image=laser.jpg
|description=Projektor der 2 sich drehende Spiegel zur Ablenkung eines modulierten Laserstrahls nutzt
|username=siro
|author=siro
|version=0.3<br>
|update='''[[Benutzer:Siro|Siro]] 11 Dez. 2011 (CET)'''
|platform=lpc2103 / STM32F405
|download=https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj
|tags=Leistungselektronik,
}}
<b>[[Laserprojector_en|english version (outdated)]]</b>


{{ProjektInfoBox
|name        = laserprojector
|status      = experimental
|image      = laser.jpg
|description = Projektor der 2 sich drehende Spiegel zur Ablenkung eines modulierten Laserstrahls nutzt
|author      = siro
|username    = siro
|version    = 0.2<br>
|update      = '''[[Benutzer:Siro|Siro]] 27. Feb. 2011 (CET)'''


|platform    =
|license    =
|download    =
}}


== Achtung ==
<br>
<br>
<br>
== Projekt liegt auf EIS ==
<br>
<br>
<br>
<br>
== Danksagungen ==
== Danksagungen ==
<b>Vielen Dank an folgenden Personen</b><br>
<b>Vielen Dank an folgenden Personen</b><br>
* Kiraz
* [[Benutzer:Kiraz|Kiraz]]
* Tivix
* Tixiv
* Tesla
* Tesla
* MadEngineer
* MadEngineer
* Zaolin
* [[Benutzer:Zaolin|Zaolin]]
* Sauron
* [[Benutzer:Sauron|Sauron]]
<b>Besonderen Dank an das Labor eV für die Bereitstellung der Räume und des Werkzeuges.<br></b>
<b>Besonderen Dank an das Labor eV für die Bereitstellung der Räume und des Werkzeuges.<br></b>


Zeile 33: Zeile 42:
</gallery>
</gallery>
<br>
<br>
<b>Project im Trac</b>
[https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj laserproj]<br>
<br>
<br>
<h1> Übersicht </h1>
=Übersicht=
<b>Auflösung</b>:256x256<br>
<b>Momentan möglich mit lpc2103</b>
<b>Refreshrate</b>:30Hz<br>
* <b>Auflösung</b>:128x32<br>
<b>Farben</b>:1 (blau)<br>
* <b>Refreshrate</b>:30Hz<br>
<b>Farbtiefe</b>: 256 (8-bit)<br>
* <b>Farben</b>:1 <br>
<b>Interfaces</b>: RS232, ??<br>
* <b>Farbtiefe</b>: 64 (6-bit)<br>
<b>Ablenkung</b>:2x Spiegelräder, Asyncronmotor + Gleichstrommotor<br>
* <b>Interfaces</b>: RS232<br>
<b>benutzte Kontroller</b>:ATmega169 + LPC2103<br>
* <b>Ablenkung</b>:2x Spiegelräder, Asyncronmotor + Gleichstrommotor<br>
<br>
<b>Momentan möglich mit STM32F4</b>
* <b>Auflösung</b>:256x128<br>
* <b>Refreshrate</b>:30Hz<br>
* <b>Farben</b>:3 <br>
* <b>Farbtiefe</b>: 256 ^ 3 (8-bit)<br>
* <b>Interfaces</b>: USB<br>
* <b>Ablenkung</b>:2x Spiegelräder, Asyncronmotor + Gleichstrommotor<br>


<h1> Konzept </h1>
Ein Atmega steuert den horizontal angebrachten schnellen Motor und einen vertical angebrachten, sich langsam drehenden Motor, Keyboard, GLCD, Power-Supply.<br>
An den Motoren sind Spiegelräder befestigt. Der Laserstrahl trifft auf den ersten Spiegel und wird von dort zur zweiten reflektiert. Der erste sorgt für die horizontale Ablenkung, der zweite für die vertikale. Durch Pulsung des Lasers kann ein Bild projektziert werden.<br />


= Konzept =
Ein Mikrocontroller steuert den horizontal angebrachten schnellen Motor und einen vertikal angebrachten, sich langsam drehenden Motor,<s> Keyboard, GLCD, Power-Supply.</s><br>
An den Motoren sind Spiegelräder befestigt. Der Laserstrahl trifft auf den ersten Spiegel und wird von dort zur zweiten reflektiert. Der erste sorgt für die horizontale Ablenkung, der zweite für die vertikale. Durch digitale Ansteuerung des Lasers kann ein Bild projektiert werden.<br />
<gallery>
 
</gallery>
<br>
<br>
'''Neue Idee zur Datenanbindung'''<br>
VGA Eingang<br>
Controller IC muss mit H-Motor und V-Motor syncronisieren<br>
Controller IC muss mit H-Motor und V-Motor syncronisieren<br>
<h3>Übersicht</h3>
==Übersicht==
<gallery>
<gallery>
   Datei:Overview.jpg|Übersicht Laserprojector ICs & IOs
   Datei:Overview.jpg|Übersicht Laserprojector ICs & IOs
</gallery>
</gallery>


<h1> Syncsensor </h1>
= Syncsensor/Lichtschranke =
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.
==Beschreibung==
<b>STATUS:</b><i> getestet, wird ersetzt durch Kontrollboard</i>
Ein 5mW roter Laserpointer leuchtet dauerhaft auf den rotierenden Spiegel gerichtet. Sobald der reflektierte Lichtstrahl auf die Phototransistoren fällt, wird ein Interrupt am Mikrocontroller ausgelöst.
<br>
<br>
Generell ist es auch möglich eine IR-LED zu verwenden, diese haben aber einen sehr großen Abstrahlwinkel und eine geringe Leuchtdichte. Dadurch sind diese nur für sehr niederfrequente Anwendungen geeigenet.


<h1> Kontrollboard </h1>
==Bilder==
<b>Funktionen:</b><br>
<gallery>
* <h2>Sicherheitsboard</h2>
  Datei:LaserprojlightbarrierA.jpg| Lichtschranke A
<h3>Aufgaben</h3>
  Datei:LaserprojlightbarrierB.jpg| Lichtschranke B
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 <b>muss</b> der Laser sofort abgeschaltet werden.
</gallery>


* <h2>Syncronisationseinheit</h2>
==Schaltplan==
<h3>Aufgaben</h3>
Schaltplan & EAGLE layout im SVN: [https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj/light%20barrier light barrier]
Detektiert die Position beider Spiegelräder.
<h3>Bauteile</h3>
<h3>Beschreibung</h3>


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 10mA begrenzt.
<b>STATUS:</b><i> getestet</i>
Versorgungsspannung: 3,7 bis 15 Volt (empfohlen  5 bis 12 Volt).
<br>  
<h3>Berechnung des Tiefpass</h3>
<br>
<br>
Ua = -Ue * R2/R1 * 1 / SQR( 1 + (2*pi*f*R*C)^2 )<br>
Sei 1 / SQR( 1 + (2*pi*f*R*C)^2 ) < 1/Sqr(2) für f > 3000 Hz<br>
1 + (2*pi*f*R*C)^2 < 2<br>
(2*pi*f*R*C)^2 < 1<br>
(2*pi*f*R*C) < 1<br>
RC < 1/2*pi*f<br>
RC < 5,3*10^-5 für f > 3kHz<br>
C = 50nF <br>
* <h2>Controller</h2>


An das Kontrollboard werden GLCD, PS/2 - Tastertur, H-Motor Steuerung, V-Motor Steuerung, Stromversorgungsteuerung, USART angeschlossen.
=Horizontaler Motor=
Auf dem GLCD sind Messwerte zu sehen, mit der Tastertur lassen sich Variablen verändern. Der H-Motor (Epson Laser-unit) benötigt ein TTL Signal zum regulieren der Motorgeschwindigkeit. Das ATX-Netzteil dient als Stromversorgung für alle Komponenten außer dem Kontrollboard. Dieses wird durch die Standby-Stromquelle des Netzteils betrieben. Wird der Taster an der Front des Gehäuses betätigt, schaltet der Atmega das ATX-Netzteil ein( o. aus). Das ATX-Netzteil versorgt GLCD, Tastertur, Motor, ... mit Spannung.
==Beschreibung==
 
<h3>Aufgaben</h3>
* GLCD ansteuern
* PS2 Tastertur
* Laser Sicherungsschalter
* H-Motor Ansteuerung (Frequency)
* V-Motor Ansteuerung (PWM)
* ATX Netzteil Steuerung
* Sekunden-Zeitgeber
* USART
 
* Spannungsmessung an Laserstromversorgung ?
 
<h3>Bauteile</h3>
<table border=1 size='100%' Width='90%'>
<tr><th>Art<th>Name<th>Anzahl<th>Kosten in €<th>Datenblatt</tr>
<tr><td>µC<td>[http://www.reichelt.de/?;ARTICLE=50556 ATMEGA 169-16 TQ]<td>1<td>4,20<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32898 SMD-0805 10,0K]<td>4<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32880 SMD-0805 330]<td>2<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32878 SMD-0805 220]<td>2<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32874 SMD-0805 100]<td>5<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32910 SMD-0805 100K]<td>2<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32862 SMD-0805 10,0]<td>2<td>0,103<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ARTICLE=32882 SMD-0805 470]<td>1<td>0,103<td></tr>
<tr><td>Diode<td>[http://www.reichelt.de/?;ARTICLE=1739 1N 4936]<td>1<td>0,04<td></tr>
 
<tr><td>Linearregler<td>[http://www.reichelt.de/?;ARTICLE=23504 µA 79L05]<td>1<td>0,15<td></tr>
 
<tr><td>Kondensator<td>[http://www.reichelt.de/?;ARTICLE=31879 X7R-G0805 100N]<td>20<td>0,05<td></tr>
 
<tr><td>Oszillator<td>[http://www.reichelt.de/?;ARTICLE=101059 XO32 14,74560]<td>1<td>1,30<td></tr>
<tr><td>FET<td>[http://www.reichelt.de/?;ARTICLE=41435 BSS 123 SMD]<td>5<td>0,08<td></tr>
<tr><td>FET<td>[http://www.reichelt.de/?;ARTICLE=6251 BUZ 11]<td>1<td>0,59<td></tr>
<tr><td>OpAmp<td>[http://de.farnell.com/stmicroelectronics/mc33078d/op-amp-dual-low-noise-smd/dp/1467658 MC33078D]<td>2<td>1,11<td></tr>
 
<tr><td>Trimmer<td>[http://de.farnell.com/bourns/3302x-3-103e/trimmer-10k-2mm/dp/1689837 TRIMMER, 10K, 2MM]<td>2<td>0,486<td></tr>
<tr><td>LED<td>[http://www.reichelt.de/?;ARTICLE=10228 LED 3MM RT]<td>2<td>0,06<td></tr>
<tr><td>LED<td>[http://www.reichelt.de/?;ARTICLE=60584 SFH 484]<td>2<td>0,37<td></tr>
<tr><td>Phototransistor<td>[http://www.reichelt.de/?;ARTICLE=60554 SFH 3100 F]<td>2<td>0,71<td></tr>
 
<tr><td>  ...<td><td><td><td></tr>
 
</table>
 
* <h2>Schaltplan</h2>
<gallery>
  Datei:Laserprojector_sch.png|laserproj Kontrollboard Schaltplan
  Datei:Laserprojector_brd.png|laserproj Kontrollboard Layout
  Datei:Laserproj_control_platA.jpg|laserproj Belichtete Platine ohne Bauteile
  Datei:Laserproj_control_platB.jpg|laserproj Belichtete Platine ohne Bauteile
 
</gallery>
[https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj/lasercontrol Dateien im trac]
<b>STATUS:</b><i>Neuentwurf angefertig, muss gebaut werden,nicht getestet!</</i>
<br>
 
<h1> Horizontaler Motor</h1>
<h3>Beschreibung</h3>
Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 400*7 = 2800 Ablenkungen pro Sekunde.<br>
Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 400*7 = 2800 Ablenkungen pro Sekunde.<br>
Liegt die Ablenkeinheit wie auf den Fotos (unten) ist Pin 1 der unterste und Pin 5 der oberste.<br>
Liegt die Ablenkeinheit wie auf den Fotos (unten) ist Pin 1 der unterste und Pin 5 der oberste.<br>


<h3>Stecker</h3>
==Stecker==
<table border=1 size='100%' Width='90%'>
<table border=1 size='100%' Width='90%'>
<tr><th width='20%'>Pin<th>Funktion</tr>
<tr><th width='20%'>Pin<th>Funktion</tr>
<tr><td>1<td>  +24V<br>
<tr><td>5<td>  +24V<br>
<tr><td>2<td>  GND<br>
<tr><td>4<td>  GND<br>
<tr><td>3<td>  Eingang: 5V TTL 0Khz = 0 U/s, 1 Khz = 400U/s (nichtlineare Kennkurve)<br>
<tr><td>3<td>  Eingang: 5V TTL 0Khz = 0 U/s, 1 Khz = 400U/s (nichtlineare Kennkurve)<br>
<tr><td>4<td>  Ausgang: 7*U/sek ??? sehr instabil, besser nicht nutzen!<br>
<tr><td>2<td>  Ausgang: 7*U/sek ??? sehr instabil, besser nicht nutzen!<br>
<tr><td>5<td>  ??
<tr><td>1<td>  ??
</table>
</table>


Zeile 171: Zeile 115:
<br>
<br>


<h1> Laserstromversorgung </h1>
= Laserstromversorgung =
<h3>Aufgaben</h3>
* Version 1 [[laserprojector/lasercurrentsource]]
Stromversorgung der Laserdiode, mit einstellbaren Offset.
* Version 2 [[laserprojector/lasercurrentsourcev2]]
<gallery>
 
  Datei:Lasersupply_sch.png|Schaltplan der Stromregulierungseinheit
= Bildverarbeitung =
  Datei:Lasersupply_brd1.png|Board der Stromregulierungseinheit
 
  Datei:Laserproj laserdriver bottom.jpg|Stromregulierungseinheit Unterseite
== Allgemein ==
  Datei:Laserproj laserdriver top.jpg|Stromregulierungseinheit Oberseite
 
</gallery>
=== Aufgaben ===
<h3>Bauteile</h3>
 
<table border=1 size='100%' Width='90%'>
* Messung der Zeitspanne zwischen 2 Sync-pulsen
<tr><th>Art<th>Name<th>Anzahl<th>Kosten in €<th>Datenblatt</tr>
* Mittelwert berechnung x,y mit der Real-Time-Clock
<tr><td>OpAmp<td>[http://de.farnell.com/national-semiconductor/lmh6703mf/op-verstaerker-1-2-ghz-disable/dp/1312605 LMH6703MF]<td>1<td>3,25<td></tr>
* Phasenschiebung p mit (p <= x), o mit (o <= y)
<tr><td>OpAmp<td>[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-26695-1-ND 296-26695-1-ND TL072D]<td>2<td>-<td></tr>
* Gammakorrektur g mit lookup-table
<tr><td>Transistor<td>[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=MMBT6428CT-ND MMBT6428CT-ND]<td>5<td>0.51<td></tr>
* PC-Kommunikation über UART0/USB
<tr><td>Resistor<td>[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=RW0S6BB1R00FETCT-ND RW0S6BB1R00FETCT-ND]<td>1<td>1.15<td></tr>
* Darstellung bei >500k MSps bei 150mA Amplitude
<tr><td>Resistor<td>[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=P24.0CCT-ND P24.0CCT-ND]<td>2<td>0.07<td></tr>
* CTC für Synchronmotor
<tr><td>DAC 30ns<td>[http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DAC908E-ND DAC908E-ND]<td>1<td>7.98<td></tr>
<tr><td>Resistor<td>[http://www.reichelt.de/?;ACTION=3;LA=5000;GROUP=B133;GROUPID=3104;ARTICLE=12848 MPR 2,00K]<td>1<td>0.19<td></tr>
</table>
*8x 100n R0805
*1x ZDiode 5.1V
*1x ZDiode 12.1V
*1x Diode 1N4004
*1x Diode 1N5400
*3x 470µ Elko
*3x BSS123
*3x 470Ohm M0805
*4x 1k M0805
*1x 2 Ohm
*1x Poti
*5x LED
*1x 79L05
*pinheader
*10mF Elko Low ESR 16 V
*...


<h3>Beschreibung</h3>
== Gammakorrektur ==
Diese Schaltung kann den Strom durch die Laserdiode bis zu einigen Mhz regulieren. <br>
Wird noch per Software berechnet. Da der STM32F4 in Hardware floats berechnen kann, wird auf eine Lookuptable verzichtet. Die nächste Version des [[laserprojector/lasercurrentsourcev2]] wird Hardware-Gammakorrektur unterstützen.
Die maximale Schaltfrequenz wird begrenzt durch Art des verwendeten Transistors. <br>
<b>fs = ft / h</b> mit fs: Schaltfrequenz, ft: transition frequency, h: Verstärkung<br>
Die Verstärkung beträgt etwa h = 10.<br>
Je breiter der PN übergang im Transistor, desto höhere Kollektorströme lassen sich schalten, jedoch sinkt die transition frequency dadurch ab. Es muss ein Mittel gefunden werden.<br>
8 bit 5V/3.3V paralleler Bus + clock Leitung. Einstellbar sind Offset und Maximalstrom.
Auflösung: 8 bit
Schwingkreis zur Laserausrichtung, Gesamt-optische-leistung muss kleiner 0,005 W sein.


<b>STATUS:</b><i> Entwurf angefertigt, nicht getestet !</i>
== LPC2103 ==
<br>


<h1> Bildverarbeitung </h1>
===Aufgaben===
<h3>Aufgaben</h3>
* Messung der Zeitspanne zwischen 2 Sync-pulsen -> Timer0 / 1
* Messung der Zeitspanne zwischen 2 Sync-pulsen -> Timer0 / 1
* Mittelwert berechnung x,y mit der Real-Time-Clock
* Mittelwert berechnung x,y mit der Real-Time-Clock
* Phasenschiebung p mit (p <= x), o mit (o <= y)
* Phasenschiebung p mit (p <= x), o mit (o <= y)
* Gammakorrektur g mit floats.....
* Gammakorrektur g mit lookup-table
* PC-Kommunikation über UART0
* PC-Kommunikation über UART0/USB
* µC Kommunikation über UART1
* Darstellung bei >500k MSps bei 150mA Amplitude
bei 10Mpixel<br>
* Soft-CTC für Synchronmotor
* Programm im SRAM -> 0-Wait Instructions
* 72 Mhz Core Clock


<h3>Bauteile</h3>
===Bauteile===
Experimentierboard MP2103:
Experimentierboard MP2103:
[http://www.mikrocontroller.net/articles/MP2103-Stick:_Ein_Mini-Mikrocontroller-Board_mit_USB_und_bis_zu_4MB_Datenspeicher MP2103-Stick]<br>
[http://www.mikrocontroller.net/articles/MP2103-Stick:_Ein_Mini-Mikrocontroller-Board_mit_USB_und_bis_zu_4MB_Datenspeicher MP2103-Stick]<br>
Zeile 239: Zeile 157:
Das MP2103 Board kann einfach mit dem Programm [http://www.flashmagictool.com/ Flash Magic (Windows/Linux mit WINE)] oder [http://sourceforge.net/projects/lpc21isp/ lpc21isp (Linux)] programmiert werden. Um den Source-code zu kompilieren braucht man [http://www.mcu-raisonance.com/mcu_downloads.html Ride7 mit Compiler von Raisonance.com für Windows], [http://embdev.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X ARM Gcc toolchain für Linux]. <br>
Das MP2103 Board kann einfach mit dem Programm [http://www.flashmagictool.com/ Flash Magic (Windows/Linux mit WINE)] oder [http://sourceforge.net/projects/lpc21isp/ lpc21isp (Linux)] programmiert werden. Um den Source-code zu kompilieren braucht man [http://www.mcu-raisonance.com/mcu_downloads.html Ride7 mit Compiler von Raisonance.com für Windows], [http://embdev.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X ARM Gcc toolchain für Linux]. <br>
Den Quelltext gibts hier: [https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj/laservideo/ARM7 source-code]
Den Quelltext gibts hier: [https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj/laservideo/ARM7 source-code]
<h3>Gammakorrektion</h3>
<b>nächstes mal in Hardware...</b><br>
uint8_t gamma_ar052={ 0,  2,  3,  4,  4,  5,  6,  6,  7,  8,
9, 10, 11, 12, 13, 15, 16, 17, 19, 20,
22, 24, 26, 28, 30, 32, 34, 37, 39, 42,
45, 48, 51, 54, 57, 61, 65, 68, 72, 77,
81, 86, 91, 96,101,107,112,118,125,131,
138,145,152,160,168,176,185,194,203,213,
223,234,244,256};
<br>
<br>
uint8_t gamma_ar075={ 0, 1, 2,  2,  2,  2,  3,  3,  3,  4
Die Software ist noch experimentell, theoretisch sind Auflösungen bis 128x32 Pixel möglich, begrenzt durch den SRAM und die Geschwindigkeit des LP2103.
      4,  5,  5,  6,  6,  7,  8,  8,  9, 10
      11, 12, 13, 14, 15, 17, 18, 20, 21, 23
      25, 27, 29, 31, 34, 36, 39, 42, 45, 49
      53, 57, 61, 65, 70, 75, 81, 87, 93,100
    107,114,123,131,140,150,161,172,183,196
    209,224,239,255};
<br>
<br>
  <b>STATUS:</b><i>lpc2103@72Mhz, nicht getestet</i>
Die Soft-CTC Methode liefert (fehlerhafterweise) eine variable Frequenz, die gegen die Anzeigeroutine arbeitet. Der Motor regelt sich einiger Zeit auf eine konstante Drehzahl.
 
== STM32F405 ==
<h3>Aufgaben</h3>
* Messung der Zeitspanne zwischen 2 Sync-pulsen ->
* Mittelwert berechnung x,y mit der Real-Time-Clock
* Phasenschiebung p mit (p <= x), o mit (o <= y)
* Gammakorrektur g mit lookup-table
* PC-Kommunikation über USB
* Darstellung bei >500k MSps bei 150mA Amplitude
* Hardware CTC für Synchronmotor
* DMA Transactions
* 168 Mhz Core Clock
 
  <b>STATUS:</b><i>lpc2103@72Mhz, läuft</i><b>/</b><i>STM32F405 experimentell</i>
 
<br>
<br>
<h1> Laserdiode </h1>
<h1> Laserdiode </h1>
[[Datei:ALI-Laserwarn445nm1000mw small.jpg]]
[[Datei:ALI-Laserwarn445nm1000mw small.jpg]]
Zeile 282: Zeile 201:
Anschlusskabel an meiner Diode: SCHWARZ +<br>
Anschlusskabel an meiner Diode: SCHWARZ +<br>
<br>
<br>
'''Bauteillieferanten'''
* http://www.dealextreme.com/p/200mw-532nm-green-laser-module-3v-11-9mm-26891
* http://www.dealextreme.com/p/100mw-red-laser-module-5v-input-10008
* http://www.dealextreme.com/p/genuine-new-wish-5v-red-stage-laser-module-100mw-10095
* http://hightechdealz.com/product_info.php?cPath=21&products_id=39
* http://www.insaneware.de/epages/61714203.sf/de_DE/?ObjectPath=/Shops/61714203/Categories/Laser/Laserdioden
<h1> Optik </h1>
<h1> Optik </h1>
<h3>Beschreibung</h3>
<h3>Beschreibung</h3>
TODO:
4x RC-CAR KUGELLAGER 4X10X3
Gleichstrommotor MABUCHI RS-360SH
Dieser Teil beschreib die optischen Aspekte.<br>
Dieser Teil beschreib die optischen Aspekte.<br>
Die gesamte Hardware und Optik wird auf die Grundplatte montiert. Diese besteht aus Plexiglas und wurde von http://www.formulor.de hergestellt. Die einzelnen Bauteile lassen sich zusammenstecken.<br>
Die gesamte Hardware und Optik wird auf die Grundplatte montiert. Diese besteht aus Plexiglas und wurde von http://www.formulor.de hergestellt. Die einzelnen Bauteile lassen sich zusammenstecken.<br>
Zeile 294: Zeile 224:
<br>
<br>
<h2>Vertikaler Spiegel</h2>
<h2>Vertikaler Spiegel</h2>
[http://www.lighting24.de/Spiegelwalze-fuer-TB-5::52631.html gibts hier zu kaufen]
[http://www.lighting24.de/Spiegelwalze-fuer-TB-5::52631.html gibts hier zu kaufen]<br>
<br>
<b>Maße:</b><br>
Anzahl der Spiegel am V-Motor:<br>
Länge: 82mm<br>
16<br>
Radius-Außen: 80mm<br>
Radius-Innen: 58mm<br>
Spiegelfacetten:18,5 (eine halbe....)<br>
<br>
<br>
<b>Sehr schlechte Verarbeitung, keine Oberflächenspiegel !</b><br>
Laufabstand H-Spiegel zu V-Spiegel:<br>
Laufabstand H-Spiegel zu V-Spiegel:<br>
ca. 5 cm<br>
ca. 5 cm<br>
Zeile 304: Zeile 237:
Breite des Spiegels am V-Spiegelrad:<br>
Breite des Spiegels am V-Spiegelrad:<br>
ca. 3,63 cm<br>
ca. 3,63 cm<br>
<gallery>
  Datei:Laserproj_spiegelwalzeB.jpg|Spiegelwalze TB-5 für Disco-Lichtshow Effektmaschine</b>
  Datei:Laserproj_spiegelwalzeA.jpg|Spiegelwalze TB-5 für Disco-Lichtshow Effektmaschine</b>
</gallery>
<br>
<br>
<h2>Horizontaler Spiegel</h2>
<h2>Horizontaler Spiegel</h2>
Zeile 311: Zeile 248:
   Datei:Laserproj_spiegelrad_a.jpg|Spiegelrad Kupfer, hochglanzpoliert, Spezialanfertigung der <b>AnKoSy GmbH</b>
   Datei:Laserproj_spiegelrad_a.jpg|Spiegelrad Kupfer, hochglanzpoliert, Spezialanfertigung der <b>AnKoSy GmbH</b>
   Datei:Laserproj_spiegelrad_b.jpg|Spiegelrad Kupfer, hochglanzpoliert, Spezialanfertigung der <b>AnKoSy GmbH</b>
   Datei:Laserproj_spiegelrad_b.jpg|Spiegelrad Kupfer, hochglanzpoliert, Spezialanfertigung der <b>AnKoSy GmbH</b>
  Datei:Hmotor spiegelrad kupfer.jpg|Spiegelrad Kupfer, hochglanzpoliert, Spezialanfertigung der <b>AnKoSy GmbH</b>
</gallery>
</gallery>


Zeile 317: Zeile 255:


  <b>STATUS:</b><i>neue Version, nicht getestet!</i>
  <b>STATUS:</b><i>neue Version, nicht getestet!</i>
 
<h2>Plexiglas Platine</h2>
<h1> TODO </h1>
bei formulor.de bestellt:
* Redoing the whole concept
<gallery>
* Design SMD boards
Datei:P2 laserproj.ai.gz|gzip autodesk illustrator
* Buy new motors, mirrors, laser,...
Datei:Laserproj_assembled1.jpg|Zusammenbau des Laserprojectors
Datei:Laserproj case parts.jpg|Teilelieferung von Formulor
</gallery>


<h1>Kosten</h1>
<h1>Kosten</h1>
Bauteile Kontroller: 30€+ -<br>
Bauteile Kontroller: 30€ + 15€<br>
Bauteile Stromversorgung: 15€<br>
Bauteile Stromversorgung: 15€<br>
Laser: 100€<br>
Laser: 100€<br>
Spiegel: 100€+ -<br>
Spiegel: 100€ + 13€<br>
Motoren: -<br>
Motoren: 10€ (aus alten Laserdruckern)<br>
Gehäuse: -<br>
Gehäuse: 40€<br>
  <b>Status:</b> <i>TODO</i>
  <b>Status:</b> <i>TODO</i>
<h1> Links </h1>
<h1> Links </h1>
 
*[http://www.projektoren-datenbank.com/laser.htm Laser Projektoren]
[http://www.projektoren-datenbank.com/laser.htm Laser Projektoren]
*[http://www.spaceflakes.de/index.php?index=691 Laser-Projektor selbstgebaut]
 
*[http://elm-chan.org/works/vlp/report_e.html http://elm-chan.org/works/vlp/report_e.html]
[http://www.spaceflakes.de/index.php?index=691 Laser-Projektor selbstgebaut]
*[http://www.electronics-lab.com/blog/wp-content/uploads/2007/11/proj5.png Horizontal Laser Deflector]
 
*[http://www.circuitlake.com/avr-laser-projector.html AVR Laser Projector ]
[http://elm-chan.org/works/vlp/report_e.html http://elm-chan.org/works/vlp/report_e.html]
*[http://www.embedds.com/avr-laser-projector/ AVR laser projector]
 
*[http://www.flickr.com/photos/kap4001/3093974218/ the laserbeamer]
[http://www.electronics-lab.com/blog/wp-content/uploads/2007/11/proj5.png Horizontal Laser Deflector]
*[http://heim.ifi.uio.no/haakoh/avr/ Laser video projector]
 
*[http://www.luberth.com/help/Mechanically_scanned_laser_display_microchip_pic/Mechanically_scanned_laser_display_microchip_pic.htm Mechanically scanned laser display]
[http://www.circuitlake.com/avr-laser-projector.html AVR Laser Projector ]
*[http://www.microsyl.com/index.php/2010/03/30/rgb-laser-projector/ RGB Laser Projector]
 
*[http://www.osdever.net/FreeVGA/home.htm VGA Signal, Timings, Accessing VGA-graphiccard registers]
[http://www.embedds.com/avr-laser-projector/ AVR laser projector]
*[http://boomerssupply.net/shopexd.asp?id=364 boomerssupply.net first surface mirror shop]
 
*[http://www.scientificsonline.com/first-surface-flat-mirror-10031.html?&cm_mmc=Mercent-_-Google-_-NULL-_-3052324&mr:trackingCode=A56E1735-DB81-DE11-8C0A-000423C27502&mr:referralID=NA www.scientificsonline.com first surface mirror shop]
[http://www.flickr.com/photos/kap4001/3093974218/ the laserbeamer]
*[http://shop.optik-mechanik.de/ http://shop.optik-mechanik.de/]
 
*[http://laser-tv.ideenbuero-dittrich.de/ LaserTV]
[http://heim.ifi.uio.no/haakoh/avr/ Laser video projector]
'''FPGA'''
 
*[http://www.lothar-miller.de/s9y/categories/48-Code-Schnipsel VHDL Code Beispiele]
[http://www.luberth.com/help/Mechanically_scanned_laser_display_microchip_pic/Mechanically_scanned_laser_display_microchip_pic.htm Mechanically scanned laser display]
*[http://www.asic-world.com/examples/vhdl/ram_dp_ar_aw.html VHDL Code Beispiele]
 
[http://www.microsyl.com/index.php/2010/03/30/rgb-laser-projector/ RGB Laser Projector]
 
[http://www.osdever.net/FreeVGA/home.htm VGA Signal, Timings, Accessing VGA-graphiccard registers]

Aktuelle Version vom 8. April 2017, 00:21 Uhr

         
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.3
Platform  lpc2103 / STM32F405
Download  https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserproj



english version (outdated)


Achtung[Bearbeiten | Quelltext bearbeiten]




Projekt liegt auf EIS[Bearbeiten | Quelltext bearbeiten]





Danksagungen[Bearbeiten | Quelltext bearbeiten]

Vielen Dank an folgenden Personen

Besonderen Dank an das Labor eV für die Bereitstellung der Räume und des Werkzeuges.

DIY Laser Projector[Bearbeiten | Quelltext bearbeiten]

Idee : Einen Projector (neuDeutsch: Beamer) welcher das Bild ähnlich einer braunschen Röhre zeilenweise abfährt und dabei den Lichtstrahl so moduliert, das ein Bild ensteht.



Übersicht[Bearbeiten | Quelltext bearbeiten]

Momentan möglich mit lpc2103

  • Auflösung:128x32
  • Refreshrate:30Hz
  • Farben:1
  • Farbtiefe: 64 (6-bit)
  • Interfaces: RS232
  • Ablenkung:2x Spiegelräder, Asyncronmotor + Gleichstrommotor


Momentan möglich mit STM32F4

  • Auflösung:256x128
  • Refreshrate:30Hz
  • Farben:3
  • Farbtiefe: 256 ^ 3 (8-bit)
  • Interfaces: USB
  • Ablenkung:2x Spiegelräder, Asyncronmotor + Gleichstrommotor


Konzept[Bearbeiten | Quelltext bearbeiten]

Ein Mikrocontroller steuert den horizontal angebrachten schnellen Motor und einen vertikal angebrachten, sich langsam drehenden Motor, Keyboard, GLCD, Power-Supply.
An den Motoren sind Spiegelräder befestigt. Der Laserstrahl trifft auf den ersten Spiegel und wird von dort zur zweiten reflektiert. Der erste sorgt für die horizontale Ablenkung, der zweite für die vertikale. Durch digitale Ansteuerung des Lasers kann ein Bild projektiert werden.


Controller IC muss mit H-Motor und V-Motor syncronisieren

Übersicht[Bearbeiten | Quelltext bearbeiten]

Syncsensor/Lichtschranke[Bearbeiten | Quelltext bearbeiten]

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Ein 5mW roter Laserpointer leuchtet dauerhaft auf den rotierenden Spiegel gerichtet. Sobald der reflektierte Lichtstrahl auf die Phototransistoren fällt, wird ein Interrupt am Mikrocontroller ausgelöst.
Generell ist es auch möglich eine IR-LED zu verwenden, diese haben aber einen sehr großen Abstrahlwinkel und eine geringe Leuchtdichte. Dadurch sind diese nur für sehr niederfrequente Anwendungen geeigenet.

Bilder[Bearbeiten | Quelltext bearbeiten]

Schaltplan[Bearbeiten | Quelltext bearbeiten]

Schaltplan & EAGLE layout im SVN: light barrier

STATUS: getestet


Horizontaler Motor[Bearbeiten | Quelltext bearbeiten]

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Aus einem Drucker der Marke "Epson" 24000 U/min mit 7 Seitenflächen. 400*7 = 2800 Ablenkungen pro Sekunde.
Liegt die Ablenkeinheit wie auf den Fotos (unten) ist Pin 1 der unterste und Pin 5 der oberste.

Stecker[Bearbeiten | Quelltext bearbeiten]

PinFunktion
5 +24V
4 GND
3 Eingang: 5V TTL 0Khz = 0 U/s, 1 Khz = 400U/s (nichtlineare Kennkurve)
2 Ausgang: 7*U/sek ??? sehr instabil, besser nicht nutzen!
1  ??


Laserstromversorgung[Bearbeiten | Quelltext bearbeiten]

Bildverarbeitung[Bearbeiten | Quelltext bearbeiten]

Allgemein[Bearbeiten | Quelltext bearbeiten]

Aufgaben[Bearbeiten | Quelltext bearbeiten]

  • Messung der Zeitspanne zwischen 2 Sync-pulsen
  • Mittelwert berechnung x,y mit der Real-Time-Clock
  • Phasenschiebung p mit (p <= x), o mit (o <= y)
  • Gammakorrektur g mit lookup-table
  • PC-Kommunikation über UART0/USB
  • Darstellung bei >500k MSps bei 150mA Amplitude
  • CTC für Synchronmotor

Gammakorrektur[Bearbeiten | Quelltext bearbeiten]

Wird noch per Software berechnet. Da der STM32F4 in Hardware floats berechnen kann, wird auf eine Lookuptable verzichtet. Die nächste Version des laserprojector/lasercurrentsourcev2 wird Hardware-Gammakorrektur unterstützen.

LPC2103[Bearbeiten | Quelltext bearbeiten]

Aufgaben[Bearbeiten | Quelltext bearbeiten]

  • Messung der Zeitspanne zwischen 2 Sync-pulsen -> Timer0 / 1
  • Mittelwert berechnung x,y mit der Real-Time-Clock
  • Phasenschiebung p mit (p <= x), o mit (o <= y)
  • Gammakorrektur g mit lookup-table
  • PC-Kommunikation über UART0/USB
  • Darstellung bei >500k MSps bei 150mA Amplitude
  • Soft-CTC für Synchronmotor
  • Programm im SRAM -> 0-Wait Instructions
  • 72 Mhz Core Clock

Bauteile[Bearbeiten | Quelltext bearbeiten]

Experimentierboard MP2103: MP2103-Stick
lpc210x Datasheet
NXP LPC2103

Software

Das MP2103 Board kann einfach mit dem Programm Flash Magic (Windows/Linux mit WINE) oder lpc21isp (Linux) programmiert werden. Um den Source-code zu kompilieren braucht man Ride7 mit Compiler von Raisonance.com für Windows, ARM Gcc toolchain für Linux.
Den Quelltext gibts hier: source-code
Die Software ist noch experimentell, theoretisch sind Auflösungen bis 128x32 Pixel möglich, begrenzt durch den SRAM und die Geschwindigkeit des LP2103.
Die Soft-CTC Methode liefert (fehlerhafterweise) eine variable Frequenz, die gegen die Anzeigeroutine arbeitet. Der Motor regelt sich einiger Zeit auf eine konstante Drehzahl.

STM32F405[Bearbeiten | Quelltext bearbeiten]

Aufgaben

  • Messung der Zeitspanne zwischen 2 Sync-pulsen ->
  • Mittelwert berechnung x,y mit der Real-Time-Clock
  • Phasenschiebung p mit (p <= x), o mit (o <= y)
  • Gammakorrektur g mit lookup-table
  • PC-Kommunikation über USB
  • Darstellung bei >500k MSps bei 150mA Amplitude
  • Hardware CTC für Synchronmotor
  • DMA Transactions
  • 168 Mhz Core Clock
STATUS:lpc2103@72Mhz, läuft/STM32F405 experimentell


Laserdiode

Datei:ALI-Laserwarn445nm1000mw small.jpg

Beschreibung

WARNUNG !
Dies ist ein Klasse 4 Laser ! Er verbrennt innerhalb von Sekunden Papier,Holz,Fleisch,... selbst in einigen Metern Entfernung !
Schutzbrille tragen
Nicht in den Strahl blicken !
Ich projektiere auf eine große Fläche > 1 qm, 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 !
Laserschutzbestimmungen einhalten !

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

Pinbelegung der Laserdiode

Die Laserdiode sollte immer kurzgeschlossen sein, wenn diese nicht benutzt wird, um ESA entgegen zu wirken. Ich habe einen 1 MegaOhm Widerstand direkt zwischen Anode und Kathode der Diode gelötet, dies sollte evt. auftretende Spannungen langsam reduzieren.

Anschlusskabel an meiner Diode: ROT -
Anschlusskabel an meiner Diode: SCHWARZ +

Bauteillieferanten

Optik

Beschreibung

TODO:

4x RC-CAR KUGELLAGER 4X10X3
Gleichstrommotor MABUCHI RS-360SH

Dieser Teil beschreib die optischen Aspekte.
Die gesamte Hardware und Optik wird auf die Grundplatte montiert. Diese besteht aus Plexiglas und wurde von http://www.formulor.de hergestellt. Die einzelnen Bauteile lassen sich zusammenstecken.
Auf dem H-Motor ist ein sich drehendes 16-Eck. Demnach sind 360° : 16 = 22,5°, von denen sich etwa 20° nutzen lassen.

Strahlbreite in Laufabstand vom H-Motor (Achse + SpiegelradRadius)
Abstand a
Breite b
b(a) := tan(20°) * a * 2 = a * 0,73

Vertikaler Spiegel

gibts hier zu kaufen
Maße:
Länge: 82mm
Radius-Außen: 80mm
Radius-Innen: 58mm
Spiegelfacetten:18,5 (eine halbe....)

Sehr schlechte Verarbeitung, keine Oberflächenspiegel !
Laufabstand H-Spiegel zu V-Spiegel:
ca. 5 cm

Breite des Spiegels am V-Spiegelrad:
ca. 3,63 cm


Horizontaler Spiegel

Kupferspiegelrad 400*16 = 6400 Ablenkungen pro Sekunde.
Achse des Motors ist zu kurz, nächstemal flacher, aus Aluminium und Speichen verwenden !

Durchmesser Loch 12mm Höhe Speichen 2mm

STATUS:neue Version, nicht getestet!

Plexiglas Platine

bei formulor.de bestellt:

Kosten

Bauteile Kontroller: 30€ + 15€
Bauteile Stromversorgung: 15€
Laser: 100€
Spiegel: 100€ + 13€
Motoren: 10€ (aus alten Laserdruckern)
Gehäuse: 40€

Status: TODO

Links

FPGA