单片机实例分享软件:单片机实例分享

从电影、电视到数码相机等都在发展应用3D技术。在看到此技术在各领域的应用后,我就想到用单片机来控制一个旋转装置,显示简单的3D图像。

单片机实例分享软件:单片机实例分享(1)

显示原理

3D图形就是在X、Y、Z三个坐标轴所确定的三维空间中将一个画面表现出来。一般情况下,我们用LED点阵模块来显示平面方向的二维文字和图形,只是缺少了Z轴。所以,在本制作中我采用旋转方式,利用人眼的视觉暂留产生Z轴,就能显示3D图形,显示原理见图26.1。

单片机实例分享软件:单片机实例分享(2)

图26.1 显示原理

LED显示平面构成了坐标系的X、Y轴,它绕旋转轴进行高速旋转,每秒转数应在20圈以上,相当于每秒20帧,这样才能保证人眼能看到连续的图形。每帧的3D图形在设定的起始位置开始显示第一幅画面,经过几毫秒(具体时间由电机转速而定)后,LED显示平面转过约3°,再显示第二幅画面,依此类推,直到把这一帧所有画面显示完为止,然后到第二圈开始显示下一帧3D图形,3D显示效果图见图26.2,分解图见图26.3。

单片机实例分享软件:单片机实例分享(3)

图26.2 显示效果

单片机实例分享软件:单片机实例分享(4)

图26.3 3D房屋的分解图

装置组成

整套电路主要由底座盒(内有电机、电源供给板、电机开关等)、电源接收板、左右显示板、控制板组成,整体结构见图26.4。由电源供给板产生的高频脉冲电流通过发送线圈,利用电磁感应传递到接收线圈,然后电源接收板进行整流、滤波,提供5V直流电压分两路供给2块显示板,再经2块显示板供给控制板。由于电机转动过程中转速不是很稳定,例如转速为1200r/min的电机,在旋转时转速大概会在1190~1210r/min之间变化,只是转动的速度很快,人的眼睛不会察觉到,但这种变化在高速显示图形时会产生不同步的现象。因此我又设计了2个光电对管用于2块显示板的位置检测,见图26.5,即电机每转半圈到达特定位置时才开始显示,在电源接收板上设计了用于位置定位的光电对管,检测到的信号也经2块显示板接入控制板上的单片机,单片机收到信号后立即将显示数据传递给2块显示板进行显示。采用2块显示板的目的有2个:一是这样的结构可以保持平衡,便于旋转的稳定性;二是每转动1圈显示2次图形,可以降低显示过程中的图形闪动。

单片机实例分享软件:单片机实例分享(5)

图26.4 整体结构

单片机实例分享软件:单片机实例分享(6)

图26.5 光电对管

硬件制作

1. 电源供给和接收板

因为显示部分是旋转的,所以如何给它供电是个问题。若采用电池供电方式的话,使用时间长了还得更换电池,并且会增加设备的重量,非常不合适。如果采用电刷供电的话,转动的时间就长了,会出现磨损的现象,并且增加了加工难度,最后我决定采用无线供电方式,电源供给电路和接收电路原理图见图26.6和图26.7,因为手头有现成的无刷电机驱动板,就顺手用其改装了。利用原先板子上的ATmega8单片机通过程序产生时序脉冲,驱动2对MOS管组成的H桥电路,进而将产生的高频电流供给无线发送线圈,产生高频磁场,图26.6所示的是改造后的原理图,实际电路板见图26.8。板子上原有3对MOS管,其中1对没有使用。由于电流较大,实际工作中MOS管会发热,最好加上散热片。当然,你也可以使用其他的电路,最好有无线电源模块。图26.6中所示的SX1是程序下载接口,SX2接DC12V,SX3接发送线圈;图26.7中所示的SX101-1、SX101-2接显示板。发送和接收线圈直径为60mm,发送线圈用Φ0.45mm的漆包线绕80匝,接收线圈用Φ0.31mm三线并绕120匝,2个线圈外形见图26.9。制作无线电源发送板与接收板的元件清单参见表26.1和表26.2。

单片机实例分享软件:单片机实例分享(7)

图26.6 无线电源供给板原理图

单片机实例分享软件:单片机实例分享(8)

图26.7 无线电源接收板原理图

单片机实例分享软件:单片机实例分享(9)

图26.8 无线电源供给板

单片机实例分享软件:单片机实例分享(10)

图26.9 供电线圈

单片机实例分享软件:单片机实例分享(11)

表26.1 无线电源发送板元件清单

单片机实例分享软件:单片机实例分享(12)

表26.2 无线电源接收板元件清单

2. 显示板

这是动态扫描电路,X轴(行扫描)显示用两个74HC595串联驱动,Y轴(列扫描)用两块74LS138输出驱动MOS管4953,见图26.10。特别注意的是,LED点阵没有加限流电阻,由于是动态扫描,在正常工作时每个LED只占整个扫描周期1/16的时间,所以LED模块不会被烧坏,但在程序调试的时候别让扫描停止了,否则的话会烧坏LED模块。其实,在实际调试的时候,应先调试无线供电部分。由于无线供电受到功率限制,峰值工作电压会降到3V左右,对LED模块影响不大,但是如果你用外接电源单独调试显示部分的话,就得注意了。焊接的时候注意上下两个IDC-10插座,位置要准确,最好用尺子定位焊。如果位置偏差过大,旋转起来平衡性就会变差。焊接示意图见图26.11,制作显示板所需的元件清单见表26.3。

单片机实例分享软件:单片机实例分享(13)

表26.3 显示板元件清单

单片机实例分享软件:单片机实例分享(14)

表26.4 控制板元件清单

3. 控制板

