牧夫天文网

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

QQ登录

只需一步,快速开始

[自制DIY] 我DIY了一个EQ SDK(赤道仪开发小工具)——记一次GOTO DIY历程

[复制链接]
坐进观天 发表于 2020-4-2 11:31 | 显示全部楼层 |阅读模式 来自: 广西 联通

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?加入牧夫(请注明天文爱好者,否则无法通过审核)

x
本帖最后由 坐进观天 于 2020-4-4 14:59 编辑

我对天文的这点爱好完全源自小学的“自然”课本,以至数十年还留着这本书。上面的“星空”让我挺着迷。上中学时第一次网购是买了台迷你的所谓“天文”望远镜,那时好像还没淘宝,是在“易贝”买的!收到货时那个激动啊!记得买了后就阴雨霏霏,连月不开。后来才知道这是所谓的开光定律。不过还好能看到到月球上的坑洼状,当时已觉得很神奇了。

1.png 2.png

上大学那会儿,当时3721网搞了个软件大赛,那时我正学习编程,饶有兴趣地将小学课本上的这个星图软件编了出来,可以让小朋友用来观星找星座,奖自然没得到,但后来用这个软件参加面试竟然得到了一个码农的工作。

3.png



前几年重拾兴趣买了套小黑,人肉跟踪真的太累,就寻思弄个自动寻星和自动跟踪的玩意儿了。于是,到处找资料积累经验。正好当时为一个客户开发一个运动控制器及其Windows下的SDK(Software Development Kit),于是乎冒出一个想法,干脆顺便开发一个EQ SDK套件,此套件以一个运动控制器(取名 SPARROW)为硬件平台,提供一套拓展的天文控制API(取名SkyAPI),并在此API上编写一个可以直接用于GOTO、导星等操作的控制程序(取名XIE),这样不仅我自己的要求满足了,还留来许多的应用余地可方便地使用和拓展。

4.png

    其实,基本功能两年前就完成了,经过实测,挺成功!好几晚在楼顶哈哈哈笑。
    后来给控制器做了贴膜,搞了个外壳,再后来就搁置了很长的时间,一直没整理。前段时间宅宅宅宅在家里,资料整理出来,现请容将此EQ SDK介绍一下。
5.png
一、控制器
6.png

此为3+1轴运动控制器,大小正好一手掌控,适合手持控制。
基本特点如下:
    1、3轴可用于控制赤纬、时角、调焦轴运行,另有一拓展轴可供用户拓展到其他DIY功能(如:控制天文顶棚,甚至可配置成PWM方式控制制冷…)。
    2、可选择闭环、开环方式控制电机。(可选)
    3、各轴可外接编码器进行位置反馈。(可选)
    4、可配置成脉冲+方向方式用于控制步进电机、伺服电机,也可配置成PWM方式控制直流电机。且各轴电机类型单独可调。
    5、闭环控制的PID参数灵活可调。
    6、提供4个通用Input接口和4个Output接口供用户拓展使用,可用于获取一些外部开关的信号以及控制一些点动的外部设备。
    7、可联机和脱机运行。
    8、可选择RS232和无线蓝牙两种联机方式。
    9、提供接口函数(API)方便用户进行二次开发。                           
在此运动控制器的基础上,我拓展了它的API,这个拓展的API(SkyAPI)不仅能执行普通的运动控制功能,还附带天文运算,因此能应用到天文望远镜的控制上。而当你不用它来控制你的赤道仪时,完全可以用在其他的DIY场合,想像空间和可玩指数就提高了。
    10、电机驱动器。
    可配一个4轴的微电机驱动器来驱动EQ电机以及调焦电机,此驱动器接口与控制器接口完全兼容。驱动器有直流型和步进型两个版本。
