制作DIY文字激光投影仪

让我们找出如何用在家中可以找到的电子设备制造足够简单的激光投影仪。



引言


有两种使用激光创建图像的方法-矢量扫描和光栅扫描。

在矢量扫描期间,激光沿着图像的轮廓移动,仅在从一个轮廓移动到下一个轮廓时关闭。 这意味着激光在大多数时候都处于开启状态,从而产生了相当明亮的图像。

该方法最常用于大型工业激光投影仪中,但它需要使用相当复杂的机电设备-检流计-快速移动激光。 价格从每双80美元起,在家中制作( 虽然可能 )是非常不切实际的。

第二种方法是光栅扫描 。 在那里,激光束左右移动,逐行绘制图像。 那是旧的CRT电视和显示器中使用的方法。

由于垂直和水平移动都是重复进行的,因此与矢量扫描相比,它需要简单得多的机械设置。 而且,由于图像被分为单独的元素,因此编程起来要容易得多。

光栅扫描的主要缺点是光束会越过图像的每个元素,甚至不需要照亮的元素,也会使图像整体变暗。 但是,由于简单,这就是我为激光投影仪选择的方法。

要沿一条线(水平)移动激光束,有一种非常方便的技术:使用以恒定速度旋转的反射镜。 由于旋转是连续的,因此可以相当快地移动光束。 但是将光束移动到另一条线更加困难。

最简单的选择是使用指向旋转镜的多个激光。 不利的一面是,显示的行数将由所使用的激光数量决定,这会使设置更加复杂,此外,您还需要一个很高的反射镜。 但是也有好处-整个系统中唯一移动的部分是镜子(不会破碎的东西),并且使用多个激光可以使图像更明亮。 是以此方式构建的投影仪的示例

在Internet上经常发现的另一种扫描方法是,使用旋转的镜鼓将垂直和水平扫描结合在一起,在其中将单独的“小平面”放置在与旋转轴成不同角度的位置。 该镜配置使激光在镜旋转时反射成不同的垂直角度,从而产生垂直扫描。

即使最终的投影仪本质上非常简单(您只需要激光器,带电动机的镜子和同步传感器),这种方法也有很大的缺点-在家中搭建多面镜子非常困难。 通常,“小面”的倾斜度应在施工期间进行完美调整,并且所需的精度水平非常高。

这是这种投影仪的一个例子。

为了使我自己更容易,我使用了另一种扫描方法-不断旋转的反射镜来形成水平扫描,而周期性地旋转反射镜来进行垂直扫描。

实现


水平扫描


在哪里可以找到快速旋转的镜子? 当然,在旧的激光打印机中! 激光打印机使用安装在无刷电机顶部的多角镜来扫描沿纸的激光束。 电机通常设置在控制它的PCB上。

我已经有一个旧打印机的镜像模块:



我找不到有关模块或其内部芯片的文档,因此要确定模块的引脚布局,我必须对其进行反向工程。 电源线很容易找到-它们连接到PCB上唯一的电解电容器。 但是,仅仅为引擎提供动力不足以使其旋转-您还需要提供时钟信号来设置转速。 该信号是20至500-1000 Hz频率的简单曲折。

为了找到正确的线路,我抓住了配置为100 Hz的脉冲发生器,并将其(通过电阻器)连接到激光模块端口的每条可用线路。 一旦将信号提供给正确的线路,发动机就会开始旋转。 对于我们的目的,Mirror旋转得非常快-稍后测量,它以超过250 RPS的速度旋转。 但不幸的是,发动机的旋转使其非常嘈杂。 对于我的实验来说,这不是问题,但当投影机完成工作后,肯定会引起注意。 也许可以通过使用更新的镜像模块或将模块放在盒子中来缓解这种情况。

雷射


在初步测试中,我使用了廉价激光笔中的激光。 应该对模块进行设置,使其具有多个自由度-以便将激光正确对准反射镜。



由于我们使用光栅扫描,因此激光会沿着图像的整个区域分布,这会使图像变得暗淡-仅在黑暗中可见。

因此,很久以后,在我成功绘制图像之后,我用功能更强大的模块替换了激光模块-DVD播放机的激光二极管。
警告:DVD激光非常危险,可能会使您致盲! 使用激光时,请始终使用防护眼镜!

激光和多角镜模块都放置在一块小木板的顶部。 在向电动机提供时钟信号并为激光器供电后,应将激光器对准光束使光束撞击反射镜的边缘。 结果,当镜子旋转时,您会得到一条较长的水平线。

同步光电传感器


为了使微控制器能够跟踪移动的激光束的位置,我们需要一个光电传感器。 但是,出于这个目的,我使用了一个光电二极管,该光电二极管被一块硬纸板阻塞,中间有一个小孔。 需要更精确地跟踪光束撞击光电二极管的时刻。

