Բովանդակություն:

Raspberry Pi Planet Finder: 14 քայլ (նկարներով)
Raspberry Pi Planet Finder: 14 քայլ (նկարներով)

Video: Raspberry Pi Planet Finder: 14 քայլ (նկարներով)

Video: Raspberry Pi Planet Finder: 14 քայլ (նկարներով)
Video: Qigong սկսնակների համար. Հոդերի, ողնաշարի և էներգիայի վերականգնման համար։ 2024, Նոյեմբեր
Anonim
Image
Image
Այն, ինչ ձեզ հարկավոր է
Այն, ինչ ձեզ հարկավոր է

Իմ քաղաքի Գիտության կենտրոնից դուրս կա մի մեծ մետաղական կառույց, որը կարող է պտտվել և ցույց տալ այն տեղը, որտեղ մոլորակները երկնքում էին: Ես երբեք չեմ տեսել, որ այն աշխատի, բայց ես միշտ մտածում էի, որ կախարդական կլիներ իմանալ, թե իրականում որտեղ են գտնվում այս անհասանելի այլ աշխարհները իմ փոքրիկ ես -ի նկատմամբ:

Երբ ես վերջերս անցա այս վաղուց մահացած ցուցահանդեսի կողքով, ես մտածեցի «գրազ եմ գալիս, որ կարող եմ դա անել» և այդպես էլ արեցի:

Սա ուղեցույց է այն մասին, թե ինչպես կարելի է դարձնել Planet Finder- ը (Լուսինը պատկերող), այնպես որ դուք նույնպես կարող եք իմանալ, թե ուր նայեք, երբ ձեզ տիեզերք է զգում:

Քայլ 1: Այն, ինչ ձեզ հարկավոր է

Այն, ինչ ձեզ հարկավոր է
Այն, ինչ ձեզ հարկավոր է

1 x Raspberry Pi (տարբերակ 3 կամ ավելի բարձր ՝ ինքնաթիռի WiFi- ի համար)

1 x LCD էկրան (16 x 2) (այսպես)

2 x Stepper շարժիչներ վարորդներով (28-BYJ48) (ինչպես սրանք)

3 x կոճակ (սրանց նման)

2 x եզրային կցորդիչներ (ինչպես սրանք)

1 x կոճակի կողմնացույց (այսպես)

8 x M3 պտուտակներ և ընկույզներ

3D տպված մասեր պատյանների և աստղադիտակի համար

Քայլ 2: Մոլորակային կոորդինատներ

Մոլորակային կոորդինատներ
Մոլորակային կոորդինատներ

Կան մի քանի տարբեր եղանակներ նկարագրելու, թե որտեղ են աստղագիտական օբյեկտները երկնքում:

Մեզ համար այն, որն առավել իմաստալից է օգտագործել, Հորիզոնական կոորդինատային համակարգն է, ինչպես ցույց է տրված վերևում պատկերում: Այս պատկերը այստեղ Վիքիպեդիայի էջից է ՝

hy.wikipedia.org/wiki/Horizontal_coordinat…

Հորիզոնական կոորդինատային համակարգը ձեզ տալիս է անկյուն հյուսիսից (ազիմութ) և վերև հորիզոնից (բարձրություն), ուստի այն տարբերվում է ՝ կախված այն բանից, թե որտեղից եք նայում աշխարհում: Այսպիսով, մեր մոլորակ որոնողը պետք է հաշվի առնի գտնվելու վայրը և Հյուսիսը գտնելու համար ինչ -որ կերպ ունենա հղում:

Tryամանակի և գտնվելու վայրի հետ փոխվող Բարձրության և Ազիմութի հաշվարկման փոխարեն, մենք կօգտագործենք Raspberry Pi- ի Wi -Fi կապը ՝ NASA- ի այս տվյալները փնտրելու համար: Նրանք հետևում են այսպիսի բաներին, որպեսզի մենք ստիպված չլինենք;)

Քայլ 3. Մոլորակի տվյալների մուտք

Մենք մեր տվյալները ստանում ենք ՆԱՍԱ -ի ռեակտիվ շարժման լաբորատորիայից (JPL) -

Այս տվյալներին հասնելու համար մենք օգտագործում ենք AstroQuery կոչվող գրադարանը, որը աստղագիտական վեբ ձևերի և տվյալների շտեմարանների հարցման գործիքների շարք է: Այս գրադարանի փաստաթղթերը կարելի է գտնել այստեղ ՝

Եթե սա ձեր առաջին Raspberry Pi նախագիծն է, սկսեք հետևել այս կազմված ուղեցույցին ՝

Եթե դուք օգտագործում եք Raspbian- ը ձեր Raspberry Pi- ում (դուք կլինեք, եթե հետևեք վերը նշված ուղեցույցին), ապա արդեն տեղադրված եք python3- ը, համոզվեք, որ տեղադրված եք ամենաթարմ տարբերակը (ես օգտագործում եմ 3.7.3 տարբերակը): Մենք պետք է սա օգտագործենք pip ստանալու համար: Բացեք տերմինալը և մուտքագրեք հետևյալը.

sudo apt տեղադրեք python3-pip

Այնուհետև կարող ենք pip օգտագործել աստղագուշակության արդիականացված տարբերակը տեղադրելու համար:

pip3 install --pre -upgrade astroquery

Նախքան այս ծրագրի մնացած մասը շարունակելը, փորձեք այս տվյալները մուտք գործել Python պարզ սցենարով ՝ համոզվելու համար, որ բոլոր ճիշտ կախվածությունները ճիշտ տեղադրված են:

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 = Հորիզոններ (id = մոլորակ, վայր = '000', դարաշրջաններ = Ոչ մեկը, id_type = 'majorbody') eph = obj.ephemerides () eph վերադարձ

Քայլ 5: Սարքավորումների միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Օգտագործելով գրատախտակներ և ցատկող լարեր, միացրեք երկու սլաքային շարժիչ, LCD էկրանը և երեք կոճակ, ինչպես ցույց է տրված վերևի սխեմաներում:

Պարզելու համար, թե որ համարն է ձեր Raspberry Pi- ի վրա, գնացեք տերմինալ և մուտքագրեք

քորոց

Սա պետք է ցույց տա ձեզ վերը նշված պատկերը `ամբողջական GPIO համարներով և տախտակի համարներով: Մենք օգտագործում ենք տախտակի համարները `որոշելու համար, թե որ կապերն են օգտագործվում ծածկագրում, այնպես որ ես հղումներ կանեմ փակագծերում:

Որպես օժանդակ սխեմայի դիագրամ, ահա կապերը, որոնք կապված են յուրաքանչյուր մասի հետ.

1 -ին Stepper շարժիչ - 7, 11, 13, 15

2 -րդ Stepper շարժիչ `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: Տպումների փորձարկում

Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում
Տպագրությունների փորձարկում

Երբ ամեն ինչ տպագրվի, համոզվեք, որ ամեն ինչ սերտորեն համընկնում է, նախքան որևէ սոսնձում կատարելը:

Տեղադրեք կոճակները տեղում և ամրացրեք էկրանը և շարժիչային շարժիչները M3 պտուտակներով և ամեն ինչ լավ շարժեք: Fileանկացած կոպիտ եզրերով ֆայլը նորից քանդեք հաջորդ քայլին ընդառաջ:

Քայլ 8: Երկարացնելով Stepper Motor- ը

Երկարացնելով Stepper Motor- ը
Երկարացնելով Stepper Motor- ը
Երկարացնելով Stepper Motor- ը
Երկարացնելով Stepper Motor- ը
Երկարացնելով Stepper Motor- ը
Երկարացնելով Stepper Motor- ը

Աստիճանաձև շարժիչը, որը վերահսկելու է աստղադիտակի բարձրության անկյունը, նստելու է հիմնական պատյանի վերևում և պտտվելու համար անհրաժեշտ է լարերի մեջ որոշակի թուլություն: Հաղորդալարերը պետք է երկարաձգվեն ՝ դրանք կտրելով սլաքի և վարորդի տախտակի միջև և դրանց միջև ամրացնելով նոր երկարություն:

Ես ներդրի նոր մետաղալարը հենարանի աշտարակի մեջ ՝ օգտագործելով մի կտոր թել, որը կօգնի նրան կոծկել, քանի որ օգտագործածս մետաղալարը բավականին կոշտ է և շարունակում էր խրվել: Անցնելուց հետո այն կարելի է զոդել սլաքի շարժիչին ՝ համոզվելով, որ հետևում է, թե որ գույնն է միացված, որպեսզի մյուսը նորից ամրացնեն ճիշտը: Մի մոռացեք լարերի վրա ավելացնել ջերմային նվազեցում:

Soldոդվելուց հետո գործարկեք պիթոնի սցենարը `ստուգելու համար, որ ամեն ինչ դեռ աշխատում է, այնուհետև լարերը հետ մղեք խողովակից ներքև, մինչև սուզվող շարժիչը դիրքում լինի: Այնուհետև այն կարող է կցվել սանդղակի շարժիչի պատյանին ՝ M3 պտուտակներով և ընկույզներով, նախքան պատյան հետևի հատվածը սոսնձված տեղում:

Քայլ 9. Տեղադրեք կոճակներ և LCD էկրան

Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան
Տեղադրեք կոճակներ և LCD էկրան

Տեղադրեք կոճակները և ամրացրեք ընկույզները ՝ դրանք ամրացնելուց առաջ ամրացնելուց առաջ: Ես սիրում եմ օգտագործել ընդհանուր մետաղալար, որն անցնում է նրանց միջև կոկիկության համար:

Ապահովեք LCD էկրանը M3 պտուտակներով և ընկույզներով: LCD- ն պոտենցիոմետր է ուզում դրա կապում մեկի վրա, որը ես նույնպես կպցրեցի այս փուլում:

Կրկին փորձեք կոդը: Համոզվեք, որ ամեն ինչ դեռ աշխատում է, նախքան ամեն ինչ սոսնձելը, քանի որ այս փուլում դա շատ ավելի հեշտ է ամրագրել:

Քայլ 10: Կցաշուրթեր ավելացնելը

Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը
Կցաշուրթեր ավելացնելը

Եռաչափ տպված մասերը տափաստանային շարժիչներին միացնելու համար մենք օգտագործում ենք 5 մմ եզրային կցորդիչ, որը տեղավորվում է սլաքի շարժիչի վերջի վերևում և ամրացված է փոքրիկ պտուտակներով:

Մի եզրը սոսնձված է պտտվող աշտարակի հիմքին, իսկ մյուսը ՝ աստղադիտակին:

Պտտվող աշտարակի վերևում գտնվող շարժիչին աստղադիտակը ամրացնելը շատ պարզ է, քանի որ այն շատ պտուտակներ մուտք գործելու համար շատ տեղ կա: Մյուս եզրն ավելի դժվար է ապահովել, սակայն հիմնական պատյանների և պտտվող աշտարակի հիմքի միջև բավականաչափ բաց կա, որպեսզի տեղավորվի փոքր ալենային բանալին և ամրացնի պտուտակը:

Կրկին փորձեք:

Այժմ ամեն ինչ պետք է աշխատի այնպես, ինչպես կլինի իր վերջնական վիճակում: Եթե դա այդպես չէ, ապա ժամանակն է շտկել սխալը և համոզվել, որ կապերն ապահով են: Համոզվեք, որ լարերը չեն դիպչում միմյանց, շրջեք էլեկտրական ժապավենով և կարկատեք այն վայրերը, որոնք կարող են խնդիր առաջացնել:

Քայլ 11: Գործարկեք գործարկման ժամանակ

Փոխանակ ձեռքով գործարկել կոդը ամեն անգամ, երբ մենք ցանկանում ենք գտնել մոլորակ, մենք ցանկանում ենք, որ այն գործի որպես առանձին ցուցահանդես, ուստի մենք այն կստեղծենք, որպեսզի գործարկի մեր ծածկագիրը, երբ Raspberry Pi- ն միանա:

Տերմինալում մուտքագրեք

crontab -e

Բացվող ֆայլում ֆայլի վերջում ավելացրեք հետևյալը, որին հաջորդում է նոր տող:

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

Ես պահել եմ իմ ծածկագիրը PlanetFinder կոչվող թղթապանակում, այնպես որ /home/pi/PlanetFinder/planetFinder.py- ն է իմ ֆայլի գտնվելու վայրը: Եթե ձերն այլ վայրում է պահված, համոզվեք, որ այն փոխեք այստեղ:

& Վերջում կարևոր է, քանի որ այն թույլ է տալիս ծածկագրին աշխատել հետին պլանում, այնպես որ այն չի պահում այլ գործընթացներ, որոնք նույնպես տեղի են ունենում բեռնման ժամանակ:

Քայլ 12: Սոսնձեք այն բոլորը միասին:

Սոսինձ այն ամենը միասին!
Սոսինձ այն ամենը միասին!
Սոսինձ այն ամենը միասին!
Սոսինձ այն ամենը միասին!

Այն ամենը, ինչ արդեն ամրացված չէ, այժմ պետք է ամրացվի:

Վերջապես, ավելացրեք փոքրիկ կողմնացույցը պտտվող հիմքի կեսին:

Քայլ 13: Օգտագործում

Օգտագործումը
Օգտագործումը

Երբ Planet Finder- ը միանում է, այն օգտվողին կհորդորի ուղղել ուղղահայաց առանցքը: Սեղմելով վեր և վար կոճակները, աստղադիտակը կտեղափոխվի, փորձեք հասնել նրան, որ այն հավասար լինի ՝ մատնանշելով աջ կողմը, այնուհետև սեղմեք լավ կոճակը (ներքևում):

Այնուհետև օգտագործողին կպահանջվի կարգավորել պտույտը, կոճակներով օգտագործել աստղադիտակը պտտելու համար, մինչև փոքր կողմնացույցի համաձայն հյուսիսը ցույց տա, այնուհետև սեղմել ok:

Այժմ կարող եք պտտվել մոլորակների միջով ՝ օգտագործելով վեր/վար կոճակները և ընտրել մեկը, որը կցանկանայիք գտնել լավ կոճակով: Այն կցուցադրի մոլորակի բարձրությունը և Ազիմութը, այնուհետև կգնա և մի քանի վայրկյան ցույց կտա դրա վրա, նախքան հետ շրջվել դեպի Հյուսիս:

Քայլ 14: Ավարտվեց

Ավարտվեց
Ավարտվեց

Ամեն ինչ արված է!

Վայելեք ՝ իմանալով, թե որտեղ են բոլոր մոլորակները:)

Տիեզերական մարտահրավեր
Տիեզերական մարտահրավեր
Տիեզերական մարտահրավեր
Տիեզերական մարտահրավեր

Առաջին մրցանակ տիեզերական մարտահրավերին

Խորհուրդ ենք տալիս: