2020-6-30 16:06:32 [显示全部楼层]
4701浏览
查看: 4701|回复: 4

“为了看星星,我自己做了一个行星观测器”

[复制链接]
本帖最后由 RRoy 于 2020-8-3 11:42 编辑

“为了看星星,我自己做了一个行星观测器”图1

星空,永远是大家神往的地方。

这次给大家带来的项目,是外国小哥用树莓派和天文望远镜制作的一台智能行星观测器。
“为了看星星,我自己做了一个行星观测器”图4

观测器从 NASA 获取已知行星的坐标数据,然后可以自动调整角度,聚焦这颗行星,让我们很方便地观测它们。

“为了看星星,我自己做了一个行星观测器”图2

相信它能很好地带我们好好感受一下外太空世界。

材料清单

“为了看星星,我自己做了一个行星观测器”图5

“为了看星星,我自己做了一个行星观测器”图6

  • 树莓派 3B ×1  
  • 16×2 LCD 屏幕 ×1  
  • 带驱动器的步进电机 (28-BYJ48) ×2  
  • 按钮 ×3  
  • 法兰联轴器 5mm ×2  
  • 按钮指南针 ×1  
  • M3 螺栓/螺母 ×8  
  • 3D 打印外壳 ×1  
  • 3D 打印望远镜 ×1

行星坐标数据

“为了看星星,我自己做了一个行星观测器”图3

这里介绍两种定位行星的方法。  

  • 使用水平坐标系。它可以从北方(方位角)向上方倾斜一个角度和从地平线(高度)向上方倾斜一个角度,具体以我们的位置而定,角度会有所不同。这个方法以北方作为参考目标。
    参考资料:
    https://en.wikipedia.org/wiki/Horizontal\_coordinate\_system

  • 将树莓派连上 WiFi 后,直接连接到 NASA 获得数据。

访问行星数据

从 NASA 喷气推进实验室(JPL)获取数据:

https://ssd.jpl.nasa.gov/\?horizons

访问数据前需要安装 AstroQuery 库,这个库是用于查询行星网络表单和数据库的工具。下载地址:

https://astroquery.readthedocs.io/en/latest/jplhorizons/jplhorizons.html

如果这是你的第一个树莓派项目,可以先参考下面的设置指南:

https://projects.raspberrypi.org/en/projects/raspberry-pi-getting-started

确保安装最新版本的 Raspbian(我使用的是3.7.3版)。打开终端运行命令:

sudo apt install python3-pip

然后使用 pip 安装 astroquery 的升级版本。

pip3 install --pre --upgrade astroquery

在继续完成项目前,可以使用简单的 Python 脚本访问该数据,确保所有依赖正确安装。

from astroquery.jplhorizons import Horizons

mars = Horizons(id=499, location='000', epochs=None, id_type='majorbody')

eph = mars.ephemerides()

print(eph)

不出意外,这串代码会显示火星的详细位置。我们可以查看火星定位是否正确:

https://theskylive.com/planetarium

为了方便查询,我会做简化处理。其中 id 表示是 JPL数据中与火星的数据,epochs表示获取数据的时间,id_type表示询问太阳系主体。“000”在格林威治天文台的位置代码中表示英国的位置。其他位置可点击查看:

https://minorplanetcenter.net//iau/lists/ObsCodesF.html

故障排除:

如果出现报错:No module named ‘keyring.util.escape’
可以在终端中输入以下命令:

pip3 install --upgrade keyrings.alt

编程

为了找到精确的坐标数据,在getPlanetInfo修改位置信息(使用上一步中天文台的列表修改这里的location

def getPlanetInfo(planet): 
        obj = Horizons(id=planet, location='000', epochs=None, id_type='majorbody')    
        eph = obj.ephemerides() 
        return eph

完整的 python 脚本下载方式,在文末告知。

连接硬件

“为了看星星,我自己做了一个行星观测器”图19

在该步骤中,要连接面包板、跳线、两个步进电机、LCD 屏幕和三个按钮。在树莓派上找到引脚,在终端上输入

pinout

“为了看星星,我自己做了一个行星观测器”图20

上图显示了 GPIO 编号和板子编号。

连接方式如下:  

  • 第一个进电机 – 7、11、13、15  
  • 第二个进电机 – 40、38、36、32  
  • 按钮 1 – 33  
  • 按钮 2 – 37  
  • 按钮 3 – 35  
  • 显示屏 – 26、24、22、18、16、12

当全部连接后,运行 python 脚本

python3 planetFinder.py

“为了看星星,我自己做了一个行星观测器”图21

在屏幕上会显示设置文本信息,并且按钮可以启动步进电机。

“为了看星星,我自己做了一个行星观测器”图22

“为了看星星,我自己做了一个行星观测器”图23

“为了看星星,我自己做了一个行星观测器”图24

“为了看星星,我自己做了一个行星观测器”图25

“为了看星星,我自己做了一个行星观测器”图26

“为了看星星,我自己做了一个行星观测器”图27

“为了看星星,我自己做了一个行星观测器”图28

“为了看星星,我自己做了一个行星观测器”图29

“为了看星星,我自己做了一个行星观测器”图30

所有打印 STL 文件,文末提供打包下载链接。

测试3D打印件

“为了看星星,我自己做了一个行星观测器”图31

“为了看星星,我自己做了一个行星观测器”图32

“为了看星星,我自己做了一个行星观测器”图33

“为了看星星,我自己做了一个行星观测器”图34

部件都打印完成之后,在涂胶水之前,先确保它们都能紧密贴合。

将按钮安装到位,固定显示屏和步进电机,打磨一下外壳,确保所有组件都能正常使用。然后我们再进行下一步的操作。

安装步进电机

“为了看星星,我自己做了一个行星观测器”图35

“为了看星星,我自己做了一个行星观测器”图36

“为了看星星,我自己做了一个行星观测器”图37

“为了看星星,我自己做了一个行星观测器”图38

“为了看星星,我自己做了一个行星观测器”图39

“为了看星星,我自己做了一个行星观测器”图40

步进电机将控制位于外壳上方的望远镜的仰角,所以需要延长电线方便旋转。安装方法可以参照上图。

接线完成后,可以运行一下 python 脚本,检查是否一切正常。

然后将电线放回管内,直到步进电机就位,再将步进电机固定在外壳上,把外壳粘合。

安装按钮和 LCD 屏幕

“为了看星星,我自己做了一个行星观测器”图7

如图所示安装按钮,在焊接前使用螺母把它固定好。

“为了看星星,我自己做了一个行星观测器”图8

使用M3螺栓和螺母固定LCD显示器。请将LCD其中一个引脚焊接到电位计上。

“为了看星星,我自己做了一个行星观测器”图9

“为了看星星,我自己做了一个行星观测器”图10

在将所有的组件粘合之前,再次测试代码,确保所有能够正常工作,因为该阶段更容易修复。

添加法兰联轴器

“为了看星星,我自己做了一个行星观测器”图11

将3D打印的底座连接到步进电机。

“为了看星星,我自己做了一个行星观测器”图12

我们把5mm的法兰联轴器安装在步进电机的顶部,并用螺钉固定到位。

“为了看星星,我自己做了一个行星观测器”图13

将望远镜安装到旋转塔顶上的电机很简单,因为有足够的空间可以将小螺钉固定到位。

“为了看星星,我自己做了一个行星观测器”图14

一个法兰器粘连在旋转塔架的底座上,另一个安装在望远镜上。再次测试,确保裸露的电线彼此不接触,用电工胶带缠住并修补可能引起问题的任何地方。

启动

因为想把它独立运行,而不是每次手动代码寻找行星,因此把观测器设置为在树莓派开启时运行代码。在终端中输入。

crontab -e

在打开的文件中,在文件末尾,另起一行输入。

@reboot python3 /home/pi/PlanetFinder/planetFinder.py &

代码保存在 PlanetFinder 文件夹中,因此文件位置为:/home/pi/PlanetFinder/planetFinder.py。如果你保存在其他地方,请在此处更改。

说明:代码末尾的&是允许代码在后台运行,因此它在启动时不会阻止其他进程。

完成组装

“为了看星星,我自己做了一个行星观测器”图15

“为了看星星,我自己做了一个行星观测器”图16

将小指南针添加到旋转底座的中间,最后,将所有的组件安装到位!

使用方法

“为了看星星,我自己做了一个行星观测器”图17

1、当望远镜开始启动时,调整垂直轴。按下向上向下按钮可以移动望远镜,调整好后按下 OK 按钮即可(位于底部)。

2、调整旋转角度,使用按钮旋转望远镜,直到小指南针将望远镜指向北方,然后按下 OK 按钮即可。

现在,我们可以使用向上、向下按钮选择行星,确定好后按下OK按钮即可。它将显示选定行星的高度和方位角,指向它几秒后再转向北。

到现在,项目就算全部完成了。

赶紧去找找你心中的那颗行星吧!
“为了看星星,我自己做了一个行星观测器”图18

项目作者:snowbiscuit
项目来源:https://www.instructables.com/id/Raspberry-Pi-Planet-Finder/



行星观测器.zip

694.51 KB, 下载次数: 2189

汤果  初级技神

发表于 2020-6-30 16:08:42

酷炫又拉风!献上我的膝盖Orz
回复

使用道具 举报

hnyzcj  版主

发表于 2020-6-30 16:55:52

效果怎么样
回复

使用道具 举报

gray6666  初级技神

发表于 2020-7-1 07:38:20

接个单反,拍出来
回复

使用道具 举报

chenhanzhong  初级技匠

发表于 2020-8-14 09:22:48

还能这样玩,膜拜!Orz Orz Orz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail