ዝርዝር ሁኔታ:
- ደረጃ 1: ሁሉም እንዴት እንደሚሰራ: የዲዛይን ምርጫዎች ተብራርተዋል
- ደረጃ 2 - ክፍሎች - አንጎል - ማይክሮ መቆጣጠሪያ እና ማያ ገጽ
- ደረጃ 3 - ክፍሎች - ኦፕቲክስ - ስምምነት ማግኘት
- ደረጃ 4 - ክፍሎች - ሁሉንም የሚይዝ መያዣ
- ደረጃ 5 ለሞጁላችን ፕሮቶኮል መፍጠር
- ደረጃ 6 - ኮዱ ESP32 ጎን
- ደረጃ 7: ኮዱ: የ Android ጎን
- ደረጃ 8: ቀጥሎ ምንድነው?
- ደረጃ 9 መደምደሚያ እና ልዩ ምስጋና
ቪዲዮ: ዘመናዊ የሞተርሳይክል HUD ፕሮቶታይፕ (ተራ በተራ አሰሳ እና በጣም ብዙ)-9 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
ሃይ !
ይህ Instructables በሞተርሳይክል የራስ ቁር ላይ ለመጫን የተነደፈውን የ HUD (Heads-Up Display) መድረክን እንዴት እንደሠራሁ እና እንደገነባሁ ታሪክ ነው። የተጻፈው በ "ካርታዎች" ውድድር አውድ ውስጥ ነው። በሚያሳዝን ሁኔታ ፣ ይህንን ፕሮጀክት በወቅቱ ውድድሩን ለማጠናቀቅ በሰዓቱ ማጠናቀቅ አልቻልኩም ፣ ግን በእሱ ላይ ያለኝን እድገት ለማካፈል ፣ እና እኔ በማድረጉ ያገኘሁትን ሁሉንም የሙከራ እና የስህተት ሰነድ መመዝገብ እፈልጋለሁ።
የዚህ ፕሮጀክት ሀሳብ ለመጀመሪያ ጊዜ ወደ እኔ መጣ ፣ በሞተር ብስክሌቶች ውስጥ ስገባ ፣ እና ጉዞዎቼን የበለጠ አስደሳች ለማድረግ ምን መግዛት እንዳለብኝ መመርመር ጀመርኩ። በወቅቱ በመንገድ ላይ አንዳንድ መሠረታዊ የጂፒኤስ አሰሳ ለማግኘት የተሻለው መንገድ የእርስዎን ስማርትፎን ከቢስክሌት እጀታዎ ጋር ማያያዝ መሆኑን ግራ አጋባኝ። እኔ በእርግጠኝነት ለራሴ እንዲህ ዓይነቱን መረጃ በራሪ ላይ ለማግኘት የተሻለ መንገድ ሊኖር ይችላል።
ያኔ ደርሶልኛል-የራስ-ከፍ ያለ ማሳያ ስልክዎን ባትሪ ሳይቦዝኑ ፣ እና ለአካሎች ሳይጋለጡ በሚነዱበት ጊዜ አሰሳ የማግኘት መንገድ ሊሆን ይችላል።
ከጊዜ በኋላ ፣ ይህ ሀሳብ በአእምሮዬ ውስጥ የበሰለ ሲሆን እኔ ሁል ጊዜ በፊቴ HUD ቢኖረኝ ከቀላል አሰሳ ይልቅ ብዙ ተጨማሪ አጠቃቀሞችን ይፈቅዳል። ለዚህ ነው ዕቅዴ መድረኩን ይፋዊ እና ሞዱል ማድረግ ነው ፣ ስለሆነም ማንም ሰው በ HUD ላይ የሚፈልጉትን መረጃ የሚያሳይ ሞዱል መፍጠር ይችላል።
ምንም እንኳን ይህንን ተግባር የሚያሟሉ በንግድ የሚገኙ ምርቶች ቢኖሩም ፣ እንደ የእኔ መድረክ ሞዱል የሆኑ የሉም ፣ እና እነሱ እንዲሁ ትንሽ ዋጋ ያላቸው ይሆናሉ። ለማንኛውም ወደዚህ ፕሮጀክት እንኳን በደህና መጡ።
እስካሁን የሚሰራው
እንደተገለፀው ይህ ፕሮጀክት አሁንም በልማት ግዛት ውስጥ በጣም ብዙ ነው ፣ እና አሁን እየሰራ ያለው ይህ ነው።
- በስማርትፎን እና በ ESP32 ላይ በተመሠረተ ቦርድ መካከል የሚደረግ ግንኙነት (ስልክ ነቅቷል)
- የኦፕቲክስ ዲዛይን ተከናውኗል (በረጅም ጊዜ ላይ ትናንሽ ማስተካከያዎች ሊያስፈልጉ ይችላሉ)
- የ Mapbox አሰሳ ኤስዲኬን በመጠቀም የ Android አሰሳ መተግበሪያ
- የተጠቃሚውን አቀማመጥ በካርታ ላይ ማስላት እና ማሳየት ፣ እንዲሁም ከእሱ ወደ መድረሻው የሚወስድ መንገድ
- ከብሉቱዝ መሣሪያ ጋር የመገናኘት ችሎታ (የመሣሪያው MAC አድራሻ አሁን እንደ ኮድ የተቀመጠ ነው)
- መጪውን የአሠራር መረጃ በተከታታይ ብሉቱዝ በኩል ማውጣት እና መላክን ጨምሮ የእውነተኛ ጊዜ አሰሳ ችሎታ (ለአሁኑ ተራዎችን ብቻ ይደግፋል)
ሥራ የሚያስፈልገው
ይህ ዝርዝር ለ HUD የታሰበ አጠቃቀም በጣም አስፈላጊ የሆኑ ንጥሎችን ይ containsል ፣ ነገር ግን ገና ለመተግበር ዝግጁ አይደሉም።
- አጠቃላይ ንድፍ (የራስ ቁር ቁርኝት ፣ አንፀባራቂ አንግል የማስተካከያ ዘዴ ፣..)
- የ Android መተግበሪያ;
- ከመስመር ውጭ ማወቂያን እና እርማትን ይተግብሩ
- ተጠቃሚው የመድረሻ አድራሻውን የማስገባት ችሎታ
- የመንገድ ነጥቦች?
- Ergonomics / Aesthetics
አቅርቦቶች
አስፈላጊ ነገሮች
- esp32 ላይ የተመሠረተ የልማት ቦርድ
- ማንኛውም ትንሽ የቅርብ ጊዜ የ android ስማርትፎን (ብሉቱዝ ነቅቷል)
- ኤስኤስዲ1306 ወይም ሌላ የነቃ 96 ኢንች OLED ማያ ገጽ (የእኔ 128x64 ፒክሰሎች ነበር ፣ “አንጎሎች ማይክሮ መቆጣጠሪያ እና ማያ ገጽ” ክፍልን ይመልከቱ)
- አንፀባራቂ (ማንኛውም የ acrylic/glass/plexiglass ቁርጥራጭ ያደርገዋል)
- የ Fresnel ሌንስ (ማዕድን 13 ሴ.ሜ ያህል ርዝመት ነበረው ፣ “የሌንስ ምርጫ” ክፍልን ይመልከቱ)
መሣሪያዎች
- ብረት ማጠጫ
- የዳቦ ሰሌዳ
- ጥቂት ዝላይ ገመዶች
- 3 ዲ አታሚ / 3 ዲ የህትመት አገልግሎት
ደረጃ 1: ሁሉም እንዴት እንደሚሰራ: የዲዛይን ምርጫዎች ተብራርተዋል
የ Heads Up ማሳያ መሠረታዊ ሀሳብ በአንድ ሰው ራዕይ ፊት ምስልን ማሳየት ነው ፣ ስለሆነም እነሱ ከሚያደርጉት ከማንኛውም ነገር ራቅ ብለው ማየት የለባቸውም (አውሮፕላን አብራሪ ወይም ሞተር ብስክሌት መንዳት ፣ የእኛ ይሆናል) ምሳሌ መያዣ)።
ኦፕቲክስ
በቴክኒካዊ ፣ በቀጥታ በተጠቃሚው ዓይኖች ፊት ማያ ገጽ በማስቀመጥ ሊሳካ ይችላል። ሆኖም ፣ ማያ ገጽ ግልፅ አይደለም ፣ ስለሆነም የተጠቃሚውን ራዕይ ያደናቅፋል። ከዚያ ማያ ገጹን በሚያንጸባርቅ ወለል ፊት ለፊት ማስቀመጥ ይችላሉ ፣ ይህም ተጠቃሚው ከፊት ለፊቱ ያለውን ለማየት በቂ ሆኖ በማያ ገጹ ላይ ያለውን ይዘት ያንፀባርቃል።
ሆኖም ፣ ይህ አካሄድ ትልቅ ጉድለት አለው - ትክክለኛው ማያ ገጽ ብዙውን ጊዜ ተጠቃሚው ሊያተኩርበት ከሚገባው (ለምሳሌ ፣ ከፊቱ ያለው መንገድ) ከተጠቃሚው ዓይኖች ጋር ቅርብ ነው። ይህ ማለት በሚያንጸባርቀው ገጽ ላይ ያለውን ለማንበብ የተጠቃሚው ዓይኖች ከዓይኖቹ ከማሳያው ርቀቱ ጋር መላመድ (20 ሴ.ሜ እንበል) ፣ እና ከዚያ በፊት ባለው መንገድ ላይ ለማተኮር እንደገና መላመድ ይኖርባቸዋል። (~ 2/5 ሜትር)። ይህ አጠቃላይ ክዋኔ የሚወስደው ጊዜ መንገዱን በመመልከት የሚያሳልፈው ውድ ጊዜ ነው ፣ እና ብዙ ጊዜ መላመድ ከጥቂት ደቂቃዎች በኋላ ለተጠቃሚው ምቾት ላይሆን ይችላል።
ለዚያም ነው በማያ ገጹ እና በሚያንፀባርቀው መካከል ሌንስ ለመጨመር የወሰንኩት። ይህ ሌንስ ፣ በጥንቃቄ ከተመረጠ ፣ የማያ ገጹ ምናባዊ ምስል እንዲፈጠር መፍቀድ አለበት (ከላይ ያለውን ንድፍ ይመልከቱ) ፣ ከዚያ በእውነቱ ልክ ከተጠቃሚው ዓይኖች የራቀ ሆኖ ይታያል ፣ ስለሆነም ያነሰ ድንገተኛ መላመድ (ወይም በፍፁም ሁኔታ ውስጥ አንድም የለም)። ይህ ንድፍ ተጠቃሚው አንፀባራቂውን በፍጥነት እንዲመለከት ፣ የሚያስፈልገውን መረጃ እንዲያገኝ እና ወዲያውኑ በመንገዱ ላይ እንዲመለከት ያስችለዋል።
የስማርትፎን ሚና
በ ESP32 ብቻ አንድ ሙሉ የአሰሳ መተግበሪያን መሞከር እና ተግባራዊ ማድረግ ከእውነታው የራቀ ስለሆነ ፣ ይህንን የሚንከባከብ የ android መተግበሪያ ለማድረግ ወሰንኩ። ከዚያ መተግበሪያው ተጠቃሚው ወደ መድረሻው ለመድረስ ምን ማድረግ እንዳለበት ለ ESP32 መንገር ብቻ ነው ፣ እና ESP32 ያንን መረጃ HUD (የ “ሞጁሉ እንዴት እንደሚሠራ” ምስል ይመልከቱ) ያስተላልፋል።
ደረጃ 2 - ክፍሎች - አንጎል - ማይክሮ መቆጣጠሪያ እና ማያ ገጽ
ከላይ እንደተገለፀው ፣ ትክክለኛውን አቀማመጥ ፣ መከታተያ እና የእውነተኛ ጊዜ አሰሳ በማስላት የእኔ ሞዱል ማሳያ ዳሰሳ መረጃ እንዲኖረኝ አቅጃለሁ። የተጠቃሚው ስልክ ይልቁንስ ከሞጁሉ ጋር ይገናኛል እና መረጃውን በ HUD ላይ እንዲታይ ይልካል።
በተጠቃሚው ስልክ እና በሞጁል መካከል ያለውን ግንኙነት ለማመቻቸት ፣ ለዚህ ፕሮጀክት በ ESP32 ላይ የተመሠረተ ቦርድ ለመጠቀም መረጥኩ። ይህ ምርጫ የተቀናጀ የብሉቱዝ ችሎታዎች ፣ እንዲሁም ጥቂት ሌሎች አስደሳች ዝርዝሮች (ተለዋዋጭ ያልሆነ ማከማቻን ለመጠቀም ቀላል ፣ ባለሁለት ኮር ሲፒዩ ፣ የ OLED ማሳያውን በ I2C በኩል ለማሽከርከር በቂ ራም)… እኔ ከግምት ውስጥ ባስገባሁት በ ESP32 ዙሪያ መሠረት ፒሲቢዎችን መንደፍ በአንፃራዊነት ቀላል ነው። እኔ ደግሞ በምርጫዬ ላይ ተጽዕኖ ያሳደረውን በ ESP32 በመጠቀም ወረዳዎችን በመጠቀም እና ዲዛይን የማድረግ ሙያዊ ተሞክሮ አለኝ።
እኔ በተቻለ መጠን ትንሽ እየሆንኩ እኔ ምንም እንኳን ለ y አጠቃቀም በቂ ብሆን የማገኘው የማያውቀው ምርጫ በመሠረቱ ወደ እኔ መጣ። የእኔ ዓላማ በጣም ዝቅተኛ እና ቀላል በይነገጽ እንዲኖር ስለነበረ ስለ ማያ ገጹ የፒክሴሎች ብዛት ብዙም አልጨነቅም።
የማያ ገጽ ነጂው ምስልን ለማንፀባረቅ በሚያስችል ቤተ -መጽሐፍት መደገፍ እንዳለበት ልብ ሊባል ይገባል። ይህ የሆነበት ምክንያት የሚታየው ምስል ወደ ሌንስ ሲገባ እና አንፀባራቂው ላይ ሲታይ ይገለበጣል ፣ እና የሚታየውን በእጅ መገልበጥ አለመቻል እንደ ግንበኞች በትከሻችን ላይ ትልቅ ክብደት ነው።
ደረጃ 3 - ክፍሎች - ኦፕቲክስ - ስምምነት ማግኘት
ይህንን ፕሮጀክት ለመጀመሪያ ጊዜ በጀመርኩበት ጊዜ ምን እንደምፈልግ እንኳ ስለማላውቅ የዚህ ፕሮጀክት ኦፕቲክስ ለመቅረብ በጣም ከባድ ነበር። ከተወሰነ ምርምር በኋላ እኔ ማድረግ የምፈልገው የኦሌዲ ማያ ገጽዬን “ምናባዊ ምስል” መፍጠር መሆኑን ተረዳሁ ፣ ያ በእውነቱ ከዓይን የራቀ ይመስላል። ይህ ምናባዊ ምስል እንዲፈጠር ተስማሚው ርቀት ከሾፌሩ ፊት ለፊት ከ2-5 ሜትር አካባቢ ይሆናል ፣ ይህ በሚነዱበት ጊዜ ትኩረት የምናደርግባቸው ነገሮች (ሌሎች መኪኖች ፣ በመንገድ ላይ ያሉ እብጠቶች ፣ ወዘተ…)).
ያንን ግብ ለማሳካት ፣ እነዚህ በጣም ትልቅ ፣ ርካሽ ስለሆኑ ፣ ለፕሮጄጄቴ በቂ የትኩረት ርቀት የሚያቀርቡ ይመስሉ ነበር ፣ እና በቀላል መቀሶች ሊቆረጡ የሚችሉ ይመስላሉ (ፍሬያማ ሌንስ) ለመጠቀም መረጥኩ። የበለጠ የተጣራ ክብ ቅርፅ ያላቸው የመስታወት ሌንሶች)። መጥፎ የማየት ችሎታ ያላቸው ሰዎችን እንዲያነቡ ለመርዳት በጣም ተገቢ ስለሆኑ ፍሬስኤል ሌንሶች እንደ “የኪስ ማጉያ” ወይም “የንባብ ካርድ ማጉያ” ያሉ ስሞች ሊገኙ ይችላሉ።
በመሠረቱ ፣ እዚህ ያለው ዘዴ ሁሉም በመካከላቸው ትክክለኛውን ስምምነት ማግኘት ነበር።
- ምክንያታዊ ምናባዊ የምስል ርቀት መኖር (ማለትም ፣ HUD ለተጠቃሚው ምን ያህል እንደሚመስል ፣ ወይም ተጠቃሚው በ HUD ላይ ያለውን ለማየት ዓይኖቹን ምን ያህል ማስተካከል እንዳለበት)
- በማያ ገጹ ላይ ያለው ጽሑፍ መኖሩ በሌንስ በጣም አይሰፋም (በመሠረቱ ማጉያ ነው)
- በ OLED ማያ እና በሌንስ መካከል ምክንያታዊ ርቀት መኖር ፣ ይህ ካልሆነ ወደ በጣም ግዙፍ ሞዱል ይመራል
እኔ በግምት ጥቂት ልዩ ልዩ ሌንሶችን በአማዞን ላይ አዝዣለሁ ፣ እና የ 13 ሴንቲ ሜትር ርዝመት ያለው አንድ ከመምረጥዎ በፊት የየራሳቸውን የትኩረት ርዝመት ወስነዋል። ይህንን ኤፍ.ቪ.ሜትር አገኘሁ ፣ በ 9 ሴ.ሜ የ OLED- ሌንስ ርቀት ፣ በእኔ አንፀባራቂ ላይ አጥጋቢ ምስል ሰጠኝ (ከላይ ያሉትን ጥቂት ምስሎች ከላይ ይመልከቱ)።
በምሳሌዎቼ ላይ እንደሚመለከቱት ፣ በሚታየው ጽሑፍ ላይ በትክክል ለማተኮር ፣ እነዚህን ሥዕሎች ለማንሳት ያገለገለው ካሜራ በሩቅ ነገር ላይ ያተኮረ ይመስል መስተካከል አለበት ፣ ይህም አንፀባራቂው ልክ እንደአውሮፕላኑ ላይ ሁሉም ነገር ብዥታ እንዲመስል ያደርገዋል።. ለኤችዲአችን የምንፈልገው ይህ ነው።
ለላንስ መያዣው የ 3 ዲ ፋይሎችን እዚህ ላይ ማግኘት ይችላሉ።
ደረጃ 4 - ክፍሎች - ሁሉንም የሚይዝ መያዣ
ይህንን አስተማሪዎችን እየፃፍኩ እያለ እያንዳንዱን የጭንቅላት ማሳያ ክፍል የሚይዝ ትክክለኛው መያዣ በጣም የተነደፈ አይደለም። ሆኖም ስለ አጠቃላይ ቅርፁ እና የተወሰኑ ችግሮችን እንዴት መቅረብ እንደሚቻል (እንደ አንፀባራቂ አሁንም እንዴት እንደሚይዝ እና 100+ ኪ.ሜ/ሰ ንፋስ እንዲቋቋም ማድረግ) ጥቂት ሀሳቦች አሉኝ። ይህ አሁንም በጣም በሂደት ላይ ያለ ሥራ ነው።
ደረጃ 5 ለሞጁላችን ፕሮቶኮል መፍጠር
የአሰሳ መመሪያዎችን ከስልክ ወደ ልማት ቦርድ ለመላክ ፣ አስፈላጊውን መረጃ በቀላሉ ከስልክ ለመላክ የሚያስችለኝን የራሴ የሆነ የግንኙነት ፕሮቶኮል (ፕሮቶኮል) ማምጣት ነበረብኝ ፣ እንዲሁም አንዴ ከተቀበለ በኋላ ሂደቱን ማመቻቸት።
ይህንን Instructables በሚጽፉበት ጊዜ ከሞጁሉ ጋር ለመዳሰስ ከስልክ ማስተላለፍ የነበረበት መረጃ-
- መጪው የማሽከርከሪያ ዓይነት (ቀላል ተራ ፣ አደባባዩ ፣ በሌላ መንገድ ላይ ማዋሃድ ፣…)
- የመጪው የመንቀሳቀስ ትክክለኛ መመሪያዎች (የማኑዋሉ ዓይነት ጥገኛ - ተራ/ግራ ለመታጠፍ ፣ ወደ አደባባይ የሚወስደው መውጫ ፣…)
- ከመጪው እንቅስቃሴ በፊት የቀረው ርቀት (ለአሁኑ በሜትር)
የሚከተለውን የክፈፍ መዋቅር በመጠቀም ይህንን መረጃ ለማደራጀት ወሰንኩ ፦
: ዓይነት። መመሪያዎች ፣ ርቀት;
የሚያምር መፍትሔ ባይሆንም ፣ ይህ አንዱ በ ESP32 ጎን ላይ ያለውን ኮድ ያመቻቸውን እያንዳንዱን የፕሮቶኮልችንን መስክ በቀላሉ ለመለየት እና ለመለየት ያስችለናል።
ለወደፊቱ ባህሪዎች ፣ ሌላ መረጃ ወደዚህ ፕሮቶኮል (እንደ ትክክለኛው ቀን እና ሰዓት ፣ ወይም በተጠቃሚው ስልክ ላይ እየተጫወተ ያለ ሙዚቃ) መጨመር እንደሚያስፈልግ ማስታወሱ አስፈላጊ ነው ፣ ይህም ተመሳሳዩን በመጠቀም በቀላሉ ሊሠራ የሚችል ነው። እንደአሁኑ የሎጂክ ግንባታ።
ደረጃ 6 - ኮዱ ESP32 ጎን
የ ESP32 ኮድ በአሁኑ ጊዜ በጣም ቀላል ነው። የ OLED ማያ ገጹን በቀላሉ ለመቆጣጠር የሚያስችለውን የ U8g2lib ቤተ -መጽሐፍትን ይጠቀማል (የሚታየውን ምስል ማንጸባረቅ ሲያነቃ)።
በመሰረቱ ፣ ሁሉም ESP32 የሚያደርገው መተግበሪያው በሚልክበት ፣ በመተንተን እና ይህንን ውሂብ ወይም ሥዕሎች በዚህ ውሂብ መሠረት (ማለትም “ወደ ግራ/ወደ ቀኝ” ከሚለው ዓረፍተ ነገር ይልቅ ቀስት በማሳየት) በብሉቱዝ በኩል ተከታታይ መረጃን መቀበል ነው። ኮዱ እነሆ ፦
/*በተከታታይ ብሉቱዝ በኩል HUD ን ከ android መተግበሪያ የሚቆጣጠር ፕሮግራም*/#‹BluetoothSerial.h› ን ያካተተ//*/ለርዕስ ፋይል ለሴሉቱዝ ብሉቱዝ ፣ በነባሪ ወደ አርዱinoኖ ይታከላል#ያካትታል#ጨምሮ#ifdef U8X8_HAVE_HW_SPI#ያካትታሉ#endif# ifdef U8X8_HAVE_HW_I2C # #endif // OLED ቤተመፃሕፍት ግንባታን ያካትታል ፣ በማያ ገጽዎ መሠረት መለወጥ ያስፈልጋል // የስቴት ማሽን ተገኝቷል_ፊልድ እሴቶች + ተለዋዋጭ#ማኑዋልን ይግለጹ መስክ 1#መመሪያዎችን ይግለጹ መስክ 2#ርቀትን ይግለጹ መስክ 3#endOfFrame 4int detected_field = endOfFrame ፣ ብሉቱዝ ተከታታይ serialBT; // የብሉቱዝ ቻርጅ መጪው_ቻር ፤ ቻር ማኑዋር [10] ፤ የቻር መመሪያዎች [10] ፤ የቻር ርቀት [10] ፤ ቻር tempManeuver [10] ፤ ቻር tempInstructions [10] ፤ ቻር tempDistance [10] ፤ int nbr_char_maneuver = 0; int nbr_char_instructions = 0; int nbr_char_distance = 0; ቡሊያን ሙላነት = ሐሰት ፤ ባዶ ቅንብር () {Serial.begin (9600); // በ 9600 bauds u8g2.begin () ውስጥ ተከታታይ ማሳያ ይጀምሩ። // Init OLED ቁጥጥር serialBT.begin ("ESP32_BT"); // የብሉቱዝ ምልክት መዘግየት ስም (20); Serial.println ("የብሉቱዝ መሣሪያ ለማጣመር ዝግጁ ነው");} ባዶነት loop () {ከሆነ (serialBT.available () &&! Fullsentence) // ቁምፊዎች በብሉቱዝ ተከታታይ እየተቀበሉ ነው {incoming_char = serialBT.read (); Serial.print ("ተቀብሏል:"); Serial.println (ገቢ_char); } መቀየሪያ (ተገኝቷል_ፊልድ) {የጉዳይ መንቀሳቀሻ መስክ: Serial.println («የተገኘ መስክ: ማኑዋር»); ከሆነ (መጪው_ቻርክ == '.') // የሚቀጥለው መስክ ተገኝቷል {detected_field = instructionField; } ሌላ {// የማኑዌሩ ዓይነት የመረጃ ድርድር ማኑዋልን ይሙሉ [nbr_char_maneuver] = ገቢ_char; nbr_char_maneuver ++; } መሰበር; የጉዳይ መመሪያዎች መስክ: Serial.println ("የተገኘ መስክ: መመሪያዎች"); ከሆነ (መጪው_char == ',') // ቀጣዩ መስክ ተገኝቷል {detected_field = distanceField; } ሌላ {// መመሪያዎቹን የመረጃ ድርድር መመሪያዎችን ይሙሉ [nbr_char_instructions] = incoming_char; nbr_char_ መመሪያዎች ++; } መሰበር; የጉዳይ ርቀት መስክ: Serial.println ("የተገኘ መስክ: ርቀት"); ከሆነ (መጪ_char == ';') // የክፈፍ መጨረሻ ተገኝቷል {detected_field = endOfFrame; Serial.print ("maneuver:"); Serial.println (ምናባዊ); Serial.print ("መመሪያዎች:"); Serial.println (መመሪያዎች); Serial.print ("ርቀት:"); Serial.println (ርቀት); fullsentence = እውነት; update_Display (); // ሙሉ ፍሬም ደርሷል ፣ ይተንትኑት እና የመቀበያ ውሂብን ያሳዩ} ሌላ {// የርቀት መረጃ ድርድር ርቀት ይሙሉ [nbr_char_distance] = ገቢ_ቻር; nbr_char_distance ++; } መሰበር; የጉዳይ endOfFrame: ከሆነ (መጪው_char == ':') detected_field = maneuverField; // አዲስ ክፈፍ ተገኝቷል እረፍት; ነባሪ: // ምንም ነገር አይስበሩ ፣ } መዘግየት (20) ፤} ባዶነት update_Display () {// ሊከሰቱ የሚችሉ ግጭቶችን memcpy (tempManeuver ፣ maneuver ፣ nbr_char_maneuver) ለማስወገድ እያንዳንዱን ቻር ድርድር መሸጎጫ ፤ memcpy (tempInstructions ፣ መመሪያዎች ፣ nbr_char_instructions); memcpy (tempDistance ፣ ርቀት ፣ nbr_char_distance); parseCache (); // ቼር እና የሂደት አደራደሮች ሙሉ ዓረፍተ ነገር = ሐሰት; // ዓረፍተ -ነገር ተከናውኗል ፣ ለሚቀጥለው ዝግጁ ነው} ባዶ parseCache () {u8g2.clearBuffer () ፤ // የውስጥ ማህደረ ትውስታን ያፅዱ u8g2.setFont (u8g2_font_ncenB10_tr); // ተስማሚ ቅርጸ -ቁምፊን ይምረጡ // ቻር ድርድሮች -> ሕብረቁምፊ () ተግባርን ለመጠቀም አስገዳጅ ሕብረቁምፊ maneuverString = tempManeuver; ሕብረቁምፊ መመሪያዎች String = tempInstructions; // እዚህ ፕሮቶኮል ተግባራዊ ማድረግ። ለአሁን ተራዎችን ብቻ ይደግፋል። ከሆነ (maneuverString. ከሆነ (መመሪያዎችString.substring (0 ፣ 5) == “ቀኝ”) {// የተወሰኑ መመሪያዎችን ይፈትሹ እና በዚህ መሠረት u8g2.drawStr (5 ፣ 15 ፣ “-”) ያሳዩ ፤ } ሌላ ከሆነ (መመሪያዎችString.substring (0 ፣ 4) == “ግራ”) {// የተወሰኑ መመሪያዎችን ይፈትሹ እና በዚህ መሠረት u8g2.drawStr (5 ፣ 15 ፣ “<---”)); } ሌላ u8g2.drawStr (5 ፣ 15 ፣ “Err”); // ልክ ያልሆነ የመመሪያ መስክ}/ * ሌሎች የመንቀሳቀስ ዓይነቶችን (አደባባዮች ፣ ወዘተ..) * ሌላ ከሆነ (tempManeuver == "rdbt") { * *] */ u8g2.drawStr (5 ፣ 30 ፣ tempDistance) ፤ // የቀረውን ርቀት ያሳዩ u8g2.sendBuffer (); // ውስጣዊ ማህደረ ትውስታን ወደ ማሳያው ያስተላልፉ // ከሚቀጥለው ንባብ (ማኑዋል ፣ 0 ፣ 10) በፊት ሁሉንም የቻር ድርድሮች ዳግም ያስጀምሩ። memset (መመሪያዎች ፣ 0 ፣ 10); memset (ርቀት ፣ 0 ፣ 10); memset (tempManeuver, 0, 10); memset (tempInstructions, 0, 10); memset (tempDistance, 0, 10); // በመደራደሮች ውስጥ የአባሎች ብዛት ዳግም ያስጀምሩ nbr_char_distance = 0; nbr_char_instructions = 0; nbr_char_maneuver = 0;}
ደረጃ 7: ኮዱ: የ Android ጎን
ከባዶ የአሰሳ ካርታ ሲገነባ ብዙ ጠቃሚ ባህሪያትን ስለሚሰጥ ፣ ለስማርትፎን መተግበሪያው ፣ የካርታቦክስ አሰሳ ኤስዲኬን ለመጠቀም ወሰንኩ። እንዲሁም ይህ ሞጁል እንዲሠራ የሚያግዙ ብዙ ጠቃሚ አድማጮችን እንዲጠቀሙ ይፈቅዳል። እንዲሁም የብሉቱዝ ተከታታይ ግንኙነትን በአንድ ላይ ማዋሃድ በጣም ቀላል ስላደረገ እኔ ደግሞ ለ android የ harry1453 android- ብሉቱዝ-ተከታታይ ቤተ-መጽሐፍትን እጠቀም ነበር።
ይህንን መተግበሪያ በቤት ውስጥ መገንባት ከፈለጉ በወር እስከ የተወሰኑ የጥያቄዎች ብዛት ድረስ ነፃ የሆነ የካርታ ሳጥን መዳረሻ ማስመሰያ ማግኘት ያስፈልግዎታል። ይህንን ማስመሰያ በኮዱ ውስጥ ማስገባት እና መተግበሪያውን ከጎንዎ መገንባት ይኖርብዎታል። እንዲሁም በእራስዎ የ ESP32 የብሉቱዝ MAC አድራሻ ውስጥ ኮድ ማስገባት ያስፈልግዎታል።
አሁን ባለው ሁኔታ ፣ መተግበሪያው ከአሁኑ ሥፍራዎ ሆነው በካርታው ላይ ጠቅ ማድረግ ወደሚችሉበት ማንኛውም ቦታ ሊመራዎት ይችላል። በመግቢያው ውስጥ እንደተጠቀሰው ፣ ግን ከመጠምዘዝ ሌላ ማንኛውንም ዓይነት እንቅስቃሴ አይደግፍም ፣ እና አሁንም ከመስመር ውጭ መንገዶችን አያስተናግድም።
በ github ላይ አጠቃላይውን ምንጭ ኮድ ማግኘት ይችላሉ።
ደረጃ 8: ቀጥሎ ምንድነው?
አሁን መተግበሪያው በተቀመጠው መንገድ ላይ ተጠቃሚውን በትክክል ለመምራት (ከተቀመጠው መንገድ ምንም ልዩነቶች ከሌሉ) ዋናው ትኩረቴ የስማርትፎን መተግበሪያን ማሻሻል እና ሞጁሉን አንድ የሚያደርጉትን ጥቂት ችሎታዎች መተግበር ይሆናል። ሊሠራ የሚችል የአሰሳ መሣሪያ። ይህ ማያ ገጹ በሚጠፋበት ጊዜ እንኳን የብሉቱዝ ግንኙነትን ከስልክ ማንቃት ፣ እንዲሁም ለሌሎች የመንቀሳቀስ ዓይነቶች (አደባባዮች ፣ ማዋሃድ ፣…) ድጋፍን ያካትታል። እንዲሁም ተጠቃሚው ከመጀመሪያው መንገድ ካፈነገጠ የማሻሻያ ባህሪን ተግባራዊ አደርጋለሁ።
ይህ ሁሉ ሲጠናቀቅ መያዣውን እና የአባሪ አሠራሩን አሻሽላለሁ ፣ 3 ዲ ያትመው እና ሞዱሉን ለመጀመሪያ ጊዜ እወስዳለሁ።
ሁሉም ነገር መልካም ከሆነ ፣ የእኔ የረጅም ጊዜ ዓላማ ለዚህ ፕሮጀክት ለተካተተው ኤሌክትሮኒክስ ብጁ ፒሲቢ ዲዛይን ማድረግ ነው ፣ ይህም በመጨረሻው ምርት ላይ ብዙ ቦታን ይቆጥባል።
እንዲሁም ተጠቃሚው የጽሑፍ መልእክት ወይም ጥሪ በሚቀበልበት ጊዜ አዶ እንዲታይ ሊያደርግ የሚችል የጊዜ ማሳያ ፣ እንዲሁም የስልክ ማሳወቂያ ማንቂያ ጨምሮ ወደፊት አንዳንድ ሌሎች ባህሪያትን በዚህ ሞጁል ላይ ማከል እችል ይሆናል። በመጨረሻም እንደ ትልቅ የሙዚቃ አድናቂ የ Spotify ችሎታዎችን በዚህ ሞጁል ውስጥ ማከል እወዳለሁ። ሆኖም ፣ በዚህ ጊዜ ፣ ይህ ማግኘት ጥሩ ብቻ ነው።
ደረጃ 9 መደምደሚያ እና ልዩ ምስጋና
በመግቢያው ላይ እንደተገለፀው ፣ ይህ ፕሮጀክት ገና አልተጠናቀቀም ፣ በእርግጥ ሌላን ያነሳሳል ብዬ ተስፋ በማድረግ ለዓለም ማካፈል ፈልጌ ነበር።በእውነቱ በአር እና በ HUD ውስጥ ብዙ የትርፍ ጊዜ ማሳለፊያ ፍላጎት ስለሌለ ፣ በዚህ ጉዳይ ላይ የእኔን ምርምር በሰነድ ላይ መመዝገብ ፈልጌ ነበር ፣ እኔ እንደማስበው አሳፋሪ ነው።
ይህንን ሞጁል በመሥራት ረገድ ብዙ ያነሳሳኝ ለአወለል 99 እና ለዳንኤል ኩንታና ትልቅ ምስጋና ማቅረብ እፈልጋለሁ።
ስለ ትኩረትዎ ሁላችሁንም አመሰግናለሁ ፣ ይህ ፕሮጀክት በቅርብ ጊዜ ሲሻሻል ዝመናን እለጥፋለሁ። ይህ በእንዲህ እንዳለ ሁላችሁንም በኋላ እንገናኝ!
የሚመከር:
የሞተርሳይክል ጅራት አምፖል በፕሮግራም ሊዲዎችን በመጠቀም ከተዋሃዱ ብልጭታዎች ጋር 4 ደረጃዎች
የሞተርሳይክል ጅራት አምፖል በፕሮግራም የሚሠሩ ኤልዲዎችን በመጠቀም ከተዋሃዱ ብልጭታዎች ጋር - ጤና ይስጥልኝ! ለሞተርሳይክልዎ ወይም ምናልባት WS2812B (በተናጥል ሊደረስባቸው የሚችሉ ሊዶች) እና አርዱኢኖስን በመጠቀም ብጁ ፕሮግራም ሊወጣ የሚችል የ RGB ጭራ መብራት (ከተዋሃዱ ብልጭታዎች/አመላካቾች ጋር) እንዴት ማድረግ እንደሚቻል በተወሰነ ደረጃ ቀላል DIY ነው። . 4 የመብራት ሁነታዎች አሉ
Raspberry Pi የሞተርሳይክል ዳሽቦርድ 9 ደረጃዎች (ከስዕሎች ጋር)
Raspberry Pi የሞተርሳይክል ዳሽቦርድ: እንደ ተማሪ መልቲሚዲያ &; በሃውስት ኮርርትሪክ ውስጥ የግንኙነት ቴክኖሎጂ ፣ እኔ የራሴ IoT ፕሮጀክት መሥራት ነበረብኝ። ይህ በመጀመሪያው ዓመት የተከተሉትን ሞጁሎች በሙሉ ወደ አንድ ትልቅ ፕሮጀክት ያዋህዳል። በትርፍ ጊዜዬ በሞተር ብስክሌቴ ብዙ ስለምጓዝ ፣
DIY - እጅግ በጣም ርካሽ እና እጅግ በጣም አሪፍ አርክ ሬክተር - 8 ደረጃዎች (ከስዕሎች ጋር)
DIY - Super Cheap እና Super Cool Arc Reactor: በዚህ መመሪያ ውስጥ በቤት ውስጥ እጅግ በጣም ርካሽ አርክ ሬአክተር እንዴት ማድረግ እንደሚችሉ አሳያችኋለሁ። እንጀምር። አጠቃላይ ፕሮጀክቱ ከ 1 ዶላር ያነሰ ዋጋ አስከፍሎብኛል ፣ እኔ የ LED ን እና እያንዳንዱን መግዛት ነበረብኝ። ኤልኢዲ 2.5 ኢንአር ገደለኝ እና 25 ን እጠቀም ነበር ስለዚህ አጠቃላይ ዋጋው ከ 1 በታች ነው
በጣም-ዘመናዊ-ግን-በጣም-ገና-ትንሽ-ዘግናኝ መስታወት 5 ደረጃዎች (ከስዕሎች ጋር)
እንዲሁ-ብልጥ-ግን-በጣም-ገና-ትንሽ-ዘግናኝ መስታወት-መስታወት ቢፈልጉም ሌላ ብልጥ ነገር በቤትዎ ውስጥ ለመጨመር ፈቃደኛ አይደሉም? ከዚያ ይህ በጣም-ብልጥ-ግን-በጣም-ጤናማ-ገና-ትንሽ-ዘግናኝ መስታወት ለእርስዎ ትክክል ነው
IoT ላይ የተመሠረተ ዘመናዊ የአትክልት እና ዘመናዊ እርሻ ESP32 ን በመጠቀም 7 ደረጃዎች
በ IoT ላይ የተመሠረተ ዘመናዊ የአትክልት ስፍራ እና ዘመናዊ እርሻ ESP32 ን በመጠቀም ዓለም እንደ ጊዜ እና ግብርና እየተለወጠ ነው። በአሁኑ ጊዜ ሰዎች በሁሉም መስክ ኤሌክትሮኒክስን ያዋህዳሉ እና ግብርና ለዚህ የተለየ አይደለም። ይህ የኤሌክትሮኒክስ ዕቃዎች በግብርና ውስጥ መዋሃድ ገበሬዎችን እና የአትክልት ቦታዎችን የሚያስተዳድሩ ሰዎችን ይረዳል። በዚህ ውስጥ