Სარჩევი:

Raspberry Pi Planet Finder: 14 ნაბიჯი (სურათებით)
Raspberry Pi Planet Finder: 14 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Planet Finder: 14 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Planet Finder: 14 ნაბიჯი (სურათებით)
ვიდეო: Qigong დამწყებთათვის. სახსრების, ხერხემლისა და ენერგიის აღდგენისთვის. 2024, ივლისი
Anonim
Image
Image
Რა გჭირდება
Რა გჭირდება

ჩემს ქალაქში სამეცნიერო ცენტრის გარეთ არის დიდი ლითონის კონსტრუქცია, რომელიც შეიძლება მოტრიალდეს და მიუთითოს პლანეტების ცაზე. მე არასოდეს მინახავს ის მუშაობდა, მაგრამ მე ყოველთვის ვფიქრობდი, რომ ჯადოსნური იქნებოდა იმის ცოდნა, თუ სად იყო ეს მიუწვდომელი სხვა სამყაროები ჩემს პაწაწინა მე -სთან მიმართებაში.

როდესაც ამ დიდი ხნის წინ გარდაცვლილი გამოფენის გვერდით გავიარე, ვფიქრობდი, რომ "მე დავასრულებ ამის გაკეთებას" და ასეც მოვიქეცი!

ეს არის სახელმძღვანელო იმის შესახებ, თუ როგორ უნდა შექმნათ პლანეტების მაძიებელი (მთვარის ჩათვლით), ასე რომ თქვენც შეგიძლიათ იცოდეთ სად უნდა გამოიყურებოდეთ, როდესაც კოსმოსით გატაცებული ხართ.

ნაბიჯი 1: რაც გჭირდებათ

Რა გჭირდება
Რა გჭირდება

1 x Raspberry Pi (ვერსია 3 ან უფრო მაღალი საბორტო wifi– სთვის)

1 x LCD ეკრანი (16 x 2) (მსგავსი)

2 x სტეპერიანი ძრავა დრაივერებით (28-BYJ48) (მსგავსი)

3 x ღილაკი (მსგავსი)

2 x Flange Couplers (მსგავსი)

1 x ღილაკი კომპასი (ასე)

8 x M3 ჭანჭიკები და თხილი

3D ბეჭდვის ნაწილები საქმისა და ტელესკოპისთვის

ნაბიჯი 2: პლანეტარული კოორდინატები

პლანეტარული კოორდინატები
პლანეტარული კოორდინატები

არსებობს რამდენიმე განსხვავებული გზა იმის აღსაწერად, თუ სად არის ასტრონომიული ობიექტები ცაში.

ჩვენთვის ის, რაც ყველაზე მეტად გონივრულია გამოვიყენოთ არის ჰორიზონტალური საკოორდინაციო სისტემა, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე. ეს სურათი არის ვიკიპედიის გვერდიდან, რომელიც აქ არის დაკავშირებული:

en.wikipedia.org/wiki/Horizontal_coordinat…

ჰორიზონტალური საკოორდინატო სისტემა გაძლევთ კუთხეს ჩრდილოეთიდან (აზიმუტი) და ზემოთ ჰორიზონტიდან (სიმაღლე), ასე რომ, ის განსხვავდება იმისდა მიხედვით, თუ საიდან უყურებთ მსოფლიოში. ასე რომ, ჩვენმა პლანეტათა მაძიებელმა უნდა გაითვალისწინოს მდებარეობა და ჰქონდეს რაიმე გზა ჩრდილოეთის საპოვნელად.

იმის ნაცვლად, რომ შევეცადოთ გამოვთვალოთ სიმაღლე და აზიმუტი, რომლებიც იცვლება დროისა და ადგილმდებარეობის მიხედვით, ჩვენ ვიყენებთ wifi კავშირს Raspberry Pi– ს ბორტზე, რომ ნახოთ NASA– ს ეს მონაცემები. ისინი თვალყურს ადევნებენ ამ სახის ნივთებს, ასე რომ ჩვენ არ გვჭირდება;)

ნაბიჯი 3: წვდომა პლანეტის მონაცემებზე

ჩვენ ვიღებთ ჩვენს მონაცემებს ნასას რეაქტიული ძრავის ლაბორატორიიდან (JPL) -

ამ მონაცემებზე წვდომისთვის ჩვენ ვიყენებთ ბიბლიოთეკას სახელწოდებით AstroQuery, რომელიც არის ასტრონომიული ვებ ფორმებისა და მონაცემთა ბაზების გამოკითხვის ინსტრუმენტების ნაკრები. ამ ბიბლიოთეკის დოკუმენტაცია მოცემულია აქ:

თუ ეს თქვენი პირველი Raspberry Pi პროექტია, დაიწყეთ ამ სახელმძღვანელოს მითითებით:

თუ თქვენ იყენებთ Raspbian– ს თქვენს Raspberry Pi– ზე (თქვენ იქნებით თუ მიჰყვებით ზემოთ მოცემულ სახელმძღვანელოს), მაშინ თქვენ უკვე გაქვთ python3 დაინსტალირებული, დარწმუნდით, რომ დაინსტალირებული გაქვთ უახლესი ვერსია (მე ვიყენებ ვერსიას 3.7.3). ჩვენ უნდა გამოვიყენოთ ეს პიპის მისაღებად. გახსენით ტერმინალი და ჩაწერეთ შემდეგი:

sudo apt დააინსტალირეთ python3-pip

ჩვენ შეგვიძლია გამოვიყენოთ პიპი ასტროქერიის განახლებული ვერსიის დასაყენებლად.

pip3 install -prep -განაახლეთ astroquery

სანამ ამ პროექტის დანარჩენ ნაწილს გააგრძელებ, სცადე ამ მონაცემებზე წვდომა პითონის მარტივი სკრიპტით, რათა დარწმუნდე, რომ ყველა სწორი დამოკიდებულება სწორად არის დაინსტალირებული.

საწყისი astroquery.jplhorizons იმპორტი ჰორიზონტები

mars = Horizons (id = 499, მდებარეობა = '000', ეპოქები = არცერთი, id_type = 'majorbody') eph = mars.ephemerides () print (eph)

ეს უნდა გაჩვენოთ მარსის ადგილმდებარეობის დეტალები!

თქვენ შეგიძლიათ შეამოწმოთ რამდენად სწორია ეს მონაცემები ამ საიტის გამოყენებით პლანეტის ცოცხალი პოზიციების მოსაძებნად:

ამ კითხვის ოდნავ შესამცირებლად, id არის რიცხვი, რომელიც დაკავშირებულია მარსთან JPL– ის მონაცემებში, ეპოქები არის დრო, როდესაც ჩვენ გვინდა მონაცემები (არცერთი არ ნიშნავს ახლა) და id_type ითხოვს მზის სისტემის ძირითად ორგანოებს. ადგილმდებარეობა ამჟამად გაერთიანებულ სამეფოში არის მითითებული, როგორც '000' არის გრინვიჩის ობსერვატორიის ადგილმდებარეობის კოდი. სხვა ადგილები შეგიძლიათ იხილოთ აქ:

Დიაგნოსტიკა:

თუ თქვენ მიიღებთ შეცდომას: არ არსებობს მოდული სახელწოდებით 'keyring.util.escape'

სცადეთ შემდეგი ბრძანება ტერმინალში:

pip3 install -განაახლეთ keyrings.alt

ნაბიჯი 4: კოდი

ამ ნაბიჯს ერთვის ამ პროექტში გამოყენებული პითონის სრული სკრიპტი.

თქვენი მდებარეობის სწორი მონაცემების საპოვნელად, გადადით ფუნქცია getPlanetInfo და შეცვალეთ მდებარეობა წინა ობსერვატორიების სიის გამოყენებით.

def getPlanetInfo (პლანეტა):

obj = Horizons (id = პლანეტა, მდებარეობა = '000', ეპოქები = არცერთი, id_type = 'majorbody') eph = obj.ephemerides () eph

ნაბიჯი 5: აპარატურის დაკავშირება

აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება
აპარატურის დაკავშირება

პურის დაფებისა და ჯუმბერის მავთულის გამოყენებით შეაერთეთ ორი სტეპერიანი ძრავა, LCD ეკრანი და სამი ღილაკი, როგორც ეს ნაჩვენებია სქემის ზემოთ.

იმის გასარკვევად, თუ რა რაოდენობის ქინძისთავებია თქვენს Raspberry Pi– ზე, გადადით ტერმინალში და აკრიფეთ

პინოუტი

ეს უნდა აჩვენებ სურათს ზემოთ, სრული GPIO ნომრებით და დაფის ნომრებით. ჩვენ ვიყენებთ დაფის ნომრებს, რათა განვსაზღვროთ რომელი ქინძისთავები გამოიყენება კოდში, ამიტომ მე მივუთითებ რიცხვებს ფრჩხილებში.

წრიული დიაგრამის დასახმარებლად, აქ არის ქინძისთავები, რომლებიც დაკავშირებულია თითოეულ ნაწილთან:

პირველი სტეპერიანი ძრავა - 7, 11, 13, 15

მე -2 სტეპერიანი ძრავა - 40, 38, 36, 32

ღილაკი 1 - 33

ღილაკი 2 - 37

ღილაკი 3 - 35

LCD ეკრანი - 26, 24, 22, 18, 16, 12

როდესაც ეს ყველაფერი დაკავშირებულია, გაუშვით პითონის სკრიპტი

python3 planetFinder.py

და თქვენ უნდა ნახოთ ეკრანის ჩვენების დაყენების ტექსტი და ღილაკებმა უნდა გადაადგილდეს სტეპერიანი ძრავები.

ნაბიჯი 6: საქმის დიზაინი

საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი

კორპუსი შეიქმნა 3D ბეჭდვისთვის მარტივად. ის იშლება ცალკეულ ნაწილებად, რომლებიც შემდეგ გაერთიანებულია მას შემდეგ, რაც ელექტრონიკა უზრუნველყოფილია ადგილზე.

ხვრელები ზომაა ჩემს მიერ გამოსაყენებელ ღილაკებზე და M3 ჭანჭიკებზე.

მე დავბეჭდე ტელესკოპი ნაწილებად და დავაწებე ისინი მოგვიანებით, რათა თავიდან ავიცილოთ ზედმეტი დამხმარე სტრუქტურა.

STL ფაილები თან ერთვის ამ ნაბიჯს.

ნაბიჯი 7: ბეჭდვის ტესტირება

ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა
ბეჭდავების გამოცდა

მას შემდეგ, რაც ყველაფერი დაიბეჭდება, დარწმუნდით, რომ ყველაფერი ერთმანეთთან მჭიდროდ ჯდება, სანამ რაიმე წებოს გაკეთდება.

მოათავსეთ ღილაკები ადგილზე და დააფიქსირეთ ეკრანი და სტეპერიანი ძრავები M3 ჭანჭიკებით და მიეცით ყველაფერს კარგი მოძრაობა. ნებისმიერი უხეში კიდეების ამოღება, ყველაფერი კვლავ განადგურებულია მომდევნო ნაბიჯამდე.

ნაბიჯი 8: სტეპერი ძრავის გაფართოება

სტეპერი ძრავის გაფართოება
სტეპერი ძრავის გაფართოება
სტეპერი ძრავის გაფართოება
სტეპერი ძრავის გაფართოება
სტეპერი ძრავის გაფართოება
სტეპერი ძრავის გაფართოება

სტეპერიანი ძრავა, რომელიც გააკონტროლებს ტელესკოპის სიმაღლის კუთხეს, იჯდება მთავარ კორპუსზე და საჭიროებს მავთულხლართებს მობრუნების მიზნით. მავთულები უნდა გაფართოვდეს სტეპერსა და დრაივერის დაფას შორის გაჭრით და მათ შორის ახალი სიგრძის მავთულხლართებით.

მე ახალი მავთული შევიყვანე დამხმარე კოშკში ძაფის გამოყენებით, რათა დამეხმარებინა მისი გამყარება, რადგან მავთული, რომელსაც მე ვიყენებ, საკმაოდ მტკიცეა და ინახება. მისი გავლის შემდეგ შესაძლებელია მისი გადატანა სტეპერ ძრავაზე და დარწმუნდით, რომ თვალყურს ადევნებთ რომელ ფერს უკავშირდება, რათა მეორე ბოლოში შეაერთოთ სწორი. ნუ დაგავიწყდებათ, რომ დაამატოთ სითბოს შემცირება მავთულხლართებს!

მას შემდეგ რაც შედუღდება, გაუშვით პითონის სკრიპტი, რომ შეამოწმოთ ყველაფერი ჯერ კიდევ მუშაობს, შემდეგ მიაბრუნეთ მავთულები ქვემოთ მილში, სანამ სტეპერიანი ძრავა არ დადგება. შემდეგ ის შეიძლება მიმაგრდეს სტეპერიანი ძრავის კორპუსზე M3 ჭანჭიკებითა და თხილით, სანამ კორპუსის უკანა ნაწილი წებოვდება.

ნაბიჯი 9: დააინსტალირეთ ღილაკები და LCD ეკრანი

სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი
სამონტაჟო ღილაკები და LCD ეკრანი

ჩადეთ ღილაკები და გამკაცრეთ თხილი, რომ შედუღებამდე დაიჭიროთ. მე მიყვარს საერთო მიწის მავთულის გამოყენება, რომელიც მათ შორის სისუფთავეა.

დაიცავით LCD ეკრანი M3 ჭანჭიკებითა და თხილით. LCD- ს სურს პოტენომეტრი ერთი მის ქინძისთავზე, რომელიც მეც ამ ეტაპზე გავამახვილე.

კიდევ ერთხელ შეამოწმე კოდი! დარწმუნდით, რომ ყველაფერი ჯერ კიდევ მუშაობს, სანამ ყველაფერს ერთმანეთთან შევაერთებთ, რადგან ამ ეტაპზე გამოსწორება გაცილებით ადვილია.

ნაბიჯი 10: ფლანგების დამატება

ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება
ფლანგების დამატება

3D დაბეჭდილი ნაწილების სტეპერ ძრავებთან დასაკავშირებლად, ჩვენ ვიყენებთ 5 მმ ფლანგის შეერთებას, რომელიც მოთავსებულია სტეპერი ძრავის ბოლოში და ინახება პატარა ხრახნებით.

ერთი მილსადენი მიმაგრებულია მბრუნავი კოშკის ფუძეზე, მეორე კი ტელესკოპზე.

მბრუნავი კოშკის თავზე ძრავაზე ტელესკოპის მიმაგრება მარტივია, რადგან ბევრი ადგილია წვრილი ხრახნებისთვის მის შესანახად. მეორე ფლანგის დაცვა უფრო ძნელია, მაგრამ მთავარ კორპუსსა და მბრუნავი კოშკის ფუძეს შორის არის საკმარისი უფსკრული, რომ მოთავსდეს პატარა ალენის გასაღები და გამკაცრდეს ხრახნი.

კიდევ ერთხელ გამოსცადე!

ახლა ყველაფერი უნდა მუშაობდეს ისე, როგორც იქნება თავის საბოლოო მდგომარეობაში. თუ ეს ასე არ არის, ახლა დროა შეცვალოთ შეცდომები და დარწმუნდეთ, რომ ყველა კავშირი უსაფრთხოა. დარწმუნდით, რომ დაუცველი მავთულები არ ეხებიან ერთმანეთს, შემოიარეთ ელექტრო ლენტით და დააფიქსირეთ ნებისმიერი ადგილი, რამაც შეიძლება გამოიწვიოს პრობლემა.