控制板部分的原理图见图26.12,其中SX1是程序下载接口,SX201-1、SX201-2是连接左、右显示板的。为了提高显示速度,晶体就选用16MHz的。有兴趣的读者可以将此电路板进行扩展,加上串行储存器、时钟电路或者温度传感器等,这些就任你自由发挥了。我的控制板已经加上了串行储存器、时钟电路的位置了,只是还没有使用。特别注意SX201-1、SX201-2两个IDC-10插座,应安装在焊接面,见图26.13,制作控制板所需的元件清单见表26.4。

程序框图

void main(viod)

{

init_devices( );//初始化端口

while(1)

{

FETS_OFF; //关闭所有MOS管

delay_nms(1);//延时

POS_A_ON; //A 开

NEG_C_ON; //B-开

delay_nms(1);//延时

FETS_OFF; //关闭所有MOS管

delay_nms(1); //延时

POS_C_ON //B 开

NEG_A_ON //A-开

delay_nms(1);//延时

}

}

单片机实例分享软件:单片机实例分享(15)

图26.11 焊接示意图

单片机实例分享软件:单片机实例分享(16)

图26.12 控制板原理图

单片机实例分享软件:单片机实例分享(17)

图26.13 SX201-1、SX201-2的安装方向

4. 电机

要旋转就得有电机,由于手头有废旧硬盘的主轴电机,因此,线路板排版的时候就根据它的尺寸设计的。直到调试的时候才发现硬盘电机的扭矩实在太小了,将电路架上去居然启动不起来,还好手头有从同事报废的打印机上拆下的直流电机,这才得以解决。两种电机的外形见图26.14。注意本装置的旋转方向是逆时针的,如果你的电机是正转的,就把电机的正、负电源颠倒一下;驱动硬盘电机的线路板经过改造就变成了电源供给板,用在无线供电上了。

单片机实例分享软件:单片机实例分享(18)

图26.14 两种电机的外形

5. 底座盒

我选择的是100mm×90mm×50mm的铝合金盒,内部装上电机、电源发送板,侧面装电机开关、电源插座,表面有电机主轴、发送线圈和定位铜片等,见图26.15。

单片机实例分享软件:单片机实例分享(19)

图26.15 底座盒内部

程序部分

程序可分为2部分:一个是无线电源供给程序,按照时序编写,主要程序见程序框图;第二个是3D显示程序,先编了个简单的,可以显示几个结构简单的图形。程序初始化后,检测光电对管测出的起始位置,然后逐帧显示每一屏图形,再返回到检测光电对管就行了,程序流程见图26.16。难一点的是图形点阵数据转换,我用的是PCtoLCD2002这个软件,设置界面见图26.17。绘图前脑海里一定要构造出一个虚拟的三维图形来,照着脑海里的图形去画,空间感不强的可能要费点劲儿。

单片机实例分享软件:单片机实例分享(20)

图26.16 显示程序流程

单片机实例分享软件:单片机实例分享(21)

图26.17 PCtoLCD2002的设置界面

安装调试

(1)焊完所有的线路板。

(2)先调通电源供给板、电源接收板,确认线路板无短路、断路,所有元件焊接正确。给无线电源供给板接上12V直流电源,连接下载线,设置熔丝位,下载烧入程序,断电后给供给板接上发送线圈,接收板接上接收线圈,两个线圈放置成同心状态,给供给板通电,测接收板稳压管两端电压应该为5.1V左右,否则电路出错,重新查找。

(3)将整套装置安装起来,注意定位铜片在光电对管之间应无碰撞。电机开关处于关闭状态,接通电源,控制板连接下载线,下载并烧入程序,然后去掉下载线,打开电机开关,效果就出来了。显示板转动时要注意安全,显示效果见图26.18。

需要改进的地方

(1)程序里应加上图形失真校正的算法,否则在实际观看中图形稍微有些变形。

(2)现在的电机是碳刷直流电机,运转了几天都很正常,但还是用无刷直流电机比较好,选功率大一点的,以保证能长时间稳定运转。

单片机实例分享软件:单片机实例分享(22)

图26.18 旋转显示效果图

(3)显示板上的LED模块焊接在元件面上,从焊接面的方向是看不见的,所以现在的观看视角范围也就是LED模块视角的120°。如果采用普通的LED用镂空的方式,即在线路板的每个LED的位置上钻孔,孔径略大于LED,LED垂直镶嵌在孔内,这样从焊接面的方向也能看得到。也可以在元件面和焊接面相同的位置同时焊贴片的LED,这样的话两个面都能看,就可以在接近360°的范围观看了,只是线路板排版的时候要复杂点。

(4)若平衡性不好,旋转起来后振动幅度就会较大(比手机振动模式要大得多),调平衡的时候费了些时间,主要是垂直度和高度的校准,用绘图的直角三角尺的直角部分一边贴着桌面,另一边靠近显示板的侧面,从正面和侧面两个方向进行垂直校准,调好后用热熔胶固定,见图26.19。

后记

3D旋转装置终于做完了,从一个想法到一个实际的装置,前后用了一个多月的时间,整体出来的效果还是挺满意的。这个装置用电机带动旋转,制作的时候应注意安全,小心手被划伤了,可以加个透明罩提高安全性。兴趣和爱好再加上灵感和知识,创作出自己设想的东西,与他人分享,让别人感受到你的快乐,这或许就是DIY的乐趣。

单片机实例分享软件:单片机实例分享(23)

图26.19 调平衡

■文章相关的源程序和电路图文件可以到qq群657864614进行下载。

■我的淘宝店铺:首页-数码达人小李-淘宝网,主打性价比,品质有保障,您的支持是我继续创作的动力。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页