विषयसूची:

आर/सी से यूएसबी ब्रिज: ७ कदम
आर/सी से यूएसबी ब्रिज: ७ कदम

वीडियो: आर/सी से यूएसबी ब्रिज: ७ कदम

वीडियो: आर/सी से यूएसबी ब्रिज: ७ कदम
वीडियो: OnePlus Phones || Usb Debugging Enable & Settings 2024, जुलाई
Anonim
आर/सी से यूएसबी ब्रिज
आर/सी से यूएसबी ब्रिज

रेडियो रिसीवर से पीपीएम संकेतों को जॉयस्टिक स्थिति में परिवर्तित करता है

अपने आर/सी रेडियो ट्रांसमीटर के साथ अपने पसंदीदा गेम और फ्लाइट सिमुलेटर खेलने के लिए इसका इस्तेमाल करें। यह निर्देशयोग्य इस रूपांतरण को करने के लिए LittleBits और एक DSMX रिसीवर और एक साधारण कोड स्निपेट से एक Arduino का उपयोग करता है।

आपको चाहिये होगा

  • शक्ति
  • अरुडिनो
  • यूएसबी केबल
  • पिन हेडर
  • जम्पर तार
  • पीपीएम आउटपुट के साथ एक रेडियो रिसीवर।

चरण 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: अपने IDE में Arduino जॉयस्टिक लाइब्रेरी जोड़ें

अपने IDE में Arduino जॉयस्टिक लाइब्रेरी जोड़ें
अपने IDE में Arduino जॉयस्टिक लाइब्रेरी जोड़ें

आप GitHub पर पुस्तकालय पा सकते हैं, https://github.com/MHeironimus/ArduinoJoystickLib… धन्यवाद, मैथ्यू हेरोनिमस, इसे लिखने के लिए।

केवल कुछ Arduinos ही जॉयस्टिक की तरह HID का अनुकरण कर सकते हैं। जैसा कि LittleBits माइक्रोकंट्रोलर दिल से एक Arduino लियोनार्डो है, आप जाने के लिए अच्छे हैं।

चरण 3: कोड को Arduino पर फ्लैश करें

#include #define inputPin 16#define channel 4 #define lo 800 // RX के आउटपुट में एडजस्ट करें# hi 1600 को परिभाषित करें // RX के आउटपुट में एडजस्ट करें#डिफाइन फिल्टर 10int चैनल [चैनल]; इंट पिछलावैल्यू [चैनल]; int काउंटर = 0; जॉयस्टिक_ जॉयस्टिक (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, सत्य, सत्य, असत्य, असत्य, असत्य, असत्य, सत्य, सत्य, असत्य, असत्य, असत्य); शून्य सेटअप () { Joystick.setXAxisRange (लो, नमस्ते); जॉयस्टिक.सेटवाईएक्सिसरेंज (लो, हाय); Joystick.setThrottleRange(lo, hi); Joystick.setRudderRange(lo, hi); जॉयस्टिक। शुरू (); सीरियल.बेगिन (९६००); पिनमोड (इनपुटपिन, इनपुट); } शून्य लूप () { अगर (पल्सइन (इनपुटपिन, हाई)> 3000) {के लिए (इंट आई = 0; आई <= चैनल -1; आई ++) {चैनल = पल्सइन (इनपुटपिन, हाई); } for(int i = 0; i <= channel-1; i++) {if((चैनल> 2000) || (चैनल <500)) { channel = पिछलाValue; } और {चैनल = (पिछला मान + चैनल )/2; काउंटर++; } } जॉयस्टिक.सेटएक्सएक्सिस (चैनल [0]); जॉयस्टिक.सेटवाईएक्सिस (चैनल [1]); जॉयस्टिक.सेट थ्रॉटल (चैनल[2]); जॉयस्टिक.सेटरूडर (चैनल [3]); } अगर (काउंटर> फिल्टर) { के लिए (int i = 0; i <= चैनल -1; i ++) {Serial.print ("चैनल"); सीरियल.प्रिंट (i+1); सीरियल.प्रिंट (":"); Serial.println (चैनल ); पिछला वैल्यू = चैनल ; } काउंटर = 0; } }

कृपया ध्यान रखें कि कोड जो R/C सिग्नल और एमुलेटेड USB HID के बीच पुल करता है, अपने सरलतम रूप में आता है। यहां इस्तेमाल किया जाने वाला फंक्शन - पल्सइन - एक ब्लॉकिंग फंक्शन है। यहां पढ़ें, और यहां, इंटरप्ट्स का उपयोग करके गैर-अवरुद्ध दृष्टिकोण को कैसे कार्यान्वित करें।

चरण 4: वायरिंग करें

वायरिंग करें
वायरिंग करें
वायरिंग करें
वायरिंग करें

बिट और RX के बीच जम्पर वायर / ड्यूपॉन्ट केबल कनेक्ट करें। इन केबलों के अंत में कनेक्टर्स को महिला होना चाहिए। हम Arduino पर GND (नीला), VCC (भूरा) और सिग्नल (नारंगी) को RX के PPM पोर्ट से GND, VCC और d16 से जोड़ते हैं।

चरण 5: रिसीवर को बांधें

Arduino को पावर से डिस्कनेक्ट करें। बाइंडिंग हार्नेस को RX पर BIND चिह्नित कनेक्टर स्थान में रखें। अपने रेडियो ट्रांसमीटर को चालू करें और इसे बाइंड मोड में स्विच करें। अगला Arduino पर शक्ति लागू करें। रिसीवर में एलईडी चालू होने पर बाइंड प्रक्रिया सफल रही।

चरण 6: कोड को अपनी परिस्थितियों में समायोजित करें

Arduino स्केच में स्थिरांक हाय और लो को आपके द्वारा उपयोग किए जा रहे रिसीवर के वास्तविक आउटपुट को प्रतिबिंबित करने के लिए बदलने की आवश्यकता है।

#डिफाइन लो 800

#define hi 1600

पीपीएम पल्स के अंदर के सिग्नल आदर्श रूप से 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

एक बार जब आप अपने आरएक्स आउटपुट की सीमा का स्पष्ट विचार प्राप्त कर लेते हैं, तो हाय और लो के लिए अच्छे अनुमान चुनें और तदनुसार स्थिरांक बदलें। फिर स्केच को फिर से Arduino पर अपलोड करें।

चरण 7: नकली जॉयस्टिक को कैलिब्रेट करें

डिवाइस को अपने कंप्यूटर से कनेक्ट करें और एमुलेटेड जॉयस्टिक को कैलिब्रेट करने के लिए अपने ओएस के कैलिब्रेशन फ़ंक्शन का उपयोग करें। Linux के लिए एक अच्छा टूल jstest-gtk है।

आगे की संवर्द्धन

  • नॉन-ब्लॉकिंग कोड लिखें (चरण 3 देखें)
  • प्रति चैनल रेंज सेट करें, विश्व स्तर पर नहीं (चरण 6 देखें)

आगे की पढाई

  • रेडकॉन CM703
  • पीपीएम

सिफारिश की: