Inhoudsopgave:

Raspberry Pi Planet Finder - Ajarnpa
Raspberry Pi Planet Finder - Ajarnpa

Video: Raspberry Pi Planet Finder - Ajarnpa

Video: Raspberry Pi Planet Finder - Ajarnpa
Video: Automated #RaspberryPi Planet Tracking GOTO Telescope 2024, November
Anonim
Image
Image
Wat je nodig hebt
Wat je nodig hebt

Buiten het Science Center in mijn stad staat een grote metalen constructie die kan draaien en wijzen naar waar de planeten aan de hemel stonden. Ik heb het nooit zien werken, maar ik heb altijd gedacht dat het magisch zou zijn om te weten waar deze onbereikbare andere werelden eigenlijk waren in relatie tot mijn kleine zelf.

Toen ik onlangs langs deze lang geleden overleden tentoonstelling liep, dacht ik: "Ik wed dat ik dat kan maken" en dat deed ik!

Dit is een handleiding voor het maken van de Planet Finder (met de maan), zodat ook jij weet waar je moet kijken als je onder de indruk bent van de ruimte.

Stap 1: Wat je nodig hebt

Wat je nodig hebt
Wat je nodig hebt

1 x Raspberry Pi (versie 3 of hoger voor wifi aan boord)

1 x LCD-scherm (16 x 2) (zoals deze)

2 x Stappenmotoren met drivers (28-BYJ48) (zoals deze)

3 x drukknoppen (zoals deze)

2 x flenskoppelingen (zoals deze)

1 x knopkompas (zoals deze)

8 x M3 bouten en moeren

3D-geprinte onderdelen voor de behuizing en telescoop

Stap 2: Planetaire coördinaten

Planetaire coördinaten
Planetaire coördinaten

Er zijn een paar verschillende manieren om te beschrijven waar astronomische objecten zich aan de hemel bevinden.

Voor ons is het horizontale coördinatensysteem het meest logisch om te gebruiken, zoals weergegeven in de afbeelding hierboven. Deze afbeelding is van de Wikipedia-pagina die hier is gelinkt:

en.wikipedia.org/wiki/Horizontal_coordinat…

Het horizontale coördinatensysteem geeft je een hoek vanuit het noorden (de azimut) en omhoog vanaf de horizon (de hoogte), dus het verschilt afhankelijk van waar je in de wereld kijkt. Dus onze planeetzoeker moet rekening houden met de locatie en een manier hebben om het noorden als referentie te vinden.

In plaats van te proberen de hoogte en azimut te berekenen die veranderen met tijd en locatie, zullen we de wifi-verbinding aan boord van de Raspberry Pi gebruiken om deze gegevens van NASA op te zoeken. Ze houden dit soort dingen bij, zodat wij dat niet hoeven te doen;)

Stap 3: Toegang tot planeetgegevens

We krijgen onze gegevens van het NASA Jet Propulsion Laboratory (JPL) -

Om toegang te krijgen tot deze gegevens, gebruiken we een bibliotheek genaamd AstroQuery, een set tools voor het doorzoeken van astronomische webformulieren en databases. De documentatie voor deze bibliotheek is hier te vinden:

Als dit je eerste Raspberry Pi-project is, begin dan met het volgen van deze installatiehandleiding:

Als je Raspbian op je Raspberry Pi gebruikt (als je de bovenstaande gids volgt), dan heb je python3 al geïnstalleerd, zorg ervoor dat je de meest recente versie hebt geïnstalleerd (ik gebruik versie 3.7.3). We moeten dit gebruiken om pip te krijgen. Open een terminal en typ het volgende:

sudo apt install python3-pip

We kunnen dan pip gebruiken om de verbeterde versie van astroquery te installeren.

pip3 install --pre --upgrade astroquery

Probeer, voordat u verdergaat met de rest van dit project, toegang te krijgen tot deze gegevens met een eenvoudig Python-script om er zeker van te zijn dat alle juiste afhankelijkheden correct zijn geïnstalleerd.

van astroquery.jplhorizons import Horizons

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

Dit zou je de details van de locatie van Mars moeten laten zien!

U kunt controleren of deze gegevens juist zijn door deze site te gebruiken om live planeetposities op te zoeken:

Om deze vraag een beetje op te splitsen, de id is het nummer dat is gekoppeld aan Mars in de gegevens van JPL, tijdperken is de tijd waarvan we de gegevens willen hebben (Geen betekent nu) en id_type vraagt naar de belangrijkste lichamen van het zonnestelsel. De locatie is momenteel ingesteld op het VK, aangezien '000' de locatiecode is voor het observatorium in Greenwich. Andere locaties zijn hier te vinden:

