牧夫天文网

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

QQ登录

只需一步,快速开始

[自制DIY] 【野草教程】赤道仪DIYer必看,干货分享

    [复制链接]
野草 发表于 2019-2-26 15:40 | 显示全部楼层 |阅读模式 来自: 湖北省武汉市 电信

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

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

x
本帖最后由 野草 于 2019-7-3 00:21 编辑

首先 我所说的赤道仪DIY,准确的说应该是赤道仪手柄DIY
但是还是建议DIY赤道仪的同好们也可以看一下,会有帮助的

本文主要写给有嵌入式开发基础的同好,希望大家能一起努力,做出一些高水平的,廉价的国内的开源天文器材。造福国内的天爱同胞。


天文爱好因为市场小众,为了节省成本,很多厂家并没有将产品的研发和创新放在心上,很多赤道仪还在用着上个世纪的技术和芯片,哪怕新的高性能的硬件方案已经很便宜,在这个向钱看的社会能保有一颗向宇宙一撇之心是很不容易的,我们值得拥有一些更好的东西。

赤道仪手柄是赤道仪的控制核心,有关赤道仪手柄的嵌入式开发的资料并不多,而且大多是闭源的,本来搞嵌入式开发的天爱就不算太多,所以很多资料巨难找,本人DIY了谐波赤道仪,深知其中的艰辛。http://bbs.imufu.cn/thread-765255-1-1.html在此将所有相关资料收集汇总解读,希望能让其他的天文开发者少走弯路,甚至能让一些非开发专业的天爱能加入开发,那就最好了。

  • 通信
首先想清楚,赤道仪手柄的星表由谁来实现

很多厂家的手柄是有屏幕,内存里存着星表的,这样的手柄可以脱离电脑或手机独立运作,但是缺点就是要加内存加星表,软件开发工作繁重尤其是星表很难搞。所以专业的事情交给专业软件做,现在出去拍星,至少都会带个手机或电脑,PC端有Stellarium(虚拟天文馆),手机端有SKYSafari,都有赤道仪控制功能,那我们的工作就是实现和他们的通信就行了呗~

这两个软件都支持很多赤道仪通信协议,其中大部分通信协议都是走的串口,串口通信~so easy~  麻烦的是协议,很多协议是闭源的,查不到资料,但是有一个能查到英文资料的协议,那就是LX200(在此感谢米德,为开源天文事业做出的贡献!)

先上干货!https://wenku.baidu.com/view/3e8dda3231126edb6f1a1080.html
如果链接失效了  就自己百度  LX200议  或者Google  Meade Telescope Serial Command Protocol
不是中文资料!不开心!
好的,上中文:
通信过程:
建立连接时
Stellarium发送 “#:GR#”     下位机回复 “00:00:01#”       //下位机回复当前赤经值
Stellarium发送 “#:GD#”     下位机回复 “+00:00:01#”      //下位机回复当前赤纬值

按CTRL1指向目标时
Stellarium发送“#:Q#:Sr 11:36:05#”    下位机回复“1”      //上位机发送目标赤经值,下位机回复1表示收到
Stellarium发送“:Sd -47?28:13#”       下位机回复“1”      //上位机发送目标赤纬值,下位机回复1表示收到
Stellarium发送“:MS#”                 下位机回复“0”      //上位机询问下位机是否能转到该位置,下位机回复0表示可以

skasafari5建立连接
“:GR#”
“:GD#”

“:Sr00:14:08#”
“:Sd+13*34:40#”
“:MS#”

对!ASCALL码明码的通信协议!是不是联想到了GPS协议?是不是回忆起了前苏联那种古老的时代气息?
好,不扯题外话,明码协议怎么处理可以直接参考GPS协议的解析,那个不是本文的重点,本文的重点是,Stellarium和skasafari5的LX200协议稍有不同,处理的时候要小心。

有人可能要问,LX200有那么多命令,你这怎么就这5条?答案是,这5条就足够实现GOTO了。。。

以上是软件实现,具体代码可以参考我的:https://github.com/chenbopeng/GOTO-Equatorial

再来说说硬件实现,串口通信,手机又没有串口,搞个锤子啊?但是手机有WIFI啊!电脑也有WIFI啊!那么是不是自然想到了WIFI转串口模块?首先声明,本文没有任何厂家给半毛钱广告费,然后我在此推荐有人科技的WIFI转串,理由是因为工作关系用过很多,廉价、稳定、配置简单无比,都这样了,还要啥自行车?强烈建议不要用ESP系列的WIFI转串,那玩意有坑....

WIFI控制,有没有发现你的手柄突然不需要USB线了,突然感觉高大上了很多呢~

  • 时序
赤道仪的核心功能是啥?就是驱动步进电机进一步驱动赤经轴按照地球自转的速度去转。地球自转的速度(角速度)是多少?就是地球旋转一圈的角度除以旋转一圈的时间,地球旋转一圈的时间也叫恒星日,约等于86164秒,一圈是多少角秒呢?是360度*3600角秒/度=1296000角秒。那地球自转的角速度就出来了,就是1296000角秒/86164秒≈15.041084角秒/秒。

计算做到这一步,再来看硬件,能精确控制输出角度的机械有步进电机和带编码盘的伺服电机,这两种在各种主流赤道仪上均有应用,但是步进电机更常见一点,控制也更简单,在此姑且只讨论步进电机吧。驱动步进电机的方法有很多种,你甚至可以自己写代码做软件驱动,但是那个完全是费力不讨好,还是那句话,专业的事情交给专业的东西去做,托3D打印技术崛起的福,步进电机有很多高精度高细分的专业驱动芯片,比如A4988  DRV8825 TMC2208等等,这些芯片,你给它一个脉冲,它还你一个步进角,就是这么简单!


但是注意!这里必须着重强调,本人实测过以上所有驱动芯片,但是只推荐TMC2208和TMC2210。它的精确、丝滑、无噪音,让你用过就不再想用别的~当然它也是所有芯片里最贵的,驱动模块卖到了惊人的30多元/片,是的,这里我是在说反话,想想EQ3D双电跟的那个手控器,芯片用的是大学生做毕业设计用的51系列,驱动用的是软件驱动加三极管放大,效果是,我用那电跟看火星,火星就像一颗不断跳动的乒乓球!!!

好了,再回到计算,先做一个应用题:一个赤道仪系统,采用的是1.8度的步进电机,100:1的谐波减速系统,16细分的TMC2210步进电机驱动器,赤经采用直驱(可以理解为赤经减速比为1:1)。
请问每发一个脉冲给TMC2210,步进电机旋转多少角秒?
答:1.8°*3600度每秒 / 16细分/100减速比=4.05角秒  (记住这个结果,GOTO算法用得到)

请问赤经轴正常跟踪时,需要多久发一次脉冲呢?
答:86164秒/100减速比/200步进(1.8度每个步进转一圈是200步进)/16细分=0.2692625秒=269.2625毫秒 (记住这个结果,显然跟踪算法要用)

算到这个时候你可能会对这个系统嗤之以鼻,这个系统的分辨率是4.05角秒,也就意味着导星再怎么准也会有±2个角秒的波动,GOTO最少也会有
±2个角秒的误差。确实是这样,但是系统不同应用场景也不同,这个系统显然扛不了长焦镜头,但是300mm的焦距已经足够应付,便携打深空目标OK。又扯远了

回到时序,也就是说,单片机每269.2625毫秒给步进电机驱动器发一个脉冲,普通跟踪的工作就完成咯~因为是72M的主频,通过配置定时器,可以很轻松的得到269.2625毫秒的精确定时。理论跟踪误差为零!!很开心!但是因为有大气折射,晶振误差之类的原因,当然还是会有误差,但是实测发现,忽略不计~

有没有发现,到这个地方就已经基本完成了一个单轴的星野?但是这显然不是目的,我们的目标是星辰大海,没有GOTO怎么能行?


  • GOTO
整理一下我们现有的功能,我们能跟电脑或者手机通信,能让电脑知道赤道仪现在瞄着哪,也能让电脑告诉我们赤道仪要转到哪去,我们还有个基本的跟踪功能,能让赤道仪瞄着一个星星基本不动。那GOTO是啥,就是按照电脑告诉我们的坐标去转。


接下来,必须先讲讲坐标系,有没有发现所有天体都有一个坐标?由赤经,赤纬组成?有没有发现跟地球上的经纬度有点像?很好,地球是圆的,但是根据经纬度展开,可以得到一个长方形平面图,长宽比为2:1。那么天文坐标系(比如J2000.0)也可以这样展开,赤经赤纬就分别变成了横轴和纵轴,因为我们知道赤道仪现在所瞄准的坐标,也得到了电脑要赤道仪GOTO去的坐标,这两个坐标的赤经(赤纬)相减就能得到赤经(赤纬)轴需要旋转的角度,这个角度的正负号就代表了旋转的方向(实际算法还要考虑圆周运动的最短路径问题),还记得我们刚才算出来每个脉冲运动4.05角秒吗?一除是不是能得到需要运动多少个脉冲?GOTO是不是就实现了呢?对这就是GOTO的算法框架,实际要复杂一些,主要体现在坐标换算和圆周运动的一些问题上。


不知道细心的你发现没有,这个GOTO模型有一个隐藏的必要条件,因为赤道仪的天体坐标系是基于赤道仪硬件自身的,天体的实际坐标或者说绝对坐标是客观存在的,这两个坐标需要完全重合,GOTO才能成立,那怎么让两个坐标系重合呢?请问怎么样让两张A4纸完全重合?很简单,让两张纸上坐标相同的两个点完全重合!那么我们也一样,第一步,对极轴,这是第一个点,第二步,一星校准,告诉赤道仪它目前瞄准的是哪个星星,这是第二个点,这样坐标系就重合了,GOTO就准了——理论上。实际上因为极轴不可能没误差,一星校准也可能偏了几个角秒你看不出来,最后导致坐标系没有完全重合,这样GOTO下来就会有误差,误差的大小就看前两个校准的精度了,所以一星校准非常依赖精确的极轴。


既然都说道这了,再说说高端的吧,如果两张纸没有完全对齐,是不是就不能做精确的GOTO了呢?当然也不至于,考虑这个道理:两张纸互相斜了一点,还偏了一点,但是如果你知道它们相对的旋转角和偏移量,你就能知道这张纸上的任意坐标对应那张纸的什么坐标,那GOTO的时候把这个误差算进去不就OK了?那怎么知道相对的旋转和偏移量呢?答案就是三星校准!再加两个星进去,把这个坐标系钉死。但是这个运算就稍微再复杂一点,涉及到二维坐标的旋转,需要用到三角函数,根据三星校准的结果得到旋转矩阵,再对每个GOTO目标进行矩阵运算得到对应到赤道仪坐标系的坐标即可。

写了这么多,还是希望我国的天文圈子能涌现更多好的开源项目,像国外一样,我心目中,开源就是廉价和高性能的代名词,好的开源项目可以让更多人低成本的接触到天文的瑰丽,也能倒逼厂商做出更多的创新和降价。天文器材能够优化的地方还有很多很多,尤其是电子方面。


另外,再发一个预告,下一步我要开源一个支持ASCOM平台的电调焦制作方法!敬请期待!

蝶梦 发表于 2019-2-26 16:12 | 显示全部楼层 来自: 陕西省西安市 西安交通大学教育网
我目前在做一件类似的事,不过没找到消除光轴与赤道仪不严格平行产生的误差的方法,自己算也没算出来,所以GOTO一直没做好。不知您那里有没有相关资料。

点评

光轴不平行具体是指什么?不是很明白  详情 回复 发表于 2019-2-26 23:17
回复 支持 反对

使用道具 举报

archfalcon 发表于 2019-2-26 17:39 | 显示全部楼层 来自: 四川省成都市 联通
大神,膜拜了。。
回复 支持 反对

使用道具 举报

弼马温1984 发表于 2019-2-26 18:10 | 显示全部楼层 来自: 广东省肇庆市广宁县 电信
楼主厉害,三星校准这么复杂的玩意都搞掂了。我搞了很久都不得要领

点评

见笑~远不敢说搞懂了,三星校准我也只稍微了解一些原理,还谈不上算法实现。发帖说到这个也算是一个展望,希望有算法功底扎实的同好可以一起实现,然后开源出来,造轮子的工作只用做一次,这样在前人的工作之上再行  详情 回复 发表于 2019-2-26 18:18
回复 支持 反对

使用道具 举报

 楼主| 野草 发表于 2019-2-26 18:18 | 显示全部楼层 来自: 湖北省武汉市 电信
弼马温1984 发表于 2019-2-26 18:10
楼主厉害,三星校准这么复杂的玩意都搞掂了。我搞了很久都不得要领

见笑~远不敢说搞懂了,三星校准我也只稍微了解一些原理,还谈不上算法实现。发帖说到这个也算是一个展望,希望有算法功底扎实的同好可以一起实现,然后开源出来,造轮子的工作只用做一次,这样在前人的工作之上再行发展能走的更远些。

点评

校准算法ekos上有现成的,开源的 另外说一句,国内的很多爱好者不知道是信息闭塞还是什么原因,喜欢自己造轮子,而且还是那种很原始的轮子。实际上国际上已经有很多开源的钛合金轮子现成的存在了 去INDI的论坛上扫  详情 回复 发表于 2019-5-12 12:18
回复 支持 反对

使用道具 举报

拥抱母猪 发表于 2019-2-26 18:37 | 显示全部楼层 来自: 河南省许昌市 联通
膜拜大神,您无私奉献的精神会成为中国天文爱好者中一盏指引方向的灯塔
回复 支持 反对

使用道具 举报

chemistry6120c 发表于 2019-2-26 22:37 | 显示全部楼层 来自: 广东省东莞市 电信
支持高端玩家

点评

感谢支持!  详情 回复 发表于 2019-2-26 23:14
回复 支持 反对

使用道具 举报

 楼主| 野草 发表于 2019-2-26 23:14 | 显示全部楼层 来自: 湖北省武汉市 电信

感谢支持!
回复 支持 反对

使用道具 举报

 楼主| 野草 发表于 2019-2-26 23:17 | 显示全部楼层 来自: 湖北省武汉市 电信
蝶梦 发表于 2019-2-26 16:12
我目前在做一件类似的事,不过没找到消除光轴与赤道仪不严格平行产生的误差的方法,自己算也没算出来,所以 ...

光轴不平行具体是指什么?不是很明白

点评

望远镜光轴与赤经轴不平行。  详情 回复 发表于 2019-2-27 11:04
回复 支持 反对

使用道具 举报

KKKVVV 发表于 2019-2-27 09:21 | 显示全部楼层 来自: 广东省深圳市 电信
野草是个好同志,东西做的好,做东西的文章也写得好,简直就是赤道仪DIY的圣经

点评

感谢支持!  详情 回复 发表于 2019-2-27 17:18
回复 支持 反对

使用道具 举报

MegaPirateNG 发表于 2019-2-27 10:31 | 显示全部楼层 来自: 天津市 联通
感谢楼主的分享,跟着野草学做赤道仪。
回复 支持 反对

使用道具 举报

蝶梦 发表于 2019-2-27 11:04 | 显示全部楼层 来自: 陕西省西安市 西安交通大学教育网
本帖最后由 蝶梦 于 2019-2-27 12:08 编辑
野草 发表于 2019-2-26 23:17
光轴不平行具体是指什么?不是很明白

举个例子:鸠尾板和鸠尾槽不平行。

点评

哦哦 我一下没反应过来 还以为是步进电机导轨用的光轴。。。。 你说的这个好像之前看到一个哥们的帖子里写过 叫弓形效应吧 我没有研究过 也没有遇到过 确实不是很懂  详情 回复 发表于 2019-2-27 17:04
回复 支持 反对

使用道具 举报

沙拉飞鱼 发表于 2019-2-27 12:38 来自手机 | 显示全部楼层 来自: 广东省中山市 电信
真是业余爱好者的福音!谢谢野草的无私奉献。已经跟着上一帖子做谐波赤道仪,谢谢你的无私共享和耐心的指导。
回复 支持 1 反对 0

使用道具 举报

 楼主| 野草 发表于 2019-2-27 17:04 | 显示全部楼层 来自: 湖北省武汉市 电信
蝶梦 发表于 2019-2-27 11:04
举个例子:鸠尾板和鸠尾槽不平行。

哦哦  我一下没反应过来  还以为是步进电机导轨用的光轴。。。。  你说的这个好像之前看到一个哥们的帖子里写过  叫弓形效应吧   我没有研究过  也没有遇到过  确实不是很懂
回复 支持 反对

使用道具 举报

 楼主| 野草 发表于 2019-2-27 17:18 | 显示全部楼层 来自: 湖北省武汉市 电信
KKKVVV 发表于 2019-2-27 09:21
野草是个好同志,东西做的好,做东西的文章也写得好,简直就是赤道仪DIY的圣经 ...

感谢支持!
回复 支持 反对

使用道具 举报

小六哥 发表于 2019-2-28 06:45 | 显示全部楼层 来自: 广东省茂名市 移动
学习了
回复 支持 反对

使用道具 举报

晚风 发表于 2019-2-28 19:26 | 显示全部楼层 来自: 陕西省西安市 电信
给楼主点赞!
回复 支持 反对

使用道具 举报

KKKVVV 发表于 2019-3-1 08:46 | 显示全部楼层 来自: 广东省深圳市 电信
话说楼主的PCB已经发布了?

点评

是的 已经挂在GITHUB上了 链接上文里有 [attachimg]908701[/attachimg][attachimg]908703[/attachimg]  详情 回复 发表于 2019-3-1 16:59
回复 支持 反对

使用道具 举报

 楼主| 野草 发表于 2019-3-1 16:59 | 显示全部楼层 来自: 湖北省武汉市 电信
KKKVVV 发表于 2019-3-1 08:46
话说楼主的PCB已经发布了?

是的  已经挂在GITHUB上了  链接上文里有 按键板PCB.jpg 主控板PCB.jpg

点评

PCB有多余的吗?怎么卖?  详情 回复 发表于 2019-3-4 09:02
回复 支持 反对

使用道具 举报

蝶梦 发表于 2019-3-3 10:13 | 显示全部楼层 来自: 陕西省西安市 西安交通大学教育网
本帖最后由 蝶梦 于 2019-3-3 10:14 编辑

信达的SynScan协议不也是公开的吗?好像Stellarium和SkySafari都支持这个协议。
回复 支持 反对

使用道具 举报

本版积分规则

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