项目分享| 用树莓派制作国际空间站追踪器

在这个项目中,将会为大家展示如何使用 Raspberry Pi、ePaper Display、ProtoStax Enclosure 和一些 Python, 跟踪和显示国际空间站 (ISS) 的当前位置及其随时间变化的轨迹。

项目分享| 用树莓派制作国际空间站追踪器_第1张图片

项目中用到的东西

  • 树莓派 3 型号 B+:也可以使用 Raspberry Pi Model 4B

  • 树莓派4 B型:也可以使用 1B+/2B/3B/3B+

  • 用于 Raspberry Pi B+ / 4B 型的 ProtoStax 外壳

  • 2.7inch e-Paper HAT 

第 1 步 - 设置树莓派

项目通过Waveshare 电子纸显示器显示显示国际空间站的位置图像。Waveshare 电子纸显示器与树莓派之前通过 SPI 进行通信。因此,需要在 Raspberry Pi 上启用 SPI。

启用 SPI 的步骤

启动 raspi-config。转到“接口选项”,导航到 SPI 并按 Enter。当被问及是否要启用 SPI 接口时,选择“是”。具体操作参照下图,可左右移动:

导航到 raspi-config 中的“接口选项”

项目分享| 用树莓派制作国际空间站追踪器_第2张图片

 从 GitHub 存储库安装 ProtoStax ISS Tracker 代码(下面的链接)

这将安装演示代码以及必需的 Waveshare ePaper 库。

 步骤 2 - 仔细检查 SPI 接口是否正常工作

有些人会遇到过 SPI 接口无法正确启用的问题。

仔细检查 /boot/config.txt 中的 SPI 是否实际“开启”。搜索类似以下的条目:

 并检查是否可以看到连接的 SPI 设备:

当看到dev/spidev0.0 /dev/spidev0.1,就说明已经启动了SPI接口。如果输入命令行$ ls /dev/spi* ,,没有显示,需要尝试sudo rpi-update并重新启动。

如果 SPI 已正确启用,则/boot/config.txt 条目应如上所示,并且在列出 SPI 设备时,还应该看到已连接的设备。

☞ 第 3 步 - 安装其他先决条件

代码需要 Python 3+环境,如果您使用的是旧版本的 python,则需要安装 python3。

代码还依赖于其他库,因此需要安装 spidev、RPi.gpio 、Pillow:

项目分享| 用树莓派制作国际空间站追踪器_第3张图片

第 4 步 - 运行 ISS 跟踪器

cd 到您在上面克隆 git 存储库时创建的目录。

 运行 iss.py python 脚本(使用 python3):

 如果以上所有步骤都正确完成,应该会在电子纸显示屏上看到带有国际空间站当前位置的世界地图!每 30 秒更新一次当前位置(之前的位置被绘制为轨迹)。还添加了 15 分钟标记(红色矩形),以了解国际空间站的行进速度!

理解代码

该项目的代码可以在“达尔闻说”微信回复:国际空间站,获取。

国际空间站的位置是经纬度坐标。这些范围从 -180 到 180(经度)和 90 到 -90(纬度)。这些需要映射到我们的电子纸显示器的 XY 坐标。Waveshare 的 2.7 英寸显示屏的屏幕分辨率为 264 x 176,纵横比为 3:2,需要做到对应。

另外,世界地图通常也没有这种纵横比,因此需要一张具有经纬度描述的相当准确的地图。最后还得将其缩小到 264 x 181 的大小,这样国际空间站不会飞越两极,溢出到我们的 264x176 显示之外。

ISS 的位置每 30 秒更新一次,需要附加到列表中。我们将每个位置的纬度、经度数据转换为我们的 XY 坐标系。

在显示屏上,用黑色绘制世界地图,用红色绘制列表中的位置,即国际空间站的位置,其他位置被绘制为小圆圈(只是绘制一个点太小,看不到)。每 15 分钟,就会绘制标记位置,这些标记帮助我们了解国际空间站的实际移动速度!空间站约 90 分钟完成一个完整的轨道的飞行,每天不到 16 圈。

如果大家下载并理解了代码,就可来扩展这个项目,从中得到更多经验,以下都是可以在后期改进的:

  • 反转颜色 - 以红色显示世界地图,以黑色显示国际空间站的位置和轨迹。

  • 同时在屏幕上以文本形式显示当前位置时间和纬度、经度

  • 存储您的位置坐标,每次国际空间站靠近您时,将其打印在显示屏上,或执行其他一些操作,例如向您发送推文或电子邮件,或打开 LED。

  • 使脚本在后台运行,这样即使您从 Pi 注销,脚本也会继续运行并更新您的位置(提示:使用 nohup)

  • 使脚本在启动时运行,以便在您启动 Pi 时它会自动启动!

ESP8266智能家居项目集成

WiFi智能家居项目开发上

WiFi智能家居项目开发下

PCB电路设计之STM32开发板设计

智能农业沙盘

小米体重秤技术开发

智能交通沙盘

小米空气净化器

蓝牙智能手环实战

你可能感兴趣的:(stm32,物联网开发,嵌入式开发,单片机,stm32,服务器,嵌入式硬件,linux)