ნაბიჯი 11: გაუშვით გაშვებისას

იმის ნაცვლად, რომ კოდის ხელით გავუშვათ ყოველ ჯერზე, როდესაც ჩვენ გვსურს პლანეტის პოვნა, ჩვენ გვსურს, რომ ის გამოვიდეს როგორც ცალკეული გამოფენა, ამიტომ ჩვენ ვაპირებთ შევქმნათ იგი ჩვენი კოდის გასაშვებად, როდესაც Raspberry Pi ჩართულია.

ტერმინალში, ჩაწერეთ

crontab -e

გახსნილ ფაილში დაამატეთ შემდეგი ფაილის ბოლოს, რასაც მოჰყვება ახალი ხაზი.

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

მე მაქვს ჩემი კოდი შენახული საქაღალდეში სახელწოდებით PlanetFinder, ამიტომ /home/pi/PlanetFinder/planetFinder.py არის ჩემი ფაილის მდებარეობა. თუ თქვენი შენახულია სხვაგან, დარწმუნდით, რომ შეცვალეთ იგი აქ.

& ბოლოს მნიშვნელოვანია, რადგან ის საშუალებას აძლევს კოდს გაუშვას ფონზე, ასე რომ არ აჩერებს სხვა პროცესებს რაც ასევე ხდება ჩატვირთვისას.

ნაბიჯი 12: მიამაგრეთ ეს ყველაფერი ერთად

წებო ეს ყველაფერი ერთად!
წებო ეს ყველაფერი ერთად!
წებო ეს ყველაფერი ერთად!
წებო ეს ყველაფერი ერთად!

ყველაფერი, რაც უკვე არ არის დამაგრებული ადგილზე, ახლა უნდა დაფიქსირდეს.

დაბოლოს, დაამატეთ პაწაწინა კომპასი მბრუნავი ფუძის შუაში.

ნაბიჯი 13: გამოყენება

გამოყენება
გამოყენება

როდესაც Planet Finder ჩართულია, ის მომხმარებელს მოუწოდებს შეცვალოს ვერტიკალური ღერძი. ზევით და ქვემოთ ღილაკების დაჭერით გადაადგილდება ტელესკოპი, შეეცადეთ ის იყოს თანაბარი, მიუთითეთ მარჯვნივ, შემდეგ დააჭირეთ ღილაკს კარგი (ბოლოში).

შემდეგ მომხმარებელს მოეთხოვება შეცვალოს ბრუნვა, გამოიყენოს ღილაკები ტელესკოპის დასატრიალებლად, სანამ ის პატარა კომპასის მიხედვით ჩრდილოეთისკენ არ მიუთითებს, შემდეგ დააჭირეთ OK.

ახლა თქვენ შეგიძლიათ იმოძრაოთ პლანეტებზე ზემოთ/ქვემოთ ღილაკების გამოყენებით და შეარჩიოთ ის, რომლის პოვნა გსურთ ok ღილაკით. ის აჩვენებს პლანეტის სიმაღლესა და აზიმუთს, შემდეგ წავა და მიუთითებს მასზე რამდენიმე წამის განმავლობაში, სანამ ჩრდილოეთისკენ არ დაიხევს.

ნაბიჯი 14: დასრულდა

დასრულდა
დასრულდა

Ყველაფერი შესრულებულია!

ისიამოვნეთ იმის ცოდნით, თუ სად არის ყველა პლანეტა:)

კოსმოსური გამოწვევა
კოსმოსური გამოწვევა
კოსმოსური გამოწვევა
კოსმოსური გამოწვევა

პირველი პრიზი კოსმოსურ გამოწვევაში

გირჩევთ: