Съдържание:

Raspberry Pi Planet Finder: 14 стъпки (със снимки)
Raspberry Pi Planet Finder: 14 стъпки (със снимки)

Видео: Raspberry Pi Planet Finder: 14 стъпки (със снимки)

Видео: Raspberry Pi Planet Finder: 14 стъпки (със снимки)
Видео: Какого числа от 1 до 31, родился человек, такая у него и вся жизнь 2024, Юли
Anonim
Image
Image
От какво имаш нужда
От какво имаш нужда

Извън Научния център в моя град има голяма метална конструкция, която може да се обърне и да сочи къде са били планетите в небето. Никога не съм го виждал да работи, но винаги съм смятал, че би било вълшебно да знам къде всъщност са тези недостижими други светове във връзка с моето мъничко аз.

Когато мина покрай този отдавна мъртъв експонат, си помислих „Обзалагам се, че бих могъл да го направя“и така го направих!

Това е ръководство за това как да направите Finder на планетата (с участието на Луната), така че и вие да знаете къде да търсите, когато се чувствате страхопочитани от космоса.

Стъпка 1: Какво ви трябва

От какво имаш нужда
От какво имаш нужда

1 x Raspberry Pi (версия 3 или по -нова за вграден wifi)

1 x LCD екран (16 x 2) (като този)

2 x стъпкови двигатели с драйвери (28-BYJ48) (като тези)

3 x бутони (като тези)

2 x Фланцови съединители (като тези)

1 x Бутон за компас (като този)

8 x M3 болтове и гайки

3D отпечатани части за корпуса и телескопа

Стъпка 2: Планетарни координати

Планетарни координати
Планетарни координати

Има няколко различни начина да се опише къде са астрономическите обекти в небето.

За нас най -смислената за използване е хоризонталната координатна система, както е показано на изображението по -горе. Това изображение е от страницата на Уикипедия, свързана тук:

en.wikipedia.org/wiki/Horizontal_coordinat…

Хоризонталната система за координати ви дава ъгъл от север (азимута) и нагоре от хоризонта (надморската височина), така че той е различен в зависимост от това къде гледате в света. Така че нашият търсач на планети трябва да вземе предвид местоположението и да има някакъв начин да намери Север за ориентир.

Вместо да се опитваме да изчислим надморската височина и азимута, които се променят с времето и местоположението, ние ще използваме wifi връзката на борда на Raspberry Pi, за да потърсим тези данни от НАСА. Те следят такива неща, така че не се налага;)

Стъпка 3: Достъп до данни за планетата

Получаваме нашите данни от Лабораторията за реактивни двигатели на НАСА (JPL) -

За достъп до тези данни използваме библиотека, наречена AstroQuery, която е набор от инструменти за запитване към астрономически уеб формуляри и бази данни. Документацията за тази библиотека се намира тук:

Ако това е първият ви проект на Raspberry Pi, започнете, като следвате това ръководство за настройка:

Ако използвате Raspbian на вашия Raspberry Pi (ще бъдете, ако следвате горното ръководство), тогава вече имате инсталиран python3, уверете се, че имате инсталирана най -новата версия (използвам версия 3.7.3). Трябва да използваме това, за да получим пип. Отворете терминал и въведете следното:

sudo apt инсталирате python3-pip

След това можем да използваме pip, за да инсталираме обновената версия на astroquery.

pip3 install --pre --upgrade astroquery

Преди да продължите с останалата част от този проект, опитайте да получите достъп до тези данни с прост скрипт на Python, за да се уверите, че всички правилни зависимости са инсталирани правилно.

от astroquery.jplhorizons импортират Horizons

mars = Horizons (id = 499, location = '000', epochs = Няма, id_type = 'majorbody') eph = mars.ephemerides () print (eph)

Това трябва да ви покаже подробностите за местоположението на Марс!

Можете да проверите дали тези данни са верни, като използвате този сайт, за да потърсите позиции на планетата на живо:

За да разбием малко тази заявка, id е числото, свързано с Марс в данните на JPL, epochs е времето, от което искаме данните (Няма означава точно в момента), а id_type иска основните тела на Слънчевата система. Понастоящем местоположението е зададено на Обединеното кралство като „000“е кодът за местоположение на обсерваторията в Гринуич. Други места могат да бъдат намерени тук:

Отстраняване на неизправности:

Ако получите грешката: Няма модул с име „keyring.util.escape“

опитайте следната команда в терминала:

pip3 install --upgrade keyrings.alt

Стъпка 4: Код

Към тази стъпка е приложен пълният скрипт на python, използван в този проект.

За да намерите правилните данни за вашето местоположение, отидете на функцията getPlanetInfo и променете местоположението, като използвате списъка с обсерватории в предишната стъпка.

def getPlanetInfo (планета):

obj = Хоризонти (id = планета, location = '000', epochs = Няма, id_type = 'majorbody') eph = obj.ephemerides () връщане eph

Стъпка 5: Свързване на хардуер

Свързване на хардуер
Свързване на хардуер
Свързване на хардуер
Свързване на хардуер
Свързване на хардуер
Свързване на хардуер

С помощта на платки и джъмперни проводници свържете два стъпкови двигателя, LCD екрана и три бутона, както е показано на схемата по -горе.

За да разберете какъв номер са щифтовете на вашия Raspberry Pi, отидете на терминала и въведете

pinout

Това би трябвало да ви покаже горното изображение в комплект с GPIO номера и номера на таблото. Използваме номера на табла, за да определим кои пинове се използват в кода, така че ще посочвам числата в скоби.

Като помощ за електрическата схема, тук са щифтовете, които са свързани към всяка част:

1 -ви стъпков двигател - 7, 11, 13, 15

2 -ри стъпков двигател - 40, 38, 36, 32

Бутон 1 - 33

Бутон 2 - 37

Бутон 3 - 35

LCD екран - 26, 24, 22, 18, 16, 12

Когато всичко това е свързано, стартирайте скрипта на python

python3 planetFinder.py

и трябва да видите екрана да показва текст за настройка, а бутоните трябва да преместват стъпковите двигатели.

Стъпка 6: Проектиране на калъфа

Проектиране на корпуса
Проектиране на корпуса
Проектиране на корпуса
Проектиране на корпуса
Проектиране на корпуса
Проектиране на корпуса

Калъфът е проектиран за лесно 3D отпечатване. Той се разпада на отделни части, които след това се залепват, след като електрониката е фиксирана на място.

Дупките са оразмерени за използваните от мен бутони и болтовете M3.

Отпечатах телескопа на части и ги залепих по -късно, за да избегна твърде много опорна структура.

Към тази стъпка са прикачени STL файлове.

Стъпка 7: Тестване на отпечатъците

Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците
Тестване на отпечатъците

След като всичко бъде отпечатано, уверете се, че всичко прилепва плътно заедно, преди да се извърши лепило.

Поставете бутоните на място и закрепете екрана и стъпковите двигатели с болтове М3 и придайте на всичко добро движение. Напилете всички груби ръбове, разглобете отново всичко преди следващата стъпка.

Стъпка 8: Удължаване на стъпковия двигател

Удължаване на стъпковия двигател
Удължаване на стъпковия двигател
Удължаване на стъпковия двигател
Удължаване на стъпковия двигател
Удължаване на стъпковия мотор
Удължаване на стъпковия мотор

Стъпковият двигател, който ще контролира ъгъла на повдигане на телескопа, ще седи над основния корпус и се нуждае от малко отпускане на проводниците, за да се върти. Проводниците трябва да бъдат удължени, като се отрежат между стъпката и платката на драйвера и запояват нова дължина жица между тях.

Вмъкнах новия проводник в носещата кула с помощта на парче конец, за да го помогна да го преодолее, тъй като жицата, която използвам, е доста твърда и продължава да се забива. Веднъж преминал през него, той може да бъде запоен към стъпковия двигател, като внимавате да следите кой цвят е свързан, за да прикрепите отново правилните в другия край. Не забравяйте да добавите термосвиване към проводниците!

След като сте запоени, стартирайте скрипта на python, за да проверите дали все още работи, след това избутайте проводниците обратно надолу по тръбата, докато стъпковият двигател е в позиция. След това може да се прикрепи към корпуса на стъпковия двигател с болтове и гайки М3, преди задната част на корпуса да бъде залепена на място.

Стъпка 9: Бутони за монтиране и LCD екран

Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран
Бутони за монтиране и LCD екран

Поставете бутоните и затегнете гайките, за да ги закрепите на място преди запояване. Обичам да използвам общ заземен проводник, който минава между тях за чистота.

Закрепете LCD екрана с болтове и гайки М3. LCD дисплеят иска потенциометър на един от неговите щифтове, който също запоех на този етап.

Тествайте кода отново! Уверете се, че всичко продължава да работи, преди да залепим всичко заедно, тъй като е много по -лесно да се поправи на този етап.

Стъпка 10: Добавяне на фланци

Добавяне на фланци
Добавяне на фланци
Добавяне на фланци
Добавяне на фланци
Добавяне на фланци
Добавяне на фланци
Добавяне на фланци
Добавяне на фланци

За да свържем 3D отпечатаните части към стъпковите двигатели, използваме 5 мм фланец, който се вписва в горната част на края на стъпковия двигател и се държи на място с малки винтове.

Единият фланец е залепен към основата на въртящата се кула, а другият към телескопа.

Прикрепването на телескопа към двигателя на въртящата се кула е лесно, тъй като има много място за достъп до малките винтове, които го държат на място. Другият фланец е по -труден за закрепване, но има достатъчно разстояние между основния корпус и основата на въртящата се кула, за да се постави малък шестостен ключ и да се затегне винтът.

Тествайте отново!

Сега всичко трябва да работи, както ще бъде в крайното си състояние. Ако не е, сега е моментът да поправите грешки и да се уверите, че всички връзки са защитени. Уверете се, че откритите проводници не се допират един друг, заобиколете с електрическа лента и закърпете всички места, които могат да причинят проблем.

Стъпка 11: Стартирайте при стартиране

Вместо да стартираме кода ръчно всеки път, когато искаме да намерим планета, ние искаме това да се изпълнява като самостоятелна експозиция, затова ще го настроим да изпълнява кода ни винаги, когато се включи Raspberry Pi.

Въведете в терминала

crontab -е

Във файла, който се отваря, добавете следното в края на файла, последвано от нов ред.

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

Кодът ми е запазен в папка, наречена PlanetFinder, така че /home/pi/PlanetFinder/planetFinder.py е местоположението на моя файл. Ако вашият е запазен някъде другаде, не забравяйте да го промените тук.

& В края е важен, тъй като позволява на кода да работи във фонов режим, така че не задържа други процеси, които също се случват при зареждане.

Стъпка 12: Залепете всичко заедно

Залепете всичко заедно!
Залепете всичко заедно!
Залепете всичко заедно!
Залепете всичко заедно!

Всичко, което още не е залепено на място, сега трябва да бъде фиксирано.

Накрая добавете малкия компас към средата на въртящата се основа.

Стъпка 13: Използване

Употреба
Употреба

Когато Finder на планетата се включи, той ще подкани потребителя да регулира вертикалната ос. Натискането на бутоните нагоре и надолу ще премести телескопа, опитайте се да го изравните, сочейки надясно, след което натиснете бутона ok (най -долу).

След това потребителят ще бъде помолен да регулира въртенето, използвайте бутоните, за да завъртите телескопа, докато сочи на север според малкия компас, след което натиснете ok.

Вече можете да обикаляте планети с помощта на бутоните нагоре/надолу и да изберете тази, която искате да намерите с бутона OK. Той ще покаже надморската височина и азимута на планетата, след което отидете и го насочете за няколко секунди, преди да се обърнете обратно на север.

Стъпка 14: Готово

Завършен
Завършен

Готово!

Насладете се да знаете къде са всички планети:)

Космическо предизвикателство
Космическо предизвикателство
Космическо предизвикателство
Космическо предизвикателство

Първа награда в космическото предизвикателство

Препоръчано: