当前位置:首页 > > 嵌入式微处理器
[导读]最近的日环食吸引了一大波天文爱好者。在我所居住城市的科技中心大楼外就有一台大型的天文望远镜,它可以鸟瞰宇宙中的其他星球。我一直认为那些真实存在、又遥不可及的外太空与微小的我有着某种神秘的联系。我准备用树莓派和天文望远镜复制一台智能的行星观测器。

最近的日环食吸引了一大波天文爱好者。在我所居住城市的科技中心大楼外就有一台大型的天文望远镜,它可以鸟瞰宇宙中的其他星球。我一直认为那些真实存在、又遥不可及的外太空与微小的我有着某种神秘的联系。


我准备用树莓派和天文望远镜复制一台智能的行星观测器。从 NASA 获取已知行星的坐标数据,然后这台仪器就可以自动调整角度,聚焦这颗行星,让我可以很方便地观测它们。相信它将很好地带你观看和感受地球之外的外太空世界。


视频演示


材料清单




  • 树莓派 3B ×1

  • 16×2 LCD 屏幕 ×1

  • 带驱动器的步进电机 28-BYJ48 ×2

  • 按钮 ×3

  • 法兰联轴器 5mm ×2

  • 按钮指南针 ×1

  • M3 螺栓/螺母 ×8

  • 3D 打印外壳 ×1

  • 3D 打印望远镜 ×1


行星坐标数据



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

1、使用水平坐标系。它可以从北方(方位角)向上方倾斜和从地平线(高度)向上方倾斜,因此是以你的位置而定,所以角度会有所不同。此方法以北方作为参考。


请点击链接查看:

https://en.wikipedia.org/wiki/Horizontal_coordinate_system


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


访问行星数据


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

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


访问数据前需要安装 AstroQuery 库,用于查询行星网络表单和数据库的工具。

请点击下载安装:

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


请确保安装最新版本的 Raspbian(我使用的是3.7.3版)。

打开终端运行命令:

sudo apt install python3-pip

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

pip3 install --pre --upgrade astroquery

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

from astroquery.jplhorizons import Horizonsmars = 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 脚本,请在项目文件库中下载:

https://make.quwj.com/project/240


连接硬件




在该步骤中,要连接面包板、跳线、两个步进电机、LCD 屏幕和三个按钮。

在树莓派上找到引脚,在终端上输入

pinout


它会可以显示 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



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


3D 打印外壳


1、3D 打印外壳。



所有打印 STL 文件,请在项目文件库下载:

https://make.quwj.com/project/240


2、测试外壳








外壳组装到位后,进行其他组件的安装。将按钮安装到位,固定显示幕和步进电机,打磨外壳,确保所有组件都能正常使用。


安装电子组件


1、安装步进电机





步进电机将控制位于外壳上方的望远镜的仰角,因此需要延长电线以便旋转。请如图进行安装。


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



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


2、安装按钮和 LCD 屏幕



如图所示安装按钮,在焊接前使用螺母使其固定到位。



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




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


3、添加法兰联轴器



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



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



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



一个法兰器粘连在旋转塔架的底座上,另一个安装在望远镜上。


再次测试,如果有问题,马上修复并确保所有连线正确。


启动


因为想把它独立运行,而不是每次手动代码寻找行星,因此将其设置为在树莓派开启时运行代码。


在终端中输入。

1crontab -e

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

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


代码保存在 PlanetFinder 文件夹中,因此文件位置为:

/home/pi/PlanetFinder/planetFinder.py。如果你保存在其他地方,请在此处更改。


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


完成组装




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


使用方法



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


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


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


目前为止,项目就完成了。你会去寻找哪一颗行星呢?!



-END-


MAKER:snowbiscuit/译:趣无尽 Cherry(转载请注明出处)

https://shumeipai.nxez.com/2020/07/23/raspberry-pi-planet-finder.html


整理文章为传播相关技术,版权归原作者所有 |

如有侵权,请联系删除 |


【1】国内MCU能替代国外产品吗?MCU的未来又将如何?

【2】35岁真的是程序员的坎儿吗?

【3】不同编程语言能耗不同?看这27种语言对比!

【4】超长干货为你解析:从串口驱动到Linux驱动模型,嵌入式必会!

【5】本文把TCP/IP讲绝了!



免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