牧夫天文网

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

QQ登录

只需一步,快速开始

[自制DIY] [已结束]3D 打印普消折射镜。

  [复制链接]
眉山顶上 发表于 2018-8-14 12:38 | 显示全部楼层 来自: 湖南省长沙市 电信
MegaPirateNG 发表于 2018-8-13 23:56
2018.08.13

小蚁运动相机使用第三方 Windows 下的软件控制,不再使用官方 Android 的 App 了。

土星拍得好啊~~~60360的镜子加上相机单张,能拍成这样,一下子打消了我买设备的想法了~~~
回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-15 22:13 | 显示全部楼层 来自: 广东省深圳市 电信
2018.08.15

月亮
月亮20180815.jpg

土星
火星20180815.jpg

木星与它的卫星
这4个不是噪点,因为在拍木星的照片中,这 4 个点都有规律的出现了。查了星图,位置与 4 颗木星的卫星一致。
木星20180815.jpg


回复 支持 反对

使用道具 举报

阳光的舟 发表于 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.

微信图片_20180816135133.jpg

使用 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

先尝试做个赤道仪的小模型,验证一下原理。
赤道仪小模型.jpg

对于我的 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

遇到一个难题,步进电机+减速器有巨大的回差。
目前的思路是给转轴加高粘性的阻尼脂,换更大扭距的电机。
用于验证原理的模型:
微信图片_20180818105322.jpg


我编了一份协议,在制作过程中应当会做些修改。
基于 MSP 的望远镜控制协议.rar (10.99 KB, 下载次数: 39)
基于 MSP 的望远镜控制协议

为了快速实现对望远镜激光、电动调焦、极轴、赤纬轴的控制,借用了开源 MultiWiiCopter 项目的嵌入式与上位机软件的代码,并使用兼容并扩展了的 MSP 协议。
MSP MultiWii Serial Protocol 的简写。
....


回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-20 13:52 | 显示全部楼层 来自: 广东省深圳市 电信
本帖最后由 MegaPirateNG 于 2018-8-20 18:39 编辑

2018.08.20

赤道仪小模型的结构已经做好,就差软件了。

电脑与 Arduino 通过串口通讯,来实现对步进电机的控制。

微信图片_20180820134750.jpg

嵌入式软件的编写,搭建了 Arduino 1.0.5 的开发环境,这个版本有点儿古老了。
ArduinoIDE.jpg

上位机软件的编写,搭建了 VS 2010 的开发环境,不知道这个版本是不是也太古老了。
找的开源软件,在它的基础上改一改。
VS2010IDE.jpg


软件调通了,做了4个按钮,2个设置速度的输入框。能让小赤道仪模型动起来了。
但是,又出现了新的问题:平板电脑的 USB 供电不足,需要额外的 5V 电来驱动步进电机。又多加了一个充电宝的板子。
微信图片_20180820183419.jpg
回复 支持 反对

使用道具 举报

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 行星减速。
上位机联调.jpg
软件上实现对激光开关、电动调焦、极轴和赤纬轴的控制。
上位机.jpg
加上无线串口电台,就成遥控的了。望远镜端的:
望远镜端电台.jpg

平板电脑端的:
电脑端电台.jpg


回复 支持 反对

使用道具 举报

lgsnake 发表于 2018-8-21 17:47 | 显示全部楼层 来自: 四川省成都市 电信
楼主牛!,问一哈,楼主用的什么牌子的3d打印机?

点评

马云家 700 多元的那种。但是不推荐,虽然价格很低,但是这家的焦后特别的差,卖掉之后就不管了,出现问题需要自己去买配件来修。挺折腾的。 [attachimg]882973[/attachimg]  详情 回复 发表于 2018-8-21 18:00
回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-21 18:00 | 显示全部楼层 来自: 广东省深圳市 电信
lgsnake 发表于 2018-8-21 17:47
楼主牛!,问一哈,楼主用的什么牌子的3d打印机?

马云家 700 多元的那种。但是不推荐,虽然价格很低,但是这家的焦后特别的差,卖掉之后就不管了,出现问题需要自己去买配件来修。挺折腾的。

3D打印机.jpg



回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-22 17:33 | 显示全部楼层 来自: 广东省深圳市 电信
本帖最后由 MegaPirateNG 于 2018-9-17 13:58 编辑

2018.08.22

极轴的步进电机,更换为 42 + 100:1 行星减速。
能感觉到行星减速巨大的回差。

极轴.jpg




回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-23 12:39 | 显示全部楼层 来自: 广东省深圳市 电信
本帖最后由 MegaPirateNG 于 2018-9-17 13:58 编辑

2018.08.23

把叉式赤道仪余下的部分画好了。

未标题-1.jpg

回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-24 08:59 | 显示全部楼层 来自: 广东省深圳市 电信
2018.08.24

打印好了,组装联调一下。赤纬轴使用 42 步进电机直驱的扭矩不够,已经到马云家买行星减速了。
根据开光定律,今天起了雾,可能有一点儿霾。

60F360.jpg
回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-27 10:49 | 显示全部楼层 来自: 广东省深圳市 电信
2018.08.27

这几天的深圳不是下雨,就是起雾霾,真是人品大爆发。

在外场实测了一下,除了赤纬轴电机扭力小锁不住的严重问题之外,还有整个望远镜晃动的现象。
1 赤纬轴的问题,已经购买了 100:1 行星减速的步进电机。
2 输出轴回差巨大的问题,希望能通过软件的方式解决。
3 整个系统晃动的问题,就只能逐个去解决隐患了。

加长了赤纬轴的被动轴,这样可以有更多的接触面积,可以涂上更多的阻尼脂,希望能减弱一些晃动。
赤纬被动轴.jpg
回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-28 10:01 | 显示全部楼层 来自: 广东省深圳市 电信
本帖最后由 MegaPirateNG 于 2018-8-28 17:51 编辑

2018.08.28

借了一台 Canon EOS M2 微单相机,APS-C 画幅的。试出了:不接镜头拍摄、B门、红外遥控这3个功能。
微信图片_20180828095324.jpg
测试红外遥控B门,功能是正常的。
未标题-2.jpg

禁掉了一个功能。
微信图片_20180828095333.jpg

这个 M2 的单机身在马云家大约是 600 元,一代 EOS M 的是 500,仅比 288 元的小蚁运动相机贵了不到一倍。
迟一些想做个对比测试,看看用哪一款性价比高。

中午收到减速步进电机了,装上之后终于能锁住赤纬轴了。
架子还是太软,就算是调一下焦,都会晃一晃。但是,晃一下能停,不像之前会不停晃。
赤道仪.jpg


计算了一下:
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 还未溢出。得出相反的判断结果。

测试用的例程:
test.rar (419 Bytes, 下载次数: 34)

------------------------------------------------------------------------

为 Canon EOS M2 相机画连接件:

微信图片_20180829183900.jpg

回复 支持 反对

使用道具 举报

 楼主| MegaPirateNG 发表于 2018-8-30 09:22 | 显示全部楼层 来自: 广东省深圳市 电信
本帖最后由 MegaPirateNG 于 2018-8-30 09:28 编辑

2018.08.30
Canon EOS M2 的连接件打印好了,镜头和热靴定位,再用前后用4个螺丝一夹,就感觉不到虚位了。

eos_M2_3.jpg

eos_M2_2.jpg
eos_m2_1.jpg


回复 支持 反对

使用道具 举报

本版积分规则

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