সুচিপত্র:

R/C to USB Bridge: 7 ধাপ
R/C to USB Bridge: 7 ধাপ

ভিডিও: R/C to USB Bridge: 7 ধাপ

ভিডিও: R/C to USB Bridge: 7 ধাপ
ভিডিও: USB Pen Drive Detected But Not Showing up - Windows 10/8/7 2024, নভেম্বর
Anonim
আর/সি থেকে ইউএসবি ব্রিজ
আর/সি থেকে ইউএসবি ব্রিজ

একটি রেডিও রিসিভার থেকে PPM সংকেতকে জয়স্টিক অবস্থানে রূপান্তর করে

আপনার R/C রেডিও ট্রান্সমিটারের সাথে আপনার প্রিয় গেম এবং ফ্লাইট সিমুলেটর খেলতে এটি ব্যবহার করুন। এই নির্দেশযোগ্যটি লিটলবিটস থেকে একটি আরডুইনো এবং একটি ডিএসএমএক্স রিসিভার এবং একটি সাধারণ কোড স্নিপেট ব্যবহার করে এই রূপান্তরটি ব্যবহার করে।

আপনার প্রয়োজন হবে

  • ক্ষমতা
  • আরডুইনো
  • ইউএসবি ক্যাবল
  • পিন হেডার
  • জাম্পার তার
  • PPM আউটপুট সহ একটি রেডিও রিসিভার।

ধাপ 1: Arduino এর অতিরিক্ত I/O পোর্টে সোল্ডার পিন হেডার

Arduino এর অতিরিক্ত I/O পোর্টে সোল্ডার পিন হেডার
Arduino এর অতিরিক্ত I/O পোর্টে সোল্ডার পিন হেডার

রিসিভারকে (RX) পাওয়ার জন্য, Arduino এ পিন হেডার যুক্ত করতে হবে। এটি বিট এবং আরএক্সের মধ্যে ওয়্যারিংকে অনেক সহজ করে তুলবে। আরও তথ্যের জন্য https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit দেখুন।

পদক্ষেপ 2: আপনার আইডিইতে আরডুইনো জয়স্টিক লাইব্রেরি যুক্ত করুন

আপনার আইডিইতে আরডুইনো জয়স্টিক লাইব্রেরি যুক্ত করুন
আপনার আইডিইতে আরডুইনো জয়স্টিক লাইব্রেরি যুক্ত করুন

আপনি GitHub- এ লাইব্রেরি খুঁজে পেতে পারেন, https://github.com/MHeironimus/ArduinoJoystickLib… ধন্যবাদ, ম্যাথু হেইরোনিমাস, এটি লেখার জন্য।

শুধুমাত্র নির্দিষ্ট Arduinos একটি জয়স্টিক মত একটি HID অনুকরণ করতে পারেন। যেহেতু লিটলবিটস মাইক্রোকন্ট্রোলার হৃদয়ে একটি Arduino লিওনার্দো আপনি যেতে ভাল।

ধাপ 3: আরডুইনোতে কোডটি ফ্ল্যাশ করুন

#অন্তর্ভুক্ত#ডিফাইন ইনপুট পিন 16#চ্যানেল সংজ্ঞায়িত করুন 4#ডিফাইন লো 800 // RX এর আউটপুট এডজাস্ট করুন#হাই 1600 ডিফাইন করুন // RX আউটপুট এডজাস্ট করুন#ফিল্টার 10 ইন্ট চ্যানেল [চ্যানেল] নির্ধারণ করুন; int previousValue [চ্যানেল]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, সত্য, সত্য, মিথ্যা, মিথ্যা, মিথ্যা, মিথ্যা, সত্য, সত্য, মিথ্যা, মিথ্যা); অকার্যকর সেটআপ () {Joystick.setXAxisRange (loxisRange ওহে); Joystick.setYAxisRange (লো, হাই); Joystick.setThrottleRange (লো, হাই); Joystick.setRudderRange (লো, হাই); Joystick.begin (); Serial.begin (9600); পিনমোড (ইনপুটপিন, ইনপুট); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= channels-1; i ++) {channel = pulseIn (inputPin, HIGH); } এর জন্য (int i = 0; i <= channels-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } অন্য {চ্যানেল = (আগের মান +চ্যানেল )/2; পাল্টা ++; }} Joystick.setXAxis (চ্যানেল [0]); Joystick.setYAxis (চ্যানেল [1]); Joystick.setThrottle (চ্যানেল [2]); Joystick.setRudder (চ্যানেল [3]); } if (counter> filter) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); সিরিয়াল.প্রিন্ট (i+1); সিরিয়াল.প্রিন্ট (":"); Serial.println (চ্যানেল ); previousValue = চ্যানেল ; } কাউন্টার = 0; }}

অনুগ্রহ করে সচেতন থাকুন যে কোডটি R/C সংকেত এবং এমুলেটেড USB HID এর মধ্যে সেতুবন্ধন তার সহজতম রূপে আসে। এখানে ব্যবহৃত ফাংশন - পালসইন - একটি ব্লকিং ফাংশন। এখানে পড়ুন, এবং এখানে, কীভাবে ইন্টারাপ্ট ব্যবহার করে নন-ব্লকিং পদ্ধতি প্রয়োগ করবেন।

ধাপ 4: ওয়্যারিং করুন

ওয়্যারিং করুন
ওয়্যারিং করুন
ওয়্যারিং করুন
ওয়্যারিং করুন

বিট এবং আরএক্সের মধ্যে জাম্পার ওয়্যার / ডুপন্ট তারগুলি সংযুক্ত করুন। এই তারের শেষে সংযোগকারীগুলিকে মহিলা হতে হবে। আমরা RX এর PPM পোর্ট থেকে GND, VCC (DCC) এবং সংকেত (কমলা) আরডুইনোতে GND, VCC এবং d16 এর সাথে সংযোগ করি।

ধাপ 5: প্রাপককে আবদ্ধ করুন

Arduino কে বিদ্যুৎ থেকে বিচ্ছিন্ন করুন। RX- এ BIND চিহ্নিত সংযোগকারী অবস্থানে বাঁধাই জোতা রাখুন। আপনার রেডিও ট্রান্সমিটারটি চালু করুন এবং এটিকে বাইন্ড মোডে পরিবর্তন করুন। পরবর্তী Arduino শক্তি প্রয়োগ করুন। রিসিভারে LED চালু হলে বাঁধন প্রক্রিয়া সফল হয়েছিল।

ধাপ 6: আপনার পরিস্থিতিতে কোড সামঞ্জস্য করুন

Arduino স্কেচের হাই এবং লো ধ্রুবকগুলিকে আপনি যে রিসিভার ব্যবহার করছেন তার প্রকৃত আউটপুট প্রতিফলিত করার জন্য পরিবর্তন করতে হবে।

#800 নির্ধারণ করুন

#হাই 1600 নির্ধারণ করুন

PPM পালসের ভিতরের সিগন্যালগুলি আদর্শভাবে 1000μs থেকে 2000μs পর্যন্ত। এই নির্দেশযোগ্য আউটপুটে ব্যবহৃত RX মোটামুটি 800 থেকে 1600 এর মধ্যে এবং প্রতিটি চ্যানেলে কিছুটা আলাদা। আপনার রিসিভারের কোন পরিসীমা আছে তা জানতে, আপনার RX এর আউটপুট দেখতে Arduino IDE তে সিরিয়াল মনিটর খুলুন। এটি এর মতো দেখতে হবে:

চ্যানেল 1: 728

চ্যানেল 2: 729 চ্যানেল 3: 703 চ্যানেল 4: 726 চ্যানেল 1: 1681 চ্যানেল 2: 1639 চ্যানেল 3: 1613 চ্যানেল 4: 1676

আপনার RX আউটপুট পরিসীমা সম্পর্কে একটি পরিষ্কার ধারণা পেয়ে গেলে, হাই এবং লো এর জন্য ভাল আনুমানিক নির্বাচন করুন এবং সেই অনুযায়ী ধ্রুবক পরিবর্তন করুন। তারপর আবার Arduino এ স্কেচ আপলোড করুন।

ধাপ 7: এমুলেটেড জয়স্টিক ক্যালিব্রেট করুন

আপনার কম্পিউটারে ডিভাইসটি সংযুক্ত করুন এবং এমুলেটেড জয়স্টিক ক্যালিব্রেট করতে আপনার ওএসের ক্রমাঙ্কন ফাংশনটি ব্যবহার করুন। লিনাক্সের জন্য একটি ভাল হাতিয়ার হল jstest-gtk।

আরও উন্নতি

  • নন-ব্লকিং কোড লিখুন (ধাপ 3 দেখুন)
  • প্রতি চ্যানেল রেঞ্জ সেট করুন, বিশ্বব্যাপী নয় (ধাপ 6 দেখুন)

আরও পড়া

  • রেডকন সিএম 703
  • পিপিএম

প্রস্তাবিত: