ዝርዝር ሁኔታ:

የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም 14 ደረጃዎች (ከስዕሎች ጋር)
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም 14 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም 14 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም 14 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: ETIHAD'S Incredible Apartments! A380 First Class Trip Report【Abu Dhabi to London】 2024, ሀምሌ
Anonim
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም
የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም

ይህ መብራት ከብዙ ምክንያቶች የተነሳ የመጣው እኔ ሁል ጊዜ ወደ ላይ በሚበሩ አውሮፕላኖች ላይ ፍላጎት ስላደረብኝ እና በበጋ ወቅት በሳምንቱ መጨረሻ ላይ ብዙ የሚያምሩ አስደሳች የሚበሩ አሉ። ምንም እንኳን እነሱ በሚያልፉበት ጊዜ እነሱን መስማት ብቻ ይቀናቸዋል። ከዚያ ሌላኛው ምክንያት ከለንደን ከተማ አውሮፕላን ማረፊያ ወደ ውጭ ለሚወጡ አውሮፕላኖች የበረራ መንገድ አንዳንድ ጊዜ የሚሰማ እና አንዳንድ ቆንጆ ጫጫታ በረራዎች የሚሄዱ ይመስላል። አንዳንድ ቪዲዮዎችን ለዩቲዩብ በመቅረጽ ላይ እንደሆንኩ በጫጫታ አውሮፕላን ምክንያት ቀረፃን መሻር በእውነቱ ያበሳጫል። ስለዚህ እንደ flightradar24 ባሉ ጣቢያዎች ላይ የሚያዩት መረጃ በይፋ የሚገኝ እንደሆነ አሰብኩ ፣ አንድ ጊዜ ተመሳሳይ ነገር ከከፈተ አውታረ መረብ ሲገኝ የቅድመ ማስጠንቀቂያ መብራት ተወለደ። የፕሮጀክቱን መኖሪያ ለማድረግ የአውሮፕላን ማረፊያ መብራት ቅጂን የመጠቀም ሀሳብ ለማምጣት ብዙም ጊዜ አልፈጀበትም።

ስለ The OpenSky አውታረ መረብ በ https://www.opensky-network.org ላይ የበለጠ ማወቅ እችላለሁ ፣ እንዲሁም እኔ ግልጽ (PLA) ን ከመጠቀም ይልቅ ጥሩ የሪንስ ሌንስ ለመሥራት እና ምንም እንኳን የ ADS-B ተቀባዩ ቢኖረኝም ለማቆየት ፈልጌ ነበር። ይህ ቀላል እና ርካሽ። ኤዲኤስ-ቢ እንዲሁ አንቴና ይፈልጋል እና ይህ በቢሮ ውስጥ ባለው መደርደሪያ ላይ ለመሄድ መብራት አያደርግም። ስለዚህ ምናልባት 3 ዲ ህትመትን ፣ ሬዚን መቅረጽ እና ሂሳብን እንዲሁም ከላይ በላይ ሊያልፉ የሚችሉ የአውሮፕላኖችን አቀማመጥ ከፍ ለማድረግ ስለሚያስችል ግንባታው አስደሳች ሆኖ እንደሚያገኙት ተስፋ እናደርጋለን።

ደረጃ 1 - ጉዳዩን መንደፍ

የጉግል ፍለጋ ብዙ የተለያዩ የመንገድ ላይ መብራቶች ዲዛይኖችን ያመጣል እና የዚህ ንድፍ ከብዙ የተለያዩ የእውነተኛ አምፖሎች ዲዛይን ተጽዕኖዎችን በመጠቀም የተሰራ ነው። በእውነተኛ ህይወት ውስጥ በጣም ትልቅ ስለሚሆኑ በክፍል ውስጥ ወይም በመደርደሪያ ላይ ከመቀመጥ ይልቅ መጠናቸው ሚዛናዊ ነው።

ዲዛይኖች በ Fusion 360 ውስጥ ተቀርፀው ነበር እና ከቀደሙት ፕሮጄክቶች እንደ ‹ራፕቤሪ ፒ ዜሮ› ያሉ አንዳንድ ቀዳሚ አባሎችን አስመጣሁ። ንጥረ ነገሮችን እንደገና መጠቀም መቻል መሰረታዊ ነገሮችን ከማውረድ ብዙ የራስ ምታት ይወስዳል። እንዲሁም ፋይሎቹን እዚህ https://www.thingiverse.com/thing:3884138 ማውረድ ይችላሉ

ደረጃ 2 - ሌንሶችን መጣል - #ውድቀት

ሌንሶችን መጣል - #ውድቀት
ሌንሶችን መጣል - #ውድቀት
ሌንሶችን መጣል - #ውድቀት
ሌንሶችን መጣል - #ውድቀት
ሌንሶችን መጣል - #ውድቀት
ሌንሶችን መጣል - #ውድቀት

የዚህ መብራት በጣም አስፈላጊ የንድፍ አካል ሌንስ ይሆናል። ስለዚህ ያለ ጥሩ እውነተኛ መስታወት መስታወት ፕሮጀክቱ ሊሠራ ስለሚችል ይህንን መጀመሪያ ተጋፍቻለሁ። እኔ ያንን ለማሳካት በመሞከር ያገኘሁትን ውድቀቶች እዚህ እጽፋለሁ ፣ እኔ መጀመሪያ ሌንስን ሐምራዊ ለማድረግ የወሰንኩትን በመቃወም አይደለም። የመንገድ ላይ መብራቶች በአምባ እና በሰማያዊ ውስጥ ይመጣሉ እና ሀምበርን መለወጥ ከጀመርኩ በኋላ ብቻ ነው ሀሳቤን የቀየርኩት እና ሰማያዊ እፈልጋለሁ ብዬ ወሰንኩ።

እኔ ከቻልኩት አምበር በመያዣው መስመር ላይ ጥቅም ላይ የሚውሉ እና ሰማያዊዎቹ ደግሞ በአውራ ጎዳና ላይ ለመደርደር የሚያገለግሉ ናቸው ፣ እና እነዚህ የመንገዶቹን መብራቶች ቢፈልጉ የበለጠ የተገኙ የሚመስሉ ናቸው። ሆኖም ፣ ሐምራዊ ሌንስ ለመሥራት የመጀመሪያ ሙከራዬ እዚህ አለ። ሌንሱን ለመሥራት ፣ እኔ ከቀለም ማሟያ ጋር የጠራውን ሙጫ እጠቀም ነበር ፣ እና ምንም እንኳን የ 3 ዲ ሻጋታ ማተም ይቻል ይሆን ብዬ ከማሰብ በፊት ጥቂት ሻጋታዎችን አድርጌያለሁ። ስለዚህ በ 3 ዲ ውስጥ የተከፈለ ሻጋታ መሥራት እና በፔትጂ ውስጥ ማተም ጀመርኩ። እጅግ በጣም ብዙ የሻጋታ ልቀቶች ሻጋታውን ለመግደል በቂ እንደሆነ አም was ነበር። እንደ ጥንድ ሙከራዎች ሁሉ ሙጫውን እንደ ሙጫ ሙጫ ላይ እንዲጣበቅ አደረግኩ እና እነሱን ለመለያየት የሚቻል አይመስልም። እኔ ልጠቀምበት የምፈልገው ሙሉ ልኬት ቢኖረኝም ፣ ተቃወምኩ እና በባህላዊ የሲሊኮን መቅረጽ ለመጠቀም ሌንስን አተምኩ።

ደረጃ 3 የተለያዩ የሬስ ዓይነቶች

የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች
የተለያዩ የሬስ ዓይነቶች

በፍጥነት ወደ ጎን ፣ ለዚህ ፕሮጀክት 3 ዓይነት ግልፅ/ባለቀለም ሙጫዎችን እጠቀም ነበር።

የመጀመሪያው ፔቤኦ - ጌዴኦ ተብሎ የሚጠራው የትርፍ ጊዜ ማሳለፊያ የገቢያ ዓይነት ሲሆን በመደበኛነት ትናንሽ ዕቃዎችን በማሸግ ለጌጣጌጥ እና ለጠረጴዛ ወረቀቶች ክብደት ወዘተ የሚሸጥ ነው። ለሚያገኙት መጠን በጣም ውድ ቢሆንም ግን በትርፍ ጊዜ ማሳለፊያዎች እና የዕደ ጥበብ ሱቆች ውስጥ ምቹ እና በቀላሉ የሚገኝ ነው። በ 2: 1 ጥምር ላይ ተደባልቋል። ሁለተኛው በ 10: 1 ጥምርታ ከጠንካራው ጋር የተቀላቀለ ቅድመ-ቀለም ያለው ሙጫ ሲሆን ይህ ለመፈወስ ረጅሙን የወሰደ ሲሆን ሙሉ በሙሉ ከመፈወሱ በፊት አንድ ሳምንት ያህል ሐቀኛ ለመሆን። የመጨረሻው በ 2: 1 ጥምር ውስጥ የተቀላቀለ እና ይህ በ 2 ቀናት ገደማ ውስጥ የተቀላቀለ ግልፅ ሙጫ ነበር ፣ ይህንን በቀለም ጠብታዎች ቀለም መቀባት ይችላሉ ፣ ግን እርስዎ ሁል ጊዜ ተመሳሳይ የቀለም ሬሾን እንደሚጠቀሙ ማረጋገጥ ያስፈልግዎታል። የተለዩ ስብስቦችን እየሠሩ ነው። እንዲሁም በጣም ወጪ ቆጣቢን ይሠራል። በመጨረሻ ለሻጋታ አርቲቪው ጂፒ -3481 አርቲቪ ነበር እና ይህ ለማዘጋጀት 24 ሰዓታት ያህል ይወስዳል እና በጣም ረጅም የማብሰያ ጊዜ አለው ስለዚህ እሱን ለማደባለቅ እና ለማፍሰስ ብዙ ጊዜ ይኖርዎታል።

በሁለቱም ሻጋታ እና ሙጫ በሚፈስሱ አረፋዎች እንዲረበሹዎት በአሁኑ ጊዜ የእረፍት ድስት የለኝም (በአሁኑ ጊዜ በትእዛዝ ላይ)። ለዚህ በጣም ብዙ ጉዳይ አይደለም ፣ ግን ግልፅ በሆነ ሌንስ ወይም ተመሳሳይ ከሆነ አረፋዎቹን ከተደባለቀበት ለማውጣት በሆነ መንገድ ማሰብ ይፈልጋሉ።

ደረጃ 4: ሌንስን በሲሊኮን ሻጋታ #2 ውስጥ መጣል

Image
Image
በሲሊኮን ሻጋታ #2 ውስጥ ሌንስን መጣል
በሲሊኮን ሻጋታ #2 ውስጥ ሌንስን መጣል
በሲሊኮን ሻጋታ #2 ውስጥ ሌንስን መጣል
በሲሊኮን ሻጋታ #2 ውስጥ ሌንስን መጣል

ስለዚህ ይህ የሪሲን ሌንስ ለመሥራት ሁለተኛው ሙከራ ነው እና የመጀመሪያው ደረጃ ሁለቱንም ሌንስ በ Fusion 360 ውስጥ መስራት እና ከዚያ በ ABS ውስጥ እንዲሁም እሱን ለመያዝ ባልዲ ማተም ነበር። ይህ ለሻጋታው የቀደመ እና ጥቅም ላይ የሚውለውን የሲሊኮን መጠን ለመቀነስ ይረዳል። ይህንን በቀላሉ ከካርድ ውጭ ማድረግ ይችላሉ ፣ ግን እሱ የተለየ አቀራረብ ነው። ከሻጋታው ለመልቀቅ የተሻለ ዕድል ለመስጠት መጀመሪያ ቫርኒት አደረግሁት እና ከዚያ የሰም መልቀቂያ ወኪል ጥሩ ሽፋን ሰጠው።

ከዚያም ስለ ባህር ዳርቻ 27 RTV የሆነ GP-3481 አፈሰስኩ እና ከዚያ ከመቀነሱ በፊት በሚቀጥሉት 24 ሰዓቶች ውስጥ እንዲቀመጥ አደረግሁት። አንዴ ይህ ከተደረገ በ 4: 5 ጠብታዎች ከቀለም ቀለም ጠብታዎች ጋር በ 2: 1 ጥምር የተደባለቀውን ግልፅ ሙጫ ተጠቅሜ ለጥሩ አራት ደቂቃዎች በደንብ ቀላቅለውታል። ይህንን ወደ ሻጋታ ውስጥ አፍስሰው ከዚያ በኋላ የተተኮሰ ብርጭቆን ወደ ሙጫው ውስጥ አስገብተው በኋላም ለመብራትም ሆነ ለኤልዲው ባዶነትን ለመስጠት። ከ 24 ሰዓታት ገደማ በኋላ ይህ ሙጫ ለማስወገድ ዝግጁ ነበር እና ሌንስ በጥሩ ሁኔታ ወጣ። የአየር አረፋዎች አሉ ፣ ግን እስካሁን ከመፍሰሱ በፊት ሙጫውን ለማቅለጥ የቫኪዩም ዕቃ የለኝም።

ደረጃ 5 - 3 ዲ ማተሚያ እና ዝግጅት

3 ዲ ማተሚያ እና ዝግጅት
3 ዲ ማተሚያ እና ዝግጅት
3 ዲ ማተሚያ እና ዝግጅት
3 ዲ ማተሚያ እና ዝግጅት
3 ዲ ማተሚያ እና ዝግጅት
3 ዲ ማተሚያ እና ዝግጅት

አምሳያው የተቀረፀው ማዕከላዊው ክፍል ከመሠረቱ ጋር በሚሰካበት መንገድ ነው። ይህ በስዕሉ ሂደት ወቅት ጭምብልን ለማስወገድ ነበር። መላው አምሳያው በ Hatchbox ABS ውስጥ ታትሞ ከዚያ አሸዋ ተደረገ። ከ 60 ግሪቶች ጀምሮ እስከ 800 ገደማ ገደማ ድረስ ለዚህ ሞዴል ጥሩ የገጽ ማጠናቀቂያ ሰጠ።

ደረጃ 6 - ስብሰባ እና ስዕል

ስብሰባ እና ስዕል
ስብሰባ እና ስዕል
ስብሰባ እና ስዕል
ስብሰባ እና ስዕል
ስብሰባ እና ስዕል
ስብሰባ እና ስዕል

አንዴ ህትመቶቹ አሸዋ ከተደረገባቸው ፣ ከዚያ በአንዳንድ ከፍ ባለ የግንባታ ፕሪመር ቀለም የተቀባ ነበር። ትንሽ አሸዋ ከዚያም በግራጫ ፕሪመር ውስጥ ይረጫል። ዋናዎቹ ክፍሎች በፎርድ ምልክት ቢጫ ቀለም የተቀቡ ሲሆን ከዚያ ለመሠረቱ ጥቅም ላይ የሚውለው አረንጓዴ ደኖች። የታሚያ ብርሀን ድምቀቶች በቦኖቹ ላይ እና በሌንስ መያዣው ላይ ጥቅም ላይ የዋሉ አንዳንድ የሞሎው ብር ክሮም ተተግብረዋል።

ደረጃ 7 - በመጀመሪያ ወሰን ባለው ክልል ውስጥ አውሮፕላኖችን ይፈልጉ

በሃርድዌር ከተደረደረ ፣ ሶፍትዌሩ መሥራት ነበረበት። አሁን የበረራ መከታተያ የሚሰጡ ሁለት ጣቢያዎች አሉ ፣ ግን ያንን ውሂብ ለመድረስ ኤፒአይ የሚሰጡ ብዙ አይደሉም። አንዳንዶች የሚያደርጉት በንግድ መሠረት ብቻ ነው ፣ ግን እንደ እድል ሆኖ በነፃ ሊጠቀሙበት የሚችሉት https://opensky-network.org የሚባል አንድ ጣቢያ አለ።

ይህንን ውሂብ ለመድረስ መመዝገብ አለብዎት እና ከዚያ የእነሱን ኤፒአይ መጠቀም ይችላሉ ፣ እሱ በርካታ ተግባሮችን እና ውሂቡን ለመሳብ መንገዶችን ይሰጣል። በአንድ ክልል ውስጥ ላሉት ሁሉም በረራዎች ፍላጎት አለን እና ለዚያ የቀጥታ ኤፒአይ ጥሪ አላቸው። https://opensky-network.org/apidoc/ ተብሎ ይጠራል። የኤፒአይ ጥሪ እርስዎ የሚስቡትን የሳጥን ማዕዘኖች በእርግጥ የእኛ ላት/ሎን እንደ ማዕከላዊ ነጥብ ይፈልጋል። እርስዎ በሚተይቡት ነገር ላይ በመመስረት ሳጥኑን የሚስበው በዚህ ጣቢያ ላይ የሂሳብ ስራውን ማረጋገጥ ይችላሉ።

ተግባር get_bounding_box ($ latitude_in_degrees ፣ $ longitude_in_degrees ፣ $ half_side_in_miles) {$ half_side_in_km = $ half_side_in_miles * 1.609344; $ lat = deg2rad ($ latitude_in_degrees); $ lon = deg2rad ($ longitude_in_degrees); $ ራዲየስ = 6371; $ parallel_radius = $ ራዲየስ*cos ($ lat); $ lat_min = $ lat - $ half_side_in_km/$ ራዲየስ; $ lat_max = $ lat + $ half_side_in_km/$ ራዲየስ; $ lon_min = $ lon - $ half_side_in_km/$ parallel_radius; $ lon_max = $ lon + $ half_side_in_km/$ parallel_radius; $ box_lat_min = rad2deg ($ lat_min); $ box_lon_min = rad2deg ($ lon_min); $ box_lat_max = rad2deg ($ lat_max); $ box_lon_max = rad2deg ($ lon_max); የመመለሻ ድርድር ($ box_lat_min ፣ $ box_lon_min ፣ $ box_lat_max ፣ $ box_lon_max);

ኮድዎን ለመፈተሽ ከፈለጉ ወደ ላት/ሎሎን ገብተው ውጤቱን በካርታ ላይ ማየት የሚችሉበት ጣቢያ አለ - በካርታው ላይ የታሰረ ሳጥን ምሳሌን ይመልከቱ።

ደረጃ 8 - ከእኛ ጋር የሚዛመዱትን የአውሮፕላኖች ራስጌ ማስላት

ከእኛ ጋር የሚዛመዱትን የአውሮፕላኖች ራስጌ ማስላት
ከእኛ ጋር የሚዛመዱትን የአውሮፕላኖች ራስጌ ማስላት

ከገመድ ሳጥን ኤፒአይ ጥሪ የተገኙት ውጤቶች የአውሮፕላኖችን ዝርዝር ፣ ሎን/ላት ፣ ፍጥነት ፣ ከፍታ እና አርዕስት ይሰጡናል። ስለዚህ እኛ ማድረግ ያለብን ቀጣይ ነገር ቢያንስ ወደ አጠቃላይ አቅጣጫችን የሚሄዱትን የበለጠ ለማስኬድ ከእኛ ጋር በተያያዘ የእያንዳንዱን አውሮፕላን ርዕስ ማግኘት ነው። እኛ አቋማችንን እናውቃለን እና ከእኛ ወደ እያንዳንዱ አውሮፕላን ማእዘኑን መሥራት እንደምንችል ይህንን ማድረግ እንችላለን።

ይህንን ለማድረግ በመጀመሪያ በጃቫስክሪፕት ውስጥ የነበረበትን አንድ ኮድ እጠቀማለሁ ስለዚህ እዚህ ወደ PHP ቀይሬዋለሁ ፣

* በሁለት ነጥቦች መካከል ያለውን (* የመጀመሪያ) ማስላት * * ከኤድ ዊሊያምስ የአቪዬሽን ቀመር ፣ https://williams.best.vwh.net/avform.htm#Crs * source = instantglobe.com/CRANES/GeoCoordTool.html */ ተግባር get_bearing ($ home_lat ፣ $ home_lon ፣ $ plane_lat ፣ $ plane_lon) {$ lat1 = deg2rad ($ home_lat); $ lat2 = deg2rad ($ plane_lat);

$ dLon = deg2rad ($ plane_lon- $ home_lon);

$ y = ኃጢአት ($ dLon) * cos ($ lat2);

$ x = cos ($ lat1)*ኃጢአት ($ lat2) - ኃጢአት ($ lat1)*cos ($ lat2)*cos ($ dLon); $ z = atan2 ($ y ፣ $ x); $ zz = (rad2deg ($ z) +360)% 360; $ zz መመለስ;

የመጀመሪያዎቹ የጃቫስክሪፕት ስሪቶች ያሉበትን ገጽ ማየት ከፈለጉ ፣ ይህ አገናኝ ነው

በዚያ ኮድ ውስጥ ፣ ለእያንዳንዱ ዓይነት ስሌት የተለያዩ ንዑስ ልምዶችን ማየትም ይችላሉ።

ደረጃ 9 ክበብን በመመልከት ጣልቃ ገብነትን ማስላት

ክበብን በመመልከት ጣልቃ ገብነትን ማስላት
ክበብን በመመልከት ጣልቃ ገብነትን ማስላት

ስለዚህ አሁን በእሱ እና በአካባቢያችን መካከል ያለው ተሸካሚ ከ 90 በታች (አዎንታዊም ሆነ አሉታዊ) የሆነበት አውሮፕላን አለን ስለዚህ ይህ ማለት በአቅራቢያ የሚበርበት ዕድል አለ ማለት ነው። የአርሶአደሩን ቀመር በመጠቀም እኛ የአውሮፕላኑን ሎን/ላትን እና የቤታችንን ሎን/ላትን ከእኛ ርቆ ያለውን ርቀት በመጠቀም መሥራት እንችላለን።

ሥዕላዊ መግለጫውን በመመልከት ፣ ወደ 3 ማይል ራዲየስ ለማለት በቤታችን ዙሪያ ክበብ ብንሠራ ይህ የሚበርን ማንኛውንም ነገር ለማየት እድል ይሰጠናል። በአውሮፕላኑ እና በእኛ መካከል ያለውን የመሪነት ልዩነት እናውቃለን ፣ ከዚያ የአውሮፕላኑን ርቀትንም እናውቃለን ስለዚህ ጥሩውን አሮጌ SOHCAHTOA በመጠቀም ሶስት ማእዘኑን መሥራት እንችል ዘንድ ፣ እና በዚህ ሁኔታ የማዕዘን ታንን በመጠቀም እኛ ማግኘት እንችላለን ተቃራኒ የጎን ርዝመት። ስለዚህ ይህንን እሴት በቤቱ ዙሪያ ካለው የክበብ ራዲየስ እሴት ጋር ካነፃፅረን አውሮፕላኑ እኛ ለማየት በቂ ቅርብ ሆኖ ይብረር እንደሆነ ለማወቅ እንችላለን። ቀጣዩ ቢት አውሮፕላኑ የአየር ፍጥነቱን እና ርቀቱን በመጠቀም የሚያልፍበትን ጊዜ መሥራት ነው እና ይህ ከ 45 ሰከንዶች ያህል ወይም ከዚያ ያነሰ ከሆነ መብራቱን እናበራለን። ይህ የዝንብ እድልን ለመሥራት የምጠቀምበት ትንሽ ኮድ ነው። ይህን የማደርገው በአቅራቢያ ያለ አውሮፕላን ማረፊያ በመኖሩ እና አውሮፕላኖቹ ታክሲ በሚነዱበት ጊዜ ወደ ቤቱ መጠቆማቸው አይቀሬ ነው። ሆኖም ቁመታቸው ዜሮ ስለሆነ እና ፍጥነቱ በእግረኛ ፍጥነት ስለሆነ ይህ ማንቂያውን ማንቃት የለበትም።

ተግባር get_intercept ($ home_head ፣ $ plane_head ፣ $ plane_distance) {

$ flight_angle = abs (abs ($ home_head - $ plane_head) - 180); $ flight_angle_r = deg2rad ($ flight_angle); $ flight_angle_t = ታን ($ flight_angle_r); $ flight_intercept = $ flight_angle_t * $ plane_distance;

ከሆነ (($ flight_angle <90) && ($ flight_intercept <3)) {// የሚቻል በረራ ካለፈ

}

$ flight_intercept ን ይመልሱ ፤

}

ደረጃ 10 በካርታ ላይ በሁለት ነጥቦች መካከል ያለው ርቀት - የሃቨርሲን ቀመር

በካርታ ላይ በሁለት ነጥቦች መካከል ያለው ርቀት - የሃቨርሲን ቀመር
በካርታ ላይ በሁለት ነጥቦች መካከል ያለው ርቀት - የሃቨርሲን ቀመር

ስለዚህ በአውሮፕላኑ እና በአካባቢያችን መካከል ያለውን ርቀት ማስላት አለብን። በካርታ ላይ በአጭር ርቀቶች ርቀቱን በግምት ማስላት ይችላሉ ፣ ግን ምድር ሉላዊ እንደመሆኑ ፣ የታጠፈውን ወለል ግምት ውስጥ ለማስገባት የሚያስችል ‹haversine formula› የሚባል ቀመር አለ። ቀመር ውስጥ የበለጠ ማንበብ ይችላሉ-

አሁን ርቀቱ ሲሰላ እና የአውሮፕላኑን የአየር ፍጥነት እናውቃለን አውሮፕላኑ ከላይ ከመሆኑ በፊት ምን ያህል ሰከንዶች እንደሚሆን ማወቅ እንችላለን። ስለዚህ በ flypast በ 30 ሰከንዶች ውስጥ የሆነ ነገር ካለ እና በመጨረሻ የማስጠንቀቂያ መብራታችን ካለ መብራቱ ይነሳል።

* የተመሠረተ 0n JS በ instantglobe.com/CRANES/GeoCoordTool.html እና ወደ PHP */ተቀይሯል

ተግባር get_distHaversine ($ home_lat ፣ $ home_lon ፣ $ plane_lat ፣ $ plane_lon) {$ R = 6371; // የምድር አማካይ ራዲየስ በኪሜ $ dLat = deg2rad ($ plane_lat- $ home_lat); $ dLon = deg2rad ($ plane_lon- $ home_lon); $ lat1 = deg2rad ($ home_lat); $ lat2 = deg2rad ($ plane_lat);

$ a = ኃጢአት ($ dLat/2) * ኃጢአት ($ dLat/2) + cos ($ lat1) * cos ($ lat2) * ኃጢአት ($ dLon/2) * ኃጢአት ($ dLon/2);

$ c = 2 * atan2 (sqrt ($ a) ፣ sqrt (1- $ a)); $ d = $ R * $ c; $ d ተመላሽ; }

ደረጃ 11 - የአውሮፕላን ዳታቤዝ ማስመጣት እና መግለፅ

ከሌሎቹ ቁርጥራጮች አንዱ አንዱ ክፍት ጣቢያው ከጥሪዎች ፊደሎቻቸው እና ከማያውቋቸው ጋር የአውሮፕላኖችን የውሂብ ጎታ ያቀርባል። የእሱ በርካታ መቶ ሺህ ግቤቶች። ስለዚህ ይህንን ማውረድ እና በአከባቢው ወደ ማሪያ ዲቢ የመረጃ ቋት ለመፈለግ (MySQL) ልንጭነው እንችላለን። ከላይ በሚታየው እያንዳንዱ አውሮፕላን ፣ ዝርዝሮቹን ሰርስረን ስንት ጊዜ እንደታየ ለማሳየት ቆጣሪን እናዘምነዋለን።

እኔ የምፈልጋቸውን አውሮፕላኖች ለማጉላት በአሁኑ ጊዜ የመረጃ ቋቱን አርትዕ እያደረግሁ ነው። በዚህ ክረምት ሁለት ጊዜ አንድ ሚግ -15 አልnል። ስለዚህ ዓላማው እኔ የጨመርኩትን የማስጠንቀቂያ መስክ መጠቀም እና ከዚያ አንድ አስደሳች ነገር ሲያልፍ በፍጥነት ብርሃን ማብራት ነው

ደረጃ 12 ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል

ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል

ስለዚህ በንድፈ ሀሳብ ሁሉም ነገር በጥሩ ሁኔታ ይሠራል ፣ ግን በኤፒአይ ውስጥ የማይታዩ የሚበሩ አውሮፕላኖች እንዳሉ በውሂብ ያገኛሉ።

ይህ የሆነበት ምክንያት ሁሉም አውሮፕላኖች የኤ.ዲ.ኤስ.-ትራንስ ትራንስደርደርን እየተጠቀሙ እና በ MLAT ላይ ተመስርተው የቆዩ አስተላላፊዎችን ስለማይጠቀሙ ነው። MLAT ን በመጠቀም በአውሮፕላኖች ላይ የአቀማመጥ መረጃን ለማግኘት አቋማቸውን በሦስትዮሽ ለማስተካከል በምድር ላይ ተከታታይ ተቀባዮች ያስፈልጉታል እና እንደ flightradar24 ያሉ አንዳንድ ጣቢያዎች ከከፈቱ ጋር ሲወዳደሩ ይህን የሚያደርጉ የበጎ አድራጊዎች አውታረ መረብ አላቸው። ከጊዜ በኋላ የእነሱ ሽፋን እንዲሁ ይሻሻላል ብለን ተስፋ እናደርጋለን እና ወደዚህ ውሂብ ለማከል የራሴን MLAT መቀበያ እዘጋጃለሁ።

ደረጃ 13: Codebase

ይህንን የሚጠቀሙ ከሆነ አይረሱ ፣ የአውሮፕላኖች የውሂብ ጎታ ከሌልዎት እና እንዲሁም የበረራ መረጃን ለመድረስ የራስዎን የሎን/ላት እሴት እና የኤፒአይ ቁልፍ ካከሉ የ SQL መግለጫዎችን ማስወገድ ይፈልጉ ይሆናል።

github.com/ajax-jones/runway-light-awacs

ይግለጹ ("ኢንተርቫል" ፣ (20 * 1)); ተግባር fexp () {$ lat = "የእርስዎ ኬክሮስ"; $ lon = "የእርስዎ ኬንትሮስ"; $ ጎን = 15.75; $ box = get_bounding_box ($ lat, $ lon, $ side); $ latmin = $ ሳጥን [0]; $ lonmin = $ ሳጥን [1]; $ latmax = $ ሳጥን [2]; $ lonmax = $ ሳጥን [3]; $ flyurl = "https://opensky-network.org/api/states/all?lamin=$latmin&lomin=$lonmin&lamax=$latmax&lomax=$lonmax"; አስተጋባ "ሰማይን መቃኘት"; $ start_time = microtime (እውነት); $ json = file_get_contents ($ flyurl); $ ውሂብ = json_decode ($ json ፣ TRUE); $ ገቢ = ሐሰት; $ num_planes = ቆጠራ ($ ውሂብ ['ግዛቶች']); ከሆነ ($ num_planes> 0) {echo »እና $ num_planes አውሮፕላኖችን / n ን ማየት እንችላለን ፤ ለ ($ x = 0; $ x 0) {$ plane_eta = $ distplane/$ air_speed_kmh; } ሌላ {$ eta = 1; } ከሆነ ((($ intercept) 0)) && ($ distplane0) {$ inbound = TRUE; አስተጋባ "------------------------------------------------------ -------------------- / n "; አስተጋባ "$ icao24 - [$ country $ callsign] በ [$ geo_altitude_m M - $ geo_altitude_f ft]"; አስተጋባ "[ፍጥነት $ air_speed_kmh kmh እና" ፣ ዙር ($ distplane ፣ 1) ፣ “km away] n”; አስተጋባ "[በአንድ ርዕስ ላይ» ፣ ዙር ($ አውሮፕላን_heading ፣ 1) ፣ "] [መነሻ ሐረግ $ ርዕስ_ዲ]"; አስተጋባ "[$ ኬክሮስ ፣ $ ኬንትሮስ] n”; አስተጋባ "[flypast in", decimal_to_time ($ plane_eta) ፣ "now", round ($ intercept, 1) ፣ "km away / n"; አስተጋባ "------------------------------------------------------ -------------------- / n "; $ DBi = new mysqli ("127.0.0.1" ፣ "root" ፣ "your password" ፣ "awacs") ፤ $ sql = "ከአይሮፕላን ዳታቤዝ * ይምረጡ 'icao24` =' $ icao24 '"; mysqli_set_charset ($ DBi ፣ “utf8”); $ getplanedata = mysqli_query ($ DBi ፣ $ sql) ወይም ይሞቱ (mysqli_error ($ DBi)); $ row_getplanedata = mysqli_fetch_assoc ($ getplanedata); $ rows_getplanedata = mysqli_num_rows ($ getplanedata); ከሆነ ($ rows_getplanedata> 0) {do {echo "callsign ="; አስተጋባ $ row_getplanedata ['ምዝገባ']; አስተጋባ "አንድ" ነው; አስተጋባ $ row_getplanedata ['manufacturername']; አስተጋባ ""; አስተጋባ $ row_getplanedata ['ሞዴል']; አስተጋባ "በ"; አስተጋባ $ row_getplanedata ['manufacturerricao']; አስተጋባ "በባለቤትነት የተያዘ"; አስተጋባ $ row_getplanedata ['ባለቤት']; አስተጋባ "ታይቷል"; አስተጋባ $ row_getplanedata ['ጉብኝቶች']; “ጊዜያት” ን አስተጋባ; አስተጋባ "ልዩ ደረጃ ="; አስተጋባ $ row_getplanedata ['ልዩ']; አስተጋባ "\ n"; $ ጉብኝቶች = $ row_getplanedata ['ጉብኝቶች']+1; } ሳለ ($ row_getplanedata = mysqli_fetch_assoc ($ getplanedata)); mysqli_free_result ($ getplanedata); $ sqli = "የአውሮፕላን ዳታቤዝ SET ጉብኝቶች አዘምን = $ ጉብኝቶች WHERE icao24 = '$ icao24'"; mysqli_set_charset ($ DBi ፣ “utf8”); $ updateplanedata = mysqli_query ($ DBi ፣ $ sqli) ወይም ይሞቱ (mysqli_error ($ DBi)); } ሌላ {አስተጋባ «ይህን አውሮፕላን በዲቢቢው ውስጥ ማግኘት አልተቻለም ስለዚህ አክሎ» ፤ $ sqli = "የአውሮፕላን ዳታቤዝ ውስጥ ያስገቡ (icao24 ፣ ጉብኝቶች ፣ ልዩ) እሴቶች ('$ icao24' ፣ 1 ፣ 1)"; $ updateplanedata = mysqli_query ($ DBi ፣ $ sqli) ወይም ይሞቱ (mysqli_error ($ DBi)); } አስተጋባ "------------------------------------------------------ --------------------- / n "; } ሌላ {// አስተጋባ "$ callsign"; }}} ሌላ {አስተጋባ »እና ሰማያት ግልጽ ናቸው / n" ፤ } ከሆነ ($ ገቢ) {አስተጋባ «ወደ ውስጥ የሚገባ አውሮፕላን / n»; $ ትዕዛዝ = "አሳማዎች w 17 1"; execInBackground ($ ትዕዛዝ); } ሌላ {ወደ ውስጥ የሚገቡ በረራዎች የሉም / n »ን ያስተጋባሉ ፤ $ ትዕዛዝ = "አሳማዎች w 17 0"; execInBackground ($ ትዕዛዝ); }} ተግባር decimal_to_time ($ አስርዮሽ) {$ offset = 0.002778; ከሆነ ($ አስርዮሽ> $ ማካካሻ) {$ አስርዮሽ = $ አስርዮሽ - 0.002778; } $ ሰዓታት = gmdate ('H' ፣ ፎቅ ($ አስርዮሽ * 3600)); $ ደቂቃዎች = gmdate ('i' ፣ ፎቅ ($ አስርዮሽ * 3600)); $ ሰከንዶች = gmdate ('s' ፣ ፎቅ ($ አስርዮሽ * 3600)); ተመለስ str_pad ($ ሰዓቶች ፣ 2 ፣ “0” ፣ STR_PAD_LEFT)። ":". str_pad ($ ደቂቃዎች ፣ 2 ፣ “0” ፣ STR_PAD_LEFT)። ":". str_pad ($ ሰከንዶች ፣ 2 ፣ “0” ፣ STR_PAD_LEFT); }/ * * በሁለት ነጥቦች መካከል ያለውን * * ማስላት (*) ከኤድ ዊሊያምስ የአቪዬሽን ቀመር ፣ https://williams.best.vwh.net/avform.htm#Crs * source = instantglobe.com/CRANES/GeoCoordTool። html */ function get_bearing ($ home_lat ፣ $ home_lon ፣ $ plane_lat ፣ $ plane_lon) {$ lat1 = deg2rad ($ home_lat); $ lat2 = deg2rad ($ plane_lat); $ dLon = deg2rad ($ plane_lon- $ home_lon); $ y = ኃጢአት ($ dLon) * cos ($ lat2); $ x = cos ($ lat1)*ኃጢአት ($ lat2) - ኃጢአት ($ lat1)*cos ($ lat2)*cos ($ dLon); $ z = atan2 ($ y ፣ $ x); $ zz = (rad2deg ($ z) +360)% 360; $ zz መመለስ; } ተግባር get_intercept ($ home_head ፣ $ plane_head ፣ $ plane_distance) {$ flight_angle = abs (abs ($ home_head - $ plane_head) - 180); $ flight_angle_r = deg2rad ($ flight_angle); $ flight_angle_t = ታን ($ flight_angle_r); $ flight_intercept = $ flight_angle_t * $ plane_distance; $ flight_intercept ን ይመልሱ ፤ } /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *// * * በ * ኬክሮስ/ኬንትሮስ (በቁጥር ዲግሪዎች) * * በተጠቀሱት ሁለት ነጥቦች መካከል ያለውን ርቀት (በኪሜ) ለማስላት የሃቨርሲን ቀመር ይጠቀሙ * ከ: - የሃቨርሲን ቀመር - RWሲኖትት ፣ “የ Haversine በጎነቶች” ፣ * ሰማይ እና ቴሌስኮፕ ፣ ጥራዝ 68 ፣ ቁጥር 2 ፣ 1984 * https://williams.best.vwh.net/avform.htm#Crs * * ምሳሌ ከቅጽ: * result.value = LatLon.distHaversine (lat1.value.parseDeg () ፣ long1.value.parseDeg () ፣ * lat2.value.parseDeg () ፣ long2.value.parseDeg ()); * የት lat1 ፣ long1 ፣ lat2 ፣ long2 ፣ እና ውጤት የቅጽ መስኮች ናቸው * ምንጭ = instantglobe.com/CRANES/GeoCoordTool.html */function get_distHaversine ($ home_lat ፣ $ home_lon ፣ $ plane_lat ፣ $ plane_lon) {$ R = 6371; // የምድር አማካይ ራዲየስ በኪሜ $ dLat = deg2rad ($ plane_lat- $ home_lat); $ dLon = deg2rad ($ plane_lon- $ home_lon); $ lat1 = deg2rad ($ home_lat); $ lat2 = deg2rad ($ plane_lat); $ a = ኃጢአት ($ dLat/2) * ኃጢአት ($ dLat/2) + cos ($ lat1) * cos ($ lat2) * ኃጢአት ($ dLon/2) * ኃጢአት ($ dLon/2); $ c = 2 * atan2 (sqrt ($ a) ፣ sqrt (1- $ a)); $ d = $ R * $ c; $ d ተመላሽ; } ተግባር get_bounding_box ($ latitude_in_degrees ፣ $ longitude_in_degrees ፣ $ half_side_in_miles) {$ half_side_in_km = $ half_side_in_miles * 1.609344; $ lat = deg2rad ($ latitude_in_degrees); $ lon = deg2rad ($ longitude_in_degrees); $ ራዲየስ = 6371; በተሰጠው ኬክሮስ ላይ ትይዩ ራዲየስ; $ parallel_radius = $ ራዲየስ*cos ($ lat); $ lat_min = $ lat - $ half_side_in_km/$ ራዲየስ; $ lat_max = $ lat + $ half_side_in_km/$ ራዲየስ; $ lon_min = $ lon - $ half_side_in_km/$ parallel_radius; $ lon_max = $ lon + $ half_side_in_km/$ parallel_radius; $ box_lat_min = rad2deg ($ lat_min); $ box_lon_min = rad2deg ($ lon_min); $ box_lat_max = rad2deg ($ lat_max); $ box_lon_max = rad2deg ($ lon_max); የመመለሻ ድርድር ($ box_lat_min ፣ $ box_lon_min ፣ $ box_lat_max ፣ $ box_lon_max); } ተግባር execInBackground ($ cmd) {ከሆነ (substr (php_uname () ፣ 0 ፣ 7) == “ዊንዶውስ”) {pclose (popen (“start /B”. $ cmd ፣ “r”)) ፤ } ሌላ {exec ($ cmd. "> /dev /null &"); }} ተግባር checkForStopFlag () {// ሙሉ በሙሉ አማራጭ መመለስ (እውነት); } የተግባር ጅምር () {አስተጋባ «ጅምር / n»; $ ትዕዛዝ = "አሳማዎች w 17 1"; execInBackground ($ ትዕዛዝ); $ ንቁ = እውነተኛ; ሳለ ($ ንቁ) {እንቅልፍ (1000); // ከተፈለገ ፣ (ማይክሮ ጊዜ (እውነት)> = $ nextTime) {fexp () ከሆነ አሳቢ መሆን ከፈለጉ $ nextTime = microtime (እውነተኛ) + INTERVAL; } $ ንቁ = checkForStopFlag (); }} fexp (); ጀምር (); ?>

ደረጃ 14 - ኤልኢዲውን እና የመዝጊያ መቀየሪያውን ሽቦ ማገናኘት

የ LED እና የመዝጊያ መቀየሪያ ሽቦን
የ LED እና የመዝጊያ መቀየሪያ ሽቦን

የዚህ ፕሮጀክት ሽቦ በእውነቱ ቀላል ላይሆን ይችላል። ከፒን 17 እና ከ 270R ተከላካይ መስመር ጋር የተገናኘ አንድ LED ብቻ አለ።

እኔ ደግሞ ከ TXd የውሂብ ፒን ከሚያጠፋው የኃይል LED ጋር የመዝጊያ እና የማብራት ቁልፍን እጨምራለሁ። Https://github.com/Howchoo/pi-power-button.git ከዝግጅቱ https://howchoo.com/g/mwnlytk3zmm/how-to- ላይ ስለመዘጋቱ ተግባር እና ስለሚፈለገው ኮድ የበለጠ ማንበብ ይችላሉ። add-a-pow… የኃይል መብራት ስለማከል እዚህ ማንበብ ይችላሉ

የሚመከር: