Оглавление:
- Шаг 1. Что вам нужно
- Шаг 2: планетные координаты
- Шаг 3: доступ к данным о планетах
- Шаг 4: Код
- Шаг 5: Подключение оборудования
- Шаг 6: Разработка корпуса
- Шаг 7: Проверка отпечатков
- Шаг 8: Удлинение шагового двигателя
- Шаг 9: Установите кнопки и ЖК-экран
- Шаг 10: Добавление фланцев
- Шаг 11. Запуск при запуске
- Шаг 12: склейте все вместе
- Шаг 13: использование
- Шаг 14: Готово
Видео: Raspberry Pi Planet Finder: 14 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
За пределами научного центра в моем городе есть большая металлическая конструкция, которая может поворачиваться и указывать на то место, где находились планеты в небе. Я никогда не видел, чтобы это работало, но я всегда думал, что было бы волшебно узнать, где на самом деле находятся эти недостижимые другие миры по отношению к моему крошечному «я».
Когда я недавно проходил мимо этой давно умершей выставки, я подумал: «Могу поспорить, что смогу сделать это», и я так и сделал!
Это руководство о том, как сделать Planet Finder (с изображением Луны), чтобы вы тоже знали, куда смотреть, когда чувствуете трепет перед космосом.
Шаг 1. Что вам нужно
1 x Raspberry Pi (версия 3 или выше для встроенного Wi-Fi)
1 x ЖК-экран (16 x 2) (вот так)
2 шаговых двигателя с драйверами (28-BYJ48) (как эти)
3 x кнопки (как эти)
2 х фланцевые муфты (как эти)
1 х кнопочный компас (как это)
8 болтов и гаек M3
Детали корпуса и телескопа, напечатанные на 3D-принтере
Шаг 2: планетные координаты
Есть несколько различных способов описания местоположения астрономических объектов на небе.
Для нас наиболее целесообразно использовать горизонтальную систему координат, как показано на изображении выше. Это изображение взято со страницы Википедии, ссылка на которую имеется здесь:
en.wikipedia.org/wiki/Horizontal_coordinat…
Система горизонтальных координат дает вам угол от севера (азимут) и вверх от горизонта (высота), поэтому он различается в зависимости от того, откуда вы смотрите в мире. Таким образом, наш искатель планет должен учитывать местоположение и иметь какой-то способ найти Север в качестве ориентира.
Вместо того, чтобы пытаться вычислить высоту и азимут, которые меняются со временем и местоположением, мы будем использовать Wi-Fi-соединение на борту Raspberry Pi для поиска этих данных из НАСА. Они отслеживают такие вещи, поэтому нам не нужно;)
Шаг 3: доступ к данным о планетах
Мы получаем данные из Лаборатории реактивного движения НАСА (JPL) -
Для доступа к этим данным мы используем библиотеку AstroQuery, которая представляет собой набор инструментов для запросов к астрономическим веб-формам и базам данных. Документация для этой библиотеки находится здесь:
Если это ваш первый проект Raspberry Pi, начните с этого руководства по настройке:
Если вы используете Raspbian на своем Raspberry Pi (вы будете, если следовали приведенному выше руководству), значит, у вас уже установлен python3, убедитесь, что у вас установлена самая последняя версия (я использую версию 3.7.3). Нам нужно использовать это, чтобы получить pip. Откройте терминал и введите следующее:
sudo apt установить python3-pip
Затем мы можем использовать pip для установки обновленной версии astroquery.
pip3 install --pre --upgrade astroquery
Прежде чем продолжить остальную часть этого проекта, попробуйте получить доступ к этим данным с помощью простого скрипта Python, чтобы убедиться, что все нужные зависимости установлены правильно.
из astroquery.jplhorizons import Horizons
mars = Horizons (id = 499, location = '000', epochs = None, id_type = 'majorbody') eph = mars.ephemerides () print (eph)
Это должно показать вам подробную информацию о местоположении Марса!
Вы можете проверить, верны ли эти данные, используя этот сайт для поиска положений планет в реальном времени:
Чтобы немного разбить этот запрос, id - это число, связанное с Марсом в данных JPL, epochs - это время, когда нам нужны данные (None означает прямо сейчас), а id_type запрашивает основные тела солнечной системы. В настоящее время местоположение установлено в Великобритании, поскольку «000» - это код местоположения обсерватории в Гринвиче. Другие местоположения можно найти здесь:
Исправление проблем:
Если вы получили сообщение об ошибке: Нет модуля с именем 'keyring.util.escape'
попробуйте следующую команду в терминале:
pip3 install --upgrade keyrings.alt
Шаг 4: Код
К этому шагу прилагается полный скрипт Python, используемый в этом проекте.
Чтобы найти правильные данные для вашего местоположения, перейдите к функции getPlanetInfo и измените местоположение, используя список обсерваторий на предыдущем шаге.
def getPlanetInfo (планета):
obj = Horizons (id = planet, location = '000', epochs = None, id_type = 'majorbody') eph = obj.ephemerides () return eph
Шаг 5: Подключение оборудования
Используя макетные платы и перемычки, подключите два шаговых двигателя, ЖК-экран и три кнопки, как показано на принципиальной схеме выше.
Чтобы узнать, какое количество контактов на вашем Raspberry Pi, перейдите к терминалу и введите
распиновка
Это должно показать вам изображение выше с номерами GPIO и номерами плат. Мы используем номера плат, чтобы определить, какие контакты используются в коде, поэтому я буду ссылаться на номера в скобках.
В помощь принципиальной схеме вот штыри, которые подключены к каждой части:
1-й шаговый двигатель - 7, 11, 13, 15
2-й шаговый двигатель - 40, 38, 36, 32
Кнопка1 - 33
Кнопка2 - 37
Кнопка3 - 35
ЖК-экран - 26, 24, 22, 18, 16, 12
Когда все это подключено, запустите скрипт python
python3 planetFinder.py
и вы должны увидеть на экране текст настройки, а кнопки должны перемещать шаговые двигатели.
Шаг 6: Разработка корпуса
Корпус был разработан таким образом, чтобы его можно было легко напечатать на 3D-принтере. Он разбивается на отдельные части, которые затем склеиваются вместе, как только электроника будет закреплена на месте.
Отверстия рассчитаны на кнопки, которые я использовал, и болты M3.
Я распечатал телескоп по частям и позже склеил их, чтобы не было слишком много опорной конструкции.
К этому шагу прикреплены файлы STL.
Шаг 7: Проверка отпечатков
После того, как все напечатано, убедитесь, что все плотно прилегает друг к другу, прежде чем делать какие-либо склейки.
Установите кнопки на место, закрепите экран и шаговые двигатели болтами M3 и хорошо покачивайте все. Подпилите все шероховатости, разобрав все на части перед следующим шагом.
Шаг 8: Удлинение шагового двигателя
Шаговый двигатель, который будет управлять углом возвышения телескопа, будет располагаться над основным корпусом, и для его вращения требуется некоторое провисание проводов. Провода необходимо удлинить, разрезав их между шаговым двигателем и его платой драйвера и припаяв между ними провод новой длины.
Я вставил новый провод в опорную опору, используя кусок нити, чтобы протянуть его, так как провод, который я использую, довольно жесткий и все время застревает. Пройдя через него, его можно припаять к шаговому двигателю, следя за тем, какой цвет подключен, чтобы снова прикрепить нужные на другом конце. Не забудьте добавить к проводам термоусадку!
После пайки запустите скрипт python, чтобы убедиться, что все по-прежнему работает, затем протолкните провода обратно по трубке, пока шаговый двигатель не встанет на место. Затем его можно прикрепить к корпусу шагового двигателя с помощью болтов и гаек M3 до того, как задняя часть корпуса будет приклеена на место.
Шаг 9: Установите кнопки и ЖК-экран
Вставьте кнопки и затяните гайки, чтобы зафиксировать их на месте перед пайкой. Мне нравится использовать общий провод заземления, который проходит между ними для аккуратности.
Закрепите ЖК-экран болтами и гайками M3. ЖК-дисплею нужен потенциометр на одном из контактов, который я также припаял на этом этапе.
Протестируйте код еще раз! Прежде чем склеить все вместе, убедитесь, что все работает, так как на этом этапе исправить это намного проще.
Шаг 10: Добавление фланцев
Чтобы соединить детали, напечатанные на 3D-принтере, с шаговыми двигателями, мы используем 5-миллиметровую фланцевую муфту, которая устанавливается поверх конца шагового двигателя и удерживается на месте крошечными винтами.
Один фланец приклеен к основанию вращающейся башни, а другой - к телескопу.
Прикрепить телескоп к двигателю на вершине вращающейся башни просто, так как есть много места для доступа к маленьким винтам, удерживающим его на месте. Другой фланец закрепить сложнее, но между основным корпусом и основанием вращающейся башни имеется достаточный зазор, чтобы вставить небольшой шестигранный ключ и затянуть винт.
Попробуйте еще раз!
Теперь все должно работать так, как будет в конечном состоянии. Если это не так, то сейчас самое время исправить ошибку и убедиться, что все соединения безопасны. Убедитесь, что оголенные провода не касаются друг друга, оберните изолентой и залатайте все места, которые могут вызвать проблему.
Шаг 11. Запуск при запуске
Вместо того, чтобы запускать код вручную каждый раз, когда мы хотим найти планету, мы хотим, чтобы это работало как отдельная выставка, поэтому мы собираемся настроить его для запуска нашего кода всякий раз, когда Raspberry Pi включается.
В терминале введите
crontab -e
В открывшемся файле добавьте следующее в конец файла, а затем новую строку.
@reboot python3 /home/pi/PlanetFinder/planetFinder.py &
Мой код сохранен в папке PlanetFinder, поэтому /home/pi/PlanetFinder/planetFinder.py - это расположение моего файла. Если ваш сохранен где-то еще, обязательно измените его здесь.
Знак & в конце важен, поскольку он позволяет коду работать в фоновом режиме, поэтому он не задерживает другие процессы, которые также происходят при загрузке.
Шаг 12: склейте все вместе
Все, что еще не приклеено, теперь должно быть закреплено.
Наконец, добавьте крошечный циркуль в середину вращающейся базы.
Шаг 13: использование
Когда Planet Finder включается, он предлагает пользователю отрегулировать вертикальную ось. Нажатие кнопок вверх и вниз переместит телескоп, попытается выровнять его, направив вправо, затем нажмите кнопку ОК (внизу).
Затем пользователя попросят отрегулировать вращение, использовать кнопки, чтобы вращать телескоп, пока он не будет указывать на север согласно маленькому компасу, затем нажмите ОК.
Теперь вы можете перемещаться по планетам с помощью кнопок вверх / вниз и выбирать ту, которую хотите найти, с помощью кнопки ОК. Он отобразит высоту и азимут планеты, затем переместится и укажет на нее в течение нескольких секунд, прежде чем снова повернуться лицом к северу.
Шаг 14: Готово
Все сделано!
Наслаждайтесь знанием того, где находятся все планеты:)
Первый приз в космическом испытании
Рекомендуемые:
IoT Keychain Finder с использованием ESP8266-01: 11 шагов (с изображениями)
IoT Keychain Finder с использованием ESP8266-01: вы, как я, всегда забываете, где вы хранили свои ключи? Я никогда не могу найти ключи вовремя! И из-за этой моей привычки я опоздал в колледж, на распродажу ограниченного тиража звездных войн (до сих пор волнующе!), На свидание (она никогда не выбирала
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Ev3 Lego Gripper / Finder Robot: 7 шагов
Ev3 Lego Gripper / Finder Robot: Здравствуйте! GrabBot - это многоцелевой робот, который любит кататься … Когда он натыкается на небольшой объект, он поднимает его и возвращает в исходное положение
Digital Stud Finder: 6 шагов (с изображениями)
Digital Stud Finder: поиск Stud Finder - это простая концепция. Два емкостных датчика: один посылает импульсную волну, второй принимает и измеряет падение напряжения на материале между двумя пластинами. В попытке продвинуть эту конструкцию, этот проект был задуман для того, чтобы
Pier 9: Smart Bone Fetch Finder ™: 4 шага (с изображениями)
Причал 9: Smart Bone Fetch Finder ™: Smart Bone Fetch Finder ™, впервые созданный в 2027 году, дает собакам возможность контролировать своих лучших друзей. В будущем собаки будут подходить к людям в парках и предлагать поиграть как услугу. Первая загрузка бесплатна