Kazalo:

Iskalnik planetov Raspberry Pi: 14 korakov (s slikami)
Iskalnik planetov Raspberry Pi: 14 korakov (s slikami)

Video: Iskalnik planetov Raspberry Pi: 14 korakov (s slikami)

Video: Iskalnik planetov Raspberry Pi: 14 korakov (s slikami)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Image
Image
Kaj rabiš
Kaj rabiš

Zunaj Znanstvenega centra v mojem mestu je velika kovinska konstrukcija, ki se lahko obrne in pokaže na mesto, kjer so bili planeti na nebu. Nikoli nisem videl, da deluje, vendar sem vedno mislil, da bi bilo čarobno vedeti, kje so ti nedosegljivi drugi svetovi v resnici v povezavi z mojim drobnim jazom.

Ko sem se pred kratkim sprehodil mimo te davno mrtve razstave, sem pomislil: "Stavim, da bi to lahko naredil", in tako sem tudi naredil!

To je vodnik o tem, kako narediti iskalnik planeta (z Luno), da boste tudi vi vedeli, kje iskati, ko vas občuduje vesolje.

1. korak: Kaj potrebujete

Kaj rabiš
Kaj rabiš

1 x Raspberry Pi (različica 3 ali novejša za vgrajen wifi)

1 x LCD zaslon (16 x 2) (takole)

2 x koračni motorji z gonilniki (28-BYJ48) (kot ti)

3 x gumbi (kot ti)

2 x prirobnične spojke (kot so te)

1 x kompas z gumbi (takole)

8 x vijaki in matice M3

3D natisnjeni deli za ohišje in teleskop

2. korak: Planetarne koordinate

Planetarne koordinate
Planetarne koordinate

Obstaja nekaj različnih načinov opisovanja, kje so astronomski objekti na nebu.

Za nas je najbolj smiselno uporabiti vodoravni koordinatni sistem, kot je prikazano na zgornji sliki. Ta slika je s strani Wikipedia, ki je povezana tukaj:

en.wikipedia.org/wiki/Horizontal_coordinat…

Horizontalni koordinatni sistem vam daje kot od severa (Azimut) in navzgor od obzorja (nadmorska višina), zato se razlikuje glede na to, od kod gledate na svetu. Zato mora naš iskalnik planetov upoštevati lokacijo in imeti referenco na kakšen način, da najde sever.

Namesto da bi poskušali izračunati nadmorsko višino in azimut, ki se spreminjata s časom in lokacijo, bomo za iskanje teh podatkov iz NASA uporabili povezavo wifi na krovu Raspberry Pi. Spremljajo te stvari, zato nam ni treba;)

3. korak: Dostop do podatkov o planetu

Podatke pridobivamo iz NASA -jevega laboratorija za reaktivni pogon (JPL) -

Za dostop do teh podatkov uporabljamo knjižnico AstroQuery, ki je niz orodij za poizvedovanje o astronomskih spletnih obrazcih in bazah podatkov. Dokumentacijo za to knjižnico najdete tukaj:

Če je to vaš prvi projekt Raspberry Pi, začnite s tem priročnikom za nastavitev:

Če uporabljate Raspbian na svojem Raspberry Pi (to boste storili, če boste sledili zgornjemu vodniku), potem že imate nameščen python3, preverite, ali imate nameščeno najnovejšo različico (uporabljam različico 3.7.3). To moramo uporabiti, da dobimo pip. Odprite terminal in vnesite naslednje:

sudo apt namestite python3-pip

Nato lahko uporabimo pip za namestitev nadgrajene različice astroqueryja.

pip3 install --pre --upgrade astroquery

Preden nadaljujete s preostalim delom tega projekta, poskusite dostopati do teh podatkov s preprostim skriptom Python, da se prepričate, da so bile vse prave odvisnosti pravilno nameščene.

iz astroquery.jplhorizons uvoz Horizons

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

To bi vam moralo pokazati podrobnosti o lokaciji Marsa!

Ali so ti podatki pravilni, lahko preverite na tem spletnem mestu za iskanje položajev planetov v živo:

Če želimo to poizvedbo nekoliko razčleniti, je id število, povezano z Marsom v podatkih JPL, epochs je čas, od katerega želimo podatke (Noben trenutno ne pomeni), id_type pa zahteva glavna telesa sončnega sistema. Lokacija je trenutno nastavljena na Združeno kraljestvo, saj je '000' koda lokacije za observatorij v Greenwichu. Druge lokacije najdete tukaj:

Odpravljanje težav:

Če se prikaže napaka: Noben modul z imenom 'keyring.util.escape'

v terminalu poskusite z naslednjim ukazom:

pip3 install --upgrade keyrings.alt

4. korak: Koda

Temu koraku je priložen celoten skript python, uporabljen v tem projektu.

Če želite poiskati pravilne podatke za svojo lokacijo, pojdite na funkcijo getPlanetInfo in spremenite lokacijo s seznamom opazovalnic v prejšnjem koraku.

def getPlanetInfo (planet):

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

5. korak: Priključitev strojne opreme

Povezovanje strojne opreme
Povezovanje strojne opreme
Povezovanje strojne opreme
Povezovanje strojne opreme
Povezovanje strojne opreme
Povezovanje strojne opreme

S ploščami in mostičnimi žicami povežite dva koračna motorja, LCD zaslon in tri gumbe, kot je prikazano na zgornji shemi vezja.

Če želite izvedeti, katere številke so zatiči na vašem Raspberry Pi, pojdite na terminal in vnesite

pinout

To bi vam moralo prikazati zgornjo sliko skupaj s številkami GPIO in številkami plošč. Številke plošč uporabljamo za določanje, kateri zatiči so uporabljeni v kodi, zato se bom skliceval na številke v oklepajih.

Kot pomoč pri diagramu vezja so tukaj zatiči, ki so povezani z vsakim delom:

1. koračni motor - 7, 11, 13, 15

2. koračni motor - 40, 38, 36, 32

Gumb 1 - 33

Gumb 2 - 37

Gumb 3 - 35

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

Ko je vse to povezano, zaženite skript python

python3 planetFinder.py

in na zaslonu bi morali videti besedilo nastavitve, gumbi pa bi morali premikati koračne motorje.

6. korak: Oblikovanje ohišja

Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja
Oblikovanje ohišja

Ohišje je bilo zasnovano za enostavno tiskanje v 3D. Razdeli se na ločene dele, ki se nato zlepijo, ko je elektronika pritrjena.

Velikosti lukenj za gumbe, ki sem jih uporabil, in za vijake M3.

Teleskop sem natisnil na dele in jih pozneje zlepil, da se izognem preveliki podporni strukturi.

Temu koraku so priložene datoteke STL.

7. korak: Preizkus natisov

Testiranje natisov
Testiranje natisov
Testiranje natisov
Testiranje natisov
Testiranje natisov
Testiranje natisov
Testiranje natisov
Testiranje natisov

Ko je vse natisnjeno, se prepričajte, da se vse tesno prilega pred lepljenjem.

Gumbe namestite na svoje mesto in pritrdite zaslon in koračne motorje z vijaki M3 in vse skupaj dobro premikajte. Odstranite vse grobe robove, preden vse razstavite, preden naredite naslednji korak.

8. korak: Podaljšanje koračnega motorja

Podaljšanje koračnega motorja
Podaljšanje koračnega motorja
Podaljšanje koračnega motorja
Podaljšanje koračnega motorja
Podaljšanje koračnega motorja
Podaljšanje koračnega motorja

Koračni motor, ki bo nadziral kot nagiba teleskopa, bo sedel nad glavnim ohišjem in potrebuje nekaj ohlapnosti žic, da se lahko vrti. Žice je treba podaljšati tako, da jih prerežemo med korakom in voznikovo ploščo ter vmes spajkamo novo dolžino žice.

Novo žico sem vstavil v podporni stolp s kosom navoja, da sem jo lažje prebil, saj je žica, ki jo uporabljam, precej trda in se vedno znova zatika. Ko ga prebijete, ga lahko spajkate na koračni motor, pri čemer pazite, da je barva povezana, da na drugo stran znova pritrdite prave. Ne pozabite na žice dodati toplotno skrčljivo!

Ko ste spajkani, zaženite skript python, da preverite, ali vse še deluje, nato pa žice potisnite nazaj po cevi, dokler koračni motor ni na svojem mestu. Nato ga lahko pritrdite na ohišje koračnega motorja z vijaki in maticami M3, preden se zadnja stran ohišja prilepi na svoje mesto.

9. korak: Gumbi za pritrditev in LCD zaslon

Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon
Gumbi za pritrditev in LCD zaslon

Pred spajkanjem vstavite gumbe in privijte matice, da jih pritrdite. Rad uporabljam običajno ozemljitveno žico, ki poteka med njimi zaradi čistega.

Zaslon LCD pritrdite z vijaki in maticami M3. LCD želi potenciometer na enem od svojih zatičev, ki sem jih tudi spajal v tej fazi.

Ponovno preizkusite kodo! Preden lepimo vse skupaj, se prepričajte, da vse še deluje, saj je na tej stopnji veliko lažje popraviti.

10. korak: Dodajanje prirobnic

Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic
Dodajanje prirobnic

Za priključitev 3D tiskanih delov na koračne motorje uporabljamo 5 mm prirobnično sklopko, ki se prilega zgornjemu delu koračnega motorja in je pritrjena z drobnimi vijaki.

Ena prirobnica je prilepljena na dno vrtljivega stolpa, druga pa na teleskop.

Pritrditev teleskopa na motor na vrhu vrtljivega stolpa je preprosta, saj je veliko prostora za dostop do majhnih vijakov, ki ga držijo na mestu. Drugo prirobnico je težje pritrditi, vendar je med glavnim ohišjem in dnom vrtljivega stolpa dovolj prostora, da se prilega majhnemu ključu in privije vijak.

Preizkusite še enkrat!

Zdaj bi moralo vse delovati, kot bo v končnem stanju. Če ni, je zdaj čas, da popravite napake in se prepričate, da so vse povezave varne. Prepričajte se, da se izpostavljene žice ne dotikajo, obkrožite z električnim trakom in zakrpite vsa mesta, ki bi lahko povzročila težave.

11. korak: Zaženi ob zagonu

Namesto da bi kodo izvajali ročno vsakič, ko želimo najti planet, želimo, da se ta izvaja kot samostojna razstava, zato jo bomo nastavili za izvajanje kode, kadar koli se vklopi Raspberry Pi.

V terminal vnesite

crontab -e

V datoteki, ki se odpre, na konec datoteke dodajte naslednje, nato pa novo vrstico.

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

Kodo imam shranjeno v mapi z imenom PlanetFinder, zato je /home/pi/PlanetFinder/planetFinder.py lokacija moje datoteke. Če je vaš shranjen kje drugje, ga spremenite tukaj.

Na koncu je & pomemben, saj omogoča, da se koda izvaja v ozadju, zato ne zadržuje drugih procesov, ki se dogajajo tudi pri zagonu.

Korak: Lepite vse skupaj

Lepite vse skupaj!
Lepite vse skupaj!
Lepite vse skupaj!
Lepite vse skupaj!

Zdaj je treba popraviti vse, kar še ni zlepljeno.

Na koncu dodajte droben kompas na sredino vrtljive podlage.

13. korak: Uporaba

Uporaba
Uporaba

Ko se Finder planeta vklopi, bo uporabnika pozval, naj prilagodi navpično os. S pritiskom gumbov navzgor in navzdol boste teleskop premaknili, ga poskušali poravnati, kazati desno, nato pritisniti gumb ok (na dnu).

Uporabnik bo nato pozvan, da prilagodi vrtenje, z gumbi zavrtite teleskop, dokler ne pokaže proti severu glede na majhen kompas, nato pritisnite ok.

Sedaj lahko premikate planete z gumbi gor/dol in s tipko v redu izberete tistega, ki ga želite najti. Prikazal bo nadmorsko višino in azimut planeta, nato pojdite in pokažite nanj nekaj sekund, preden se obrnete nazaj proti severu.

Korak 14: Končano

Dokončano
Dokončano

Končano!

Uživajte, če veste, kje so vsi planeti:)

Space Challenge
Space Challenge
Space Challenge
Space Challenge

Prva nagrada v vesoljskem izzivu

Priporočena: