眉山顶上
发表于 2018-8-14 12:38
MegaPirateNG 发表于 2018-8-13 23:56
2018.08.13
小蚁运动相机使用第三方 Windows 下的软件控制,不再使用官方 Android 的 App 了。
土星拍得好啊~~~{:2_185:}60360的镜子加上相机单张,能拍成这样,一下子打消了我买设备的想法了~~~{:5_281:}
MegaPirateNG
发表于 2018-8-15 22:13
2018.08.15
月亮
土星
木星与它的卫星
这4个不是噪点,因为在拍木星的照片中,这 4 个点都有规律的出现了。查了星图,位置与 4 颗木星的卫星一致。
阳光的舟
发表于 2018-8-15 23:23
乍一看还以为是apo
singold
发表于 2018-8-16 13:03
为DIY 点个赞!不过3D建模要花不少时间吧
MegaPirateNG
发表于 2018-8-16 13:56
感谢大家的支持。
3D 建模花的时间,相对来说还算少。更多的时间是花在试错上面,每个部件都是改了好几版,打印了 n 多个之后,才定下来的。
还有调电路、改 BUG 这些经常是花了几个小时只解决一个小问题。
MegaPirateNG
发表于 2018-8-16 14:01
2018.08.16
步进电机到了。
先试了一下便宜的 28BYJ-48,是使用 Arduino 通过 ULN2003 驱动的。初步测试,电流不到 400mA.
使用 Windows 电脑,通过 USB 转 TTL(FT232R 或者 CP210x 之类的都可以),基于 AVR Mega328P 的 Arduino 最小系统,ULN2003 来控制步进电机。
可以写一个 Windows 的软件,发送串口数据给 Arduino 来实现控制。
如果把串口连接改为一对 Si1000 之类的无线串口,它就变成遥控的了。
MegaPirateNG
发表于 2018-8-17 08:26
本帖最后由 MegaPirateNG 于 2018-8-20 13:44 编辑
2018.08.17
先尝试做个赤道仪的小模型,验证一下原理。
对于我的 360mm 焦距的物镜,小蚁运动相机传感器尺寸大约是 6.16mm * 4.62mm
视角是:2 * arctan(4.62 / 2 / 360) =0.74°
360° / 0.74° = 486(步)
所以,使用走完一圈需要 2048 步的步进电机,做为赤纬轴的驱动估计够用了。
MegaPirateNG
发表于 2018-8-18 10:49
本帖最后由 MegaPirateNG 于 2018-8-20 13:43 编辑
2018.08.18
遇到一个难题,步进电机+减速器有巨大的回差。
目前的思路是给转轴加高粘性的阻尼脂,换更大扭距的电机。
用于验证原理的模型:
我编了一份协议,在制作过程中应当会做些修改。
基于 MSP 的望远镜控制协议
为了快速实现对望远镜激光、电动调焦、极轴、赤纬轴的控制,借用了开源 MultiWiiCopter 项目的嵌入式与上位机软件的代码,并使用兼容并扩展了的 MSP 协议。MSP 是 MultiWii Serial Protocol 的简写。....
MegaPirateNG
发表于 2018-8-20 13:52
本帖最后由 MegaPirateNG 于 2018-8-20 18:39 编辑
2018.08.20
赤道仪小模型的结构已经做好,就差软件了。
电脑与 Arduino 通过串口通讯,来实现对步进电机的控制。
嵌入式软件的编写,搭建了 Arduino 1.0.5 的开发环境,这个版本有点儿古老了。
上位机软件的编写,搭建了 VS 2010 的开发环境,不知道这个版本是不是也太古老了。
找的开源软件,在它的基础上改一改。
软件调通了,做了4个按钮,2个设置速度的输入框。能让小赤道仪模型动起来了。
但是,又出现了新的问题:平板电脑的 USB 供电不足,需要额外的 5V 电来驱动步进电机。又多加了一个充电宝的板子。
asett
发表于 2018-8-20 16:15
超赞楼主,动手能力超强,对大型软件都很熟悉,有探索精神,而且又愿意分享工作成果。
MegaPirateNG
发表于 2018-8-21 12:26
本帖最后由 MegaPirateNG 于 2018-8-21 17:53 编辑
2018.08.21
赤道仪的小模型,原理基本调通了。实际的赤道仪,赤纬轴打算使用 42 步进电机,极轴使用 42 步进电机+100:1 行星减速。
软件上实现对激光开关、电动调焦、极轴和赤纬轴的控制。
加上无线串口电台,就成遥控的了。望远镜端的:
平板电脑端的:
lgsnake
发表于 2018-8-21 17:47
楼主牛!,问一哈,楼主用的什么牌子的3d打印机?
MegaPirateNG
发表于 2018-8-21 18:00
lgsnake 发表于 2018-8-21 17:47
楼主牛!,问一哈,楼主用的什么牌子的3d打印机?
马云家 700 多元的那种。但是不推荐,虽然价格很低,但是这家的焦后特别的差,卖掉之后就不管了,出现问题需要自己去买配件来修。挺折腾的。
MegaPirateNG
发表于 2018-8-22 17:33
本帖最后由 MegaPirateNG 于 2018-9-17 13:58 编辑
2018.08.22
极轴的步进电机,更换为 42 + 100:1 行星减速。
能感觉到行星减速巨大的回差。
MegaPirateNG
发表于 2018-8-23 12:39
本帖最后由 MegaPirateNG 于 2018-9-17 13:58 编辑
2018.08.23
把叉式赤道仪余下的部分画好了。
MegaPirateNG
发表于 2018-8-24 08:59
2018.08.24
打印好了,组装联调一下。赤纬轴使用 42 步进电机直驱的扭矩不够,已经到马云家买行星减速了。
根据开光定律,今天起了雾,可能有一点儿霾。
MegaPirateNG
发表于 2018-8-27 10:49
2018.08.27
这几天的深圳不是下雨,就是起雾霾,真是人品大爆发。
在外场实测了一下,除了赤纬轴电机扭力小锁不住的严重问题之外,还有整个望远镜晃动的现象。
1 赤纬轴的问题,已经购买了 100:1 行星减速的步进电机。
2 输出轴回差巨大的问题,希望能通过软件的方式解决。
3 整个系统晃动的问题,就只能逐个去解决隐患了。
加长了赤纬轴的被动轴,这样可以有更多的接触面积,可以涂上更多的阻尼脂,希望能减弱一些晃动。
MegaPirateNG
发表于 2018-8-28 10:01
本帖最后由 MegaPirateNG 于 2018-8-28 17:51 编辑
2018.08.28
借了一台 Canon EOS M2 微单相机,APS-C 画幅的。试出了:不接镜头拍摄、B门、红外遥控这3个功能。
测试红外遥控B门,功能是正常的。
禁掉了一个功能。
这个 M2 的单机身在马云家大约是 600 元,一代 EOS M 的是 500,仅比 288 元的小蚁运动相机贵了不到一倍。
迟一些想做个对比测试,看看用哪一款性价比高。
中午收到减速步进电机了,装上之后终于能锁住赤纬轴了。
架子还是太软,就算是调一下焦,都会晃一晃。但是,晃一下能停,不像之前会不停晃。
计算了一下:
1 在纸上画“正”字计数,我终于数清楚了,转 90 度角,一共要走 8 万步,一圈就是 320 000 步。反复确认了这个数,数数数的我头都要炸了。
2 根据“弼马温1984”前辈提供的电跟计算表,地球自转时间是:86164.09894 秒。
3 极轴每 269262.8092 微秒需要走一步,四舍五入取 269263 微秒。
4 步距角是 0.001125 度。
5 小蚁运动相机传感器尺寸是 6.11 mm * 4.62 mm, 分辨率 4608 * 3456. 每个像素尺寸约 0.00133 mm.
6 物镜的焦距是 360mm. 每个像素对应的角度是:0.00133 / 360 = 0.000211676 度。
7 每一步移动的像素: 0.001125 / 0.000211676 = 5.3
勉强还算可以接受吧,因为衍射环的直径就达到 6 个像素了。
关键代码,也就这么几句:先处理串口协议,再根据当前的微秒数计算需要走几步。
void loop()
{
serialComTelescope();
nNewMicro = micros();
if (nNewMicro - nOldMicro > ONE_STEP)
{
unsigned long nLonStep = (nNewMicro - nOldMicro) / ONE_STEP;
nOldMicro += nLonStep * ONE_STEP;
LonStep(1, nLonStep);
}
}
MegaPirateNG
发表于 2018-8-29 14:16
本帖最后由 MegaPirateNG 于 2018-8-29 18:41 编辑
2018.08.29
对比较担心的2句代码做了测试,结果与我预期是一样的,消除了我的担心。
代码:
if (nNewMicro - nOldMicro > ONE_STEP)
....
unsigned long nLonStep = (nNewMicro - nOldMicro) / ONE_STEP;
每一个多小时,会发生一次数据溢出。
测试中捕捉到这样 2 组数据:
第一组:
nNewMicro: 424064
nOldMicro: 4294748210
nNewMicro - nOldMicro: 643150
nLonStep: 2.
nNewMicro: 837104
nOldMicro: 319440
nNewMicro - nOldMicro: 517664
nLonStep: 1.
说明程序计算:
4294748210 + 2 * 269263 结果是:319440. (事实上:4294748210 + 2 * 269263 - 4294967296 = 319440)
溢出的数据直接丢掉,与我希望的方式是一样的。424064 - 4294748210 结果是:643150. 相当于自动借了一位。(事实上:424064 - 4294748210 + 4294967296 = 643150)
第二组:
nNewMicro: 120928
nOldMicro: 4294525764
nNewMicro - nOldMicro: 562460
nLonStep: 2.
说明程序计算:
120928 - 4294525764 的结果是:562460.(事实上:120928 - 4294525764 + 4294967296= 562460)
相当于自动借了一位,也是我希望得到的结果。
if (nNewMicro - nOldMicro > ONE_STEP)
这句话,不可以写为:
if (nNewMicro > nOldMicro + ONE_STEP)
否则,会发生 nNewMicro 已经因为数据溢出,是一个很小的数值;而 nOldMicro + ONE_STEP 还未溢出。得出相反的判断结果。
测试用的例程:
------------------------------------------------------------------------
为 Canon EOS M2 相机画连接件:
MegaPirateNG
发表于 2018-8-30 09:22
本帖最后由 MegaPirateNG 于 2018-8-30 09:28 编辑
2018.08.30
Canon EOS M2 的连接件打印好了,镜头和热靴定位,再用前后用4个螺丝一夹,就感觉不到虚位了。