Cuprins:

Raspberry Pi Planet Finder: 14 pași (cu imagini)
Raspberry Pi Planet Finder: 14 pași (cu imagini)
Anonim
Image
Image
De ce ai nevoie
De ce ai nevoie

În afara Centrului de Științe din orașul meu există o structură metalică mare care ar putea să se întoarcă și să indice locul unde planetele erau pe cer. Nu l-am văzut niciodată funcționând, dar m-am gândit întotdeauna că ar fi magic să știu unde se află de fapt aceste alte lumi inaccesibile în raport cu sinele meu mic.

Când am trecut recent pe lângă această expoziție moartă de mult, m-am gândit „pariez că aș putea face asta” și așa am făcut!

Acesta este un ghid despre cum să faci Planet Finder (care prezintă Luna), astfel încât să știi și tu unde să te uiți când te simți uimit de spațiu.

Pasul 1: De ce aveți nevoie

De ce ai nevoie
De ce ai nevoie

1 x Raspberry Pi (versiunea 3 sau o versiune ulterioară pentru WiFi la bord)

1 x ecran LCD (16 x 2) (ca acesta)

2 x motoare pas cu pas cu drivere (28-BYJ48) (ca acestea)

3 x butoane push (ca acestea)

2 x cuplaje cu flanșă (ca acestea)

1 x busolă cu butoane (ca aceasta)

8 x șuruburi și piulițe M3

Piese imprimate 3D pentru carcasă și telescop

Pasul 2: Coordonatele planetare

Coordonatele planetare
Coordonatele planetare

Există câteva moduri diferite de a descrie unde se află obiectele astronomice pe cer.

Pentru noi, cel care are cel mai mult sens de utilizat este sistemul de coordonate orizontale, așa cum se arată în imaginea de mai sus. Această imagine este de pe pagina Wikipedia legată aici:

en.wikipedia.org/wiki/Horizontal_coordinat…

Sistemul de coordonate orizontale vă oferă un unghi față de nord (azimut) și în sus față de orizont (altitudine), deci este diferit în funcție de locul în care vă uitați în lume. Așadar, căutătorul nostru de planete trebuie să țină cont de locație și să aibă o modalitate de a găsi Nordul pentru a fi o referință.

În loc să încercăm să calculăm altitudinea și azimutul care se schimbă cu timpul și locația, vom folosi conexiunea wifi de la bordul Raspberry Pi pentru a căuta aceste date de la NASA. Ei țin evidența acestui tip de lucruri, astfel încât să nu avem nevoie;)

Pasul 3: Accesarea datelor Planet

Primim datele noastre de la NASA Jet Propulsion Laboratory (JPL) -

Pentru a accesa aceste date, utilizăm o bibliotecă numită AstroQuery, care este un set de instrumente pentru interogarea formularelor web astronomice și a bazelor de date. Documentația pentru această bibliotecă se găsește aici:

Dacă acesta este primul dvs. proiect Raspberry Pi, începeți urmând acest ghid de configurare:

Dacă utilizați Raspbian pe Raspberry Pi (veți fi dacă ați urmat ghidul de mai sus), atunci aveți deja instalat python3, asigurați-vă că aveți instalată cea mai recentă versiune (folosesc versiunea 3.7.3). Trebuie să folosim acest lucru pentru a obține pip. Deschideți un terminal și tastați următoarele:

sudo apt instalează python3-pip

Putem apoi folosi pip pentru a instala versiunea actualizată a astroquery.

pip3 install --pre --upgrade astroquery

Înainte de a continua cu restul acestui proiect, încercați să accesați aceste date cu un script Python simplu pentru a vă asigura că toate dependențele potrivite au fost instalate corect.

din astroquery.jplhorizons import Horizons

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

Acest lucru ar trebui să vă arate detaliile locației Marte!

Puteți verifica dacă aceste date sunt corecte folosind acest site pentru a căuta pozițiile planetei în direct:

Pentru a descompune puțin această interogare, ID-ul este numărul asociat cu Marte în datele JPL, epocile sunt timpul din care dorim datele (Niciuna nu înseamnă acum) și id_type cere corpurile majore ale sistemului solar. Locația este în prezent setată la Marea Britanie, deoarece „000” este codul de locație pentru observatorul din Greenwich. Alte locații pot fi găsite aici:

