仲恺农业工程学院
课程设计
赤道仪上的恒星自动跟踪装置
机械电子工程102班XXX学号:XXXXXXXXXXXX
指导老师XXX
完成时间:2013年6月6日
简介:在天文望远镜使用的过程中,由于地球的自转,恒星或者月球会在视野中缓慢地移动,如果长时
间不去转动极轴,所要观测的恒星将会在视野中消失。虽然可以从市面上买得到带自动追踪装置的赤道仪
产品,但是价格比较贵,而且几乎所有普通的赤道仪上即使没有装上自动跟踪装置,也还预留改装所需要
的孔和轴,本设计是对普通赤道仪进行改装,加上自制的自动跟踪装置。
赤道仪
用天文望远镜进行观测需要用到赤道仪的辅助,赤道仪的作用主要有两个,固定望远镜(一般用燕尾槽和
镜筒配合安装)以及调整望远镜的方向。赤道仪上的望远镜的位置及朝向主要受到极轴和赤纬轴的影响,
使用前调整地平轴,使极轴的仰角(本地的纬度)并且使极轴正对北极星,然后通过旋钮转动经纬轴和赤
纬轴,使观测对象位于视野正中,为了抵消地球的自转,观测者需要不时地转动赤经轴的旋钮。
赤道仪的结构(图片来自网络)赤道仪的摆放(图片来自网络)
一般的赤道仪跟踪装置均只利用恒星速来进行追踪;一些较高档的赤道仪会包括月球速、太阳速及
甚至帝王速来达更理想的追踪效果。恒星速:根据地球自转速度(每日1,436.5分钟)来追踪,是一般赤
道仪的标准追踪速度。月球速:根据月球的公转及地球自转、配合月球在天空上移动的速度作追踪。太阳
速:根据地球的公转及自转、配合太阳在天空上移动的速度作追踪。帝王速:根据一位叫King的天文学
家的发现,把地球大气所造成的视觉追踪误差引入的追踪速度,适合长时间追踪及拍摄深空天体。
本设计的自动跟踪装置设定了99种跟踪速度,并且用2位的数码管显示,目的是为了能在不同型号
的赤道仪上通用,因为不同赤道仪内部的涡轮蜗杆传动比不一,一一去测量和计算显得比较麻烦。跟踪装
置采用模数为1.00的直齿圆柱齿轮进行传动,原动机为28BYJ-48步进电机(四相八拍),用uln2003A的集
成进行驱动,用STC89C52进行控制,速度则用2为数码管显示,设置4个按键来控制速度。
机械传动:
采用三级减速的齿轮传动,其中第一级减速装置是封装在步进电机的内部的。虽然步进电机的速度可以无
限的慢,但是力矩有限,所以采用减速装置。
改装方案:测量原赤道仪上预留的两个定位轴的中心距C,以及两轴的直径D1和D2,在板材线切割出直
径是D1和D2的孔,中心距为C,然后再按照减速齿轮组的摆放方案再线切割出电机的定位孔2个以及中
间齿轮的轴的孔,直径是轴承的外径。由于齿轮需要的模数很小,市面上比较难找,所以齿轮是从淘宝上
面买,模数为1.00的齿轮若干种每种一个,到手后试摆一下选出大小比较合适的的一组。最后对齿轮的孔
及端面进行车削加工和铣削加工。为了将控制系统固定在赤道仪上,我设计一块铝板(质量小),把电机,
齿轮,轴承,电路和电池固定在赤道仪上。(左图:我的赤道仪,右图:铝板摆放)
设计制造尺寸和定位尺寸:首先用直尺和卡尺对定位孔的位置进行测量,零件图上分别是直径8.5mm
和17mm的孔,而直径30的孔则是为了避开赤道仪上原有零件而设置的,同时也能减轻重量。4个M3的
小孔是固定电路板的,电路板是一块洞洞板。4个M4的孔是固定步进电机,比电机上的定位孔直径小,
可以对电机位置进行微调。装配时,先把轴承敲入直径17mm的孔,然后通过2定位孔固定在赤道仪上,
然后固定电机,搭上齿轮接着固定电路板,连接电机与电路板,接上电源即可启动。
铝板零件图装配效果
控制系统:
电机驱动部分用uln2803A的集成,用2位共阳的数码管显示速度和模式,用4个按键来控制,4个按
键分别是:’’自动同步’’,’’手动操作’’,’’加速/快速正传’’和’’减速/快速反转’’。再通过74LS21的与门向外部
中断口发送中断请求。电源部分就用手机的移动电源供电,因为赤道仪在室外使用,电源肯定要能够移动
的,手机移动电源刚好5V电流够大,满足设计使用需要,而且不用做变压器,电路板的面积就会减少。
电机的运行有2种模式,自动同步和手动正反转:按下对应的按键即可转换模式。动模式下数码管显示转
速(1-99),按下’’加速’’转速加快,按下’’减速’’转速减慢。实现抵消地球自转。手动操作时,数码
管显示’’M’’(manual)字样,按下’’快速正传’’或‘’快速反转’’电机以比较快的转速转动,方便使用者
找到观测目标。
系统在手动和自粽跟踪两种模式之间切换,实现的代码如下:
START_UP:CLREA
MOVR_step,#04H
MOVSP,#30H
MOVR_mode,#C_mode_syn
MOVR_syn_speed,#50
LCALLBIN_2_DEN
SETBEX0
here:SETBEA
MOVR_INT0,#0FFH
CJNER_mode,#C_mode_syn,TO_mode_manual
LJMPmode_syn
LJMPhere
模式跳转
here的代码段是对模式寄存器R_mode进行判断然后跳转,here代码段是两种模式运行时返回的地方。
检测按键采用中断的形式而不是查询的形式,不但简化了代码,而且加快响应速度,符合人的操作习
惯。4个按键再分别与门电路74HC21(双四路与门)的四个输入端口相连,以及和P1端口P1.4,P1.5,P1.6,P1.7
相连,为什么选这四个呢?因为P1与外部中断靠的够近,接线的时候不用绕来绕去。中断方式是电平式
(低电平有效)。以下是真值表的一部分,之所以用到与门是因为中断是低电平触发的。
74HC21
‘’加速/正转‘’‘’手动切换‘’‘’自动跟踪‘’‘’减速/反转‘’
不按键
11111
按下‘’加速/正转‘’
‘’00111
按下‘’手动切换‘’
01011
按下‘’自动跟踪‘’
01101
74HC21真值表
显然,所用按键的另一端接的是地(低电平),74HC21的输出端接的是中断端口,为了实现不按键时出现
第一行所述的情况,在系统启动复位以及在响应完中断之后向按键端口P1.4,P1.5,P1.6,P1.7发送高电平。下
面是中断响应的程序段:当外部中断INT0有效时程序入栈后跳转至0003H。然后再跳转到键盘的查询代码
段。为了更加直观的表述控制系统,用CAD软件制作了中断服务响应的程序框图。
ORG0000H
LJMPSTART_UP
ORG0003H
CLREA
LJMPfun_keyboard
ORG00A0H
fun_keyboard:MOVR_INT0,#00H
JNBB_manual,mode_manual
JNBB_auto,mode_syn
MOVR_INT0,#0FFH
JNBB_increa,fun_increa
JNBB_decrea,fun_decrea
RETI
中断响应
加粗的两行语句是一个标记,标记了程序是以哪种原因跳转的,当R_INT0=#00H时,是因中断而跳转,当
R_INT0=#0FFH时,是非中断发生的跳转。与这个标记相呼应的是子程序的返回形式,究竟是用RETI返回
还是LJMP返回,这个由R_INT0的值决定。一下是mode_manual子程序的末尾返回部分。
CJNER_INT0,#00H,manual_return
MOVR_INT0,#0FFH
RETI
manual_return:LJMPhere
仿真分析:
在焊接原件之前先用proteus进行仿真,测试单片机系统的稳定性。在仿真过程中发现的问题主要是
1.按键的间隔比较长,在自动同步的模式下一直按和一下一下按速度调整的转速改变速度差不多,而且延
迟很大,不符合人因工程学。
2.仿真时数码管的接法和实际的接法不一样,所以仿真程序和实际使用的程序的数据段有所不同。
Proteus仿真原理图
3.仿真的元件库缺少4相8拍步进电机及的模型,所以用其他代替,驱动也免了。实际上电机转动时可能
会对电源电压的造成冲击,所以应该加入滤波的电容器,使单片机的供电正常。
4.课本上面对指令集中的RETI指令的解说不完整,现已知LCALL绝对不可以用RETI来返回,只能用RET。
中断以后一定要用RETI来返回,不能用RET。
最后调试:
1.对实物进行调试目的是确定源程序中的常数,使键盘的反应速度,最快的和最慢的脉冲频率满足使用要
求。确定有关数码管显示的数据段数据,因为焊接的时候是按照绕线最简单的原则进行布线的,和仿真的
布线肯定不一样,程序适应硬件总比硬件适应程序好。
2.发现自动追踪模式时电机发热过大,应该是脉冲停留时间太长,应该对程序做出修改。电源线的插座方
向应该顺时针旋转90度,否则电源线碰到齿轮。时间关系,课程设计先交了再说。
3.在完成的当天没有遇到晴天的夜晚,无法确定最后一个常数,使得转速是50的时候刚好是该赤道仪的地
球转速。以下是实物的照片。
本设计的特点是经济,比起买一套带追踪装置的赤道仪要便宜得多,以下是主要材料的清单:
材料型号价格
步进电机
28BYJ-486.00
单片机
STC89C52RC5.00
齿轮
1M20T3.60
齿轮
1M48T6.50
门电路
74HC211.50
电机驱动
Uln2803A1.00
轴承超轻系列D=15忘了
铝板
T8mm24.00
总结:本设计只是实现了自动追踪的功能,如果要进一步改装,使之成为能自动寻星的赤道仪,实用价
值将大大提高,为了达到自动寻星,需要在赤经轴上多加入一个电机的控制系统,和本设计的系统成为一
个整体,然后在控制系统的数据段中加入恒星的坐标数据库,STC89C52RC的2K存储器绝对够用,在代码
段中加入一个输入参数为{时间,当地经纬,目标恒星}的寻星函数,就能做到自动寻星。如果想要更加
精确和可靠,则应该引入GPS的模块和旋转角度传感器(编码器)。
这一款设计体现了机械电子工程专业的特色,虽然说不上创新,但是综合运用了机械原理,机械制造,电
子技术和微机原理的知识,做一个能抵上好几节实验课。
由于课程设计只有两周的时间,而且要独立完成,来不及优化设计,机械传动和控制部分的结合得不完美,
电路板其实可以用覆铜板代替,使得铝板的面积更小更加轻而且形状不局限于矩形,原件布置得更为合理。
另外,按键的面板应该是可以移动才合理,因为观测者需要一边看着目镜一边控制电机,但是时间仓促,
只预留了加装并联的键盘的插座。
最后,我保证此设计的全部内容为原创。
没有抄袭最终效果
附录:程序源代码(8051的指令集)
为了方便阅读,前面的部分用了大量的声明语句XXXEQUXXX,同时能为微调参数时提供方便。节省纸张,
数据段被除去,用分栏的方式显示。
;SfOS_FOR_synBY翼鹏2013-6.5
;I/O端口定义
P_STEPequP1
P_SEGequP2
B_oneequP0.1
B_tenequP0.0
B_manualequP1.4
B_autoequP1.5
B_increaequP1.6
B_decreaequP1.7
;寄存器分配
R_Delay_Aequ14H
R_Delay_Bequ15H
R_Delay_Cequ16H
R_INT0equR5
R_syn_speedequR1
R_stepequR0
R_modeequR4
R_tenequR6
R_oneequR7
R_count_syn_speedequR2
R_count_synequ11H
R_count_scanequ12H
;常数赋值
C_mode_manualequXX
C_mode_synequXX
C_waitequXX
delay_scan_tenequXX
delay_scan_oneequXX
manual_speedequXX
C_count_speedequXX
C_scan_cycleequXX
;代码段
ORG0000H
LJMPSTART_UP
ORG0003H
CLREA
LJMPfun_keyboard
ORG0080H
START_UP:CLREA
MOVR_step,#04H
MOVSP,#30H
MOVR_mode,#C_mode_syn
MOVR_syn_speed,#50
LCALLBIN_2_DEN
SETBEX0
here:SETBEA
MOVR_INT0,#0FFH
CJNE
R_mode,#C_mode_syn,TO_mode_manual
LJMPmode_syn
LJMPhere
ORG00A0H
fun_keyboard:MOVR_INT0,#00H
JNBB_manual,mode_manual
JNBB_auto,mode_syn
MOVR_INT0,#0FFH
JNBB_increa,fun_increa
JNBB_decrea,fun_decrea
RETI
fun_increa:CJNE
R_mode,#C_mode_manual,syn_increa
goon_in:LCALLfun_step_IN
LCALLfun_step_motor
MOVR_Delay_B,#manual_speed
LCALLDELAY_B
JNBB_increa,goon_in
RETI
syn_increa:INCR_syn_speed
CJNER_syn_speed,#100,in_wait
MOVR_syn_speed,#99
in_wait:LCALLBIN_2_DEN
MOVR_Delay_B,#C_wait
LCALLDelay_B
RETI
fun_decrea:CJNE
R_mode,#C_mode_manual,syn_decrea
goon_de:LCALLfun_step_DE
LCALLfun_step_motor
MOVR_Delay_B,#manual_speed
LCALLDELAY_B
JNBB_decrea,goon_de
RETI
syn_decrea:DECR_syn_speed
CJNER_syn_speed,#0,de_wait
MOVR_syn_speed,#1
de_wait:LCALLBIN_2_DEN
MOVR_Delay_B,#C_wait
LCALLDelay_B
RETI
TO_mode_manual:LJMPmode_manual
mode_syn:MOVR_mode,#C_mode_syn
MOVA,R_syn_speed
MOVR_count_syn_speed,A
count_speed:MOVR_count_scan,#C_scan_cycle
scan_cycle:LCALLSCAN
DJNZR_count_scan,scan_cycle
INCR_count_syn_speed
CJNE
R_count_syn_speed,#120,count_speed
LCALLfun_step_IN
;IN?DE?
LCALLfun_step_motor
CJNER_INT0,#00H,syn_return
MOVR_INT0,#0FFH
RETI
syn_return:LJMPhere
mode_manual:MOVR_mode,#C_mode_manual
MOVDPTR,#DB_manual
MOVA,#00H
MOVCA,@A+DPTR
MOVP_SEG,A
SETBB_one
SETBB_ten
CJNER_INT0,#00H,manual_return
MOVR_INT0,#0FFH
RETI
manual_return:LJMPhere
fun_step_motor:MOVDPTR,#DB_step
MOVA,R_step
MOVCA,@A+DPTR
MOVP_STEP,A
RET
fun_step_IN:INCR_step
CJNER_step,#08H,IN_exit
MOVR_step,#00H
IN_exit:RET
fun_step_DE:DECR_step
CJNER_step,#0FFH,DE_exit
MOVR_step,#08H
DE_exit:RET
BIN_2_DEN:MOVA,R_syn_speed
MOVB,#10
DIVAB
MOVR_ten,A
MOVR_one,B
RET
SCAN:MOVDPTR,#DB_num
MOVA,R_ten
MOVCA,@A+DPTR
CLRB_one
MOVP_SEG,A
SETBB_ten
MOVR_DELAY_A,#delay_scan_ten
LCALLDELAY_A
MOVDPTR,#DB_num
MOVA,R_one
MOVCA,@A+DPTR
CLRB_ten
MOVP_SEG,A
SETBB_one
MOVR_DELAY_A,#delay_scan_one
LCALLDELAY_A
RET
DELAY_A:nop
nop
nop
nop
nop
nop
nop
DJNZR_DELAY_A,DELAY_A
RET
DELAY_B:MOVR_DELAY_A,#0FFH
LCALLDELAY_A
DJNZR_DELAY_B,DELAY_B
RET
数据段被省略
END
本文发布于:2023-03-05 17:08:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678007324148060.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:赤道仪.doc
本文 PDF 下载地址:赤道仪.pdf
留言与评论(共有 0 条评论) |