Unikumrus.com / Приспособления/Указатель положения планет

Указатель положения планет


В городе, в котором проживает мастер, есть большая металлическая конструкция которая поворачивается и указывает положения планет на небе. Устройство, которое сделал мастер также указывает положение планет на небе и их координаты.

Давайте посмотрим небольшое видео.

Для изготовления такого аппарата мастер использовал следующие

Инструменты и материалы:
- Raspberry Pi (версия 3 или выше)
- ЖК-экран (16 х 2);
- Шаговые двигатели с драйверами (28-BYJ48) - 2 шт;
- Кнопки - 3 шт;
- Фланцевые муфты - 2 шт;
- Компас;
- Болты и гайки M3 - 8 шт;
- 3D печатные части;





Шаг первый: координаты, доступ, код
Самоделка оформлена не совсем обычно, можно сказать с конца. Но, дабы не запутаться, не будем менять порядок, установленный мастером.
Есть несколько способов определения расположения астрономических объектов на небе.

В данном случае наиболее целесообразным является горизонтальная система координат.

Указатель положения планет

Горизонтальная система координат дает в данном случае угол с севера (азимут) и вверх от горизонта (высота). Значит указатель планет должен определять север и координаты местоположения.

Вместо того, чтобы пытаться вычислить высоту и азимут, которые меняются со временем и местоположением, мастер будем получать данные из НАСА. Передача данных на Raspberry Pi будет осуществляться через Wi-Fi соединение.
Данные мастер будет получать из Лаборатории реактивного движения НАСА (JPL) - https://ssd.jpl.nasa.gov/?horizons
Для доступа к этим данным он использует библиотеку под названием AstroQuery, которая представляет собой набор инструментов для запросов к астрономическим веб-формам и базам данных. Данные для этой библиотеки находится здесь: https://astroquery.readthedocs.io/en/latest/jplhorizons/jplhorizons.html
На Raspberry установлена Raspbian, а для программирования установлен python 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 и изменить местоположение на нужное.
def getPlanetInfo(planet): obj = Horizons(id=planet, location='000', epochs=None, id_type='majorbody') eph = obj.ephemerides() return eph

Код: planetFinder.py

Шаг второй: монтаж
На макетной плате мастер устанавливает Рассбери, шаговые двигатели, экран и три кнопки, как показано на схеме.



Для того, чтобы узнать распиновку Рассбери нужно ввести команду: pinout


Контакты, которые подключает мастер следующие:
1-й шаговый двигатель - 7, 11, 13, 15
2-й шаговый двигатель - 40, 38, 36, 32
Кнопка 1 - 33
Кнопка 2 - 37
Кнопка 3 - 35
ЖК-экран - 26, 24, 22, 18, 16, 12
После подключения запускает скрипт: python3 planetFinder.py На экране должна начаться загрузка, а с помощью кнопок можно управлять шаговыми двигателями.

Шаг третий: дизайн
Корпус и указатель в виде телескопа был разработан для 3D-печати. Размеры отверстий соответствуют размерам гаек и болтов М3.










Файлы для печати можно скачать ниже.
Base_turret.stl
BoxBack.stl
BoxBase.stl
BoxFace.stl
BoxSides.stl
Stepper_Housing.stl
Stepper_Housing_Lid.stl
telescope1.stl
telescope2.stl
скачать {{file.name}}telescope3.stl
telescope4.stl
TelescopeWhole.stl

Шаг четвертый: сборка
После печати деталей нужно проверить как детали сопрягаются и отшлифовать их.





Затем приступает к сборке устройства.

Шаговый двигатель, который будет контролировать угол наклона телескопа, будет находиться над основным корпусом, и для его поворота нужно чтобы провода небыли натянуты.

Мастер протягивает провода и припаивает к плате. Затем проверяет работу двигателя и если все нормально закрепляет его.







Устанавливает на лицевую панель экран и кнопки. Припаивает провода.





Второй шаговый двигатель устанавливается в корпусе и на его валу закрепляется фланец. Второй фланец крепится к корпусу телескопа-указателя.





Приклеивает небольшой компас к корпусу.


Шаг пятый: работа устройства
Чтобы не запускать код вручную каждый раз, когда нужно найти планету мастер устанавливает автозапуск.
В терминале нужно ввести введите
crontab -e

В открывшемся файле в конце добавить следующую команду:
@reboot python3 /home/pi/PlanetFinder/planetFinder.py &

/home/pi/PlanetFinder/planetFinder.py - это местоположение файла. Если код сохранен в другом месте, то строку нужно изменить.
Символ & в конце важен, поскольку он позволяет коду работать в фоновом режиме.

После включения устройства нужно отрегулировать его по вертикали. Нажатием кнопок «вверх» и «вниз» нужно установить горизонтальное положение и подтвердить выбор нижней кнопкой.

Затем нужно установить направление на север и подтвердить выбор.

Теперь можно перебирать планеты с помощью кнопок вверх / вниз и выбрав одну из них, подтвердить выбор с помощью кнопки ok. На экране отобразится высота и азимут планеты, а телескоп повернется в ее направлении.



Источник (Source)
2020-10-09
Вернуться назад