设计与开发

单片机图片显示 单片机实例分享,3D旋转显示装置

小编 2024-10-06 设计与开发 23 0

单片机实例分享,3D旋转显示装置

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

显示原理

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

图26.1 显示原理

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

图26.2 显示效果

图26.3 3D房屋的分解图

装置组成

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

图26.4 整体结构

图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。

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

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

图26.8 无线电源供给板

图26.9 供电线圈

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

表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。

表26.3 显示板元件清单

表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);//延时

}

}

图26.11 焊接示意图

图26.12 控制板原理图

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

4. 电机

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

图26.14 两种电机的外形

5. 底座盒

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

图26.15 底座盒内部

程序部分

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

图26.16 显示程序流程

图26.17 PCtoLCD2002的设置界面

安装调试

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

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

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

需要改进的地方

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

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

图26.18 旋转显示效果图

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

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

后记

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

图26.19 调平衡

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

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

单片机驱动点阵屏,显示动画图片字幕#电子爱好者

单片机驱动全彩点阵屏。

显示动画、显示图片,还可以显示中文汉字。这是一块户外的广告屏,一块单元板,也是一块点阵屏。这里做了一块控制板,现在可以成功的点亮屏幕。它可以显示动画,也可以显示图片、相册,还可以显示中文汉字,而且是滚动的,也可以显示数字、英文都可以。

这个板子控制起来也是非常简单的,一块控制板,一个数据线,后面接上电源就可以控制了。只需要下载程序就可以显示所需的一些内容和效果。测试下来还是不错的。

相关问答

单片机 数码管几种 显示 方式如何实现?

单片机连接数码管,可以用单片机的I/O口直连,也可以通过其他驱动芯片连接。I/O直连的方式,连线简单,编程也简单,但是会占用大量的I/O口资源,故很少这...单片...

单片机 中,如何将数据 显示 到液晶屏上,最好有程序范本~?

char变量转换为三个数后查表,如constunsignedcharnumasc[10]=;然后用显示字符函数显示在屏上。char变量转换为三个数后查表,如constunsignedcha...

单片机 如何让液晶 显示 实时数据?

要让单片机控制液晶显示实时数据,需要以下步骤:1.选择合适的液晶屏幕和控制器,根据其接口类型(如SPI、I2C、并口等)连接到单片机上。2.编写单片机程序,...

单片机 动态 显示 的程序?

P0=smgduan[i];delay(100);这两句是显示字母的语句,把它们加入对应的case语句里,就可以指定哪一段数码管显示啥字母,比如:case(2):LSA=0;LSB=1;LSC.....

在mc s51系列 单片机 应用系统中led数码管 显示 电路通常有什么 显示 方式?

在51系列单片机的应用系统中,LED数码管通常采用共阳扫描显示方式,选择单片机的一个8位IO口,作为数码管的段驱动,也就是a、b……dp段驱动,每段都需串联限流电...

51 单片机 sr041602液晶屏 显示 原理?

51单片机是一种广泛应用于嵌入式系统的微控制器,SR041602是一种常见的液晶屏模块。液晶屏的显示原理是利用液晶分子的电光特性来实现显示。液晶分子具有两种稳...

用STC 单片机 12864液晶屏只有背光亮字不 显示 原因有哪些?

[回答]深圳市川航电子告诉您:深圳市川航电子的12864液晶屏,店家发了说明书和程序,我收到用STC单片机一直显示不了,就只有背光亮,最好找店家处理解决了,现...

单片机 用oled和lcd 显示 有什么不同-ZOL问答

OLED多为彩屏,是点阵结构,适于显示图形,其用法和TFT彩屏类似但OLED屏一般尺寸较小,大尺寸较贵,OLED屏无背光,靠像素点的LED自发光,功耗比较低lcd分单色屏和彩...

51 单片机 display函数可以 显示 什么?

具体要看函数里面咋写的,你这只有一个函数名也没法分析,根据经验的话,应该是液晶显示、数码管显示这类东西的显示函数。具体要看函数里面咋写的,你这只有一个...

单片机 怎么用led灯 显示 电机运动状态?

仿照看门狗的处理方法,零点几秒,能够喂狗一次,这就说明单片机在正常工作。喂狗的操作,如果没有出来,就说明单片机没有正常工作。那么,喂狗同时,令LED...仿...

猜你喜欢