2010-01-29 21 views
13

मैं knobs, बटन और एल ई डी के साथ एक भौतिक नियंत्रक (डिवाइस?) बनाने के बारे में सोच रहा हूं। मैं जावा का उपयोग कर इसके साथ बातचीत करना चाहता हूं (knobs का जवाब, एल ई डी प्रकाश, आदि)। जावा का उल्लेख करने का कारण दो गुना है: सबसे पहले, मुझे जावा अच्छी तरह से पता है । दूसरा, मैंने जावा में इंटरफ़ेस करने के लिए आवश्यक शेष कार्यक्रम लिखा है (हालांकि जावा प्रोग्राम से किसी अन्य भाषा से बात करने के तरीके हैं)।एक यूएसबी डिवाइस बनाएं, इसे जावा में नियंत्रित करें

मैं डिवाइस को यूएसबी के माध्यम से कनेक्ट करना चाहता हूं और (कंप्यूटर-) मंच स्वतंत्र होना चाहता हूं।

मुझे Arduino वेबसाइट पढ़ने शुरू करने के अलावा, कहां से शुरू करना है, इसका थोड़ा सा विचार नहीं है। क्या यह मेरा सबसे अच्छा/एकमात्र विकल्प है? जावा के साथ संवाद करने के लिए कुछ बेहतर अनुकूल है?

नोट: मैं जानता हूँ कि Arduino जावा (यकीन है कि क्या नहीं) के साथ कुछ होता है, लेकिन ऐसा लगता है जैसे कोड सी

के एक सबसेट में लिखा होना चाहिए कि मैं इस पर कैसे आगे बढ़ जायेगा विषय?


1 - कोई हंसी नहीं, कृपया।

+3

मफल्ड हँसी ....: पी – t0mm13b

उत्तर

5

आर्डिनो विकास पर्यावरण जावा में लिखा गया है।

लेकिन मानक भाषा जो आप Arduino प्लेटफ़ॉर्म के लिए एक प्रोग्राम लिखते हैं वह प्रभावी रूप से C++ है।

Arduino प्लेटफ़ॉर्म एक एटमेल एवीआर चिप पर आधारित है। कम से कम एक Java VM for AVR chips है। एवीआर के लिए अन्य भाषाएं उपलब्ध हैं जैसे Forth और बेसिक (हालांकि मुझे केवल वाणिज्यिक संस्करण मिल सकते हैं, इसलिए यदि आप उन्हें ढूंढना चाहते हैं, तो "एवीआर बेसिक" खोजें)।

आर्कडिनो मेजबान कंप्यूटर और उसके बीच संवाद करने के लिए वर्चुअल COM पोर्ट का उपयोग करता है। एक आभासी COM पोर्ट एक पुरानी शैली धारावाहिक रेखा का अनुकरण करता है लेकिन यूएसबी के साथ किया जाता है। आप Java communication API का उपयोग कर सकते हैं ताकि आपके कंप्यूटर डिवाइस के साथ मेजबान कंप्यूटर संचार पर चल रहे जावा प्रोग्राम हो।

+0

@R शमूएल Klatchko: मैं उत्सुक हूँ, यह मंच स्वतंत्र, कहते हैं, लिनक्स, है क्या ड्राइवरों के बारे में? मैंने Arduino के बारे में बहुत अच्छी समीक्षा सुनी है ... :) – t0mm13b

+0

आईडीई प्लेटफ़ॉर्म स्वतंत्र है लेकिन वर्चुअल COM पोर्ट ड्राइवर नहीं है। उस ने कहा, मुझे विश्वास है कि लिनक्स कर्नेल के हाल के संस्करणों में आवश्यक ड्राइवर है। –

+0

+1 आकर्षक सामान, विशेष रूप से नैनोवीएम के लिंक। अभी भी यह सब पचाना, लेकिन यह सबसे आसान चीज की तरह लगता है, हालांकि यह ऐसा नहीं लगता है, Arduino भाषा में Arduino हिस्सा कर रहा है ...? –

0

ठीक है, कंप्यूटर-प्लेटफॉर्म स्वतंत्र है? आप किस प्लेटफॉर्म को लक्षित कर रहे हैं? वह उस प्लेटफ़ॉर्म के लिए ड्राइवर और समर्थन पर निर्भर करेगा, यूएसबी डिवाइस क्या करता है? क्या यह एक बड़े पैमाने पर भंडारण उपकरण है ... आपको डिवाइस को देख सकते हैं और देख सकते हैं कि क्या आप डिवाइस से बात कर सकते हैं ...

उम्मीद है कि यह मदद करता है, सर्वश्रेष्ठ संबंध, टॉम।

+0

इसके लिए धन्यवाद, क्षमा करें अगर प्रश्न स्पष्ट नहीं था: डिवाइस अभी तक नहीं बनाया गया है। –

+0

@yar: कोई समस्या नहीं! :) – t0mm13b

0

मुझे सीरियल पोर्ट के लिए पता है पुस्तकालय थे जो इसके साथ बातचीत करने के लिए मौजूद थे (rs232 लाइब्रेरी)। जावा और यूएसबी के लिए गुगलिंग ने कई जवाब दिए (पहले जेएसबी कहा जाता था)। यह पहली चीज होगी जो मैं खोज रहा हूं।

+0

सही, लेकिन फिर आप क्या करेंगे? अपने सोल्डरिंग लोहा और सुधार करें? मुझे नहीं पता कि एक यूएसबी डिवाइस कैसे बनाया जाए, हालांकि मेरे पास ऐसे लोग हैं जो मेरे लिए सामान बेच सकते हैं और schematics का पालन कर सकते हैं (हालांकि मुझे व्यक्तिगत रूप से इसके बारे में कुछ नहीं पता है)। –

1

क्या आप कस्टम डिवाइस की आवश्यकता पर विस्तार कर सकते हैं? ऐसा लगता है कि हार्डवेयर डिजाइन करने के लिए प्रवेश के लिए एक बहुत ही उच्च बाधा है और अधिकांश अनुप्रयोग जो मैं सोच सकता हूं, गेम नियंत्रक हार्डवेयर के मौजूदा टुकड़े को दोबारा सुधारकर बेहतर हल किया जाएगा। यदि आपको वास्तव में नए हार्डवेयर की आवश्यकता है, तो मेरा सुझाव है कि आप 'यूएसबी डेवलपमेंट किट' या 'यूएसबी डेवलपमेंट बोर्ड' से गुजरना शुरू करें जो आपको this, this और this जैसे लिंक प्राप्त करेगा।

जावा से यूएसबी हार्डवेयर के साथ काम करने के लिए, मैंने JUSB लाइब्रेरी के साथ थोड़ा सा खेला है और यह आशाजनक प्रतीत होता है, लेकिन ऐसा लगता है कि केवल लिनक्स तक सीमित है क्योंकि पुस्तकालय के आधे पुस्तकालय के मूल संस्करण का विंडोज संस्करण है लिखा नहीं गया है। 'छुपा जावा' गुगल करके विकल्प मिल सकते हैं।

+0

धन्यवाद जेरिको। डिवाइस में इनमें से कुछ "एलईडी रिंगों के साथ अंतहीन रोटरी एन्कोडर्स होंगे: इन नियंत्रणों में कोई अंत बिंदु नहीं है, इसलिए पूर्ण 360 ̊ आंदोलन प्रदान करें। ये नियंत्रण गति निर्भर परिवर्तनीय रिज़ॉल्यूशन प्रदान करते हैं, इसलिए एन्कोडर को धीरे-धीरे एन्कोडर को स्थानांतरित करने से बेहतर रिज़ॉल्यूशन देता है जल्दी जल्दी।" इसमें कुछ "एलईडी बैक बटन भी होंगे।" यह पहले भाग के लिए इसके बारे में है .... उम्मीद है कि थोड़ा सा मदद करता है। अब जब मैं इसे वास्तव में लिखता हूं, तो यह मुश्किल लगता है। –

3

कुछ एन्कोडर्स और बटन के लिए, शायद आप एक यूएसबी छिपा डिवाइस लागू करना चाहते हैं। यदि आप उनमें से कुछ से अधिक उत्पादन करने जा रहे हैं, तो आप एक कस्टम बोर्ड करना चाहेंगे। V-USB, एटमेल माइक्रोकंट्रोलर का उपयोग कर यूएसबी छिपाई डिवाइस बनाने के लिए ओपन-सोर्स लाइब्रेरी देखें। उनके पास इस पुस्तकालय का उपयोग करने वाली परियोजनाओं के उदाहरण हैं।

आप शायद एक्स/वाई अक्ष जानकारी का उत्पादन करने के लिए एन्कोडर्स का उपयोग करके और बटन को बटन की तरह कार्य करने के लिए, एक छिपा जॉयस्टिक की तरह दिख सकते हैं। जॉयस्टिक मान पढ़ने के लिए आप मानक जावा गेमिंग एपीआई का उपयोग कर सकते हैं।

+0

कूल, धन्यवाद, मैं इसे देख लूंगा। –

0

फ्रीस्केल माइक्रोकंट्रोलर के लिए जावा यूएसबी कनेक्शन के लिए नमूना:

http://javausbapi.blogspot.com/

+1

यह समझने में परेशानी हो रही है कि यह प्रासंगिक है ...? –