Depanare:

Dacă primiți eroarea: Niciun modul numit „keyring.util.escape”

încercați următoarea comandă în terminal:

pip3 install --upgrade keyrings.alt

Pasul 4: Cod

La acest pas este atașat scriptul complet Python utilizat în acest proiect.

Pentru a găsi datele corecte pentru locația dvs., accesați funcția getPlanetInfo și modificați locația utilizând lista de observatoare din pasul anterior.

def getPlanetInfo (planeta):

obj = Horizons (id = planet, location = '000', epochs = None, id_type = 'majorbody') eph = obj.ephemerides () return eph

Pasul 5: Conectarea hardware-ului

Conectarea hardware-ului
Conectarea hardware-ului
Conectarea hardware-ului
Conectarea hardware-ului
Conectarea hardware-ului
Conectarea hardware-ului

Utilizând panouri și fire jumper, conectați două motoare pas cu pas, ecranul LCD și trei butoane așa cum se arată în schema de circuit de mai sus.

Pentru a afla ce număr sunt pinii de pe Raspberry Pi, accesați terminalul și tastați

pinout

Aceasta ar trebui să vă arate imaginea de mai sus, completată cu numerele GPIO și numerele de bord. Folosim numerele de bord pentru a defini care sunt pinii utilizați în cod, așa că voi face referință la numerele dintre paranteze.

Ca un ajutor pentru schema circuitului, iată pinii care sunt conectați la fiecare parte:

Primul motor pas cu pas - 7, 11, 13, 15

Al doilea motor pas cu pas - 40, 38, 36, 32

Butonul 1 - 33

Buton2 - 37

Butonul 3 - 35

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

Când totul este conectat, rulați scriptul python

python3 planetFinder.py

și ar trebui să vedeți ecranul afișând textul de configurare și butoanele ar trebui să deplaseze motoarele pas cu pas.

Pasul 6: Proiectarea carcasei

Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei
Proiectarea carcasei

Carcasa a fost concepută pentru a fi imprimată 3D cu ușurință. Se descompune în părți separate care sunt apoi lipite împreună odată ce dispozitivele electronice au fost fixate în poziție.

Găurile sunt dimensionate pentru butoanele pe care le-am folosit și șuruburile M3.

Am tipărit telescopul în părți și le-am lipit mai târziu pentru a evita o structură de sprijin prea mare.

Fișierele STL sunt atașate la acest pas.

Pasul 7: Testarea tipăriturilor

Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor
Testarea tipăriturilor

Odată ce totul este tipărit, asigurați-vă că totul se potrivește strâns înainte de a face orice lipire.

Puneți butoanele în poziție și fixați ecranul și motoarele pas cu pas cu șuruburi M3 și dați totul la o mișcare bună. Îndepărtați orice margini aspre îndepărtați totul din nou înainte de pasul următor.

Pasul 8: Extinderea motorului pas cu pas

Extinderea motorului pas cu pas
Extinderea motorului pas cu pas
Extinderea motorului pas cu pas
Extinderea motorului pas cu pas
Extinderea motorului pas cu pas
Extinderea motorului pas cu pas

Motorul pas cu pas care va controla unghiul de înălțare al telescopului va sta deasupra carcasei principale și are nevoie de o slăbire a firelor pentru a se roti. Sârmele trebuie extinse prin tăierea acestora între trepte și placa driverului și lipirea unei noi lungimi de sârmă între ele.

Am introdus noul fir în turnul de susținere folosind o bucată de fir pentru a-l ajuta să-l coaxionez, deoarece firul pe care îl folosesc este destul de rigid și s-a blocat în continuare. Odată trecut, acesta poate fi lipit la motorul pas cu pas, asigurându-vă că țineți evidența culorii conectate pentru a le reatașa pe cele potrivite la celălalt capăt. Nu uitați să adăugați termocontractor la fire!

Odată lipit, rulați scriptul Python pentru a verifica dacă tot funcționează, apoi împingeți firele înapoi în jos până când motorul pas cu pas este în poziție. Apoi poate fi atașat la carcasa motorului pas cu pas cu șuruburi și piulițe M3 înainte ca partea din spate a carcasei să fie lipită în poziție.

Pasul 9: Montați butoanele și ecranul LCD

Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD
Butoane de montare și ecran LCD

Introduceți butoanele și strângeți piulițele pentru a le fixa înainte de lipire. Îmi place să folosesc un fir comun de masă care rulează între ele pentru a fi îngrijit.

Fixați ecranul LCD cu șuruburi și piulițe M3. LCD-ul dorește un potențiometru pe unul dintre acei pini pe care i-am lipit și în această etapă.

Testați din nou codul! Asigurați-vă că totul funcționează încă înainte de a lipi totul împreună, deoarece este mult mai ușor de remediat în acest stadiu.

Pasul 10: Adăugarea flanșelor

Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor
Adăugarea flanșelor

Pentru a conecta piesele imprimate 3D la motoarele pas cu pas, folosim un cuplaj cu flanșă de 5 mm care se potrivește deasupra capătului motorului pas cu pas și este ținut în poziție de șuruburi mici.

O flanșă este lipită de baza turnului rotativ și cealaltă de telescop.

Atașarea telescopului la motorul de deasupra turnului rotativ este simplă, deoarece există mult spațiu pentru a accesa șuruburile mici care îl țin în poziție. Cealaltă flanșă este mai greu de fixat, dar există suficient spațiu între carcasa principală și baza turnului rotativ pentru a se potrivi cu o mică cheie Allen și a strânge șurubul.

Testează din nou!

Acum totul ar trebui să funcționeze așa cum va fi în starea sa finală. În caz contrar, este momentul să remediați erorile și să vă asigurați că conexiunile sunt sigure. Asigurați-vă că firele expuse nu se ating unul de celălalt, rotiți cu bandă electrică și fixați orice locuri care ar putea cauza o problemă.

Pasul 11: Rulați la pornire

În loc să rulăm manual codul de fiecare dată când dorim să găsim o planetă, dorim ca aceasta să ruleze ca o expoziție autonomă, așa că o vom configura pentru a rula codul nostru ori de câte ori Raspberry Pi pornește.

În terminal, tastați

crontab -e

În fișierul care se deschide, adăugați următoarele la sfârșitul fișierului, urmat de o nouă linie.

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

Am codul salvat într-un folder numit PlanetFinder, deci /home/pi/PlanetFinder/planetFinder.py este locația fișierului meu. Dacă a ta este salvată în altă parte, asigură-te că o schimbi aici.

& La sfârșit este important deoarece lasă codul să ruleze în fundal, deci nu reține alte procese care se întâmplă și în boot.

Pasul 12: lipiți totul împreună

Lipiți totul împreună!
Lipiți totul împreună!
Lipiți totul împreună!
Lipiți totul împreună!

Tot ceea ce nu este deja lipit pe loc ar trebui acum fixat.

În cele din urmă, adăugați compasul mic la mijlocul bazei rotative.

Pasul 13: utilizare

Utilizare
Utilizare

Când Planet Finder pornește, acesta va solicita utilizatorului să regleze axa verticală. Apăsând butoanele în sus și în jos va muta telescopul, încercați să îl atingeți la nivel, arătând spre dreapta, apoi apăsați butonul ok (în partea de jos).

Utilizatorul va fi apoi rugat să regleze rotația, să utilizeze butoanele pentru a roti telescopul până când acesta indică spre nord în funcție de busola mică, apoi apăsați ok.

Acum puteți parcurge planetele folosind butoanele sus / jos și selectați una pe care doriți să o găsiți cu butonul ok. Acesta va afișa altitudinea și azimutul planetei, apoi se va îndrepta spre ea pentru câteva secunde înainte de a se întoarce cu fața spre nord.

Pasul 14: Finalizat

Terminat
Terminat

Totul este gata!

Bucurați-vă să știți unde sunt toate planetele:)

Provocarea spațială
Provocarea spațială
Provocarea spațială
Provocarea spațială

Premiul I în Challenge Spațial

Recomandat: