İçindekiler:

Raspberry Pi Gezegen Bulucu: 14 Adım (Resimlerle)
Raspberry Pi Gezegen Bulucu: 14 Adım (Resimlerle)

Video: Raspberry Pi Gezegen Bulucu: 14 Adım (Resimlerle)

Video: Raspberry Pi Gezegen Bulucu: 14 Adım (Resimlerle)
Video: Kocaeli Üniversitesi Yapay Zeka Topluluğu ile Söyleşi | Yapay Zeka Tarihi, Eğitimi ve Geleceği 2024, Kasım
Anonim
Image
Image
Neye ihtiyacın var
Neye ihtiyacın var

Şehrimdeki Bilim Merkezi'nin dışında, gökyüzünde gezegenlerin bulunduğu yeri gösterebilen ve dönebilen büyük bir metal yapı var. Bunun işe yaradığını hiç görmedim, ama bu ulaşılmaz diğer dünyaların aslında benim küçük benliğimle ilişkili olarak nerede olduğunu bilmenin her zaman büyülü olacağını düşündüm.

Geçenlerde bu çoktan ölmüş serginin yanından geçtiğimde "Bahse girerim bunu yapabilirim" diye düşündüm ve öyle de yaptım!

Bu, Gezegen Bulucu'nun (Ay'ı içeren) nasıl yapılacağına dair bir kılavuzdur, böylece siz de uzaydan korktuğunuzda nereye bakacağınızı bilebilirsiniz.

Adım 1: İhtiyacınız Olan Şey

Neye ihtiyacın var
Neye ihtiyacın var

1 x Raspberry Pi (yerleşik wifi için sürüm 3 veya üzeri)

1 x LCD ekran (16 x 2) (bunun gibi)

Sürücülü 2 x Step motor (28-BYJ48) (bunlar gibi)

3 x Basmalı Düğmeler (bunlar gibi)

2 x Flanş Bağlayıcı (bunlar gibi)

1 x Düğme pusulası (bunun gibi)

8 x M3 cıvata ve somun

Kasa ve teleskop için 3D baskılı parçalar

Adım 2: Gezegensel Koordinatlar

gezegen koordinatları
gezegen koordinatları

Astronomik nesnelerin gökyüzünde nerede olduğunu tanımlamanın birkaç farklı yolu vardır.

Bizim için en mantıklısı yukarıdaki resimde görüldüğü gibi Yatay Koordinat Sistemidir. Bu resim, burada bağlantılı Wikipedia sayfasından alınmıştır:

en.wikipedia.org/wiki/Horizontal_coordinat…

Yatay Koordinat sistemi size kuzeyden (Azimut) ve ufuktan (Yükseklik) yukarıya doğru bir açı verir, bu nedenle dünyanın neresinden baktığınıza bağlı olarak farklılık gösterir. Bu yüzden gezegen bulucumuzun konumu hesaba katması ve referans olarak Kuzey'i bulmanın bir yolunu bulması gerekiyor.

Zamana ve konuma göre değişen Rakım ve Azimuth'u hesaplamaya çalışmak yerine, NASA'dan bu verileri aramak için Raspberry Pi'deki wifi bağlantısını kullanacağız. Bu tür şeyleri takip ediyorlar, böylece bizim yapmamıza gerek kalmıyor;)

3. Adım: Gezegen Verilerine Erişim

Verilerimizi NASA Jet Propulsion Laboratory'den (JPL) alıyoruz -

Bu verilere erişmek için astronomik web formlarını ve veritabanlarını sorgulamak için bir dizi araç olan AstroQuery adlı bir kitaplık kullanıyoruz. Bu kitaplığın belgeleri burada bulunur:

Bu ilk Raspberry Pi projenizse, bu kurulum kılavuzunu izleyerek başlayın:

Raspberry Pi'nizde Raspbian kullanıyorsanız (yukarıdaki kılavuzu takip ettiyseniz olacaksınız), o zaman zaten python3 yüklemişsinizdir, en son sürümün kurulu olduğundan emin olun (sürüm 3.7.3 kullanıyorum). Bunu pip almak için kullanmalıyız. Bir terminal açın ve şunu yazın:

sudo apt python3-pip'i kurun

Daha sonra astroquery'nin yükseltilmiş sürümünü yüklemek için pip kullanabiliriz.

pip3 install --pre --upgrade astroquery

Bu projenin geri kalanına devam etmeden önce, tüm doğru bağımlılıkların doğru şekilde kurulduğundan emin olmak için bu verilere basit bir Python betiği ile erişmeyi deneyin.

astroquery.jplhorizons'tan Ufukları içe aktarın

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

Bu size Mars'ın konumunun ayrıntılarını göstermelidir!

Canlı gezegen konumlarını aramak için bu siteyi kullanarak bu verilerin doğru olup olmadığını kontrol edebilirsiniz:

Bu sorguyu biraz parçalamak için, id, JPL'nin verilerindeki Mars ile ilişkilendirilen sayıdır, çağlar, verileri istediğimiz zamandır (Hiçbiri şu anda anlamına gelir) ve id_type, güneş sisteminin ana gövdelerini ister. Konum şu anda İngiltere'ye ayarlıdır, '000' Greenwich'teki gözlemevinin konum kodudur. Diğer konumlar burada bulunabilir:

Sorun giderme:

Hata alırsanız: 'keyring.util.escape' adında modül yok

terminalde aşağıdaki komutu deneyin:

pip3 kurulumu --upgrade keyrings.alt

4. Adım: Kod

Bu adıma, bu projede kullanılan tam python betiği eklenmiştir.

Konumunuz için doğru verileri bulmak için getPlanetInfo işlevine gidin ve önceki adımdaki gözlemevleri listesini kullanarak konumu değiştirin.

def getPlanetInfo(gezegen):

obj = Horizons(id=gezegen, konum='000', epochs=Yok, id_type='majorbody') eph = obj.ephemerides() eph döndür

Adım 5: Donanımı Bağlama

Donanım Bağlama
Donanım Bağlama
Donanım Bağlama
Donanım Bağlama
Donanım Bağlama
Donanım Bağlama

Breadboard'ları ve jumper kablolarını kullanarak, yukarıdaki devre şemasında gösterildiği gibi iki kademeli motoru, LCD ekranı ve üç düğmeyi bağlayın.

Raspberry Pi'nizdeki pinlerin kaç numara olduğunu öğrenmek için terminale gidin ve şunu yazın

Pin yapısı

Bu size yukarıdaki resmi GPIO numaraları ve pano numaralarıyla birlikte göstermelidir. Kodda hangi pinlerin kullanıldığını tanımlamak için kart numaralarını kullanıyoruz, bu yüzden rakamlara parantez içinde atıfta bulunacağım.

Devre şemasına yardımcı olması için her bir parçaya bağlı olan pinler aşağıda verilmiştir:

1. Step motor - 7, 11, 13, 15

2. Step motor - 40, 38, 36, 32

Düğme1 - 33

Düğme2 - 37

Düğme3 - 35

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

Bunların hepsi bağlandığında, python betiğini çalıştırın

python3 planetFinder.py

ve ekranda kurulum yazısını görmelisiniz ve butonlar step motorları hareket ettirmelidir.

Adım 6: Kasayı Tasarlamak

Kasayı Tasarlamak
Kasayı Tasarlamak
Kasayı Tasarlamak
Kasayı Tasarlamak
Kasayı Tasarlamak
Kasayı Tasarlamak

Kılıf, kolayca 3D basılacak şekilde tasarlandı. Elektronik parçalar yerine sabitlendikten sonra birbirine yapıştırılan ayrı parçalara ayrılıyor.

Delikler, kullandığım düğmeler ve M3 cıvatalar için boyutlandırılmıştır.

Çok fazla destek yapısından kaçınmak için teleskopu parçalara ayırdım ve daha sonra yapıştırdım.

STL dosyaları bu adıma eklenir.

7. Adım: Baskıları Test Etme

Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme
Baskıları Test Etme

Her şey yazdırıldıktan sonra, herhangi bir yapıştırma yapılmadan önce her şeyin birbirine tam oturduğundan emin olun.

Düğmeleri yerlerine takın ve ekranı ve step motorları M3 cıvatalarla sabitleyin ve her şeyi iyi bir şekilde sallayın. Pürüzlü kenarları eğeleyin, bir sonraki adımdan önce her şeyi tekrar ayırın.

Adım 8: Step Motorun Genişletilmesi

Step Motorun Genişletilmesi
Step Motorun Genişletilmesi
Step Motorun Genişletilmesi
Step Motorun Genişletilmesi
Step Motorun Genişletilmesi
Step Motorun Genişletilmesi

Teleskopun yükselme açısını kontrol edecek olan step motor, ana kasanın üzerine oturacak ve dönebilmesi için tellerinde biraz gevşekliğe ihtiyacı var. Teller, stepper ile sürücü panosu arasında kesilerek ve aralarına yeni bir uzunlukta tel lehimlenerek uzatılmalıdır.

Kullandığım tel oldukça sert olduğundan ve sıkışmaya devam ettiğinden, yeni teli bir parça iplik kullanarak destek kulesine yerleştirdim. Bir kez geçtikten sonra step motora lehimlenebilir, diğer uca doğru olanları yeniden takmak için hangi rengin bağlı olduğunu takip ettiğinizden emin olun. Tellere ısıyla daralan makaron eklemeyi unutmayın!

Lehimlendikten sonra, her şeyin hala çalışıp çalışmadığını kontrol etmek için python betiğini çalıştırın, ardından step motor yerine oturana kadar kabloları tüpten aşağı doğru itin. Ardından, gövdenin arkası yerine yapıştırılmadan önce M3 cıvata ve somunlarla step motor gövdesine takılabilir.

Adım 9: Düğmeleri ve LCD Ekranı Monte Edin

Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran
Montaj Düğmeleri ve LCD Ekran

Düğmeleri yerleştirin ve lehimlemeden önce yerlerine sabitlemek için somunları sıkın. Düzgünlük için aralarında uzanan ortak bir topraklama kablosu kullanmayı seviyorum.

LCD ekranı M3 cıvata ve somunlarla sabitleyin. LCD, bu aşamada lehimlediğim pinlerinden birinde bir potansiyometre istiyor.

Kodu tekrar test edin! Bu aşamada düzeltmek çok daha kolay olduğundan, her şeyi birbirine yapıştırmadan önce her şeyin hala çalıştığından emin olun.

Adım 10: Flanş Ekleme

Flanş Ekleme
Flanş Ekleme
Flanş Ekleme
Flanş Ekleme
Flanş Ekleme
Flanş Ekleme
Flanş Ekleme
Flanş Ekleme

3D baskılı parçaları step motorlara bağlamak için, step motorun ucunun üstüne oturan ve küçük vidalarla yerinde tutulan 5 mm'lik bir flanş kaplini kullanıyoruz.

Bir flanş döner kulenin tabanına ve diğeri teleskopa yapıştırılmıştır.

Teleskopu dönen kulenin üzerindeki motora takmak, teleskopu yerinde tutan küçük vidalara erişmek için çok fazla alan olduğundan basittir. Diğer flanşın sabitlenmesi daha zordur, ancak ana kasa ile döner kulenin tabanı arasında küçük bir alyan anahtarı takmak ve vidayı sıkmak için yeterli boşluk vardır.

Tekrar test et!

Artık her şey son haliyle olacağı gibi çalışıyor olmalı. Değilse, şimdi hata düzeltme ve bağlantıların güvenli olduğundan emin olma zamanı. Açıkta kalan kabloların birbirine değmediğinden emin olun, elektrik bandı ile dolaşın ve sorun yaratabilecek yerleri yamalayın.

Adım 11: Başlangıçta Çalıştırın

Her gezegen bulmak istediğimizde kodu manuel olarak çalıştırmak yerine, bunun bağımsız bir sergi olarak çalışmasını istiyoruz, bu yüzden onu Raspberry Pi her açıldığında kodumuzu çalıştıracak şekilde ayarlayacağız.

Terminalde şunu yazın

crontab -e

Açılan dosyada, dosyanın sonuna aşağıdakileri ekleyin ve ardından yeni bir satır ekleyin.

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

Kodumu PlanetFinder adlı bir klasöre kaydettim, bu nedenle /home/pi/PlanetFinder/planetFinder.py dosyamın konumu. Sizinki başka bir yere kaydedilmişse, burada değiştirdiğinizden emin olun.

Sondaki &, kodun arka planda çalışmasına izin verdiği için önemlidir, bu nedenle önyüklemede de gerçekleşen diğer işlemleri tutmaz.

Adım 12: Hepsini Bir Araya Yapıştırın

Hepsini Bir Araya Yapıştırın!
Hepsini Bir Araya Yapıştırın!
Hepsini Bir Araya Yapıştırın!
Hepsini Bir Araya Yapıştırın!

Halihazırda yerine yapıştırılmamış olan her şey şimdi sabitlenmelidir.

Son olarak minik pusulayı dönen tabanın ortasına ekleyin.

Adım 13: Kullanım

kullanım
kullanım

Planet Finder açıldığında, kullanıcıdan dikey ekseni ayarlamasını isteyecektir. Yukarı ve aşağı düğmelerine basmak, teleskopu hareket ettirecek, sağı işaret ederek düz durmasını sağlayacak ve ardından (altta) tamam düğmesine basacaktır.

Kullanıcıdan daha sonra dönüşü ayarlaması istenecek, küçük pusulaya göre kuzeyi gösterene kadar teleskopu döndürmek için düğmeleri kullanın, ardından Tamam'a basın.

Artık yukarı/aşağı butonlarını kullanarak gezegenler arasında gezinebilir ve ok butonu ile bulmak istediğinizi seçebilirsiniz. Gezegenin Rakımını ve Azimutunu gösterecek, ardından kuzeye dönmeden önce birkaç saniyeliğine onu gösterecek.

Adım 14: Tamamlandı

bitmiş
bitmiş

Hepsi tamam!

Tüm gezegenlerin nerede olduğunu bilmenin keyfini çıkarın:)

Uzay Mücadelesi
Uzay Mücadelesi
Uzay Mücadelesi
Uzay Mücadelesi

Uzay Yarışmasında Birincilik Ödülü

Önerilen: