ዝርዝር ሁኔታ:
- ደረጃ 1 - ጉዳዩን መንደፍ
- ደረጃ 2 - ሌንሶችን መጣል - #ውድቀት
- ደረጃ 3 የተለያዩ የሬስ ዓይነቶች
- ደረጃ 4: ሌንስን በሲሊኮን ሻጋታ #2 ውስጥ መጣል
- ደረጃ 5 - 3 ዲ ማተሚያ እና ዝግጅት
- ደረጃ 6 - ስብሰባ እና ስዕል
- ደረጃ 7 - በመጀመሪያ ወሰን ባለው ክልል ውስጥ አውሮፕላኖችን ይፈልጉ
- ደረጃ 8 - ከእኛ ጋር የሚዛመዱትን የአውሮፕላኖች ራስጌ ማስላት
- ደረጃ 9 ክበብን በመመልከት ጣልቃ ገብነትን ማስላት
- ደረጃ 10 በካርታ ላይ በሁለት ነጥቦች መካከል ያለው ርቀት - የሃቨርሲን ቀመር
- ደረጃ 11 - የአውሮፕላን ዳታቤዝ ማስመጣት እና መግለፅ
- ደረጃ 12 ውጤቶችን እና አዲስ ባህሪያትን ማሻሻል
- ደረጃ 13: Codebase
- ደረጃ 14 - ኤልኢዲውን እና የመዝጊያ መቀየሪያውን ሽቦ ማገናኘት
ቪዲዮ: የቅድመ ማስጠንቀቂያ Raspberry PI Runway Light የበረራ ካርታ መረጃን በመጠቀም 14 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
ይህ መብራት ከብዙ ምክንያቶች የተነሳ የመጣው እኔ ሁል ጊዜ ወደ ላይ በሚበሩ አውሮፕላኖች ላይ ፍላጎት ስላደረብኝ እና በበጋ ወቅት በሳምንቱ መጨረሻ ላይ ብዙ የሚያምሩ አስደሳች የሚበሩ አሉ። ምንም እንኳን እነሱ በሚያልፉበት ጊዜ እነሱን መስማት ብቻ ይቀናቸዋል። ከዚያ ሌላኛው ምክንያት ከለንደን ከተማ አውሮፕላን ማረፊያ ወደ ውጭ ለሚወጡ አውሮፕላኖች የበረራ መንገድ አንዳንድ ጊዜ የሚሰማ እና አንዳንድ ቆንጆ ጫጫታ በረራዎች የሚሄዱ ይመስላል። አንዳንድ ቪዲዮዎችን ለዩቲዩብ በመቅረጽ ላይ እንደሆንኩ በጫጫታ አውሮፕላን ምክንያት ቀረፃን መሻር በእውነቱ ያበሳጫል። ስለዚህ እንደ 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 ውስጥ መጣል
ስለዚህ ይህ የሪሲን ሌንስ ለመሥራት ሁለተኛው ሙከራ ነው እና የመጀመሪያው ደረጃ ሁለቱንም ሌንስ በ Fusion 360 ውስጥ መስራት እና ከዚያ በ ABS ውስጥ እንዲሁም እሱን ለመያዝ ባልዲ ማተም ነበር። ይህ ለሻጋታው የቀደመ እና ጥቅም ላይ የሚውለውን የሲሊኮን መጠን ለመቀነስ ይረዳል። ይህንን በቀላሉ ከካርድ ውጭ ማድረግ ይችላሉ ፣ ግን እሱ የተለየ አቀራረብ ነው። ከሻጋታው ለመልቀቅ የተሻለ ዕድል ለመስጠት መጀመሪያ ቫርኒት አደረግሁት እና ከዚያ የሰም መልቀቂያ ወኪል ጥሩ ሽፋን ሰጠው።
ከዚያም ስለ ባህር ዳርቻ 27 RTV የሆነ GP-3481 አፈሰስኩ እና ከዚያ ከመቀነሱ በፊት በሚቀጥሉት 24 ሰዓቶች ውስጥ እንዲቀመጥ አደረግሁት። አንዴ ይህ ከተደረገ በ 4: 5 ጠብታዎች ከቀለም ቀለም ጠብታዎች ጋር በ 2: 1 ጥምር የተደባለቀውን ግልፅ ሙጫ ተጠቅሜ ለጥሩ አራት ደቂቃዎች በደንብ ቀላቅለውታል። ይህንን ወደ ሻጋታ ውስጥ አፍስሰው ከዚያ በኋላ የተተኮሰ ብርጭቆን ወደ ሙጫው ውስጥ አስገብተው በኋላም ለመብራትም ሆነ ለኤልዲው ባዶነትን ለመስጠት። ከ 24 ሰዓታት ገደማ በኋላ ይህ ሙጫ ለማስወገድ ዝግጁ ነበር እና ሌንስ በጥሩ ሁኔታ ወጣ። የአየር አረፋዎች አሉ ፣ ግን እስካሁን ከመፍሰሱ በፊት ሙጫውን ለማቅለጥ የቫኪዩም ዕቃ የለኝም።
ደረጃ 5 - 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 - ኤልኢዲውን እና የመዝጊያ መቀየሪያውን ሽቦ ማገናኘት
የዚህ ፕሮጀክት ሽቦ በእውነቱ ቀላል ላይሆን ይችላል። ከፒን 17 እና ከ 270R ተከላካይ መስመር ጋር የተገናኘ አንድ LED ብቻ አለ።
እኔ ደግሞ ከ TXd የውሂብ ፒን ከሚያጠፋው የኃይል LED ጋር የመዝጊያ እና የማብራት ቁልፍን እጨምራለሁ። Https://github.com/Howchoo/pi-power-button.git ከዝግጅቱ https://howchoo.com/g/mwnlytk3zmm/how-to- ላይ ስለመዘጋቱ ተግባር እና ስለሚፈለገው ኮድ የበለጠ ማንበብ ይችላሉ። add-a-pow… የኃይል መብራት ስለማከል እዚህ ማንበብ ይችላሉ
የሚመከር:
(IOT ፕሮጀክት) ESP8266 ን እና Openweather API ን በመጠቀም - 5 ደረጃዎች በመጠቀም የአየር ሁኔታ መረጃን ያግኙ
(IOT ፕሮጀክት) ESP8266 ን እና Openweather API ን በመጠቀም የአየር ሁኔታ መረጃን ያግኙ - በዚህ ትምህርት ውስጥ የከተማችንን የአየር ሁኔታ መረጃ ከ openweather.com/api አምጥተን ፕሮሰሲንግ ሶፍትዌርን በመጠቀም የምናሳይበትን ቀላል የ IOT ፕሮጀክት እንገነባለን።
GSM ፣ GPS እና Accelerometer ን በመጠቀም የአደጋ ማስጠንቀቂያ ስርዓት 5 ደረጃዎች (ከስዕሎች ጋር)
GSM ፣ GPS እና Accelerometer ን በመጠቀም የአደጋ ማስጠንቀቂያ ስርዓት እባክዎን ለምርጫ ድምጽ ይስጡኝ እባክዎን ለውድድር ድምጽ ይስጡኝ በአሁኑ ጊዜ በአደጋ ምክንያት ብዙ ሰዎች በመንገድ ላይ ሞተዋል ፣ ዋናው ምክንያት በማዳን ውስጥ መዘግየት ነው። በተንሰራፋባቸው ሀገሮች ውስጥ ይህ ችግር በጣም ትልቅ ነው ፣ ስለሆነም ይህንን ፕሮጀክት ለማዳን የሠራሁት
በዓለም ካርታ ላይ COVID19 ዳሽቦርድ (ፓይዘን በመጠቀም) - 16 ደረጃዎች
በዓለም ካርታ ላይ COVID19 ዳሽቦርድ (Python ን በመጠቀም)-ስለ COVID19 አብዛኛችን መረጃ እንደምናውቅ አውቃለሁ። እናም ይህ አስተማሪ የአለም ካርታ ላይ የእውነተኛ ጊዜ መረጃ (የጉዳዮች) ለማቀድ የአረፋ ካርታ ስለመፍጠር ነው። ለበለጠ ምቾት ፣ ፕሮግራሙን ወደ Github ማከማቻ አክዬያለሁ https: //github.co
MSP432 LaunchPad እና Python ን በመጠቀም 9 የሙቀት ደረጃዎች ዳሳሽ (TMP006) የቀጥታ መረጃን ማሴር 9 ደረጃዎች
MSP432 LaunchPad እና Python ን በመጠቀም የሙቀት ዳሳሽ (TMP006) የቀጥታ መረጃን ማሴር - TMP006 ከእቃው ጋር ግንኙነት ማድረግ ሳያስፈልግ የአንድን ነገር የሙቀት መጠን የሚለካ የሙቀት ዳሳሽ ነው። በዚህ መማሪያ ውስጥ Python ን በመጠቀም ከ BoosterPack (TI BOOSTXL-EDUMKII) የቀጥታ የሙቀት መረጃን እናሴራለን።
በ WiFi ላይ ንፁህ መረጃን ለመቆጣጠር የተወሳሰበ የኪነጥበብ ዳሳሽ ቦርድ በመጠቀም - 4 ደረጃዎች (ከስዕሎች ጋር)
በ WiFi ላይ ንፁህ መረጃን ለመቆጣጠር የተወሳሰበ የኪነጥበብ ዳሳሽ ቦርድን በመጠቀም -ከእርግዝና ቁጥጥር ጋር ሙከራ ለማድረግ አስበው ያውቃሉ? በእጅዎ ማዕበል ነገሮች እንዲንቀሳቀሱ ያድርጉ? በእጅዎ ጠማማ ሙዚቃን ይቆጣጠሩ? ይህ አስተማሪ እንዴት እንደሆነ ያሳየዎታል! ኮምፕሌክስ አርትስ ዳሳሽ ቦርድ (complexarts.net) ሁለገብ ማይክሮ