7.png
二、控制软件
    在SkyAPI的基础上,开发了一套运行于Windows 环境下的控制软件(XIE)。XIE通过RS232或者蓝牙与控制器进行连接。有了此应用程序,就可以直接通过它控制和调试你的赤道仪。
    此控制软件包含LX200协议,可与星图软件(Stellarium)、导星软件(GuiderMaster)对接,从而执行GOTO和导星操作,GOTO和导星速度可灵活设置。
    可进行1~3星校准,提高GOTO精度。
    各种配置参数(如减速比、PID参数)灵活可调。
    XIE提供一开放接口,方便用户的其他程序与XIE通信,拓展XIE的功能。
    APP概况如下。
8.png 9.png

1、启动界面
    在启动界面中可设置控制端口、寻星端口、导星端口的端口号以及串口通讯参数。
    其中,控制端口即XIE与SPARROW控制器的通讯串口;寻星端口即XIE与星图软件Stellarium的通讯端口;导星端口即XIE与导星软件GuiderMaster的通讯端口。
    同时,用户可在启动界面设置星图软件和导星软件的自启动方式,并设置相应程序的执行文件路径,这样,在启动XIE控制软件时,相应的软件也同时启动。
2、联机/断开、退出、调试
10.png

    联机/断开按钮:如启动时没有联机,可在此处联机。此处联机串口号和波特率在“com”页面中指定(与“启动”页面中的端口设置等效)。
    退出按钮:断开与控制器连接并退出程序。
    调试展开/折叠按钮:点击按钮“>>>>”,则控制器的调试页面展开。点击按钮“<<<<”,则展开的调试页面折叠。
12.png
    可通过展开的调试页面查看和设置SPARROW控制器的硬件参数。在本赤道仪控制系统中,X轴连接的是赤纬控制电机,Y轴连接的是时角控制电机,Z轴连接的是调焦控制电机。
    各参数根据用户实际情况灵活修改。比如:
    BaudRate控制器与上位机通信的波特率。
    CTYPE轴电机类型和位置反馈方式。
    RS位置反馈系数。根据实际情况(减速比、电机细分数等)设置赤道仪运行1角秒对应的脉冲数。
    VR档位系数,即速度按钮1(1X)所对应于的移动速度。在本系统中VR=15(15角秒/秒)。
    P控制参数P。
    I控制参数I。
    D控制参数D。
    MO最大输出。
3、数据显示
13.png

    实时显示各轴的数据和运行状态。
    坐标说明:系统把从SPARROW控制器得到的位置脉冲数转换成赤道仪坐标(用赤纬、时角标识,即EQDC/HA,再把赤道仪的坐标转换成星体坐标(用赤纬、赤经标识,即StarDC/RA。与星图软件通讯时,发送的是星体坐标。
    赤道仪坐标置数:可以通过“SET”按钮将赤道仪坐标手动置数。赤纬数据置数时,选中W”复选框用来指示所设置的这个赤纬数据属于已过中天星体,否则指示所设置的这个数据属于未过中天星体。(一般仅调试时手动将赤道仪坐标置数。实际应用时,在GOTO框中输入星体坐标的赤纬、赤经值后直接点击“SetStar”按钮即可设置赤道仪指向某一星体。)
    调焦轴数据显示
14.png
    显示调焦轴(Z轴)的位置,和运行状态。可通过“Z0”按钮,将调焦轴数据清零。
4、运行控制面板
15.png

    XIE控制软件的各轴运行速度和GOTO速度通过运行控制面板中各轴的速度按钮设置。调试控制器时,可在控制面板中设定其他运行参数和速度,直接控制各轴以指定的速度和方式运行。
5、系统参数调整和应用
1)串口(com)参数设置
16.png
     联机前需要设置各端口的串口号和波特率等参数。
    控制端口:即XIE控制软件与SPARROW控制器联机的端口。
    寻星端口:即XIE控制软件软件与星图软件(Stellarium)的通讯端口。
    导星端口:即XIE控制软件与导师软件(Guider Master)的通讯端口。
    由于XIE控制软件、星图软件、导星软件通常同时运行于同一PC上。因此,一般用虚拟的串口对来实现控制软件与星图、导星软件的连接即可,无需物理串口的连接。
117.png 118.png

2)位置与时间参数设置
19.png
     用户需要设置观测地的地理经纬度和时区,日期和时间自动从Windows系统读取填入。
    经度:以时、分、秒计,东经为+,西经为-;
    纬度:以度、分、秒计,北纬为+,南纬为-;
    时区:东区为+,西区-。
3)校准参数设置
20.png
    导星速率:设置用于导星的速率,以恒星速(15角秒/秒)为1X速率。
    校准阶数:数值越大则校准精度越高,但所需的计算时间越长,一般设置为10即可
    校准计算:进行校准时,星体的理论位置、实际位置数据将被自动记录并自动完成计算,无需用户干预。
4)命令流显示
21.png
    实时显示与星图软件、导星软件的LX200通讯信息流。
(5)GOTO、SetStar、校准操作
22.png
    GOTO
    在赤纬、赤经编辑框中输入星体坐标,点击“GOTO”按钮即可控制赤道仪GOTO到指定的星体。点击“STOP”按钮停止GOTO动作。
    在赤纬、赤经编辑框中输入星体的坐标,点击“Star Set”按钮,即可将系统当前的星体坐标设置成所输入的坐标(赤道仪坐标也相应被设置),即为SetStar置星。
   当控制软件与星图软件(Stellarium)连接后,在星图软件中下达了GOTO命令后,指定的坐标数据会自动填入赤纬、赤经编辑框中,并自动下达GOTO指令,从而实现直接在星图软件中控制赤道仪GOTO到指定星体的目的。
    校准
    选准星:系统可进行1~3星校准,校准前将所选取的用于校准的星体(以下简称准星)的坐标数据填入S1~S3的赤纬、赤经编辑框中。
    进行校准:准星数据填入后,选中“进行校准”复选框,并设置校准星数(1~3)后开始进行校准。

6、视频查看
24.png

    在视频设备页面,系统可用的视频设备和可选的格式在列表中显示出来。用户可在这里选择用于天文实时视频查看的视频设备。
7、一些有用的操作
    (1)关于脱机操作,SPARROW控制器可脱离上位机独立运行。在这种情况下,控制器可作为双跟+电调焦系统来使用。通SPARROW面板上的按键来设置各轴的速度,驱动各轴运行,从而进行赤道仪的调整,跟踪和调焦。
    (2)为了不妨碍用户通过星图软件、导星软件进行GOTO或者导星,XIE控制软件设计成顶部磁吸式,将XIE控制软件拖到屏幕顶部时,软件自动收缩隐藏在后台执行,当鼠标指针触及XIE控制软件所在的顶部位置时,控制软件重新展开。(像QQ那样)
    (3)控制器上拓展功能键F1~F6的使用,为了方便用户的调整、校准和使用,SPARROW控制器上的拓展键F1~F6被设置成软件上某些功能按钮的快捷键。
    当进行GoTo操作时,F1~F6的功能定义如下:
25.png
    当进行校准操作时,F1~F6的功能定义如下:
26.png
三、API 以及二次开发
    这里有多种选项。
    1、什么也不做,直接使用XIE控制你的赤道仪。
    2、使用控制器的SkyAPI开发自己的基于Windows的APP。
    3、XIE控制软件提供了一个开放接口,你的应用程序可以使用这个接口和XIE进行通信,获取并补充XIE的功能。
    4、直接使用控制器提供的接口协议开发自己的APP。由于这个接口协议是基于RS232的,因此可以做是跨平台开发。
    软件调用层次如下图:
27.png
THE END
附:
goto测试视频:
https://v.youku.com/v_show/id_XMzAyNTI4OTM2NA==.html?spm=a2hcb.playlsit.page.1
goto+导星视频:
https://v.youku.com/v_show/id_XNDYxMjM4MzcxMg==.html?spm=a2hzp.8253869.0.0


小武生 发表于 2020-4-2 11:52 | 显示全部楼层 来自: 安徽省合肥市 电信
直接放出下载地址吧,除了牛找不到其他词来形容

点评

☺不是单靠软件,软件基于控制器平台的。  详情 回复 发表于 2020-4-2 14:54
回复 支持 反对

使用道具 举报

蝶梦 发表于 2020-4-2 14:27 | 显示全部楼层 来自: 陕西省西安市 西安交通大学教育网
我以前基于STM32自己画的板子做过类似的东西。

点评

我原先底层也用单片机控制直流电机goto。后来才搞这个控制器,步进、直流可以切换。  详情 回复 发表于 2020-4-2 15:10
回复 支持 反对

使用道具 举报

 楼主| 坐进观天 发表于 2020-4-2 14:54 来自手机 | 显示全部楼层 来自: 广西桂林市 联通
小武生 发表于 2020-4-2 11:52
直接放出下载地址吧,除了牛找不到其他词来形容

☺不是单靠软件,软件基于控制器平台的。
回复 支持 反对

使用道具 举报

 楼主| 坐进观天 发表于 2020-4-2 15:10 来自手机 | 显示全部楼层 来自: 广西桂林市 联通
蝶梦 发表于 2020-4-2 14:27
我以前基于STM32自己画的板子做过类似的东西。

我原先底层也用单片机控制直流电机goto。后来才搞这个控制器,步进、直流可以切换。

点评

我做的没你那么完善,只是步进电机。不过我做的有一个能显示中文的屏幕,字库直接用我写的代码生成器编码进单片机程序。  详情 回复 发表于 2020-4-2 15:29
回复 支持 反对

使用道具 举报

鬼星团 发表于 2020-4-2 15:23 | 显示全部楼层 来自: 陕西省西安市 移动
这个要顶!
要分享就分享pcb 电路图和软件
哈哈
回复 支持 反对

使用道具 举报

蝶梦 发表于 2020-4-2 15:29 | 显示全部楼层 来自: 陕西省西安市 西安交通大学教育网
坐进观天 发表于 2020-4-2 15:10
我原先底层也用单片机控制直流电机goto。后来才搞这个控制器,步进、直流可以切换。 ...

我做的没你那么完善,只是步进电机。不过我做的有一个能显示中文的屏幕,字库直接用我写的代码生成器编码进单片机程序。

点评

中文我们也这么弄,灵活。反正也就那么几个字。要是字很多就得用字库芯片。  详情 回复 发表于 2020-4-2 18:02
回复 支持 反对

使用道具 举报

 楼主| 坐进观天 发表于 2020-4-2 18:02 来自手机 | 显示全部楼层 来自: 广西桂林市 联通
蝶梦 发表于 2020-4-2 15:29
我做的没你那么完善,只是步进电机。不过我做的有一个能显示中文的屏幕,字库直接用我写的代码生成器编码 ...

中文我们也这么弄,灵活。反正也就那么几个字。要是字很多就得用字库芯片。
回复 支持 反对

使用道具 举报

wait4love 发表于 2020-4-2 21:38 | 显示全部楼层 来自: 广东省潮州市 电信
我也是因为小学自然课本的四季星空图入的坑,看着熟悉的图一言难尽

点评

我也是因为小学自然,春季星空。我第一个认出的星座是狮子座。一言难尽。  详情 回复 发表于 2020-4-14 21:27
真巧呀  详情 回复 发表于 2020-4-3 10:50
回复 支持 反对

使用道具 举报

 楼主| 坐进观天 发表于 2020-4-3 10:50 来自手机 | 显示全部楼层 来自: 广西 联通
wait4love 发表于 2020-4-2 21:38
我也是因为小学自然课本的四季星空图入的坑,看着熟悉的图一言难尽 ...

真巧呀
回复 支持 反对

使用道具 举报

水手 发表于 2020-4-14 21:27 | 显示全部楼层 来自: 山东省临沂市 联通
wait4love 发表于 2020-4-2 21:38
我也是因为小学自然课本的四季星空图入的坑,看着熟悉的图一言难尽 ...

我也是因为小学自然,春季星空。我第一个认出的星座是狮子座。一言难尽。
回复 支持 反对

使用道具 举报

本版积分规则

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