这是光电二极管的安装系统(不带纸板):



在正常操作期间,反射的激光束应首先撞击光电二极管,然后才撞击垂直扫描镜。

安装传感器后,我通过电阻器供电并用示波器观察信号进行了测试-其幅度足以将传感器直接连接至微控制器的GPIO输入。

垂直扫描


如前所述,我使用了周期性振荡镜来形成垂直扫描。 你怎么开车? 最简单的方法是使用电磁体。 有时人们只是将镜子安装在计算机扬声器的顶部,但这并不是特别理想的选择(结果不一致,难以校准)。

在我的构建中,我使用了DVD播放机的BLDC电机来控制垂直扫描镜。 由于投影仪是用于输出文本的,因此绘制的线条并不多,这意味着镜子只能稍微倾斜一点。

BLDC电机由三个线圈组成,它们共同构成一个定子。 如果其中一个线圈连接到一个带正电的电源上,而另外两个线圈交替连接到一个带负电的电源上,则发动机的转子会摆动。 最大角度扫描取决于电动机的配置,尤其是极数。 对于DVD马达,它不超过30度。 由于该电机功能强大且易于控制(只需两个键),因此该电机非常适合我们构建文本激光投影仪的目的。

这就是带有连接后视镜的电机的外观:



请注意,镜子的反射面应在正面,也就是说,它不会被玻璃遮挡。

总览


这就是投影机的组装方式:



投影模块关闭:



多面镜顺时针移动,因此激光束从左到右移动。

功能强大的DVD激光二极管已经安装(在准直仪内部)。 垂直扫描镜的安装方式应使投影图像指向上(在我的情况下,指向我房间的天花板)。

从图片中可以看到,激光器和投影仪的机械部件由安装在小型调试板(Blue Pill)上的STM32F103微控制器控制。 此板已安装到面包板中。

设备原理图:



如前所述,要控制多面镜电机,我们只需要一个信号-时钟信号(POLY_CLOCK),该信号是由工作在P​​WM模式下的STM32定时器之一产生的。 投影机工作时,其频率和占空比不变。 为电动机供电,我使用单独的12V电源。

用于控制垂直扫描镜的两个PWM信号由微控制器的另一个计时器生成。 这些信号通过控制DVD电机的ULN2003A芯片输入。 因此,通过为那个时期的PWM通道设置不同的占空比,我们可以更改电动机的转向角。

不幸的是,当前版本的投影机无法提供有关镜子位置的反馈。 这意味着微控制器可以驱动后视镜,但是它并不“知道”它的当前位置。 转子惯性和线圈电感会在改变旋转方向时产生一些延迟。

由于所有这些,有两个主要结果:

  • 线密度不是恒定的,因为无法控制反射镜的旋转速度。
  • 许多线路无法运行。 垂直扫描镜会周期性波动,因此某些线的输出可能会上下颠倒,而另一根线的输出会颠倒。 结果,由于我们无法跟踪位置,因此只能在电动机以特定方式旋转时显示线条。 由于仅显示一半的行,因此图像的亮度减半。

但是,由于缺乏反馈,因此该设备的制造相当容易。

形成图像的过程也非常简单:

  • 每当激光束击中光电二极管时,微控制器都会产生一个中断。 在此中断处,当前水平扫描速度由MCU计算。 此后,将重置特殊同步计时器。
  • 该同步计时器在水平扫描期间的特定时刻产生自己的中断。
  • 特别地,在同步之后的一些时间,需要形成激光控制信号。 我的设备使用DMA + SPI组合形成它。 本质上,这些模块在正确的时间(一次一位)在MOSI SPI输出上传输一行图像。
  • 图像输出结束后,应再次打开激光器,以便光电二极管再次接收其光束。

激光调制通过ULN2003A芯片的关键之一完成。 需要R3电阻来保护激光二极管免受过电流的影响。 它安装在激光电缆的末端,绝缘。 为了给激光器供电,我使用了舷外电源 。 控制激光电流消耗并确保其在特定激光二极管的可接受范围内非常重要。

图像示例(8行高):



文字有些不相称,因为投影机以一定角度指向墙壁。 当前,每个垂直扫描周期为32步长(1步意味着将多面镜旋转1个边)。

投影机可以显示14条不同的线条:此后的所有内容开始与其他线条混合,从而破坏图像。

开头的照片还使用8行字体,这使得即使显示两行文字也可以显示得很好。

代码中也支持字体11x7和6x4:



“运行文本”示例:


视频使图像在垂直方向闪烁,但在现实中不可见。

在GitHub上进行项目。

Source: https://habr.com/ru/post/zh-CN438618/


All Articles