ዝርዝር ሁኔታ:

አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX: 5 ደረጃዎች
አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX: 5 ደረጃዎች

ቪዲዮ: አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX: 5 ደረጃዎች

ቪዲዮ: አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX: 5 ደረጃዎች
ቪዲዮ: RAMPS 1.6 - A4988/DRV8825 configuration 2024, ሀምሌ
Anonim
አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX
አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX
አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX
አርዱዲኖ ላይ የተመሠረተ (ጄቲኢ) ፒፒኤም ወደ ዩኤስቢ ጆይስቲክ መለወጫ ለ FSX

እኔ የእኔን JETI DC-16 አስተላላፊን ከ ‹ሞድ 2› ወደ ‹1› ›ለመቀየር ወሰንኩ ፣ ይህም በመሠረቱ ስሮትል እና ሊፍት ከግራ ወደ ቀኝ እና በተቃራኒው ይለውጣል። በአንጎሌ ውስጥ በሆነ የግራ/ቀኝ ግራ መጋባት ምክንያት ከአንዱ ሞዴሎቼን ለመውደቅ ስላልፈለግሁ ፣ በ FSX ውስጥ ትንሽ መለማመድ ይቻል እንደሆነ እያሰብኩ ነበር።

የጄቲአይ አስተላላፊዎችን በትክክል ከሳጥኑ ውስጥ የጆይስቲክ ሁነታን ይደግፋሉ ብዬ አነበብኩ እና ሞክሬአለሁ ፣ ሆኖም ግን ለመጥረቢያዎች እና ምደባዎች ሙሉ ተጣጣፊነትን እፈልጋለሁ እና ቲኤክስን እንደ እውነተኛ አምሳያ ይጠቀሙበት። የተቀባዩን ውጤት በመጠቀም ፣ በዲሲ -16 ውስጥ ያለውን የምልክት ማቀነባበሪያ ማጎልበት እና እዚያም ሊያዘጋጁት የሚችሉት ማደባለቂያዎችን ፣ የበረራ ደረጃዎችን ፣ ባለሁለት መጠኖችን መጠቀም ይቻላል።

በቅርቡ እንደ Pro ማይክሮ ካሉ ርካሽ አርዱዲኖ የዩኤስቢ HID ግብዓት መሣሪያን ማለትም ጆይስቲክን እንዴት መሥራት እንደሚቻል ጥሩ መማሪያ አገኘሁ-

www.instructables.com/id/ ፍጠር-a-Joystick…

ይህ በአውሮፕላን / ሄሊኮፕተር / በ FSX ውስጥ ያለውን ሁሉ ለመቆጣጠር የሚያስፈልገውን ሁሉ ያስችላቸዋል! ብዙ መጥረቢያዎች እና አዝራሮች ይገኛሉ።

እኔ ትርፍ ጄቲ RSAT2 ስለነበረኝ ፣ ከአርዱዲኖ ጋር ለማገናኘት ወሰንኩ እና ከጆይስቲክ ቤተ -መጽሐፍት ጋር አንድ ትንሽ የፒ.ፒ.ኤም.

እነዚህን እርምጃዎች የሚከተል ማንኛውም ሰው አርዱዲኖን ከማገናኘት እና ከማዘጋጀት ጋር የሚያውቅ ይመስለኛል። ለብልሽቶች ወይም ለጉዳቶች ምንም ዋስትና አይወስድም!

አቅርቦቶች

ያስፈልግዎታል…

  • በጆይስቲክ ቤተ -መጽሐፍት የሚደገፍ ማንኛውም አርዱኢኖ ፣ እኔ Sparkfun Pro Micro 5V / 16 MHz ን እጠቀም ነበር
  • የ Arduino IDE የቅርብ ጊዜ ስሪት
  • እንደ JETI RSAT2 ያለ የፒፒኤም ምልክት የሚያወጣ ማንኛውም RC ተቀባይ
  • ጥቂት የዝላይ ሽቦዎች (ደቂቃ 3)
  • በአርዲኖ አይዲኢ ውስጥ የተጫነው ጆይስቲክ ቤተ -መጽሐፍት
  • የአርዲኖ-ሰዓት ቆጣሪ ቤተ-መጽሐፍት-

ደረጃ 1: RX እና Arduino ን ያገናኙ

RX ን እና አርዱዲኖን ያገናኙ
RX ን እና አርዱዲኖን ያገናኙ
RX ን እና አርዱዲኖን ያገናኙ
RX ን እና አርዱዲኖን ያገናኙ

ሽቦው በጣም ቀጥተኛ ነው። የጆይስቲክ መሣሪያን ስለሚመስል አርዱዲኖን ከዩኤስቢ ብቻ ለማውጣት ወሰንኩ። ይህ አርዱዲኖን 5 ቮን ይሰጠዋል ፣ ይህም የ RC ተቀባዩን ኃይልም ሊያገለግል ይችላል።

