İçindekiler:
- Adım 1: İhtiyacınız Olan Şey
- Adım 2: Gezegensel Koordinatlar
- 3. Adım: Gezegen Verilerine Erişim
- 4. Adım: Kod
- Adım 5: Donanımı Bağlama
- Adım 6: Kasayı Tasarlamak
- 7. Adım: Baskıları Test Etme
- Adım 8: Step Motorun Genişletilmesi
- Adım 9: Düğmeleri ve LCD Ekranı Monte Edin
- Adım 10: Flanş Ekleme
- Adım 11: Başlangıçta Çalıştırın
- Adım 12: Hepsini Bir Araya Yapıştırın
- Adım 13: Kullanım
- Adım 14: Tamamlandı
Video: Raspberry Pi Gezegen Bulucu: 14 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Ş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
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
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
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
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
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
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
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
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
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
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ı
Hepsi tamam!
Tüm gezegenlerin nerede olduğunu bilmenin keyfini çıkarın:)
Uzay Yarışmasında Birincilik Ödülü
Önerilen:
ESP8266-01 Kullanan IoT Anahtarlık Bulucu: 11 Adım (Resimlerle)
ESP8266-01 Kullanan IoT Anahtarlık Bulucu: Anahtarlarınızı nerede tuttuğunuzu her zaman unutan benim gibi misiniz? Anahtarlarımı asla zamanında bulamıyorum! Ve bu alışkanlığımdan dolayı, üniversiteme geç kaldım, o sınırlı sayıdaki yıldız savaşları hediyeleri satışı (hâlâ sinir bozucu!), Bir tarih (hiç seçmedi
Çift Sensörlü Yankı Bulucu: 7 Adım (Resimlerle)
Çift Sensör Yankı Bulucu: a.articles {yazı tipi boyutu: %110,0; yazı tipi ağırlığı: kalın; yazı tipi stili: italik; metin-dekorasyon: yok; background-color: red;} a.articles:hover {background-color: black;} Bu talimat, bir nesnenin konumunun bir
Arduino İle Garaj Park Etme Mesafe Bulucu: 4 Adım (Resimlerle)
Arduino ile Garaj Park Etme Mesafe Bulucu: Bu basit proje, arabanızın tamponunun önündeki nesnelerle olan mesafeyi görüntüleyerek arabanızı garaja park etmenize yardımcı olacaktır. Bir 'Dur' mesajı size durma zamanının geldiğini söyleyecektir. Proje temellidir. normal HC-SR04 veya Paralaks Ping'de)))
Dijital Saplama Bulucu: 6 Adım (Resimlerle)
Dijital Saplama Bulucu: Saplama Bulucu basit bir konsepttir. İki Kapasitif sensör: biri bir darbe dalgası gönderir, ikincisi iki plaka arasındaki malzeme boyunca voltaj düşüşünü alır ve ölçer
Attiny85 Mesafe Bulucu: 4 Adım (Resimlerle)
Attiny85 Distance Finder: Bunu öğretilebilir hale getirmeden önce yeni Attinys (Attinies?) aldım ve onlarla bir şeyler yapmak istedim. İşte o zaman ultrasonik telemetre cihazımın tek başına kullanılmadığını fark ettim. Bu ultrasonik Attiny mesafe bulucu mesafeyi verir