Spisu treści:

Raspberry Pi Planet Finder: 14 kroków (ze zdjęciami)
Raspberry Pi Planet Finder: 14 kroków (ze zdjęciami)

Wideo: Raspberry Pi Planet Finder: 14 kroków (ze zdjęciami)

Wideo: Raspberry Pi Planet Finder: 14 kroków (ze zdjęciami)
Wideo: Tworzenie Domowego Systemu Monitoringu: Raspberry Pi, Serwer Shinobi i Kamery IP Za Darmo! Timelaps 2024, Listopad
Anonim
Image
Image
Czego potrzebujesz
Czego potrzebujesz

Na zewnątrz Centrum Nauki w moim mieście znajduje się duża metalowa konstrukcja, która może obracać się i wskazywać miejsca, w których znajdowały się planety na niebie. Nigdy nie widziałem, jak to działa, ale zawsze myślałem, że byłoby magiczne wiedzieć, gdzie tak naprawdę są te nieosiągalne inne światy w stosunku do mojego maleńkiego ja.

Kiedy niedawno przechodziłem obok tej dawno martwej wystawy, pomyślałem: „Założę się, że dam radę” i tak też zrobiłem!

To jest przewodnik, jak zrobić Wyszukiwarkę Planet (z Księżycem), abyś Ty również wiedział, gdzie szukać, gdy czujesz się zachwycony kosmosem.

Krok 1: Czego potrzebujesz

Czego potrzebujesz
Czego potrzebujesz

1 x Raspberry Pi (wersja 3 lub wyższa dla wbudowanego Wi-Fi)

1 x ekran LCD (16 x 2) (w ten sposób)

2 x silniki krokowe ze sterownikami (28-BYJ48) (jak te)

3 x przyciski (takie jak te)

2 x Łączniki kołnierzowe (takie jak te)

1 x kompas guzikowy (w ten sposób)

8 x śruby i nakrętki M3

Części drukowane w 3D do obudowy i teleskopu

Krok 2: Współrzędne planetarne

Współrzędne planetarne
Współrzędne planetarne

Istnieje kilka różnych sposobów opisywania położenia obiektów astronomicznych na niebie.

Dla nas najbardziej sensowny jest układ współrzędnych poziomych, jak pokazano na powyższym obrazku. Ten obraz pochodzi ze strony Wikipedii, do której link znajduje się tutaj:

en.wikipedia.org/wiki/Horizontal_coordinat…

Układ współrzędnych horyzontalnych podaje kąt od północy (azymut) i w górę od horyzontu (wysokość), więc różni się w zależności od tego, z którego miejsca na świecie patrzysz. Więc nasza wyszukiwarka planet musi brać pod uwagę lokalizację i mieć jakiś sposób na znalezienie północy, aby być punktem odniesienia.

Zamiast próbować obliczyć wysokość i azymut, które zmieniają się wraz z czasem i lokalizacją, użyjemy połączenia Wi-Fi na pokładzie Raspberry Pi, aby wyszukać te dane z NASA. Śledzą tego typu rzeczy, więc nie musimy;)

Krok 3: Dostęp do danych planety

Pobieramy nasze dane z NASA Jet Propulsion Laboratory (JPL) -

Aby uzyskać dostęp do tych danych, korzystamy z biblioteki AstroQuery, która jest zestawem narzędzi do przeszukiwania astronomicznych formularzy internetowych i baz danych. Dokumentację tej biblioteki można znaleźć tutaj:

Jeśli to Twój pierwszy projekt Raspberry Pi, zacznij od tego przewodnika konfiguracji:

Jeśli używasz Raspbian na swoim Raspberry Pi (będziesz, jeśli postępujesz zgodnie z powyższym przewodnikiem), to masz już zainstalowany python3, upewnij się, że masz zainstalowaną najnowszą wersję (używam wersji 3.7.3). Musimy to wykorzystać, aby uzyskać pip. Otwórz terminal i wpisz:

sudo apt zainstaluj python3-pip

Następnie możemy użyć pip do zainstalowania zaktualizowanej wersji astroquery.

pip3 install --pre --upgrade astroquery

Zanim przejdziesz do dalszej części tego projektu, spróbuj uzyskać dostęp do tych danych za pomocą prostego skryptu Pythona, aby upewnić się, że wszystkie właściwe zależności zostały poprawnie zainstalowane.

z astroquery.jplhorizons import Horizons

mars = Horizons(id=499, location='000', epochs=Brak, id_type='majorbody') eph = mars.ephemerides() print(eph)

Powinno to pokazać szczegóły lokalizacji Marsa!

Możesz sprawdzić, czy te dane są prawidłowe, korzystając z tej witryny, aby sprawdzić pozycje planet na żywo:

Aby nieco podzielić to zapytanie, id to liczba powiązana z Marsem w danych JPL, epoki to czas, z którego chcemy uzyskać dane (Brak oznacza teraz), a id_type pyta o główne ciała Układu Słonecznego. Lokalizacja jest obecnie ustawiona na Wielką Brytanię, ponieważ „000” to kod lokalizacji obserwatorium w Greenwich. Inne lokalizacje można znaleźć tutaj:

Rozwiązywanie problemów:

Jeśli pojawi się błąd: Brak modułu o nazwie „keyring.util.escape”

wypróbuj następujące polecenie w terminalu:

pip3 install --upgrade keyrings.alt

Krok 4: Kod

Do tego kroku dołączony jest pełny skrypt Pythona użyty w tym projekcie.

Aby znaleźć prawidłowe dane dla swojej lokalizacji, przejdź do funkcji getPlanetInfo i zmień lokalizację korzystając z listy obserwatoriów w poprzednim kroku.

def getPlanetInfo(planeta):

obj = Horizons(id=planeta, location='000', epoki=Brak, id_type='majorbody') eph = obj.ephemerides() return eph

Krok 5: Podłączanie sprzętu

Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu
Podłączanie sprzętu

Za pomocą płytek stykowych i przewodów połączeniowych połącz dwa silniki krokowe, ekran LCD i trzy przyciski, jak pokazano na schemacie powyżej.

Aby dowiedzieć się, jaki numer ma piny na twoim Raspberry Pi, przejdź do terminala i wpisz

pinout

Powinno to pokazać powyższy obrazek wraz z numerami GPIO i numerami płyt. Używamy numerów płytek, aby określić, które piny są używane w kodzie, więc będę odwoływał się do numerów w nawiasach.

Jako pomoc w schemacie obwodu, oto styki, które są połączone z każdą częścią:

1. silnik krokowy - 7, 11, 13, 15

Drugi silnik krokowy - 40, 38, 36, 32

Przycisk 1 - 33

Przycisk 2 - 37

Przycisk 3 - 35

Ekran LCD - 26, 24, 22, 18, 16, 12

Kiedy wszystko jest połączone, uruchom skrypt Pythona

python3 planetFinder.py

i powinieneś zobaczyć ekran pokazujący tekst konfiguracji, a przyciski powinny poruszać silnikami krokowymi.

Krok 6: Projektowanie obudowy

Projektowanie obudowy
Projektowanie obudowy
Projektowanie obudowy
Projektowanie obudowy
Projektowanie obudowy
Projektowanie obudowy

Etui zostało zaprojektowane do łatwego drukowania 3D. Rozpada się na oddzielne części, które są następnie sklejane po zabezpieczeniu elektroniki.

Otwory są dopasowane do przycisków, których użyłem i śrub M3.

Wydrukowałem teleskop w częściach i skleiłem je później, aby uniknąć zbyt dużej konstrukcji nośnej.

Do tego kroku dołączone są pliki STL.

Krok 7: Testowanie wydruków

Testowanie wydruków
Testowanie wydruków
Testowanie wydruków
Testowanie wydruków
Testowanie wydruków
Testowanie wydruków
Testowanie wydruków
Testowanie wydruków

Gdy wszystko zostanie wydrukowane, upewnij się, że wszystko dokładnie do siebie pasuje przed zakończeniem klejenia.

Dopasuj przyciski na miejscu i zabezpiecz ekran i silniki krokowe śrubami M3 i spraw, aby wszystko dobrze się poruszało. Spiłuj wszelkie szorstkie krawędzie, aby wszystko ponownie rozebrać przed następnym krokiem.

Krok 8: Wydłużenie silnika krokowego

Przedłużanie silnika krokowego
Przedłużanie silnika krokowego
Przedłużanie silnika krokowego
Przedłużanie silnika krokowego
Przedłużanie silnika krokowego
Przedłużanie silnika krokowego

Silnik krokowy, który będzie sterował kątem podniesienia teleskopu, będzie znajdował się nad obudową główną i potrzebuje trochę luzu na przewodach, aby się obracać. Przewody należy przedłużyć, przecinając je między stepperem a płytką sterowniczą i lutując między nimi nowy odcinek drutu.

Włożyłem nowy drut do wieży nośnej za pomocą kawałka nici, aby go przeciągnąć, ponieważ drut, którego używam, jest dość sztywny i ciągle się zacina. Po przejściu można go przylutować do silnika krokowego, upewniając się, który kolor jest podłączony, aby ponownie podłączyć właściwe na drugim końcu. Nie zapomnij o dodaniu koszulki termokurczliwej do przewodów!

Po przylutowaniu uruchom skrypt Pythona, aby sprawdzić, czy wszystko nadal działa, a następnie wepchnij przewody z powrotem w dół rury, aż silnik krokowy znajdzie się na swoim miejscu. Następnie można go przymocować do obudowy silnika krokowego za pomocą śrub i nakrętek M3 przed przyklejeniem tylnej części obudowy.

Krok 9: Zamontuj przyciski i ekran LCD

Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD
Przyciski montażowe i ekran LCD

Włóż przyciski i dokręć nakrętki, aby zabezpieczyć je na miejscu przed lutowaniem. Lubię używać wspólnego przewodu uziemiającego, który biegnie między nimi, aby zachować porządek.

Zabezpiecz ekran LCD śrubami M3 i nakrętkami. LCD chce mieć potencjometr na jednym ze swoich pinów, który też na tym etapie wlutowałem.

Przetestuj kod ponownie! Upewnij się, że wszystko nadal działa, zanim wszystko skleimy, ponieważ na tym etapie jest to znacznie łatwiejsze do naprawienia.

Krok 10: Dodawanie kołnierzy

Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy
Dodawanie kołnierzy

Aby połączyć drukowane części 3D z silnikami krokowymi, używamy sprzęgła kołnierzowego 5 mm, które jest mocowane na górze końca silnika krokowego i jest utrzymywane na miejscu za pomocą maleńkich śrub.

Jeden kołnierz jest przyklejony do podstawy obrotowej wieży, a drugi do teleskopu.

Mocowanie teleskopu do silnika na szczycie obrotowej wieży jest proste, ponieważ jest dużo miejsca, aby uzyskać dostęp do małych śrub mocujących go na miejscu. Drugi kołnierz jest trudniejszy do zamocowania, ale jest wystarczająco dużo szczeliny między główną obudową a podstawą obrotowej wieży, aby zmieścić mały klucz imbusowy i dokręcić śrubę.

Przetestuj ponownie!

Teraz wszystko powinno działać tak, jak będzie w stanie końcowym. Jeśli tak nie jest, nadszedł czas, aby naprawić błędy i upewnić się, że wszystkie połączenia są bezpieczne. Upewnij się, że odsłonięte przewody nie stykają się ze sobą, owiń taśmą elektryczną i załataj wszystkie miejsca, które mogą powodować problem.

Krok 11: Uruchom przy starcie

Zamiast uruchamiać kod ręcznie za każdym razem, gdy chcemy znaleźć planetę, chcemy, aby działał jako samodzielny eksponat, więc ustawimy go tak, aby uruchamiał nasz kod za każdym razem, gdy włącza się Raspberry Pi.

W terminalu wpisz

crontab -e

W pliku, który się otworzy, dodaj następujące na końcu pliku, a następnie nową linię.

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

Mam mój kod zapisany w folderze o nazwie PlanetFinder, więc /home/pi/PlanetFinder/planetFinder.py to lokalizacja mojego pliku. Jeśli twój jest zapisany w innym miejscu, zmień go tutaj.

Znak & na końcu jest ważny, ponieważ pozwala kodowi działać w tle, więc nie wstrzymuje innych procesów, które również zachodzą podczas rozruchu.

Krok 12: Sklej wszystko razem

Sklej to wszystko razem!
Sklej to wszystko razem!
Sklej to wszystko razem!
Sklej to wszystko razem!

Wszystko, co nie jest jeszcze przyklejone, powinno być teraz naprawione.

Na koniec dodaj mały kompas na środku obrotowej podstawy.

Krok 13: Użycie

Stosowanie
Stosowanie

Gdy Planet Finder włączy się, poprosi użytkownika o dostosowanie osi pionowej. Naciskanie przycisków góra i dół przesunie teleskop, spróbuj ustawić go w poziomie, wskazując w prawo, a następnie naciśnij przycisk ok (na dole).

Następnie użytkownik zostanie poproszony o dostosowanie obrotu, użyj przycisków, aby obrócić teleskop, aż będzie wskazywał północ zgodnie z małym kompasem, a następnie naciśnij OK.

Możesz teraz przełączać się między planetami za pomocą przycisków góra/dół i wybrać tę, którą chcesz znaleźć za pomocą przycisku OK. Wyświetli wysokość i azymut planety, a następnie skieruje się na nią przez kilka sekund, zanim odwróci się w stronę północy.

Krok 14: Zakończono

Skończone
Skończone

Wszystko gotowe!

Ciesz się wiedząc, gdzie są wszystkie planety:)

Kosmiczne wyzwanie
Kosmiczne wyzwanie
Kosmiczne wyzwanie
Kosmiczne wyzwanie

Pierwsza nagroda w kosmicznym wyzwaniu

Zalecana: