牧夫天文网

 找回密码
 加入牧夫(请注明天文爱好者,否则无法通过审核)

QQ登录

只需一步,快速开始

[自制DIY] 菜鸟如何自制通过stellarium来控制赤道仪goto--基本功能完成

  [复制链接]
 楼主| 角落里的烟嘴 发表于 2013-2-23 17:10 | 显示全部楼层 来自: 江苏省苏州市 联通
方向键盘 按下事件

Private Sub Form_Load()
Form1.KeyPreview = True '激活Form1上的控件的键盘事件之前,优先激活Form1键盘事件。
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case (KeyCode)

Case 37  ' ←
Picture1.Left = Picture1.Left - Text1.Text '

Case 38 ' ↑
Picture1.Top = Picture1.Top - Text1.Text

Case 39 ' →
Picture1.Left = Picture1.Left + Text1.Text
Case 40 '↓

Picture1.Top = Picture1.Top + Text1.Text

End Select

End Sub
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-2-23 21:16 | 显示全部楼层 来自: 江苏省苏州市 电信
键盘 方向键  控制 赤道仪 方向 ok
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-2-26 14:57 | 显示全部楼层 来自: 江苏省苏州市 联通
另外发了帖子 发了照片

DEC轴。
从参考星到目标星,在德式赤道仪上面来计算,只要直接算出 差值就可以,控制DEC轴直接转动这个差值,望远镜就能从参考星转动到目标星。


RA轴,
对于德式赤道仪来讲,参考星到目标星的过程中 分两个情况
目标星在参考星的东面
通过星图软件获得 目标和参考之间的RA差值,驱动赤道仪RA转动,转动时间为S。则实际目标星已经移动,在S时间内实际移动了一定的位置 SL。则赤道仪RA轴需再转动 SL,并花费时间S'。目标星其实还是在动,那就再继续。。。 这样的运动方式是无限趋近的。。。
     另外一种运动方式就是列出一元方程式 变量是  时间S ,
    在goto的时间 S 中, 目标星是 1X速度运动的 速度是V‘  , 距离是 S*V'
     则goto的总距离是两边相等的
       ra’+ s*V'                            =    S*V           ,    S=( ra’+s*V')/V
    ra的差值+S时间内变化距离       goto的距离
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-2-26 16:12 | 显示全部楼层 来自: 江苏省苏州市 联通
本帖最后由 角落里的烟嘴 于 2013-2-26 21:56 编辑

参考点 RA= 1h  目标点位 RA= 0h(或者是24h)
则 RA'=1h=15°

即赤道仪需要进行相对转动 15°

而应为恒星日 23时56分4秒=23.93444444 ,即星星们相对于地球的转动

360/86164=0.004178079    度每秒


所谓如果赤道仪RA轴只转动15°的话,其实是不够的,需要做转动一个角度。

如果RA轴转动的总计时间为S(单位秒),则目标星星在RA值上多转动了 RA''=S*0.004178079

实际 赤道仪RA需要转动  RA'+RA''=15+S*0.004178079

我的单片机+步进电机+赤道仪的情况 :每一个步距角会使赤道仪RA轴转动的角度为:
    7.5            30               1
-------------- *----------------*-----------------   =0.075*30/40/144=0.000390625*2=0.00078125
   50           40               144
步距角为7.5度  传动齿轮组  赤道仪的
自带减速比50    的减速比     涡轮蜗杆
8拍 再要除以2                       减速比

如果现在 goto的时候每3000us 运动一个步距角
则每3000us=0.003 赤道仪RA轴转动0.00078125   (0.00015625°)
公式列为  
15                     +   S*0.004178079                          =    (S/0.003)*0.0007812515

为天体坐标系中的RA差值                                              表示为goto总花费时间是S中步进电机转了多少角度              
S是goto的所花的时间 单位是秒
S*0.004178079代表的是
在goto过程中目标星再RA轴上的移动   

//系统再对好极轴之后一直保持1x的跟踪速度,忽略在1x的速度变换成goto的工作模式, goto的速度是100x

回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-2-26 23:17 | 显示全部楼层 来自: 江苏省苏州市 电信
测试RA 轴控制, 利用iphone 角度测量软件 重锤杆
先水平 重锤杆, iphone测量
然后VB外挂控制赤道仪RA轴转动一个10°
然后 iphone 靠着重锤杆测量 。。。。。。。。。。果然是 10°!
回复 支持 反对

使用道具 举报

dj2001 发表于 2013-3-2 21:22 | 显示全部楼层 来自: 浙江省杭州市 华数宽带
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-10 19:28 | 显示全部楼层 来自: 江苏省南京市 联通
@Wah!  天顶  方位角等于 0 或者 180 , 通过公式 计算出 RA ,然后判断望远镜 是在东还是在西
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-13 17:29 | 显示全部楼层 来自: 江苏省苏州市 联通
纠结了数天 也没有想出来的怎么弄 百度出来 本坛有帖子发出来问过,有前前辈给出答案,晚上再研究,有代码可以直接抄袭
如何 计算  alt_az_to_ra_dec 我要计算天顶。。。
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-13 17:29 | 显示全部楼层 来自: 江苏省苏州市 联通
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-13 18:28 | 显示全部楼层 来自: 江苏省苏州市 电信
软件界面不什么更新,现在就是把天顶的RA计算出来 123.PNG
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-13 22:13 | 显示全部楼层 来自: 江苏省苏州市 电信
根据上面找的链接中的C++代码,找到了核心程序,修改如下,能够计算出实时的天顶的RA值是多少,但是有误差 一分多钟,所以加了常数(没有精确的加,所以最后结果还有是有些误差)

PR = 3.14159265358979 / 180

Dim PI As Double

PI = 3.14159265358979


M(1) = 0:   M(2) = 31:   M(3) = 59:   M(4) = 90
M(5) = 120: M(6) = 1512:  M(7) = 181:  M(8) = 212
M(9) = 243: M(10) = 273: M(11) = 304: M(12) = 334
Y(1998) = -731.5: Y(1999) = -366.5: Y(2000) = -1.5:   Y(2001) = 364.5
Y(2002) = 729.5:  Y(2003) = 1094.5: Y(2004) = 1459.5: Y(2005) = 1825.5
Y(2006) = 2190.5: Y(2007) = 2555.5: Y(2008) = 2920.5: Y(2009) = 3286.5
Y(2010) = 3651.5: Y(2011) = 4016.5: Y(2012) = 4381.5: Y(2013) = 4747.5
Y(2014) = 5112.5: Y(2015) = 5477.5: Y(2016) = 5842.5: Y(2017) = 6208.5
Y(2018) = 6573.5: Y(2019) = 6938.5: Y(2020) = 7303.5: Y(2021) = 7669.5
J2000 = (Hour(Time) + Minute(Time) / 60 + Second(Time) / 3600) / 24 + M(Month(Date)) + Day(Date) + Y(Year(Date))

'Debug.Print "J2000"; J2000

'Debug.Print "LON"; LON

LST = 100.46 + 0.985647 * J2000 + LON + 15 * (Hour(Time) + Minute(Time) / 60 + Second(Time) / 3600)



' Debug.Print "LST"; LST

Dim temp, sin_dec, cos_lat  As Double

cos_lat = Cos(LAT)


Dim alt, az, dec As Double
   
      alt = 0
      az = 0
      
sin_dec = Sin(LAT * PR) * Sin(alt * PR) + cos_lat * Cos(alt * PR) * Cos(az * PR)
   
   

dec = Atn(sin_dec / Sqr(-sin_dec * sin_dec + 1))


  
  
   Debug.Print " dec"; dec / PR

      temp = cos_lat * Cos(dec * PR)
      temp = (Sin(alt * PR) - Sin(LAT * PR) * sin_dec) / temp
      
    '   temp = acose(-temp)    'cos(-temp)
      temp = Atn(-Cos(-temp) / Sqr(-Cos(-temp) * Cos(-temp) + 1)) + 2 * Atn(1)
      
      
       If (Sin(az) >= 0) Then
        HA = PI - temp
        Else
        HA = PI + temp
        End If
        
        
     
       Debug.Print "HA"; HA * 360 / PI
       HA = HA * 360 / PI

Do Until LST <= 360
LST = LST - 360
Loop








Do Until HA >= 0
HA = HA + 360
Loop

  ra_tian_ind = (LST - HA)
  
   If ra_tian_ind < 0 Then
    ra_tian_ind = 360 + ra_tian_ind
    End If
   
    ra_tian_ind = ra_tian_ind - 18 / 60      '计算值不对,有误差,加个常数调整
     
  '天顶的 RA值
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-13 22:20 | 显示全部楼层 来自: 江苏省苏州市 电信
我X  我错了,搞复杂了! 要看星星在左边还有右边,直接计算出方位角 就可以进行判断了啊 望远镜在德式赤道仪 东面 还是 西面 就好弄了  

走入歧途了
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-16 01:10 | 显示全部楼层 来自: 江苏省苏州市 电信
通过计算 时角 就可以把星星的方位确定下来, 在西方 还是东方, 这样 德式赤道仪上面的望远镜 是在东指向西,还是 在西指向东,就能判断了。 附上 截面图
321.PNG
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-3-16 01:11 | 显示全部楼层 来自: 江苏省苏州市 电信
在设置 中继续增加一些东西, 主界面中 会去掉 下面那些参考 数据
回复 支持 反对

使用道具 举报

tbb1 发表于 2013-5-10 15:25 | 显示全部楼层 来自: 上海市 东方有线
正准备上GOTO。看的我眼花缭乱。
楼主的STELLLLA里面怎么没有我看到的小三角(就是每个星星周围都会有个三角标记,特别烦),怎么去掉的?

点评

小三角? 有什么 作用?  详情 回复 发表于 2013-5-10 16:03
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-5-10 16:03 | 显示全部楼层 来自: 江苏省苏州市 联通
tbb1 发表于 2013-5-10 15:25
正准备上GOTO。看的我眼花缭乱。
楼主的STELLLLA里面怎么没有我看到的小三角(就是每个星星周围都会有个三 ...

小三角? 有什么 作用?

点评

我就没搞明白他有什么作用,但是死活消除不掉。。。 你的stella是哪个版本的,还有下载链接吗?  详情 回复 发表于 2013-5-10 17:13
回复 支持 反对

使用道具 举报

tbb1 发表于 2013-5-10 17:13 | 显示全部楼层 来自: 上海市 东方有线

点评

你去找最新版的 然后改成中文版的看看,另外建议参考lx200协议 去做  详情 回复 发表于 2013-5-10 19:45
回复 支持 反对

使用道具 举报

 楼主| 角落里的烟嘴 发表于 2013-5-10 19:45 来自手机 | 显示全部楼层 来自: 江苏省南京市 联通
tbb1 发表于 2013-5-10 17:13
我就没搞明白他有什么作用,但是死活消除不掉。。。
你的stella是哪个版本的,还有下载链接吗?
...

你去找最新版的 然后改成中文版的看看,另外建议参考lx200协议 去做
回复 支持 反对

使用道具 举报

lshwx 发表于 2013-5-12 15:42 | 显示全部楼层 来自: 广东省梅州市 电信
楼主厉害   就是好些东西还看不懂
回复 支持 反对

使用道具 举报

yilovezz 发表于 2013-6-4 17:16 | 显示全部楼层 来自: 天津市 联通
楼主进展如何?VB与下位机单片机通信速度可以吗?

点评

按照LX200协议来写下位机程序,这样上位机不用自己写的VB 也可以,比如说上位机可以直接改用GM导星大师,下位机接收GM 发送的LX200协议信号导星  发表于 2013-6-4 20:01
可以啊 上位机 可以发送 速度控制命令 + 速度 参数, 下位机做相应的处理就行了, 我现在把 上位机和下位机都在改 LX200 协议, 按照 LX200 协议  发表于 2013-6-4 19:59
回复 支持 反对

使用道具 举报

本版积分规则

快速回复 返回顶部 返回列表