እኔ የተስተካከለ ውፅዓት የሚያቀርበውን ፒን ቪሲሲን ፣ እና በአቅራቢያው ያለውን የ Gnd pin ን ተጠቅሜ ነበር - ከፒፒኤም ማገናኛ + እና - ፒኖች ጋር ያገናኙት። አርዱዲኖ ኃይል በሚሰጥበት ጊዜ ተቀባዩ አሁን እየበራ ነው።

ለፒ.ፒ.ኤም. ምልክት ፣ ለመተንተን ማቋረጫዎችን ለመጠቀም ወሰንኩ። ማቋረጦች ይገኛሉ ለምሳሌ። በፒን 3 ላይ ፣ ስለዚህ እዚያ ያገናኙት - በአርዱዲኖ ላይ ምንም “ተወላጅ RC ፒን” የለም ፣ ግን በተቀባይ ምልክት ውስጥ ለማንበብ የበለጠ እና የተለያዩ መንገዶች።

የዩኤስቢ አቅርቦት ያለው የቪሲሲ ቮልቴጅ በ 4.5 ቪ ብቻ ስለሚሆን የ RX ቮልቴጅ ማንቂያውን ማሰናከል ነበረብኝ - ግን በጣም የተረጋጋ ፣ ስለዚህ በጭራሽ ምንም ችግር የለም።

ደረጃ 2 አንዳንድ የፒፒኤም ምልክቶችን ማግኘት

አንዳንድ የፒፒኤም ምልክቶችን ማግኘት
አንዳንድ የፒፒኤም ምልክቶችን ማግኘት
አንዳንድ የፒፒኤም ምልክቶችን ማግኘት
አንዳንድ የፒፒኤም ምልክቶችን ማግኘት

ተቀባዩ እና TX ሲበራ ፣ በምስሉ ላይ እንደሚታየው የ PPM ምልክቶችን እያገኘሁ ነበር። 16 ሰርጦች ፣ ለዘላለም ተደግመዋል። በ RSAT ላይ Failsafe ከተሰናከለ እና አስተላላፊው ከጠፋ ፣ የ PPM ውፅዓት ይሰናከላል።

ስለ PPM ተጨማሪ መረጃ እዚህ ይገኛል

  • https://am.wikipedia.org/wiki/Pulse-position_modul…
  • https://wiki.rc-network.de/index.php/PPM

በዚህ ጉዳይ ላይ እውነተኛ ነገሮችን ስለማብረር ፣ ለንድፈ -ሀሳባዊ ጊዜዎች ደንታ አልነበረኝም እና እንጨቶችን ከግራ ወደ ሙሉ በሙሉ ወደ ቀኝ (በ TX ውስጥ መደበኛ ቅንጅቶች) ሲያንቀሳቅሱ የእኔ ተቀባዩ በአስተማማኝ ሁኔታ የሚያወጣውን በኦስቲልስኮፕ ላይ አሰብኩ።. እሱ ይመስላል -100% ከ 600µs ርዝመት እና ከ 100% እስከ 1600µs ካለው ጥራጥሬ ጋር የሚዛመድ ይመስላል። እኔ ደግሞ በአርዲኖ ኮዴ ውስጥ ለአፍታ ቆም (400µs) ርዝመት ደንታ አልነበረኝም ፣ ግን እኔ የአንድ ደቂቃ ክፈፍ ክፍተት አሰብኩ። 3000µ.

ደረጃ 3 አስተላላፊውን በማዋቀር ላይ

አስተላላፊውን በማዋቀር ላይ
አስተላላፊውን በማዋቀር ላይ
አስተላላፊውን በማዋቀር ላይ
አስተላላፊውን በማዋቀር ላይ
አስተላላፊውን በማዋቀር ላይ
አስተላላፊውን በማዋቀር ላይ

የመቆጣጠሪያዎቹ ትክክለኛ ቦታ ብቻ መታወቅ ያለበት በመሆኑ በአንድ ሰርጥ / “ሰርቪስ” በአንድ አርሲ ተግባር በቂ ነው። በዚህ ምክንያት ቀለል ያለ አስተላላፊ ቅንብር ሊሠራ ይችላል - ከተለመደው RC ሞዴል ጋር ይመሳሰላል። ዋናዎቹ ተግባራት አይይሮሮን ፣ ሊፍት ፣ ራደር እና ስሮትል እያንዳንዳቸው በቅደም ተከተል አስተላላፊ ሰርጥ ብቻ ያስፈልጋቸዋል። እኔ ደግሞ ፍላፕዎችን ፣ ብሬክዎችን እና ማርሾችን ጨምሬ እስካሁን 9 ሰርጦችን በነፃ አስቀርቻለሁ። እባክዎን ፍላፕስ በበረራ ደረጃ ላይ እንደተቀመጡ እና በዱላ ፣ በተንሸራታች ወይም በአዝራር በኩል በቀጥታ ቁጥጥር እንደማይደረግባቸው ልብ ይበሉ።

ደረጃ 4 ጆይስቲክን ማካሄድ

ጆይስቲክን ማካሄድ
ጆይስቲክን ማካሄድ
ጆይስቲክን ማካሄድ
ጆይስቲክን ማካሄድ

ጆይስቲክ ቤተ -መጽሐፍት ለመጠቀም በጣም ቀላል ነው ፣ እና አንዳንድ ምሳሌዎችን እና ሙከራዎችን ይሰጣል። አርዱዲኖ እንደ ተገቢ ጆይስቲክ ሆኖ ከተገኘ ፣ በመጀመሪያ በመግቢያው ክፍል ውስጥ የተገናኙት መመሪያዎች እና ቤተመፃህፍቱ አንዳንድ ጥሩ መመሪያዎችን ቢሰጡ መጀመሪያ መመርመር ጠቃሚ ነው።

በመሳሪያዎች እና በአታሚዎች የቁጥጥር ፓነል ውስጥ አርዱዲኖ እንደ “ስፓርክፎን ፕሮ ማይክሮ” ሆኖ እየታየ ሲሆን የጆይስቲክ የሙከራ መስኮቱ 7 መጥረቢያዎችን እና ብዙ የሚደገፉ አዝራሮችን ያሳያል። በአርዲኖ ውስጥ ፕሮግራም በሚደረግበት ጊዜ የባርኔጣ መቀየሪያ እንኳን መጠቀም ይቻላል።

ደረጃ 5: አርዱዲኖን ኮድ መስጠት

አርዱዲኖን ኮድ መስጠት
አርዱዲኖን ኮድ መስጠት
አርዱዲኖን ኮድ መስጠት
አርዱዲኖን ኮድ መስጠት

አሁንም የሚጎድለው የፒፒኤም ምልክት እና ለጆይስቲክ መጥረቢያዎች እና አዝራሮች መመደብ ትክክለኛ መተንተን ነው። ለሚከተለው ካርታ ወሰንኩኝ

ሰርጥ / ተግባር / ጆይስቲክ ምደባ

  1. ስሮትል -> ስሮትል ዘንግ
  2. አይሌሮን -> ኤክስ ዘንግ
  3. ሊፍት -> Y ዘንግ
  4. Rudder -> X የማዞሪያ ዘንግ
  5. ፍላፕ -> Y የማዞሪያ ዘንግ
  6. ብሬክ -> Z ዘንግ
  7. Gear -> አዝራር 0

ማርሽው ሲወድቅ ፣ የጆይስቲክ የመጀመሪያ ቁልፍ ተጭኖ ማርሹን ከፍ ሲያደርግ ይለቀቃል። ሆኖም ፣ ይህ FSUIPC ን ለ FSX ይፈልጋል ፣ ከሳጥኑ ውጭ ፣ FSX ማርሾቹን ለመቀያየር አንድ አዝራር ብቻ ይቀበላል ፣ ይህም በትክክል በእኔ ሞዴሎች ላይ ምን እየሆነ አይደለም።

ለእኔ የአሁኑን የኮድ ስሪት ብዙ አስተያየቶችን ሰጥቻለሁ ፣ ይህም ለእኔ በደንብ እየሰራ ነው - ተልእኮዎን ለመለወጥ ወይም አዲስ ተግባሮችን ለመጨመር ነፃነት ይሰማዎ። የመጨረሻዎቹ 9 RC ሰርጦች በአሁኑ ጊዜ ጥቅም ላይ አልዋሉም።

ለዝግጅት ፣ የጆይስቲክ ክፍል በመጀመሪያ ደረጃ የቁጥር ዘንግ መስመሮችን በመለየት መጀመር አለበት።

/ * የመጥረቢያ ክልል ያዘጋጁ (በአርዕስቱ ውስጥ ተገል definedል ፣ 0 - 1000) */

Joystick.setXAxisRange (CHANNEL_MIN ፣ CHANNEL_MAX); Joystick.setYAxisRange (CHANNEL_MIN ፣ CHANNEL_MAX); …

እሴቶችን ከ 0 እስከ 1000 በመጠቀም ፣ ዳግመኛ ሳያስቀሩ የ pulse ርዝመት (600 - 1600µs) በቀጥታ ወደ ጆይስቲክ እሴቶች ካርታ ማድረግ ይቻላል።

ዲአይኤን 3 እንደ ዲጂታል ግብዓት ፣ ግፊቶች እንደነቃ እና መቋረጥ ተያይ attachedል።

pinMode (PPM_PIN ፣ INPUT_PULLUP);

አባሪ ማቋረጫ (digitalPinToInterrupt (PPM_PIN) ፣ PPM_Pin_Changed ፣ CHANGE);

ለማረም ዓላማ ፣ አርዱዲኖ-ቆጣሪ ቤተ-መጽሐፍትን በመጠቀም በመደበኛ ክፍተቶች ውስጥ አንዳንድ የህትመት ህትመቶችን በሴሪያል በይነገጽ በኩል አክዬአለሁ።

ከሆነ (SERIAL_PRINT_INTERVAL> 0) {

scheduler.every (SERIAL_PRINT_INTERVAL ፣ (ባዶ*) -> bool {SerialPrintChannels () ፤ እውነት ተመለስ ፤}); }

የፒን ማቋረጫው የፒን አመክንዮአዊ እሴት በተለወጠ ቁጥር ይጠራል ፣ ስለዚህ በ PPM ምልክት ውስጥ ላለው ለእያንዳንዱ ጠርዝ። ማይክሮስ () በመጠቀም በቀላል ጊዜ ብቻ የልብ ምት ርዝመቱን ይገምግሙ

uint32_t curTime = ማይክሮስ ();

uint32_t pulseLength = curTime - edgeTime; uint8_t curState = digitalRead (PPM_PIN);

የአሁኑን የፒን ሁኔታ በመገምገም እና ከ pulse ርዝመት እና ካለፈው ጥራጥሬ ጋር በማጣመር አዲሶቹ ጥራጥሬዎች ሊመደቡ ይችላሉ። የሚከተለው ሁኔታዊ ሁኔታ የመሃል ክፍተቱን ክፍተት ይለያል-

ከሆነ (lastState == 0 && pulseLength> 3000 && pulseLength <6000)

ለቀጣዮቹ ግፊቶች ፣ የልብ ምት ርዝመቱን ከጆይስቲክ ዘንግ ክልል ጋር በማዛመድ የልብ ምት ርዝመቱን በመቆራረጥ እና በመገጣጠም ወደ ዘንግ ሁኔታ ካርታ ይደረጋል።

uint16_t rxLength = pulseLength;

rxLength = (rxLength> 1600)? 1600: rxLength; rxLength = (rxLength <600)? 600: rxLength; rxChannels [curChannel] = rxLength - 600;

የ rxChannels ድርድር በመጨረሻ 16 እሴቶችን ከ 0 - 1000 ይይዛል ፣ ዱላ / ተንሸራታች እና የአዝራር ቦታዎችን ያሳያል።

16 ሰርጦችን ከተቀበለ በኋላ ወደ ጆይስቲክ ካርታ ይከናወናል

/ * መጥረቢያዎች//

Joystick.setThrottle (ሰርጦች [0]); Joystick.setXAxis (ሰርጦች [1]); ኤክሲሲ (1000 - ሰርጦች [2]); Joystick.setRxAxis (ሰርጦች [3]); Joystick.setRyAxis (ሰርጦች [4]); Joystick.setZAxis (1000 - ሰርጦች [5]); / * አዝራሮች */ Joystick.setButton (0 ፣ (ሰርጦች [6] <500? 1: 0)); / * መረጃን በዩኤስቢ በኩል ያዘምኑ */ Joystick.sendState ();

ዘንግ እንዲሁ በ servo አቅጣጫ ወይም በ FSX ውስጥ ምደባ በመገልበጥ ሊገለበጥ ስለሚችል በኮዱ ውስጥ አንዳንድ መጥረቢያዎችን ገልብጫለሁ። ሆኖም ፣ የ servo አቅጣጫዎችን እና እንዲሁም የመጀመሪያውን FSX ምደባ ለመጠበቅ ወሰንኩ።

አዝራሩ በመነሻ ሰርጥ 7 በርቷል ወይም ጠፍቷል።

እና መርሐግብር ሰጪውን ምልክት ማድረጉን አይርሱ… ያለበለዚያ ፣ ምንም ማረም ህትመቶች አይታዩም።

ባዶነት loop () {

scheduler.tick (); }

እኔ ባያያዝኩት ቅጽበታዊ ገጽ እይታ ውስጥ ፣ ሰርጥ 1 ከ 1000 (ሙሉ ስሮትል) ወደ 0 (ስራ ፈት) ተወስዷል።

FSX ልክ እንደሌላው ጆይስቲክ አርዱዲኖን ይለየዋል ፣ ስለዚህ ቁልፉን እና መጥረቢያዎችን ብቻ ይመድቡ እና በመነሳት ይደሰቱ!

በዚህ አቀራረብ በእውነት የምወደው ነገር ፣ ልክ እንደ እውነተኛ አምሳያ የእርስዎን ማስተላለፊያ መጠቀም ይችላሉ ፣ ለምሳሌ። የበረራ ደረጃዎችን ወዘተ በመጠቀም

የሚመከር: