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

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

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

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

Инструменты и материалы:
— 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/jplhor …
На 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….
Если при выполнении команды выскочит ошибка (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)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Источник: usamodelkina.ru

Понравилась статья? Поделиться с друзьями:
Добавить комментарий