Probleemoplossen:

Als u de foutmelding krijgt: Geen module met de naam 'keyring.util.escape'

probeer het volgende commando in de terminal:

pip3 install --upgrade keyrings.alt

Stap 4: Coderen

Aan deze stap is het volledige python-script toegevoegd dat in dit project wordt gebruikt.

Om de juiste gegevens voor uw locatie te vinden, gaat u naar de functie getPlanetInfo en wijzigt u de locatie met behulp van de lijst met observatoria in de vorige stap.

def getPlanetInfo(planeet):

obj = Horizons(id=planeet, locatie='000', epochs=Geen, id_type='majorbody') eph = obj.ephemerides() return eph

Stap 5: Hardware aansluiten

Hardware aansluiten
Hardware aansluiten
Hardware aansluiten
Hardware aansluiten
Hardware aansluiten
Hardware aansluiten

Gebruik breadboards en jumperdraden om twee stappenmotoren, het LCD-scherm en drie knoppen aan te sluiten zoals weergegeven in het bovenstaande schakelschema.

Om erachter te komen welk nummer de pinnen op je Raspberry Pi zijn, ga naar de terminal en typ

pinout

Dit zou u de bovenstaande afbeelding moeten tonen, compleet met GPIO-nummers en bordnummers. We gebruiken bordnummers om te definiëren welke pinnen in de code worden gebruikt, dus ik zal verwijzen naar de cijfers tussen haakjes.

Als hulpmiddel bij het schakelschema zijn hier de pinnen die op elk onderdeel zijn aangesloten:

1e Stappenmotor - 7, 11, 13, 15

2e Stappenmotor - 40, 38, 36, 32

Knop1 - 33

Knop2 - 37

Knop3 - 35

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

Als dit allemaal verbonden is, voer je het python-script uit

python3 planetFinder.py

en je zou op het scherm setup-tekst moeten zien en de knoppen zouden de stappenmotoren moeten bewegen.

Stap 6: De behuizing ontwerpen

De behuizing ontwerpen
De behuizing ontwerpen
De behuizing ontwerpen
De behuizing ontwerpen
De behuizing ontwerpen
De behuizing ontwerpen

De hoes is ontworpen om gemakkelijk 3D-geprint te kunnen worden. Het valt uiteen in afzonderlijke delen die vervolgens aan elkaar worden gelijmd zodra de elektronica op zijn plaats is vastgezet.

Gaten zijn op maat gemaakt voor de knoppen die ik heb gebruikt en M3-bouten.

Ik heb de telescoop in delen geprint en later aan elkaar gelijmd om te veel draagstructuur te voorkomen.

STL-bestanden zijn bij deze stap gevoegd.

Stap 7: De afdrukken testen

De afdrukken testen
De afdrukken testen
De afdrukken testen
De afdrukken testen
De afdrukken testen
De afdrukken testen
De afdrukken testen
De afdrukken testen

Zodra alles is afgedrukt, moet u ervoor zorgen dat alles goed op elkaar past voordat u gaat lijmen.

Plaats de knoppen op hun plaats en zet het scherm en de stappenmotoren vast met M3-bouten en laat alles goed wiebelen. Vijl eventuele ruwe randen weg en haal alles weer uit elkaar voor de volgende stap.

Stap 8: De stappenmotor verlengen

De stappenmotor verlengen
De stappenmotor verlengen
De stappenmotor verlengen
De stappenmotor verlengen
De stappenmotor verlengen
De stappenmotor verlengen

De stappenmotor die de elevatiehoek van de telescoop regelt, zit boven de hoofdbehuizing en heeft wat speling in de draden nodig om te kunnen draaien. De draden moeten worden verlengd door ze tussen de stepper en het driverbord door te knippen en ertussen een nieuw stuk draad te solderen.

Ik heb de nieuwe draad in de ondersteunende toren gestoken met behulp van een stuk draad om hem erdoorheen te halen, omdat de draad die ik gebruik vrij stijf is en steeds vast komt te zitten. Eenmaal door het kan worden gesoldeerd aan de stappenmotor, zorg ervoor dat u bijhoudt welke kleur is aangesloten om de juiste aan het andere uiteinde opnieuw te bevestigen. Vergeet niet om krimpkous aan de draden toe te voegen!

Eenmaal gesoldeerd, voert u het python-script uit om te controleren of alles nog werkt, en duwt u vervolgens de draden terug door de buis totdat de stappenmotor op zijn plaats zit. Het kan dan met M3-bouten en moeren aan het stappenmotorhuis worden bevestigd voordat de achterkant van het huis wordt vastgelijmd.

Stap 9: Monteer de knoppen en het LCD-scherm

Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm
Bevestigingsknoppen en LCD-scherm

Plaats de knoppen en draai de moeren vast om ze op hun plaats te bevestigen voordat u gaat solderen. Ik gebruik graag een gemeenschappelijke aardedraad die ertussen loopt voor netheid.

Zet het LCD-scherm vast met M3-bouten en moeren. De LCD wil een potentiometer op een van zijn pinnen die ik ook in deze fase heb gesoldeerd.

Test de code opnieuw! Zorg ervoor dat alles nog werkt voordat we alles aan elkaar lijmen, omdat het in dit stadium veel gemakkelijker te repareren is.

Stap 10: Flenzen toevoegen

Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen
Flenzen toevoegen

Om de 3D-geprinte onderdelen met de stappenmotoren te verbinden, gebruiken we een 5 mm flenskoppeling die bovenop het uiteinde van de stappenmotor past en op zijn plaats wordt gehouden door kleine schroeven.

Een flens is vastgelijmd aan de basis van de roterende toren en de andere aan de telescoop.

Het bevestigen van de telescoop aan de motor bovenop de roterende toren is eenvoudig omdat er veel ruimte is om toegang te krijgen tot de kleine schroeven die hem op zijn plaats houden. De andere flens is moeilijker vast te zetten, maar er is voldoende ruimte tussen de hoofdbehuizing en de basis van de roterende toren om een kleine inbussleutel te plaatsen en de schroef vast te draaien.

Nog een keer testen!

Nu zou alles moeten werken zoals het in zijn definitieve staat zal zijn. Als dat niet het geval is, is het nu het moment om de bug op te lossen en ervoor te zorgen dat alle verbindingen veilig zijn. Zorg ervoor dat blootliggende draden elkaar niet raken, ga rond met elektrische tape en patch alle plaatsen die een probleem kunnen veroorzaken.

Stap 11: Uitvoeren bij opstarten

In plaats van de code elke keer handmatig uit te voeren als we een planeet willen vinden, willen we dat dit als een op zichzelf staande tentoonstelling wordt uitgevoerd, dus we gaan het instellen om onze code uit te voeren wanneer de Raspberry Pi wordt ingeschakeld.

Typ in de terminal

crontab -e

Voeg in het geopende bestand het volgende toe aan het einde van het bestand, gevolgd door een nieuwe regel.

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

Ik heb mijn code opgeslagen in een map genaamd PlanetFinder, dus /home/pi/PlanetFinder/planetFinder.py is de locatie van mijn bestand. Als de uwe ergens anders is opgeslagen, moet u deze hier wijzigen.

De & aan het einde is belangrijk omdat het de code op de achtergrond laat draaien, zodat het geen andere processen tegenhoudt die ook tijdens het opstarten plaatsvinden.

Stap 12: Lijm het allemaal samen

Lijm het allemaal samen!
Lijm het allemaal samen!
Lijm het allemaal samen!
Lijm het allemaal samen!

Alles wat nog niet op zijn plaats is gelijmd, moet nu worden vastgezet.

Voeg ten slotte het kleine kompas toe aan het midden van de roterende basis.

Stap 13: Gebruik

Gebruik
Gebruik

Wanneer de Planet Finder wordt ingeschakeld, wordt de gebruiker gevraagd de verticale as aan te passen. Als u op de knoppen omhoog en omlaag drukt, beweegt de telescoop, probeert u deze waterpas te zetten, wijst naar rechts en drukt u vervolgens op de ok-knop (onderaan).

De gebruiker wordt dan gevraagd om de rotatie aan te passen, gebruik de knoppen om de telescoop te draaien totdat deze naar het noorden wijst volgens het kleine kompas en druk vervolgens op ok.

Je kunt nu door planeten bladeren met de omhoog/omlaag-knoppen en er een selecteren die je wilt vinden met de ok-knop. Het zal de hoogte en azimut van de planeet weergeven en er vervolgens een paar seconden naar wijzen voordat het terugkeert naar het noorden.

Stap 14: Klaar

Afgewerkt
Afgewerkt

Helemaal klaar!

Geniet ervan te weten waar alle planeten zijn:)

Ruimte-uitdaging
Ruimte-uitdaging
Ruimte-uitdaging
Ruimte-uitdaging

Eerste prijs in de Space Challenge

Aanbevolen: